Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / LECS1

.DOC
Скачиваний:
50
Добавлен:
16.04.2013
Размер:
59.9 Кб
Скачать

Лекция 1.

  1. Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./ Пер. с англ. –М.: “Издательство БИНОМ”, СПб.: “Невский диалект”, 1999г. – 560 стр.

  2. А. Пол. Объектно-ориентированное программирование на С++,

2-е изд./ Пер. с англ. – СПб.; М.: “Невский диалект” – “Издательство БИНОМ”, 1999г. – 462 стр.

  1. Б. Страуструп. Язык программирования С++, 3-е изд./ Пер. с англ. - СПб.; М.: “Невский диалект” – “Издательство БИНОМ”, 1999г. – 991 стр.

  2. Баженова И.Ю. VISUAL C++ 6.0 (VISUAL STUDIO 98). Уроки программирования. – М.: Диалог – МИФИ, 1999г. – 416 стр.

  3. Шаммас Н.К. и др. Изучи сам BORLAND C++ за 21 день /

Н.К. Шаммас, К. Эрнуш, Э. Малрой/ Пер. с англ.; Худ. обл.

М.В. Драко. – Мн.: ООО “Попурри”, 1996г. – 680 стр.

  1. Том Сван. Освоение BORLAND C++ 5. – Диалектика,

1996г. – 576 стр.

  1. Хаймен М. BORLAND C++для “чайников”. – К.: “Диалектика”, 1995г. – 416 стр.

  2. Чарльз Калверт. Программирование в WINDOWS: Освой самостоятельно за 21 день. – Пер. с англ. – М.: БИНОМ,

1995г. – 496 стр.

  1. Бруно Бабэ. Просто и ясно о BORLAND C++ : Пер. с англ. – М.: БИНОМ. – 400 стр.: ил.

В курсе лекций, в основном, используется литература [2] и [6].

Базовое ядро языка

[2] Элементы программы.

Набор символов.

  • Прописные и строчные буквы: a,b,…,z, A,…,Z

  • Цифры: 0,1,…,9

  • Операторы: *, +, =…

  • Знаки пунктуации: ; , ’ … “

Лексемы – наборы символов, распознаваемых компилятором (базовый словарь языка).

  • ключевые слова

  • идентификаторы

  • литералы

  • операторы

  • знаки пунктуации

Комментарии

/* многострочный или однострочный комментарий */

// комментарий до конца строки

/* Программист Иванов И.И.

Дата последней коррекции 8.02.2000

Версия 1.01.

*/

# include < iostream.h > // заголовочный файл

Ключевые слова – четко определенные, зарезервированные слова, имеющие конкретный смысл в языке СИ++.

Например, int, long, public, protected, for, do, class,…

Идентификаторы – последовательность букв, цифр и символов подчеркивания. Идентификатор не может начинаться с цифры. Прописные и строчные буквы различаются. Длина до 31 символа в большинстве систем (вообще не ограничена).

Примеры + -

n for

count 2x

- foo - count

buff-size

too_ _ bad, _Sys foo / для системного использования

Литералы – постоянные значения, существующие для каждого собственного типа С++.

Литералы: символьные, целые, вещественные, строковые константы.

Примеры литералов:

  1. // целая константа

5U // u или U означает unsigned (беззнаковая)

5L // l или L означает long (длинная)

  1. // целая константа в восьмеричном виде

0x5 // целая константа в шестнадцатиричном виде

true // булевская (логическая) константа

    1. // константа с плавающей точкой,

// трактируемая как double

5.0F // f или F (float) константа с плавающей точкой,

// одинарной точности

5.0L // l или L длинная константа с двойной точностью

‘5’ // символьная константа (код 53)

‘\ n’ // символьная константа – управляющая последовательность

// (означает переход на новую строку)

L’XYZ’ // wchar_t символ XYZ

“5” // строка, состоящая из символа 5

“ строка и символ перехода на новую строку \ n ”

Символьные литералы представляются в виде ‘символ’

‘A’ // прописная буква А (код 65)

‘a’ // строчная буква а (код 97)

‘\ 0’ // нулевой символ – символ конца строки (код 0)

‘+’ //символ оператора сложения

Символьные константы, заданные escape – последовательностями:

‘\ a’ - звуковой сигнал ( alert )

‘\\’ - обратная косая черта ( back slash )

‘\ b’ - возврат на шаг ( back space )

‘\ r’ - возврат каретки (carriage return)

‘\” ‘ - двойные кавычки (double quote)

‘\ f’ - прогон листа (form feed)

‘\ t’ - табуляция (tab)

‘\ n’ - перевод строки (new line)

‘\ 0’ - нулевой символ (null char)

‘\’’ - апостроф (single quote)

‘\ v’ - вертикальная табуляция (vertical tab)

‘\ 101’- восьмеричный код ASCI I (код А) (до трех символов)

‘\ x041’- шестнадцатиричный код ASCI I

L’oop’ – wchar_t константа. Для расширения набора символов за диапазон 256. В Visual C++ 5.0 для ее представления используются два байта, например L’ab’. Количество символов между апострофами зависит от реализации.

escape – последовательности могут использоваться в строковых литералах.

Строковые литералы – static char [ ].

Строковый литерал хранится в памяти, как последовательность символов, заканчивающаяся символом с кодом 0.

“a” // два байта - а, 0 (\а и \0)

“a\t b\n” // пять байт ‘a’ ’\t’ ’b’ ’\n’\0

“1 \\” // четыре байта ’1’ ’ ’ ’\\’ ’\0’

- пробел

‘\” ” // два байта ’ ” ’ ’\0’

“ ” // один байт ‘\0’

Строковые литералы, разделенные white space пробельными символами понимаются как одна строка.

“ Это одна строка, ”

“ так как она разделена ”

“ пробелами и переводами строки. ”

Литералы с плавающей точкой.

3.14f 1.234F // константы с плавающей точкой

// и одинарной точностью

0.1234567 // с двойной точностью

0.123456789L // длинная с двойной точностью

3. 3.0 0.3Е1 300е-2 // всё это 3.0 с двойной точностью.

Операторы (или операции).

+, - , *, / , % // арифметические

=, +=, *= // присваивания.

… и т.д.

Знаки пунктуации: круглые и фигурные скобки, двоеточие, точку с запятой и т.д.

Ввод – вывод в СИ++.

Стандартный заголовочный файл iostream.h.

Библиотека iostream перегружает операторы побитового сдвига.

<< // поместить в выходной поток

>> // считать с входного потока

Потоки:

cout // стандартный поток вывода (“экран”)

cin // стандартный поток ввода (“клавиатура”)

cerr // стандартный поток

Использование потоков аналогично инструкции присваивания по работе со значениями и переменными.

int i;

double x;

cout << “\n Введите число с двойной точностью: ”;

cin >> x;

cout << “\n Введите положительное целое: ”;

cin >> i;

if (i<1)

cerr << “ошибка, i= ” << i << end l;

cout << “ i * x = ” << i * x;

end l (манипулятор) очищает поток и добавляет новую строку.

Пример программы на С++.

// Программа для вычисления наибольшего общего делителя

// (GSD – Greatest Common Division)

# include <iostream.h>

# include <assert.h>

int gcd (int m, int n) // Определение функции

// (заголовок)

{ // блок

int r; // объявление остатка

while (n! = 0){ // не равно

r = m % n; // оператор деления с остатком

m = n; // присваивание

n = r;

} // конец цикла while

return m; // выход из функции со значением m

}

int main ()

{

int x,y,g;

cout << “\n ПРОГРАММА GSD на C++ ”;

do {

cout << “\n Введите два целых числа: ”;

cin >> x >> y;

assert (x * y ! = 0); // предусловие

cout << ”\n GSD ( “<< x <<”, “<< y <<”) = ”

<<( q = gсd (x,y)) << end l;

assert (x % g = = 0 && y % g = = 0); //постусловие

}while (x ! = y);

}

7

Соседние файлы в папке Лекции