Лекция 2. Фундаментальные типы данных и основные конструкции Красс Александр Alexander.Krass@gmail.com СПбГУ ИТМО, 2008.

Презентация:



Advertisements
Похожие презентации
Лекция 1. Введение Красс Александр СПбГУ ИТМО, 2008.
Advertisements

Введение в C++ Урок 1-2.
©ρŧą Базовые конструкции языка.
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Лекция 2Лекция 2Структура программы Директивы препроцессора main () { Описания переменных Операторы }
Лекция 3. Одномерные массивы, указатели и ссылки Красс Александр СПбГУ ИТМО, 2008.
Вводный курс в С++ Занятие 1 Олег Власенко Заместитель директора ООО СимбирСофт Старший.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Лекция 1 по дисциплине «Программные средства математических расчетов» тема: «Основы языка С++» гр. 8Е31 Мамонова Татьяна Егоровна
Лекция 3 Ветвления. Инструкции и выражения Выражение становится инструкцией, если в конце его поставить точку с запятой. Выражения: a = b + c, i++, printf(...),
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
Занятие 2. Конструкции принятия решений. Конструкции принятия решений позволяют приложениям проверять условия и выбирать направление действий. Другим.
Лекция 30. Преобразования типов в C++ Красс Александр СПбГУ ИТМО, 2009.
Лекция 22. Шаблоны (часть 2) Красс Александр СПбГУ ИТМО, 2008.
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
Теоретические основы программирования на JavaScript.
Лекция 9. Введение в ООП. Часть 2 Красс Александр СПбГУ ИТМО, 2008.
©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.
Тема: Управление потоком в PHP Изучить возможности языка PHP при решении задач, требующих использования условного оператора. Рассмотреть примеры управления.
ТОИ-ИМ 1. Использование промежуточной переменной (буфера) при обмене значениями двух переменных. 2. Сумматор для накопления результатов обработки переменной.
Транксрипт:

Лекция 2. Фундаментальные типы данных и основные конструкции Красс Александр СПбГУ ИТМО, 2008

2 Начнём с этих типов Тип Размер в байтах Диапазон значений int double8 ±2.2E-308 (15 цифр) ±1.7E308 (15 цифр) bool1true или false char

3 true и false в C++ Любое число отличное от нуля – это true. Нуль – это false.

4 Модификаторы типов unsigned signed long short

5 Модификаторы типов (1/2) unsigned signed long short

6 Модификаторы типов (2/2) Если явно не указано unsigned или signed, то всегда предполагается signed. Если указан модификатор типа, а тип опущен, то всегда предполагается int: unsigned i; // Обе строчки объявляют unsigned int j; // переменную типа // unsigned int

7 Примеры Тип Размер в байтах Диапазон значений int unsigned int

8 Интегральные типы (1/2) char bool short int long

9 Интегральные типы (2/2) Диапазоны многих типов платформозависимы. Можно быть уверенными только в следующем соотношении: sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

10 Вещественные типы (1/2) float double long double

11 Вещественные типы (2/2) sizeof (float) <= sizeof(double) <= sizeof(long double) К вещественным типам нельзя применять модификаторы unsigned, signed и short.

12 Подробнее о фундаментальных типах данных Читаем в интернете (например, здесь us/library/cc953fe1.aspx).

13 Оператор ветвления (1/3) if (условие_1) { действия_1 } [else if (условие_2) { действия_2 }] […] [else { действия_n }]

14 Оператор ветвления (2/3) if (true) { cout << Будет напечатано; } if (false) { cout << Не будет напечатано; }

15 Оператор ветвления (3/3) if (25) { cout << Будет напечатано; } if (0) { cout << Не будет напечатано; }

16 Разберём фрагмент программы unsigned int i; cin >> i; if (i > 3) { cout << "The value is greater than 3" << endl; } else if (i == 4) { // Вместо этого выполнится случай, когда i > 3 } else { cout << "The value is lesser than 4" << endl; }

17 switch switch ( expression ) case constant-expression : statement case constant-expression : statement … [default : statement]

18 Эти фрагменты делают одно и то же (1/2) unsigned int i; cin >> i; if (i == 3) { // i == 3 } else if (i < 6) { // i >= 0 && i < 6 && i != 3 } else { // i >= 6 }

19 Эти фрагменты делают одно и то же (2/2) switch(i) { case 3: cout << "i == 3" << endl; break; case 0: case 1: case 2: case 4: case 5: cout = 0 && i < 6 && i != 3 " << endl; break; default: cout = 6" << endl; }

20 Ещё один момент switch(i) { case 5: cout << "i == 5" << endl; cout << "Please, enter one more number: " << endl; { int j; // Из-за этой строчки и cin >> j; // нужны {}. Иначе будет ошибка. cout << "j == " << j << endl; } break; default: cout = 6" << endl; }

21 while while ( expression ) statement

22 Пример использования while (1/6) void main() { unsigned int n = 0, k = 1; cin >> n; while (n > 1) { k = k * n; n = n - 1; } cout << "n! = " << k << endl; }

23 Пример использования while (2/6) void main() { unsigned int n = 0, k = 1; cin >> n; while (n > 1) { k *= n; n -= 1; } cout << "n! = " << k << endl; }

24 Пример использования while (3/6) void main() { unsigned int n = 0, k = 1; cin >> n; while (n > 1) { k *= n; n--; } cout << "n! = " << k << endl; }

25 Пример использования while (4/6) void main() { unsigned int n = 0, k = 1; cin >> n; while (n > 1) { k *= n; --n; // Так лучше. } cout << "n! = " << k << endl; }

26 Пример использования while (5/6) void main() { unsigned int n = 0, k = 1; cin >> n; while (n > 1) { k *= --n; // Ошибка! // n -= 1; } // k *= n; cout << "n! = " << k << endl; }

27 Пример использования while (6/6) void main() { unsigned int n = 0, k = 1; cin >> n; while (n > 1) { k *= n--; // Ok // k *= n; } // n -= 1; cout << "n! = " << k << endl; }

28 do-while do statement while ( expression ) ;

29 Пример использования do-while void main() { unsigned int n = 0, k = 1; cin >> n; do { k *= n--; } while (n > 1); cout << "n! = " << k << endl; }

30 for for ( init-expression ; cond-expression ; loop-expression ) statement

31 Пример использования for void main() { unsigned int n = 0, k = 1; cin >> n; for (; n > 1; --n) { k *= n; } cout << "n! = " << k << endl; }

32 Пример использования for void main() { unsigned int n = 0, k = 1; cin >> n; for (; n > 1; --n) // Что выведется на { // Экран, если k *= n; // пользователь } // введёт n == 0? cout << "n! = " << k << endl; }

33 Пример использования for void main() { unsigned int n = 0, k = 1; cin >> n; for (; n > 1; --n) // Правильно! { // "n! = 1" k *= n; } cout << "n! = " << k << endl; }

34 Пример использования for void main() { unsigned int n = 0, k = 1; cin >> n; for (int i = n; i > 1; --i) { k *= i; } cout << "n! = " << k << endl; }

35 Пример использования for for (int i = n; i > 1; --i) { k *= i; } сout << "i = " << i // Ошибка! << endl; // i уже не существует

36 Задание на дом Мальчику Васе задали огромное задание по арифметике из-за того, что он долго дёргал за косички дочку учительницы. Помогите ему! Задание состоит из неизвестного вам числа примеров вида: <вещественное число. Например, , 7.5 * (-5), 1 / 7. Виды операций: сложение, вычитание, умножение, деление, деление с остатком (%), возведение в степень (^).

37 Задание на дом Замечание. Операнды и операция вводятся по одному. Замечание. Действие ^ в C++ – это не возведение в степень. Для продвинутых. Сделать контроль пользовательского ввода и дать возможность использовать результат предыдущего примера в текущем вместо первого аргумента. Для ещё более продвинутых. Вместо любого из аргументов.

38 Как оформлять домашнее задание Каждое задания нужно посылать в архиве с именем:. Пример: 9999 Krass Alexander 2 1. Нумерация заданий начинается с единицы. Внутри папка с таким же именем, а в ней файлы: *.vcproj, файлы с исходными кодами, во вложенной папке Debug *.exe файл с вашим приложением.

39 Cпасибо за внимание