1.Основные элементы языка С++: алфавит языка, идентификаторы, константы. Использование комментариев в тексте программы.
Константами наз. перечисления величин в программе. Разделяют 4 типа констант.
Идентификатор-последовательность цифр и букв, а так же специальных символов, при условии.
При создании программ вы можете поместить в исходном файле замечания, которые объясняют работу программы. Такие замечания (называемые комментариями) не только помогают другим программистам понять вашу программу, но могут напомнить, почему программа содержит определенные операторы, если вы ее посмотрите через несколько месяцев.
Когда компилятор C++ встречает двойной слеш, он игнорирует весь оставшийся на этой строке текст.
Комментарий справа от оператора присваивания обеспечивает дополнительную информацию всем, кто читает программу.
2. Основные типы данных языка С++.
Типы данных определяет
-внутреннее представление данных в памяти компьютера;
-множество значений, которые можно применять к величинам этого типа.
-операции и функции, которые можно применять к величинам этого типа.
Тип | Размер в байтах (битах) | Интервал изменения |
char | 1 (8) | от -128 до 127 |
unsigned char | 1 (8) | от 0 до 255 |
signed char | 1 (8) | от -128 до 127 |
int | 2 (16) | от -32768 до 32767 |
unsigned int | 2 (16) | от 0 до 65535 |
signed int | 2 (16) | от -32768 до 32767 |
short int | 2 (16) | от -32768 до 32767 |
unsigned short int | 2 (16) | от 0 до 65535 |
signed short int | 2 (16) | от -32768 до 32767 |
long int | 4 (32) | от -2147483648 до 2147483647 |
unsigned long int | 4 (32) | от 0 до 4294967295 |
signed long int | 4 (32) | от -2147483648 до 2147483647 |
float | 4 (32) | от 3.4Е-38 до 3.4Е+38 |
double | 8 (64) | от 1.7Е-308 до 1.7Е+308 |
long double | 10 (80) | от 3.4Е-4932 до 3.4Е+4932 |
3. Структура программы на языке С++.
С++ - программа должна состоять из одной или нескольких подпрограмм, но одна из них должна иметь опознавательный знак, определяющий ее как главную, с которой начнется выполнение всей программы в целом и на которой это выполнение завершится в случае благополучного исхода. Таким опознавательным знаком в С++ является фиксированное имя главной подпрограммы (функции) - «main» (в С++ все подпрограммы называются функциями и других типов подпрограмм язык не поддерживает). Обычно с нее и начинают составление программы.
Синтаксис определения любой функции в Си++ требует записывать слева направо:
тип_возвращаемого_функцией_значения
имя_функции(Список типов и имен аргументов)
скобки после имени обязательны - именно по ним компилятор распознает функцию.
Аргументы разделяются запятыми, если они не нужны, то в скобках пишется void {......} - пара обязательных фигурных скобок обозначает границы тела функции, а самим телом являются операторы определения локальных данных, операции над данными, вызовы вспомогательных функций и пр.
Таким образом, ничего не делающая и ничего не возвращающая главная функция в С++ выглядит так:
void main(void) {}
Возвращаемое главной функцией значение - это значение, возвращаемое всей программой в вызвавшую программу - предок и оно может быть однобайтовым целым числом в диапазоне 0-255 по абсолютному значению. return a; или return(a*b - c);
4. Директивы препроцессора: #include, #define, #undef
Прежде чем приступить к компиляции программы, компилятор C++ запускает специальную программу, которая называется препроцессором. Препроцессор ищет в программе строки, начинающиеся с символа #, например #include или #define. Если препроцессор, например, встречает директиву #include, он включает указанный в ней файл в ваш исходный файл, как будто бы вы сами печатали содержимое включаемого файла в вашем исходном коде. Каждая программа, которую вы создали при изучении данной книги, использовала директиву #include, чтобы заставить препроцессор включить содержимое заголовочного файла iostream.h в ваш исходный файл. Если препроцессор встречает директиву #define, он создает именованную константу или макрокоманду. В дальнейшем, если препроцессор встречает имя константы или макрокоманды, он заменяет это имя значением, указанным в директиве #define.
5. Основные операции языка С++: арифметические, логические, отрицания. Примеры.
ЛОГИЧЕСКИЕ ОПЕРАЦИИ И (&&) , ИЛИ (||) и НЕ (!) едины для всех языков программирования и соответствуют логическим функциям И, ИЛИ и НЕ для логических (булевых) переменных. Операция И имеет результатом значение "истина" тогда и только тогда, когда оба ее операнда истинны, то есть по отношению к операндам -утверждениям звучит как "одновременно оба". Операция ИЛИ имеет результатом значение "истина", когда хотя бы один из операндов истинен, то есть характеризуется фразой "хотя бы один":
if (a < b && b < c) // если ОДНОВРЕМЕННО ОБА a < b и b < c, то...
if (a==0 || b > 0) // если ХОТЯ БЫ ОДИН a==0 или b > 0, то...
Логические операции И и ИЛИ имеют еще одно свойство. Если в операции И первый операнд имеет значение "ложь", а в операции ИЛИ -"истина", то вычисление выражения прекращается, потому что значение его уже становится известным ("ложь" -для И, "истина" -для ИЛИ). Поэтому возможны выражения, где в первом операнде операции И проверяется корректность некоторой переменной, а во втором -она же используется с учетом этой корректности:
if (a >=0 && sin(sqrt(a)) >0) ...
В данном примере второй операнд, включающий в себя функцию вычисления квадратного корня, не вычисляется, если первый операнд -"ложь".
Особо следует отметить операцию логической инверсии (отрицания) -"!". Значение "истина" она превращает в "ложь" и наоборот. Если считать значением "истина" любое ненулевое значение целой переменной, то эту операцию для целых следует понимать как проверку на 0:
while(!k) {...} // эквивалентно while(k==0) {...}
ВЫВОД: Логические операции отношения задаются следующими символами (см. табл. 2): && ("И"), || ("ИЛИ"), ! ("НЕ"), >, >=, <, <= , = = (равно), != (не равно). Традиционно эти операции должны давать одно из двух значений: истину или ложь. В языке Си принято следующее правило: истина - это любое ненулевое значение; ложь - это нулевое значение. Выражения, использующие логические операции и операции отношения, возвращают 0 для ложного значения и 1 для истинного. Ниже приводится таблица истинности для логических операций.
Основные математические операции С++
Операция | Назначение | Пример |
+ | Сложение | total = cost + tax; |
- | Вычитание | change = payment - total; |
*. | Умножение | tax = cost * tax_rate; |
/ | Деление | average = total / count; |
6. Основные операции языка С++: взятие адреса и разадресации, определения размера, сдвига. Примеры.
<< | Сдвиг влево | |||
>> | Сдвиг вправо | |||
& | Взятие адреса | |||
* | Обращение по адресу | |||
sizeof( ) | Определение размера в байтах | |||
char | 1 (8) | от -128 до 127 | ||
unsigned char | 1 (8) | от 0 до 255 | ||
signed char | 1 (8) | от -128 до 127 | ||
int | 2 (16) | от -32768 до 32767 |
7. Основные операции языка С++: поразрядные операции, условная операция, преобразование типов. Пример.
1. Преобразование типов.
Если в выражении появляются операнды различных типов, то они преобразуются к некоторому общему типу, при этом к каждому арифметическому операнду применяется такая последовательность правил:
1. Если один из операндов в выражении имеет тип long double, то остальные тоже преобразуются к типу long double.
2. В противном случае, если один из операндов в выражении имеет тип double, то остальные тоже преобразуются к типу double.
7. В противном случае все операнды преобразуются к типу int. При этом тип char преобразуется в int со знаком; тип unsigned char в int, у которого старший байт всегда нулевой; тип signed char в int, у которого в знаковый разряд передается знак из сhar; тип short в int (знаковый или беззнаковый).
Предположим, что вычислено значение некоторого выражения в правой части оператора присваивания. В левой части оператора присваивания записана некоторая переменная, причем ее тип отличается от типа результата в правой части.
?: | Условная (тернарная) операция |
& | Поразрядное логическое "И" |
^ | Поразрядное исключающее "ИЛИ" |
| | Поразрядное логическое "ИЛИ" |
8. Основные операции языка С++: операторы инкремента и декремента, простое и составное присваивание. Примеры.