Лекция 7. Структура языка С/С++. Операторы ветвления: условный оператор if. Полное ветвление. Неполное ветвление. Оператор множественного выбора switch.

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



Advertisements
Похожие презентации
1 Программирование на языке Паскаль Тема 2. Ветвления.
Advertisements

1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
Pascal Алгоритмы разветвляющейся структуры, программирование на языке Pascal 10 «А» класс.
1 Программирование на языке Паскаль Сложные условия.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
АЛГОРИТМИЧЕСКАЯ СТРУКТУРА «ВЕТВЛЕНИЕ». СЛОЖНЫЕ УСЛОВИЯ. 1 Программирование на языке Vb6.
1 Программирование на языке Паскаль Тема 3. Сложные условия.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
1 Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Значение Имя Поместится?
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
Программирование на языке Паскаль Тема 2. Ветвления 1.
1 Программирование на языке Паскаль Тема 2. Ветвления © К.Ю. Поляков,
1 Вариант 2. Программа сложное условие program qq; var x: integer; begin writeln('Введите возраст'); read ( x ); and if (x >= 25) and (x = = равно не равно.
Алгоритмы ветвления. Условный оператор 9 класс. Повторение 1. Что такое алгоритм? 2. Какие типы алгоритмов вы знаете? 3. Какой алгоритм называется линейным?
1 Прикладное программирование Kafmi21. ru – учеба – заочнику – прикладное программирование.
Операторы языка Си Лекция 5.
Тема урока: Виды алгоритмов и их реализация. Образовательные задачи: 1. Ввести понятия: полная форма ветвления и условный оператор ветвления. 2. Научить.
Лекция 3 Ветвления. Инструкции и выражения Выражение становится инструкцией, если в конце его поставить точку с запятой. Выражения: a = b + c, i++, printf(...),
Транксрипт:

Лекция 7. Структура языка С/С++. Операторы ветвления: условный оператор if. Полное ветвление. Неполное ветвление. Оператор множественного выбора switch. Конструкции case и default. Оператор прерывания break. Оператор безусловного перехода goto.

План лекции: Операторы ветвления: условный оператор if. Полное ветвление. Неполное ветвление. Оператор множественного выбора switch. Конструкции case и default. Оператор прерывания break. Оператор безусловного перехода goto.

Операторы управления работой программы называют управляющими конструкциями программы. К ним относят: составные операторы; операторы выбора; операторы циклов; операторы перехода. Операторы передачи управления Операторы передачи управления (выбора) помогают перейти от выполняющегося в данный момент участка кода к другому, выйти из тела цикла до его завершения, или вернуть результат из функции. Условный оператор if. Условный оператор if предназначен для ветвления процесса вычислений в программе. Блок операторов, следующий за конструкцией if выполняется лишь при истинности некоторого условия. Формат условного оператора: i f ( выражение ) оператор_ 1 ; [ else оператор _ 2 ; ]

К примеру. В зависимости от года рождения, хранящегося в переменной b__year, выведем сообщение, гласящее, достиг ли пользователь совершеннолетия (текущий год хранится в переменной year); if ( year - b_yer > 18) cout

Оператор switch -переключатель. Оператор switch предназначен для разветвления процесса вычислений на несколько направлений. Его формат: switch ( выражение ) { case константное_ выражение_1 : [список_операторов_1] case константное_ выражение_2 : [список_операторов_2]... case константное_ выражение_n : [список_операторов_n] [default: опеаторы ] }

Для примера использования оператора switch в реальной программе, рассмотрим случай тестовой программы, когда за каждый из ответов на тестовый вопрос начисляется разное количество баллов. Допустим, есть четыре варианта ответа (a, b, c, d), введенный ответ содержится в переменной answer типа char, а текущее количество баллов в переменной total: switch (answer) { case a, A: total += 2; break; case b, B: total += 1; break; case c, C: total += 4; break; case d, D: break; // 0 баллов, сумма не меняется default: cout

Безусловная передача управления. Оператор goto называется оператором безусловного перехода. Его формат: goto имя _ метки; В теле той же функции должна встречаться метка. Меткой называется конструкция вида: имя__метки: оператор ; Именно с этой строки и продолжается выполнение программы при вызове goto. Но такой подход очень сильно нарушает структуру программы, так как управление может быть передано в любую точку программы, например внутрь цикла, и это создаст непредсказуемую ситуацию. Теоретически доказано, что возможно написать программу любого уровня сложности без использования инструкции goto. Поэтому считается не очень хорошим тоном использовать goto в более или менее длинных программах. Однако в некоторых случаях использование goto может облегчить работу программиста.

Программирование на языке Си Ветвления

9 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого. Особенность: действия исполнителя зависят от некоторых условий (если … иначе …). Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.

10 Вариант 1. Блок-схема начало max = a; ввод a,b вывод max a > b? max = b; конец да нет полная форма ветвления блок «решение» Если a = b? ?

11 Вариант 1. Программа main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d", &a, &b ); if (a > b) { } else { } printf("Наибольшее число %d", max); } max = a ; max = b ; полная форма условного оператора

12 Условный оператор if ( условие ) { // что делать, если условие верно } else { // что делать, если условие неверно } if ( условие ) { // что делать, если условие верно } else { // что делать, если условие неверно } Особенности: вторая часть ( else …) может отсутствовать (неполная форма) если в блоке один оператор, можно убрать { }

13 Что неправильно? if a > b { a = b; } else b = a; if a > b { a = b; } else b = a; if ( a > b ) { a = b; else b = a; if ( a > b ) { a = b; else b = a; if ( a > b ) else b = a; if ( a > b ) else b = a; if ( a > b ) a = b; c = 2*a; else b = a; if ( a > b ) a = b; c = 2*a; else b = a; } () } { a = b;

14 Вариант 2. Блок-схема неполная форма ветвления начало max = a; ввод a,b вывод max max = b; конец да нет b > a?

15 Вариант 2. Программа main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d", &a, &b ); max = a; if (b > a) printf("Наибольшее число %d", max); } max = b ; неполная форма условного оператора

16 main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d", &a, &b ); max = b; if ( ??? ) ??? printf("Наибольшее число %d", max); } main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d", &a, &b ); max = b; if ( ??? ) ??? printf("Наибольшее число %d", max); } Вариант 2Б. Программа max = a; a > b

17 Задания «4»: Ввести три числа и найти наибольшее из них. Пример: Введите три числа: Наибольшее число 15 «5»: Ввести пять чисел и найти наибольшее из них. Пример: Введите пять чисел: Наибольшее число 56

Программирование на языке Си Тема 5. Сложные условия © К.Ю. Поляков,

19 Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»). Особенность: надо проверить, выполняются ли два условия одновременно. Можно ли решить известными методами? ?

20 Вариант 1. Алгоритм начало ввод x 'подходит' конец да нет x >= 25? да нет x < = 40? 'не подходит'

21 Вариант 1. Программа main() { int x; printf("Введите возраст\n"); scanf("%d", &x); if (x >= 25) if (x

22 Вариант 2. Алгоритм начало ввод x 'подходит' да нет x >= 25 и x

23 Вариант 2. Программа main() { int x; printf("Введите возраст\n"); scanf("%d", &x); if ( x >= 25 && x

24 Сложные условия Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций: ! – НЕ (not, отрицание, инверсия) && – И (and, логическое умножение, конъюнкция, одновременное выполнение условий) || – ИЛИ (or, логическое сложение, дизъюнкция, выполнение хотя бы одного из условий) Простые условия (отношения) >= == != равно не равно

25 Сложные условия Порядок выполнения сложных условий: выражения в скобках ! (НЕ, отрицание), >= ==, != && (И) || (ИЛИ) Пример: if ( !(a > b) || c != d && b == a) {... }

26 Истинно или ложно при a = 2; b = 3; c = 4; !(a > b) a < b && b < c !(a >= b) || c == d a < c || b < c && b < a a > b || !(b < c) Для каких значений x истинны условия: x < 6 && x < 10 x 10 x > 6 && x < 10 x > 6 && x > 10 x < 6 || x < 10 x 10 x > 6 || x < 10 x > 6 || x > 10 Сложные условия (-, 6) (6, 10) (10, ) (-, 10) (-, 6) (10, ) (-, ) (6, ) x < 6x < 6 x > 10 x < 10 x > 6x >

27 Задания «4»: Ввести номер месяца и вывести название времени года. Пример: Введите номер месяца: 4 весна «5»: Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом «год», «года» или «лет». Пример: Введите возраст: Вам 24 года Вам 57 лет