Алфавит языка, зарезервированые слова, операторы
Приступая к изучению языка, рассмотрим сначала правила программирования (написания текста):
1. Программирование должно быть наглядным (иметь титул, пояснительный текст).
2. Писать следует структурировано (выделяя отступами циклы, ветвления). Выделять текст можно любым количеством пробелов, пустых строк, кроме этого существуют комментарии.
3. Большие и сложные программы следует разбить на несколько простых частей и отлаживать их по отдельности.
Алфавит
Приступая к языку, следует начать с алфавита, т.е. набора символов, допустимых в языке, которыми оперирует язык.
Идентификатор – это имя любого объекта в языке. Следует придерживаться следующих правил создания имен:
1. Допускается использование английских букв и цифр.
2. Начинаться должно с буквы.
3. Прописные и строчные буквы считаются разными.
4. Должны не совпадать с зарезервированными словами.
Зарезервированые слова – это специальные идентификаторы, которые используются строго по назначению.
Список таких слов невелик. Как правило, такие слова обозначают какие-либо действия, структуры в языке. Согласно этим правилам следующие имена допускаются: аsm auto break case catch char class const continue default do double enum extern float goto if long new operator private protected public register return short signed sizeof stati struct switch template this throw try typedef typeid union unsigned virtual void volatile while.
Комментарий – специальный текст внутри таких скобок, который не считается программой, а служит или для пояснения программы, или для отладки. Обозначается // или /*…*/
Специальные знаки делятся на:
1. знаки операторов: {}, [], (), ‘,:=, ;, ., .. и т.д.
2. знаки операций: +, -, *, /, %.
3. зарезервированные слова.
Логические операторы. Используются для задания различных логических условий для проверок. Соответствуют операторам булевой алгебры:
&& – логическое и;
|| – логическое или;
! – логическое не;
<< – сдвиг содержимого влево на один разряд;
>>– сдвиг содержимого вправо на 1 разряд.
Операции SHL и SHR практически соответствуют операциям соответственно умножения и деления на 2 для целых чисел.
Операторы отношения:
== проверка на равенство;
> больше;
< меньше;
>= больше или равно;
<= меньше или равно;
!= не равно.
Структура программы
Программа представляет собой совокупность логически самостоятельных этапов. Программа состоит из определенных разделов и в указанном порядке (табл. 1):
Таблица 1
Название раздела | Ключевые слова, указывающие раздел в программе |
Библиотечные файлы | # include <…> |
Директивы препроцессора | #if, #elif, #else, #endif |
Макроопределения | #define …. |
Пользовательские функции | тип имя_функции (список параметров) |
Пользовательские типы данных | struct .. |
Имя главной функции | тип main (тип параметров) |
Переменные | тип идентификатор = инициализирующее значение |
Операторные скобки { … } указывают начало и конец тела процедуры, функции или управляющего оператора.
Процедуры и функции – специальные программы, которые могут выполнять повторяющиеся участки с разными начальными данными (параметрами). В нужный момент описанные заранее они вызываются на выполнение. Могут быть стандартные (встроенные) и пользовательские процедуры и функции. Конструкцией, описанной выше, задаются пользовательские. Стандартные же не описываются, но требуют подключения соответствующих библиотечных файлов, содержащих их описание. Например, при использовании функции вывода printf() необходимо подключить #include <stdio.h> .
Основные типы данных
Любые данные характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, операции, применимые к нему, а также формат внутреннего представления. В С++ требуется задавать тип переменной перед ее использованием.
Рассмотрим простые типы и их разновидность – порядковые типы. Порядковый тип назван так потому, что его значения относятся к упорядоченному множеству, всегда можно сказать, какое следующее, какое предыдущее значение, какой порядковый номер у значения (табл. 2).
Таблица 2
№ | Обозначение | Диапазон | Тип данных |
short, short int, signed short , signed short int | -32768... | Короткое целое со знаком | |
unsigned short, unsigned short int | 0...65535 | Короткое целое без знака | |
int, signed, signed int | Зависит от реализации | Целое | |
unsigned, unsigned int | Зависит от реализации | Целое без знака | |
long, signed long, long int | -2147483648… | Длинное целое со знаком | |
unsigned long | 0...4294967295 | Длинное целое без знака |
Символьный тип определяется зарезервированным словом CHAR и задает полный набор ASCII-символов (табл. 3).
Таблица 3
№ | Обозначение | Диапазон | Тип данных |
char, signed char | -128...127 | Символьный со знаком | |
unsigned char | 0...255 | Символьный без знака |
Другая разновидность простых типов – вещественный тип. Имеется пять стандартных типов для представления дробных величин (табл. 4).
Таблица 4
№ | Обозначение | Диапазон | Тип данных |
float | -3.4e-38... 3.14e+38 | Вещественное число с плавающей точкой | |
double | -1.7е-308..1.7е308 | Вещественное число удвоенной точности | |
long double | -3.4e-4932... 3.4e4932 | Длинное вещественное число удвоенной точности |
Для непосредственного обозначения логических значений в C++ используются целочисленные значения 0 - ложь и 1 - истина. Кроме того, в логических операциях любое ненулевое значение операнда ассоциируется с единицей. Поэтому отрицанием нулевого значения является 1, т.е. истина, а отрицанием любого ненулевого значения оказывается 0, т.е. ложь.
Тип void (отсутствие типа) не имеет ни значений, ни действий.