1.11M
Category: programmingprogramming

Язык С++

1.

ОБЩИЕ СВЕДЕНИЯ О
ЯЗЫКЕ С++

2.

Алфавит языка
Программа на языке С++ может содержать следующие символы:
прописные и строчные буквы латинские буквы A…Z, a…z и знак
подчеркивания «_»;
цифры от 0 до 9;
специальные знаки: «,», «.», «;», «:», «?», «!», «'», «"», «|», «/»,
«\», «~», «^», «(», «)», «{», «}», «[», «]», «<», «>», «#», «%», «&», «-»,
«=», «+», «*»;
Символы пробела, табуляции и перехода на новую строку.

3.

Лексемы
Лексема – это минимальная единица языка, имеющая
самостоятельный смысл.
Лексемы:
ключевые слова;
литералы;
идентификаторы;
операции;
разделители.

4.

Ключевые слова
Ключевые слова – это зарезервированные слова, которые имеют
специальное значение для компилятора и используются только в том
смысле, в котором они определены.
спецификаторы типов: char, double, enum, float, int,
long, short, struct, signed, union, unsigned,
void, typedef;
квалификаторы типов: const, volatile;
квалификаторы классов памяти: auto, extern,
static;
register,

5.

Ключевые слова
операторы языка и идентификаторы специального назначения:
break, continue, do, for, goto, if, return, switch,
while, default, case, else, sizeof;
модификаторы и псевдопеременные: конкретный набор зависит
от компилятора.

6.

Литералы
Литерал – это запись в исходном коде компьютерной программы,
представляющая собой фиксированное значение.

7.

Литералы

8.

Escape-последовательности
\a
\b
\f
\n
\r
\t
\v
Звуковой сигнал
Возврат на шаг
Переход на новую
страницу
Переход на новую
строку
Возврат в начало
строки
Горизонтальная
табуляция
Вертикальная
табуляция
\\
\'
\"
\?
\000
\xdd
\udddd
Обратная косая черта
Одиночная кавычка
Двойная кавычка
Вопросительный знак
Символ, заданный восьмеричным
кодом ASCII 000
Символ, заданный
шестнадцатеричным кодом ASCII
dd
Символ, заданный
шестнадцатеричным кодом dddd

9.

Идентификаторы
Идентификатор – это имя программного объекта (переменной,
функции, класса или другого объекта).
При выборе идентификатора следует иметь в виду следующее:
Идентификатор может состоять только из букв латинского
алфавита, цифр или символов подчёркивания.
Идентификатор должен начинаться с буквы (нижнего или
верхнего регистра). Он не может начинаться с цифры.

10.

Ключевые слова
Не рекомендуется начинать идентификаторы с символа
подчеркивания.
C++ различает нижний и верхних регистры.
Min, MIN, min – три разных идентификатора.
Идентификатор не может быть ключевым словом.
Длина идентификатора по стандарту не ограничена, но
некоторые компиляторы и компоновщики налагают на нее
ограничения.

11.

Примеры идентификаторов
Правильно
Неправильно
В2

i
while
Max
ид
k_2
f(x)
kilograms_of_pipe the name of a variable
Не
рекомендуется
_f
_2m

12.

Типы данных
Типы данных определяют способ хранения чисел или символов в
памяти компьютера. Они задают размер ячейки, в которую будет
записано то или иное значение, определяя тем самым его
максимальную величину или точность задания.
К основным типам данных языка относят:
bool – логический;
− char – символьный;
− int – целый;
void – пустой.
float – с плавающей точкой;
double – вещественный двойной точности;

13.

Типы данных
Типы данных, созданные на базе стандартных типов с
использованием спецификаторов, называют составными.
Спецификаторы типов данных:
short – короткий;
long – длинный;
signed – знаковый;
unsigned – беззнаковый.

14.

Типы данных

15.

Переменные
Переменная – это поименованный участок памяти, в котором
хранится значение определенного типа. Переменная имеет тип, имя
и значение.
тип список_переменных;
int a;
float g, u, m2;
int age = 28;

16.

Константы
Константы – это именованные ячейки памяти, значения
которых фиксируются на начальном этапе выполнения программы
и затем в процессе выполнения программы не могут быть
изменены.
Способы определения констант:
Использование препроцессора #define:
#define идентификатор значение
#define G 9.81

17.

Константы
Использование ключевого слова const:
сonst тип имя = значение;
const double g = 9.81;

18.

Операции, выражения, операторы
Оператор – законченное предложение на языке C++. Он указывает
компьютеру выполнить некоторые действия. Чаще всего используется
оператор-выражение. Оператор всегда завершается «;».
Выражение

конструкция,
определяющая состав данных, операции и
порядок выполнения операций над
данными.
Операнды – данные, над которыми выполняются действия.
Операции выполняют определенные действия над операндами.

19.

Выражения
0;
-12.4;
(x+5)/2;
cout<<++num;
c==2&&(c<5||d>sqrt(3*a));
return 0;

20.

Операции
В соответствии с количеством операндов операции делятся на
унарные (один операнд), бинарные (два операнда) и, единственную,
тернарную (в которой три операнда).
Приоритет определяет старшинство операции.
Ассоциативность – порядок вычисления.

21.

Унарные операции

22.

Бинарные операции

23.

Бинарные операции

24.

Операции

25.

Приоритет основных операций
1. Инкремент, декремент;
2. Унарные плюс и минус, логическое и поразрядное НЕ, приведение к
типу, взятие адреса;
3. Умножение, деление, остаток от деления;
4. Сложение, вычитание;
5. Больше, меньше, больше или равно, меньше или равно;
6. Равно, не равно;
7. Логическое И;
8. Логическое ИЛИ;
9. Операции присваивания.

26.

Операции присваивания
имя_переменной = значение;
имя_переменной1 = имя_переменной2 = ... =
имя_переменнойN = значение;
имя_переменной операция= значение;
имя_переменной = имя_переменной операция значение;
+, —, *, /, %, &, |, ^, <<, >>.
a += 2;
a = a + 2;

27.

Арифметические операции
11 / 4; //В результате будет 2
11 / 4.0; //В результате будет 2.75
11 % 4; //В результате будет 3

28.

Операции инкремента ++ и декремента -x = 12;
y = ++x; //В переменной y будет храниться значение 13
x = 12;
y = x++; //В переменной y будет храниться значение 12

29.

Поразрядное И (&)
A = 13
B = 23
A = 0000 0000 0000 1101
B = 0000 0000 0001 0111
0000 0000 0000 0101 = 5
A & B; //В результате будет 5

30.

Поразрядное ИЛИ (\)
A = 13
B = 23
A = 0000 0000 0000 1101
B = 0000 0000 0001 0111
0000 0000 0001 1111 = 31
A | B; //В результате будет 31

31.

Поразрядное исключающее ИЛИ (^)
A = 13
B = 23
A = 0000 0000 0000 1101
B = 0000 0000 0001 0111
0000 0000 0001 1010 = 26
A ^ B; //В результате будет 26

32.

Поразрядное отрицание (~)
A = 13
A = 0000 0000 0000 1101
~A = 1111 1111 1111 0010
1111 1111 1111 0010 = -14
~A; //В результате будет -14

33.

Сдвиг влево (<<)
A = 17
A = 0000 0000 0001 0001
0000 0000 1000 1000 = 136
A << 3; //В результате будет 136
A << B
A · 2B

34.

Сдвиг вправо (>>)
A = 25
A = 0000 0000 0001 1001
0000 0000 0000 0011 = 3
A >> 3; //В результате будет 3
A >> B
A / 2B

35.

Логические операции

36.

Операции сравнения
Операции сравнения возвращают в качестве результат
логическое значение true или false.
>, >=, <, <=, ==, !=.

37.

Условная операция
условие ? выражение1 : выражение2;
Если
истинно (не равно 0), то результатом будет
выражение1 иначе – выражение2.
условие
x = 12;
y = 4;
z = (x > y) ? 2 : 5; //В переменной z будет храниться значение 2

38.

Операция преобразования типа
(тип) выражение;
x = 5;
y = x / 2; //В переменной y будет храниться значение 2
z = (double) x / 2; //В переменной z будет храниться значение 2.5
a = 5;
b = (bool) a; //В переменной b будет храниться значение true
c = 0;
d = (bool) c; //В переменной b будет храниться значение false

39.

Операция определения размера
sizeof(тип); или sizeof(выражение);
int a;
double b;
sizeof(a); //В результате будет 4
sizeof(int); //В результате будет 4
sizeof(b); //В результате будет 8
sizeof(bool); //В результате будет 1
sizeof(28); //В результате будет 4, так как тип int
sizeof("Hello world!" ); // В результате будет 13
sizeof('\n'); //В результате будет 1

40.

Структура программы
директивы препроцессора
описание типов пользователя;
прототипы функций;
описание глобальных переменных;
тип_результа main(параметры)
{
операторы;
}
тип_результа имя1(параметры)
{
операторы1;
}
тип_результа имя2(параметры)
{
операторы2;
}
...
тип_результа имяN(параметры)
{
операторыN;
}

41.

Препроцессор
Препроцессор – это программа, которая обрабатывает текст программы
до компилятора.
Работа препроцессора управляется директивами.
С помощью препроцессора можно выполнять следующие операции:
включение в программу текстов из указанных файлов;
замена идентификаторов последовательностями символов;
макроподстановка, т.е. замена обозначения параметризованным
текстом, формируемым препроцессором с учетом конкретных
аргументов;
исключение из программы отдельных частей текста.

42.

Препроцессор
#include <путь>
#include "путь"
#define <идентификатор> <текст>
#define <идентификатор>(<список параметров>) <текст>
#define N 100
#define MULT(a, b) ((a) * (b))
#define MAX(x, y) ((x) > (y)) ? (x) : (y)
MULT(x + y, z)
((x + y) * (z))

43.

Препроцессор
#define SQR(A) (A * A)
s = SQR (a + b);
s = a + b * a + b;
#define SQR(A) ((A) * (A))
s = (a + b) * (a + b);
#undef <идентификатор>

44.

Препроцессор

45.

Библиотека math.h
#include <math.h>

46.

Библиотека math.h

47.

Библиотека math.h

48.

Библиотека math.h

49.

Комментарии
Комментарий – это строка (или несколько строк) текста, которая служит
для описания и документирования исходного кода.
Однострочные комментарии –пишутся после символов
//.
Многострочные комментарии –пишутся между символами
/*
и
*/.
English     Русский Rules