Элементы языка C++.
Алфавит Список ключевых слов языка C++ Переменные Типы данных Константы Арифметические и логические операции Директивы препроцессора C++ Ввод/вывод Преобразование типов Комментарии Инкремент и декремент. Префикс и постфикс. Menüü
menüü Алфавит Множество символов языка C++ включает: - буквы латинского алфавита * большие A, B, C, …, Z * маленькие a, b, c, …, z - цифры 0, 1, 2, …, 9 - пробел - знаки препинания. : - скобки ( ) [ ] { } - знаки | ^ ? _ - двойные и одинарные кавычки " ' C++ чувствителен к регистру. Это означает, что "а" и "А" совсем разные буквы.
menüü Список ключевых слов языка C++: asm char delete extern auto class dofloat break const double for case continue elsefriend catch default enumgoto if protected static typedef inline public struct union int register switch unsigned long return templatevirtual new short thisvoid operator signed throw volative private sizeof trywhile Зарезервированные (ключевые) слова запрещается использовать в качестве пользовательских имен переменных.
menüü Комментарии Комментарии не обрабатываются компилятором, и поэтому не влияют на выполнение программы. В языке C++ можно записывать комментарии двух видов: - // комментарий kommentaarid или - /* комментарий комментарий комментарий */
Переменные В процессе написания программы приходится использовать переменные. Каждая переменная имеет имя, тип, размер и значение. Имя переменной (идентификатор ) является ее названием. Имя переменной может состоять из латинских букв, цифр и символа подчеркивания. Например, birth_date salary summa3 summa_33 _1Tase _Tase_1
menüü Тип определяет, какие символы или числа записаны в ячейку памяти под этим именем. Размер указывает максимальную величину или точность задания числа. Переменная это именованная область памяти, к которой программист имеет доступ из программы по имени переменной Ячейки памяти short int number = 1; Имя переменной number Значение переменной 1 Тип переменной short int Значение определяет содержимое ячейки памяти.
Типы данных 1. Встроенные типы данных, т. е. типы, предопределенные в языке программирования. 2.Cоставные типы обладают той особенностью, что в языке предопределены средства распознавания таких типов и некоторый набор операций, дающих возможность доступа к компонентам составных значений Указательные типы дают возможность работы с типизированными множествами абстрактных адресов переменных, содержащих значения некоторого типа. В языках с более слабой типизацией (например, С и C++) допускаются практически неограниченные манипуляции с указателями.
В C++ реализован набор базовых типов данных: Имя типа Размер в байтах Допустимое значение char1 байтОт -128 до 127 int Зависит от реализации 2 или 4 байта short int2 байтаОт до long int 4 байтаОт до unsigned char1 байтОт 0 до 255 unsigned int Зависит от реализации unsigned short int2 байтаОт 0 до unsigned long int4 байтаОт 0 до float 4 байта От ~3.4е-38 до ~3.4е + 38 double8 байтов От ~1.7е – 308 до ~1.7е long double10 байтов От ~3.4е – 4932 до ~1.1е bool1 байтfalse (0), true (любое число, отличное от нуля)
Объявление переменной. unsigned int A; int В; /* подразумевается signed int В */ unsigned С; /* подразумевается unsigned int С*/ Mожно по одному типу определять несколько переменных через запятую. Например: int A, В, kokku, tulemus_1; char С; /* подразумевается mõeldakse unsigned int С*/
menüü Если объект определен как глобальный, C++ гарантирует, что он будет инициализирован нулевым значением. Если же переменная локальная либо динамическая, ее начальное значение не определено, т. е. она может содержать некоторое случайное значение. NB!!! Рекомендуется явно указывать начальное значение переменной int A = 5, В = 0, kokku = 100, tulemus_1 = 6;
Преобразование типов При выполнении операций производится автоматическое преобразование типов, чтобы привести операнды выражений к общему типу или чтобы расширить короткие величины до размера целых величин, используемых в машинных командах. - операнды типа float преобразуются к типу double - если один операнд long double, то второй преобразуется к этому же типу - если один операнд double, то второй также преобразуется к типу double - любые операнды типа char и short преобразуются к типу int - любые операнды unsigned char или unsigned short преобразуются к типу unsigned int - если один операнд unsigned long, то второй преобразуется к типу unsigned long
- если один операнд long, то второй преобразуется к типу long - если один операнд unsigned int, то второй операнд преобразуется к этому же типу. Таким образом, при вычислении выражений операнды преобразуются к типу того операнда, который имеет наибольший размер.
Константы Константы, в отличие от переменных, не могут изменяться программой. Записываются они по следующим правилам: - вещественные константы можно записать а) в обычной форме (0.54) в) в экспоненциальной форме 0.5e1, е + 2, 987е-5) - целочисленные константы можно записать а) в десятичной (-2 6) в) шестнадцатеричной системе счисления (0х1а); - символьные константы записываются в одинарных кавычках ('5', 'A', '\t', '\r'); - строковые константы записываются в двойных кавычках ("Line").
menüü Константы можно определить одним из следующих способов: 1. записать в выражении с = а + 7; 2. с помощью ключевого слова const. const тип Long=5; Тогда в выражениях вместо константы 5 указывается идентификатор Long. 3. с помощью директивы препроцессора #define Long 5 Директива заменяет каждое появление символов Long на 5.
menüü Арифметические и логические операции Арифметическое сложение+ Арифметическое вычитание- Умножение* Деление/ Отрицание! Присваивание= Вычисление остатка% Логическое умножение&& и Логическое сложение| | или Проверка на равенство = = Проверка на неравенство ! = Проверка на больше> Проверка на меньше< Проверка на больше или равно>= Проверка на меньше или равно
menüü Директивы препроцессора Обработка программы препроцессором происходит перед ее компиляцией. #include включает в текст программы содержимое указанного файла. #define #define создаёт псевдонимы #undef #undef отмена действия директивы #def ine. #error #error печатает в процессе компиляции сообщение об ошибке #typedef #typedef позволяет задать синоним для встроенного либо пользовательского типа данных. Все директивы препроцессора начинаются со знака #. После директив точка с запятой не ставится. Управление работой препроцессора осуществляется при помощи его директив. Директивы препроцессора выполняются до трансляции программы. Директивы препроцессора позволяют изменить текст программы, например, заменить некоторые лексемы в тексте, вставить текст из другого файла, запретить трансляцию части текста и т. п.
Директива #include Директива #include включает в текст программы содержимое указанного файла. Эта директива имеет две формы #include "имя_файла" поиск файла осуществляется в соответствии с заданным маршрутом, а при его отсутствии в текущем каталоге. #include поиск файла производится в стандартных каталогах операционной системы, задаваемых командой path.
Директива #include имеет следующие свойства - она может быть вложенной, т. е. во включаемом файле тоже может содержаться директива #include. - она используется для включения в программу заголовочных файлов. #include //подключает заголовочный файл для //работы с потоковым вводом и //выводом информации.
Директива #define Служит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами (псевдонимами). Идентификаторы, заменяющие текстовые или числовые константы, называют именованными константами. Идентификаторы, заменяющие фрагменты программ, называют макроопределениями, причем макроопределения могут иметь аргументы.
Директива #define #define идентификатор текст #define My_type unsigned short int #define Pi 3.14
Директива #undef Директива #undef используется для отмены действия директивы #def ine. Директива отменяет действие текущего определения #def #define для указанного идентификатора. Не является ошибкой использование директивы #undef для идентификатора, который не был определен директивой #define. #undef My_type
Директива #error Директива препроцессора #error имеет следующий синтаксис: #error msg Директива печатает в процессе компиляции сообщение об ошибке вида: Error: filename line# : Error directive: msg Здесь msg сообщение, заданное директивой #error.
menüü Директива #typedef Данная директива позволяет задать синоним для встроенного либо пользовательского типа данных. Например: #typedef double Wages; #typedef int Coll; Имена, определенные с помощью директивы #typedef, можно использовать точно так же, как спецификаторы типов: #typedef double Wages; //тип double теперь называется Wages main() {//объявляем переменные типа Wages Wages i, j, k; i=j+k; }
Ввод/вывод В ходе работы приложения необходимо вводить некоторые данные и получать ответ так называемые выходные данные. В C++ ввод и вывод на экран осуществляется при помощи команд cin и cout соответственно. Чтобы использовать команды cin и cout, необходимо подключить заголовочный файл: #include или #include
Форматы команд: cоutelementN; В качестве элемента могут использоваться следующие величины: 1.переменная одного из указанных выше типов cout
3.числовая константа cout
В тексте можно использовать управляющие символы, признаком которых является обратный слэш «\». \n означает, что информация, выводимая после него, будет размещена на следующей строке. \t табуляция \f перевод страницы \r возврат каретки \v вертикальная табуляция \ одиночная кавычка \ двойные кавычки \? вопросительный знак \\ обратный слэш \xhhhшестнадцатиричное число
menüü Есть ли отличие \n от endl ? #include // Заголовочный файл int main() { // 2 переменные 2 muutujad int a=2, b=5; cout
menüü printf() Функция вывода printf () имеет следующий синтаксис: printf (строка, список); Строка: любая последовательность символов, включая пробелы, которые точно в таком же виде будут отображаться при выводе на экран; управляющие символы или символьные константы с обратным слэшем: \n переход на следующую строку; \г возврат каретки, т. е. переход в начало текущей строки; \t горизонтальная табуляция, т. е. вывод с определенных стандартных позиций; \а непродолжительный звуковой сигнал; форматы, или спецификаторы формата. Форматы указывают способ вывода соответствующих элементов списка и зависят от типов выводимых значений: %f для вывода вещественных чисел; %d для вывода целых чисел; %е или %е для вывода вещественных чисел в экспоненциальной форме, например, o.se-4 или о.5е-4;
menüü %g выбирает в зависимости от значения числа формат % f или %е; %д выбирает в зависимости от значения числа формат %f или %е; %х или %х для вывода шестнадцатеричных чисел; %с для вывода символа; %s для вывода строки. Перед спецификаторами форматов можно использовать модификаторы форматов для изменения способа представления выводимых значений: %nd, где целая константа n определяет ширину поля для выводимого целого числа. Например, printf ("%5d%05d", i, number) выводит справа поля шириной 5 со стоящими впереди пробелами для i и нулями для number. Вся строка с указанными выше элементами записывается, как правило, в виде текстовой константы. Можно использовать для этих целей переменную строкового типа. В списке функции printf () можно записать через запятую выражения, значения которых выводятся. Как частный случай выражения можно записать константу или переменную. Между элементами списка и спецификаторами формата с символом % должно быть соответствие в количестве, порядке следования и типе. Любой из элементов строки или список могут отсутствовать.
menüü ++ Инкремент – увеличение значения переменной на Декремент – уменьшение значения переменной на 1. А++; увеличит А на 1 А--; уменьшит А на 1 Равносильны следующие выражения: А++; А = А + 1; А + =1; Инкремент и декремент.
menüü Префикс и постфикс Операторы инкремента и декремента работают в 2-х вариантах: префиксном ++А; постфиксном А++; Префиксный оператор вычисляется до присваивания, а постфиксный – после. Префиксный оператор работает так: инкрементируем значение, а затем считываем его. Постфиксный оператор работает так: считываем значение, а затем инкрементируем его. Пример. x – целое число, равное 5. Если написано int a = ++x;, то сначала увеличиваем x на 1 (это 6), а затем присваиваем а. Следовательно, значение переменной а теперь равно 6 и значение x тоже равно 6. Если после этого написать int b = x++;, то переменной b присваивается значение x=6, а затем возвращаемся к x и инкрементируем её, т.е. x стало равным 7.