Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры / ООП(Тимофеев) / ООП-Тимофеев.doc
Скачиваний:
41
Добавлен:
16.04.2013
Размер:
328.19 Кб
Скачать

Базовое ядро языка Элементы программы.

Набор символов. Прописные и строчные буквы: a,b,…,z, A,…,Z

Цифры: 0,1,…,9!!!Операторы: *, +, =…!!Знаки пунктуации: ; , ’ … “

Лексемы – наборы символов, распознаваемых компилятором (базовый словарь языка). ключевые слова!идентификаторы,литералы,операторы,знаки пунктуации

Комментарии

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

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

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

Ключевые слова – четко определенные, зарезервированные слова, имеющие конкретный смысл в языке СИ++.Например, int, long, public, , for, do, class,…

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

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

Примеры литералов:5 // целая константа 5U // u или U означает unsigned (беззнаковая) 5L // l или L означает long (длинная)

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

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

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

    1. // константа с плавающей точкой, трактируемая как double

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

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

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

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

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

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

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

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

‘\ a’ - звуковой сигнал ( alert ) ‘\\’ - обратная косая черта ( back slash )

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

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

Строковый литерал хранится в памяти, как последовательность символов, заканчивающаяся символом с кодом 0. “a” // два байта - а, 0 (\а и \0)

“1 \\” // четыре байта ’1’ ’ ’ ’\\’ ’\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 (манипулятор) очищает поток и добавляет новую строку.

Простые ( собственные ,предопределенные )типы данных.

Эти типы имеют набор значений и представление,

привязанные к низкоуровневой архитектуре ЭВМ, на которой работает компилятор.

Тип характеризует:1)Форму представления;2) Диапазон значений;

3) Допустимые операции, включая преобразование типа.

Для определения количества байт используется оператор sizeof (для типа или объекта) .

cout << sizeof (int) << ‘< =’ << sizeof (long) <<endl

bool 1byte false, true,,, char 1b -128...127 diapason primer ’A’ ’!’,,,,, signed char 1b - 128...127 20,,,,,unsigned char 1b === 0...255== 200,,,,, int == 2== - 32768...32767== 200,,,,,,, float 4 ===3.4E-38...3.4E+38 == 2.35;;;;;1.3E+10,,,,,,, double=== 8== 1.7E-308...1.7E+308 == 12.354

-1.7E-308...-1.7E+308 -78.35444

Объявление и инициализация

Объявление переменной связывает имя переменной с типом.

Объявление переменной является и определением ,если обеспечивается выделение памяти под переменную. Определение может быть с инициализатором .

Для простых переменных это выглядит так тип идентификатор = выражение

Инициализировать можно при помощи произвольного выражения, при условии, что все переменные и функции определены.Объявления могут встречаться в любом месте блока.

Традиционные преобразованияЛюбое арифметическое выражение х + y имеет тип и значение, если обе переменные одного типа, то и результат будет того же типа, если хватает места под значение short + short int , если результат больше short.

Автоматическое преобразование выражения [2].

1Все bool,char,short или enum преобразуются до int. Целые типы, которые не могут быть представлены как int , повышаются до unsigned.

2Если после первого шага выражение остается смешанным, то операнд более низкого типа повышается до более высокого типа и значение выражения получает этот тип.

int < unsigned < long < unsigned long < float < double < long double

Выражения и операторы

Перечислим операторы в порядке понижения приоритетов операций.

Операция Название \ Пример \ Порядок

: : Глобальная об- : : name слева направо

ласть видимости

: : Область види мости класса class name :: member

. Выбор элемента структуры или класса\ time.hour \ слева направо

[ ] Доступ по индексу массива pointer [expr]

( ) Вызов функции,конс труирование значения\ expr(expr_lst)\ type(expr_lst)

+ + Постфиксный инкре мент (j = i ++;равнозначно j = i ; i = i + 1);\ lvalue ++

-- Постфиксный декре мент (j = i --;равнозначно j = i ; i = i - 1);\ lvalue --

typeid ( ) идентификация типа typeid ( type )

---во время выполнения преобразование с проверкой \typeid (expr)

--во время выполнения dynamic_cast < type>(expr)

Соседние файлы в папке ООП(Тимофеев)