Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Магистратура Языки программирования С,C++ / Как выполняются программы на C++

.pdf
Скачиваний:
2
Добавлен:
17.03.2024
Размер:
190.66 Кб
Скачать

Лекция 2. Как выполняются программы на C++

Лекция 2. Как выполняются программы на C++

Александр Смаль

CS центр

5 сентября 2017 Санкт-Петербург

http://compscicenter.ru

1/21

Лекция 2. Как выполняются программы на C++

Типы данных

Целочисленные:

1.char (символьный тип данных)

2.short int

3.int

4.long int

Могут быть беззнаковыми (unsigned).

−2n−1 . . . (2n−1 − 1) (n — число бит)

0 . . . (2n − 1) для unsigned

Числа с плавающей точкой:

1.float, 4 байта, 7 значащих цифр.

2.double, 8 байт, 15 значащих цифр.

Логический тип данных bool.

Пустой тип void.

http://compscicenter.ru

2/21

Лекция 2. Как выполняются программы на C++

Литералы

Целочисленные:

1.’a’ — код буквы ’a’, тип char,

2.42 — все целые числа по умолчанию типа int,

3.1234567890L — суффикс ’L’ соответствует типу long,

4.1703U — суффикс ’U’ соответствует типу unsigned int,

5.2128506UL — соответствует типу unsigned long.

Числа с плавающей точкой:

1.3.14 — все числа с точкой по умолчанию типа double,

2.2.71F — суффикс ’F’ соответствует типу float,

3.3.0E8 — соответствует 3.0 · 108.

true и false — значения типа bool.

Строки задаются в двойных кавычках: "Text string".

http://compscicenter.ru

3/21

Лекция 2. Как выполняются программы на C++

Переменные

При определении переменной указывается её тип. При определении можно сразу задать начальное значение (инициализация).

int

i = 10;

short

j = 20;

 

 

bool

b = false;

unsigned

long l = 123123;

double x

= 13.5, y = 3.1415;

float z;

 

 

 

Нужно всегда инициализировать переменные.

Нельзя определить переменную пустого типа void.

http://compscicenter.ru

4/21

Лекция 2. Как выполняются программы на C++

Операции

Оператор присваивания: =.

Арифметические:

1. бинарные: + - * / %,

2.унарные: ++ --.

Логические:

1.бинарные: && ||,

2.унарные: !.

Сравнения: == != > < >= <=.

Приведения типов: (type).

Сокращённые версии бинарных операторов: += -= *= /= %=.

int i =

10;

 

i = (20

* 3)

% 7;

int

k =

i++;

 

int

l =

--i;

 

 

 

 

 

bool b = !(k == l);

b = (a == 0) || (1 / a < 1);

double d = 3.1415; float f = (int)d;

// d = d * (i + k) d *= i + k;

http://compscicenter.ru

5/21

Лекция 2. Как выполняются программы на C++

Инструкции

Выполнение состоит из последовательности инструкций.

Инструкции выполняются одна за другой.

Порядок вычислений внутри инструкций не определён.

/* unspecified behavior */ int i = 10;

i = (i += 5) + (i * 4);

Блоки имеют вложенную область видимости: int k = 10;

{

int

k = 5

* i;

// не видна за пределами блока

i =

(k +=

5) +

5;

}

k = k + 1;

http://compscicenter.ru

6/21

Лекция 2. Как выполняются программы на C++

Условные операторы

Оператор if:

int d = b * b - 4 * a * c; if ( d > 0 ) {

roots = 2;

}else if ( d == 0 ){ roots = 1;

}else {

roots = 0;

}

Тернарный условный оператор:

int roots = 0; if (d >= 0)

roots = (d > 0 ) ? 2 : 1;

http://compscicenter.ru

7/21

Лекция 2. Как выполняются программы на C++

Циклы

Цикл while:

int squares = 0; int k = 0;

while ( k < 10 ) { squares += k * k; k = k + 1;

}

Цикл for:

for ( int k = 0; k < 10; k = k + 1 ) { squares += k * k;

}

Для выхода из цикла используется оператор break.

http://compscicenter.ru

8/21

Лекция 2. Как выполняются программы на C++

Функции

В сигнатуре функции указывается тип возвращаемого значений и типы параметров.

Ключевое слово return возвращает значение.

double square(double x) { return x * x;

}

Переменные, определённые внутри функций, — локальные.

Функция может возвращать void.

Параметры передаются по значению (копируются).

void strange(double x, double y) { x = y;

}

http://compscicenter.ru

9/21

Лекция 2. Как выполняются программы на C++

Макросы

Макросами в C++ называют инструкции препроцессора.

Препроцессор C++ является самостоятельным языком, работающим с произвольными строками.

Макросы можно использовать для определения функций:

int max1(int x, int y) { return x > y ? x : y;

}

#define

max2(x,

y)

x > y ? x : y

a = b +

max2(c,

d);

// b + c > d ? c : d;

 

 

 

 

Препроцессор “не знает” про синтаксис C++.

http://compscicenter.ru

10/21