Информатика и программирование Операторы языка С++ Полежаев Петр

Скачать презентацию Информатика и программирование Операторы языка С++ Полежаев Петр Скачать презентацию Информатика и программирование Операторы языка С++ Полежаев Петр

Лекция 4 - Операторы языка С++.ppt

  • Количество слайдов: 28

>Информатика и программирование Операторы языка С++ Полежаев Петр Николаевич    vk: vkontakte. Информатика и программирование Операторы языка С++ Полежаев Петр Николаевич vk: vkontakte. ru/polezhaevw icq: 319280157 agent: polezhaevw@mail. ru e-mail: peter. polezhaev@gmail. com

>Оператор – законченное описание некоторого действия.  В конце каждого оператора ставится ; Оператор – законченное описание некоторого действия. В конце каждого оператора ставится ; Назовите примеры операторов, которые Вы знаете?

>Виды операторов языка С++ •  Операторы-выражения •  Блоки (составные операторы) • Виды операторов языка С++ • Операторы-выражения • Блоки (составные операторы) • Условный оператор • Оператор выбора • Операторы цикла • Операторы передачи управления

>Блок (составной оператор)    • Блок (составной оператор) - {  Блок (составной оператор) • Блок (составной оператор) - { группа операторов, заключенных в оператор1; {}, представляющих собой единое оператор2; целое. … • Блок может располагаться в любом оператор. N; месте программы, где допустимо } размещение оператора. • В конце блока наличие ; не оператор1 обязательно. оператор2 • Переменные, описанные внутри … оператор. N блока, существуют до выхода из него.

>Условный оператор Формат записи:     + условное выраж.  - Условный оператор Формат записи: + условное выраж. - if (условное выражение) оператор1; оператор1 оператор2 else оператор2; Если условное выражение истинно, то выполняется оператор 1, иначе – оператор2. После чего управление передается следующему за if оператору в программе.

>Условный оператор (продолжение) Краткая форма записи (без else):      + Условный оператор (продолжение) Краткая форма записи (без else): + условное выраж. - if (условное выражение) оператор1; Если необходимо, чтобы на месте операторов оператор1 или оператор2 размешалось несколько операторов, то в этом случае используется блок (составной оператор).

>Условный оператор (Пример) Вычислить максимум и минимум двух целых чисел: #include <iostream> using namespace Условный оператор (Пример) Вычислить максимум и минимум двух целых чисел: #include using namespace std; int main() { int A, B, max, min; cin >> A >> B; if (A > B) { max = A; min = B; } else { max = B; min = A; } cout << “max = ” << max << “ min = “ << min << endl; return 0; }

>Вложенные операторы if if (выражение 1)  • Вложенные операторы  if (выражение 2) Вложенные операторы if if (выражение 1) • Вложенные операторы if (выражение 2) if располагаются внутри if (выражение 3) оператор; других операторов if. else • Раздел else всегда оператор; связан с ближайшим if. else • Вложенные операторы оператор; else лучше всегда писать с оператор; отступом для улучшения читабельности структуры программы.

>Частые ошибки записи условного оператора • Использование операции присваивания =  вместо операции проверки Частые ошибки записи условного оператора • Использование операции присваивания = вместо операции проверки равенства == if (a = b) cout << “Numbers are equal. ” << endl; • Отсутствие фигурных скобок составного оператора if (a < b) min = a; max = b;

> Оператор выбора Формат записи:     Оператор выбора выполняется так: Оператор выбора Формат записи: Оператор выбора выполняется так: 1. Вычисляется значение выражения. switch (выражение) 2. Последовательно сравнивается { значение выражения с константами. case конст1: список_операторов 1 3. При совпадении значения с одной из констант осуществляет переход case конст2: на первый оператор из список_операторов 2 соответствующего списка … операторов. default: 4. Если в списке операторов операторы встретился break, то } осуществляется переход на следующий оператор за конструкций switch, иначе – Необязательная секция default выполняются операторы из выполняется, если значение нижележащих списков операторов. выражения не совпало ни с одной из констант.

>Оператор выбора (Пример) Определить время года по номеру месяца. …… switch (month) { Оператор выбора (Пример) Определить время года по номеру месяца. …… switch (month) { case 1: case 2: case 12: cout << “winter” << endl; month break; case 3: case 4: case 5: cout << “spring” << endl; break; 1, 2, 12 3, 4, 5 6, 7, 8 по умолч. case 6: case 7: case 8: cout << “summer” << endl; break; Вывод default: “winter” “spring” “summer” “autumn” cout << “autumn” << endl; }

>Операторы цикла языка С++ • Цикл с предусловием • Цикл с постусловием • Цикл Операторы цикла языка С++ • Цикл с предусловием • Цикл с постусловием • Цикл с параметром

>Понятие цикла Цикл - конструкция для организации многократно повторяющихся вычислений.  Любой цикл состоит Понятие цикла Цикл - конструкция для организации многократно повторяющихся вычислений. Любой цикл состоит из: • Тела цикла (операторов, выполняемых несколько раз) • Начальных установок • Модификации параметров цикла • Проверки условия продолжения выполнения цикла Один проход цикла – итерация.

>Виды циклов  Начальные     Парам=НЗ, КЗ, Шаг   установки Виды циклов Начальные Парам=НЗ, КЗ, Шаг установки - Выражение Операторы + Операторы Модификация параметров цикла Парам – параметр цикла; Модификация НЗ – начальное значение; параметров цикла + Выражение КЗ – конечное значение; Шаг – шаг приращения - параметра Цикл с предусловием Цикл с постусловием Цикл с параметром

>Цикл с предусловием Формат записи:   Принцип работы:     Цикл с предусловием Формат записи: Принцип работы: 1. Вычисляется значение while (выражение) выражения. оператор; 2. Если значение истинно, то выполняется оператор. 3. Снова вычисляется выражение. Пример. Вычисление суммы 4. Если значение выражения первых n натуральных чисел: истинно, то снова выполняется оператор, int sum = 0, i = 1; если же ложно, то while (i <= n) переходит к следующему за sum += i++; while оператору.

>Цикл с предусловием (Пример) Нахождение всех делителей числа n.  ……. int divisor = Цикл с предусловием (Пример) Нахождение всех делителей числа n. ……. int divisor = 1; while (divisor * divisor <= n) { if (!(n % divisor)) cout << divisor << “ “ << n / divisor << endl; divisor++; }

>Цикл с постусловием Формат записи:   Принцип работы:     Цикл с постусловием Формат записи: Принцип работы: 1. Выполняется оператор. do 2. Вычисляется выражение. оператор; 3. Если оно истинно, то снова while (выражение); выполняется оператор, если же ложно, то переход на следующий оператор за конструкцией do-while. Пример. Вычисление суммы первых n натуральных чисел: int sum = 0, i = 1; do sum += i++; while (i <= n);

>Цикл с постусловием (Пример) Разложение числа n на простые множители.  int divisor = Цикл с постусловием (Пример) Разложение числа n на простые множители. int divisor = 2; do if (!(n % divisor)) { n /= divisor; cout << divisor << “ “; } else divisor++; while (n > 1);

>Цикл с параметром Формат записи:  for (инициализация; выражение; модификация) оператор;  Принцип работы: Цикл с параметром Формат записи: for (инициализация; выражение; модификация) оператор; Принцип работы: 1. Выполняется секция инициализации (один раз вначале). 2. Вычисляется выражение. 3. Если значение выражения истинно, то выполняется оператор, а затем модификация. 4. Снова вычисляется выражение, если оно истинно, то снова выполняется оператор, а затем модификация. 5. Если же ложно, то выполняется оператор, следующий за конструкцией for. Бесконечный цикл for ( ; ; ) {…}

>Цикл с параметром (Пример 1) Вычисление суммы первых n натуральных чисел:  int sum Цикл с параметром (Пример 1) Вычисление суммы первых n натуральных чисел: int sum = 0; for (int i = 1; i <= n; i++) sum += i;

>Цикл с параметром (Пример 2) Вычисление среднего арифметического m вещественных чисел, вводимых с консоли: Цикл с параметром (Пример 2) Вычисление среднего арифметического m вещественных чисел, вводимых с консоли: int m; double sum = 0. 0, d; cin >> m; for (int i = 0; i < m; i++) { cin >> d; sum += d; } cout << sum / m << endl;

>Частые ошибки при записи циклических конструкций • Отсутствие изменения параметра цикла  while (i Частые ошибки при записи циклических конструкций • Отсутствие изменения параметра цикла while (i < n) { a += i; } • Неправильное изменение параметра цикла for (int i = 100; i >=0; i++) { … } • Неправильная запись условий выхода из цикла int sum = 0, i = 1; do { sum += i; i++; } while (i > 0); • Использование = вместо ==

>Операторы передачи управления • Оператор безусловного перехода goto • Оператор выхода из цикла break Операторы передачи управления • Оператор безусловного перехода goto • Оператор выхода из цикла break • Оператор перехода к следующей итерации цикла continue • Оператор возврата из функции return

>Оператор goto Осуществляет безусловный переход на оператор помеченный меткой. Формат записи:  goto метка; Оператор goto Осуществляет безусловный переход на оператор помеченный меткой. Формат записи: goto метка; В той же функции должна присутствовать ровно одна конструкция: метка: оператор; Пример: Структурное int a = 10; программирование не goto metka; рекомендует использование оператора int l = a + 2; goto! if (a > 2) a--; metka: int m = a * a;

>Оператор break Используется внутри оператора цикла или switch и осуществляет переход в точку программы, Оператор break Используется внутри оператора цикла или switch и осуществляет переход в точку программы, находящуюся непосредственно за оператором, внутри которого находится break. Пример for (int i = 0; i < 100; i++) { if (i == 50) break; }

>Оператор continue Осуществляет переход к началу следующей итерации цикла, пропуская все оставшиеся операторы до Оператор continue Осуществляет переход к началу следующей итерации цикла, пропуская все оставшиеся операторы до конца текущей итерации цикла. Пример for (int i = 1; i <= 20; i++) { if (i % 2 == 0) continue; cout << i << endl; }

>Оператор return Осуществляет возврат из функции и передает управление в точку ее вызова. Формат Оператор return Осуществляет возврат из функции и передает управление в точку ее вызова. Формат записи: return выражение; Если функция возвращает тип void, то выражение должно отсутствовать.

>Вопросы?  • Q&A Вопросы? • Q&A