Основные понятия языка С++.
В алфавит языка C++ входят:
- прописные и строчные латинские буквы:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z;
a b c d e f g h i j k l m n o p q r s t u v w x y z;
- цифры: 0 1 2 3 4 5 6 7 8 9;
- специальные знаки:
“ ( ) , | [ ] { } . + - / * \ > = < ! _ & ~ ^ пробел и т.д.
Лексемы языка C++:
Лексема – это логически выделенная единица языка, воспринимаемая как единое целое компилятором и программистом.
идентификаторы;
ключевые слова;
константы;
знаки операций;
разделители.
Идентификатор - это имя объекта программы.
Идентификаторами обозначаются переменные, константы, функции, метки и т.д.
Правила записи идентификаторов
Идентификатор может содержать:
прописные и строчные латинские буквы
цифры
символ подчеркивания
Например, правильными будут идентификаторы min, x12, kol_vo; неправильными будут идентификаторы – kol vo (содержит пробел), f(x) (содержит скобки), f.g (содержит точку), m,a (содержит запятую), b+c (содержит знак +).
Идентификатор должен начинаться с буквы или символа подчеркивания
Например: правильными будут идентификаторы - abc, x0, _TR; неправильными – идентификаторы - 15с, 7_s (начинаются с цифры).
В идентификаторах прописные и строчные латинские буквы воспринимаются компилятором как разные, например: - MAX, Max, max – это три разных идентификатора.
4) Длина идентификаторов ничем не ограничена
Ключевые (служебные) слова – это такие лексемы, которые используются компилятором для своих специальных целей.
Ключевыми словами могут быть:
- директивы препроцессора - include, define, typedef;
- операторы языка - if, switch, break, continue, do, while, for, return, goto;
- служебные слова - else, case, default, extern, friend;
- операции - new, delete, sizeof;
- имена типов данных – char, int, float, double;
- спецификаторы типов – struct, class, const, register, auto, enum, short, signed, usigned, static, long.
Константа – это лексема, представляющая изображение фиксированного числового, строкового или символьного значения, например, 100, 3.14159, “Здравствуй, мир!”, ‘Y’.
Константы делятся на пять групп:
- целые;
- вещественные;
- перечислимые;
- символьные;
- строковые.
Десятичная целая константа определена как последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль. Допустимый диапазон положительных целых значений от 0 до 4294967295. Константы, превышающие указанное значение, вызывают ошибку на этапе компиляции. Абсолютные значения отрицательных констант не должны превышать значения 2147483648.
Вещественные константы это либо числа с десятичной точкой, отделяющей целую часть от дробной, либо очень большие числа, например, 0.57, 6E+24, -1.67e-23. В записи вещественных констант может опускаться или целая часть или дробная, например, 56. , .89 .
Диапазон допустимых значений для вещественных констант от 3.4E-4932 до 3.4E+4932 по абсолютной величине.
Символьная константа – это один символ, заключенный в апострофы, например ‘Z’, ‘v’.
Чтобы задать в качестве символьной константы апостроф ‘ ‘ ‘, или обратный слеш ‘ \ ‘, необходимо в записи символьной константы перед этими символами поставить обратный слеш – ‘\’’, ‘\\’.
Для задания управляющих символов используются записи:
‘\a’ – звуковой сигнал;
‘\b’ – удаление предыдущего символа (backspace);
‘\f’ – переход на новую страницу;
‘\n’ – переход на новую строку;
‘\r’ - переход в начало строки;
‘\t’ – горизонтальная табуляция;
‘\v’ – вертикальная табуляция.
Строковая константа это последовательность символов, заключенная в кавычки, например: “Здравствуй, мир!”; “Программа выполнена”, “Строка номер 3”.
В строковых константах можно использовать управляющие символы, например:
“Программа выполнена.\nДо свидания.”
Знаки операций - это лексемы, используемые при вычислении выражений
Знаки арифметических операций – используются в арифметических или алгебраических выражениях
+ - сложение;
- - вычитание;
* - умножение;
/ - деление;
% - нахождение остатка от деления нацело.
Знаки операций отношения – используются в условных выражениях:
< - меньше;
<= - меньше или равно;
> - больше;
>= - больше или равно;
= = - равно;
!= - не равно.
Знаки логических операций – используются в логических выражениях:
&& - логическое И (истинно тогда и только тогда, когда оба операнда истинны);
|| - логическое ИЛИ (ложно тогда и только тогда, когда оба операнда ложны);
! - логическое отрицание.
Знаки операций автоинкремента и автодекремента
++ - знак операции автоинкремента - увеличения операнда на единицу;
-- - знак операции автодекремента - уменьшения операнда на единицу.
Операции автоинкремента и автодекремента бывают постфиксными и префиксными.
А) Постфиксные операции автоинкремента и автодекремента записываются после соответствующего операнда, например, x++; z--;
При использования постфиксных операций автоинкремента и автодекремента в операторе присваивания (или каком-либо другом операторе) используется старое значение операнда, и лишь после выполнения соответствующего оператора значение операнда изменяется.
Например, при выполнении операторов
X=1;
Y=X++; (Y=1, затем X=2)
переменная Y примет значение, равное старому значению переменной X (1), и лишь после выполнения операции присваивания значение X увеличится на 1 и станет равно 2;
При выполнении операторов
Z=5;
T=Z--; (T=5, затем Z=4)
переменная T примет значение, равное старому значению переменной Z (5), и лишь после выполнения операции присваивания значение Z уменьшится на 1 и станет равно 4.
Б) Префиксные операции автоинкремента и автодекремента записываются перед соответствующим операндом, например, ++x; --z;
При использовании префиксных операций автоинкремента и автодекремента в каком-либо операторе сначала изменяется значение операнда, и это новое значение операнда используется в соответствующем операторе
Например, при выполнения операторов
X=1;
Y=++X; (X=2, затем Y=2)
сначала значение переменной X увеличится на 1 и станет равным 2, а затем это новое значение (2) будет присвоено переменной Y.
При выполнении операторов
Z=5;
T=--Z; (Z=4, затем T=4)
сначала значение переменной Z уменьшится на 1 и станет равным 4, а затем это новое значение (4) будет присвоено переменной T.
В) Операции автоинкремента и автодекремента можно использовать и в отдельных операторах, например
++a; c++;
--b; d--;
здесь значения переменных a,c будут увеличены на единицу, а значения переменных b,d будут уменьшены на единицу, при этом ни старые, ни новые значения этих переменных ни в каких выражениях или операторах участвовать не будут.
Знаки операций присваивания
= - операция присваивания (значение стоящее справа от знака операции присваивается переменной, стоящей слева от знака присваивания, например x=6;);
+= - присваивание со сложением, запись x+=5; идентична записи x=x+5;
-= - присваивание с вычитанием, запись x-=3, идентична записи x=x-3;
*= - присваивание с умножением, запись x*=7, идентична записи x=x*7;
/= - присваивание с делением, запись x/=4, идентична записи x=x/4;
%= - присваивание с нахождением остатка, запись x%=2, идентична записи x=x%2;
Разделители или знаки пунктуации – также входят в число лексем языка:
[] () {} , ; : …
Квадратные скобки ‘[ ]‘ ограничивают индексы одно- и многомерных массивов и индексированных элементов;
Круглые скобки ‘( )’
выделяют условные выражения в операторах if, while, do-while;
вводятся как обязательные элементы в определение, описание и вызов любой функции;
группируют выражения, изменяя последовательность выполнения операций, например sr=(a+b)/2; и т.д.