Similar presentations:
Условный оператор. Оператор выбора. Лекция 7
1. Лекция 7. Условный оператор. Оператор выбора
1Лекция 7. Условный
оператор. Оператор
выбора
2.
Условный оператор: синтаксис и особенностиУсловный оператор if – обеспечивает ветвление
алгоритма в зависимости от выполнения некоторого
условия.
if <условие> then
begin
<операторы>
end;
[ else begin < операторы> end ];
2
3.
Условный оператор: синтаксис и особенностиОсобенности:
• перед else НЕ ставится точка с запятой
• вторая часть (else …) может отсутствовать
(неполная форма)
• если в блоке один оператор, можно убрать слова
begin и end
3
4.
Условный операторУсловный оператор if работает следующим образом:
1. Сначала вычисляется значение <условия> - это может
быть любое выражение, возвращающее значение типа
boolean.
2. Затем, если в результате получена "истина" (true), то
выполняется оператор, стоящий после ключевого слова
then, а если "ложь" (false) - без дополнительных проверок
выполняется оператор, стоящий после ключевого слова
else. Если же else-ветвь отсутствует, то не выполняется
ничего.
4
5.
Разветвляющиеся алгоритмыЗадача. Ввести два целых числа и вывести на экран
наибольшее из них.
Идея решения: надо вывести на экран первое число,
если оно больше второго, или второе, если оно больше
первого.
Особенность: действия исполнителя зависят от
некоторых условий (если … иначе …).
Алгоритмы, в которых последовательность шагов
зависит от выполнения некоторых условий, называются
разветвляющимися.
5
6.
6Вариант 1. Блок-схема
начало
блок
«решение»
ввод a,b
да
a > b?
max:= a;
полная
форма
ветвления
нет
max:= b;
вывод max
конец
?
Если a = b?
7.
7Что неправильно?
if a > b then begin
a := b;
end
else begin
b := a;
end;
if a > b then begin
a := b;
end
begin
else b
> a begin
b := a;
end;
if a > b then begin
a := b; end
else begin
b := a;
end;
if a > b then begin
a := b;
end;
end
else begin
b := a;
end;
8.
8Вариант 2. Блок-схема
начало
ввод a,b
max:= a;
да
b > a?
max:= b;
вывод max
конец
нет
неполная
форма
ветвления
9.
9Что неправильно?
if a > b then begin
b;
a := b
else b := a;
if a > b then
b
a := b;
else b := a; end;
if a > b then begin
a := b;
end;
end
else b := a;
if a > b then
else
if b begin
>= a then
bb:=
:=a;
a;
end;
10.
Сложные условияЗадача. Фирма набирает сотрудников от 25 до 40 лет
включительно. Ввести возраст человека и определить,
подходит ли он фирме (вывести ответ «подходит» или
«не подходит»).
Особенность: надо проверить, выполняются ли два
условия одновременно.
?
Можно ли решить известными методами?
10
11.
11Вариант 1. Алгоритм
начало
ввод x
да
да
'подходит'
x <= 40?
x >= 25?
нет
нет
'не подходит'
конец
'не подходит'
12.
12Вариант 2. Алгоритм
начало
ввод x
да
x >= 25
и
x <= 40?
нет
'не подходит'
'подходит'
конец
13.
13Сложные условия
Простые условия (отношения) равно
<
<=
>
>=
=
<>
не равно
Сложное условие – это условие, состоящее из
нескольких простых условий (отношений), связанных с
помощью логических операций:
• not – НЕ (отрицание, инверсия)
• and – И (логическое умножение, конъюнкция,
одновременное выполнение условий)
• or – ИЛИ (логическое сложение, дизъюнкция,
выполнение хотя бы одного из условий)
• xor – исключающее ИЛИ (выполнение только
одного из двух условий, но не обоих)
14.
Сложные условияПорядок выполнения (приоритет = старшинство)
• выражения в скобках
• not
• and
• or, xor
• <, <=, >, >=, =, <>
Особенность – каждое из простых условий обязательно
заключать в скобки.
Пример
4
1
6
2
5
3
if not (a > b) or (c <> d) and (b <> a)
then begin
...
end
14
15.
15Сложные условия
Истинно или ложно при a := 2; b := 3; c := 4;
True
not (a > b)
True
(a < b) and (b < c)
True
not (a >= b) or (c = d)
True
(a < c) or (b < c) and (b < a)
(a < b) xor not (b > c)
FALSE
Для каких значений
(x
(x
(x
(x
(x
(x
(x
(x
<
<
>
>
<
<
>
>
6)
6)
6)
6)
6)
6)
6)
6)
x истинны условия:
and (x < 10)
and (x > 10)
and (x < 10)
and (x > 10)
or (x < 10)
or (x > 10)
or (x < 10)
or (x > 10)
(- ; 6)
(6; 10)
(10; )
(- ; 10)
(- ; 6) (10; )
(- ; )
(6; )
x<6
x > 10
x < 10
x>6
16. Практическая работа 3. Составление программ разветвляющейся структуры.
Задание 2. Написать программу для решенияквадратного уравнения.
17.
Задание 2. Написать программу для решения квадратного уравнения.18.
Оператор выбораЗадача: Ввести номер месяца и вывести количество
дней в этом месяце.
Решение: Число дней по месяцам:
28 дней – 2 (февраль)
30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь)
31 день – 1 (январь), 3 (март), 5 (май), 7 (июль),
8 (август), 10 (октябрь), 12 (декабрь)
Особенность: Выбор не из двух, а из нескольких
вариантов в зависимости от номера месяца.
?
Можно ли решить известными методами?
18
19.
19Алгоритм
начало
ввод M
M = 1?
нет
M = 2?
да
выбор
D := 31;
да
D := 28;
нет
M = 12?
ни один
вариант не
подошел
нет
ошибка
конец
да
D := 31;
вывод D
20.
Оператор выбора: определение и синтаксисОператор
выбора
предназначен
для
организации выбора одной из любого количества
ветвей алгоритма в зависимости от значения
некоторого выражения.
case <переключатель> of
<список_констант>: <один_оператор>;
[<список_констант> : <один_оператор>;]
[<список_констант> : <один_оператор>;]
[else <один_оператор>;]
end;
20
21.
Оператор выбораОсобенности:
• после case может быть имя переменной или
арифметическое выражение целого типа (integer)
case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;
или символьного типа (char)
var c: char;
...
case c of
'а': writeln('Антилопа');
'б': writeln('Барсук');
else writeln('Не знаю');
end;
21
22.
Оператор выбораОсобенности:
• если нужно выполнить только один оператор,
слова begin и end можно не писать
case i+3 of
1: a := b;
2: a := c;
end;
• нельзя ставить два одинаковых значения
case i+3 of
1: a := b;
1: a := c;
end;
22
23.
Оператор выбораОсобенности:
• значения, при которых выполняются одинаковые
действия, можно группировать
перечисление
диапазон
смесь
case i of
1:
a := b;
2,4,6:
a := c;
10..15:
a := d;
20,21,25..30: a := e;
else writeln('Ошибка');
end;
23
24.
24Что неправильно?
case a of
2: begin a := b;
4: a := c;
end;
case a of
2: a := b ;
4: a := c
end;
case a of
2..5: a := b;
4: a := c;
end;
case a of
0..2: a := b;
6..3:
3..6: a := c;
end;
case a+c/2 of
2: a := b;
4: a := c;
end;
begin
case a of
2: a := b; d := 0; end;
4: a := c;
end;
25. Вопросы к экзамену
17. Условный оператор: определение,синтаксис, особенности.
18. Синтаксис оператора условия.
Сложные условия.
19. Оператор выбора: определение,
синтаксис, особенности.
26.
Практическая работа 4.Составление программ
разветвляющейся структуры
с использованием оператора
выбора.
Присвоить строке S значение дня
недели для заданного числа D при условии, что в
месяце 31 день и 1-е число – понедельник.
Задание 1.
27.
Присвоить строке S значение днянедели для заданного числа D при условии, что в
месяце 31 день и 1-е число – понедельник.
Задание 1.