Условный оператор. Оператор выбора. Лекция 7

Содержание

Слайд 2

Условный оператор: синтаксис и особенности if then begin end; [ else

Условный оператор: синтаксис и особенности

if <условие> then
begin
<операторы>
end;
[ else

begin < операторы> end ];

Условный оператор if – обеспечивает ветвление алгоритма в зависимости от выполнения некоторого условия.

Слайд 3

Условный оператор: синтаксис и особенности Особенности: перед else НЕ ставится точка

Условный оператор: синтаксис и особенности

Особенности:
перед else НЕ ставится точка с запятой
вторая

часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать слова begin и end
Слайд 4

Условный оператор Условный оператор if работает следующим образом: 1. Сначала вычисляется

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

Условный оператор if работает следующим образом:
1. Сначала вычисляется значение <условия>

- это может быть любое выражение, возвращающее значение типа boolean.
2. Затем, если в результате получена "истина" (true), то выполняется оператор, стоящий после ключевого слова then, а если "ложь" (false) - без дополнительных проверок выполняется оператор, стоящий после ключевого слова else. Если же else-ветвь отсутствует, то не выполняется ничего.
Слайд 5

Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран

Разветвляющиеся алгоритмы

Задача. Ввести два целых числа и вывести на экран наибольшее

из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.

Слайд 6

Вариант 1. Блок-схема полная форма ветвления блок «решение»

Вариант 1. Блок-схема

полная форма ветвления

блок «решение»

Слайд 7

Что неправильно? if a > b then begin a := b;

Что неправильно?

if a > b then begin
a := b;

end
else
b := a;
end;

if a > b then begin
a := b;
else 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
else b > a begin
b := a;
end;

begin

end

begin

end

Слайд 8

Вариант 2. Блок-схема неполная форма ветвления

Вариант 2. Блок-схема

неполная форма ветвления

Слайд 9

Что неправильно? if a > b then begin a := b;

Что неправильно?

if a > b then begin
a := b;

else b := a;

if a > b then begin
a := b;
end;
else b := a;

if a > b then
else begin
b := a;
end;

if a > b then
a := b;
else b := a; end;

a := b

end

a := b
if b >= a then
b := a;

Слайд 10

Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет

Сложные условия

Задача. Фирма набирает сотрудников от 25 до 40 лет включительно.

Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.
Слайд 11

Вариант 1. Алгоритм начало ввод x 'подходит' конец да нет x

Вариант 1. Алгоритм

начало

ввод x

'подходит'

конец

да

нет

x >= 25?

да

нет

x <= 40?

'не подходит'

'не подходит'

Слайд 12

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

Вариант 2. Алгоритм

начало

ввод x

'подходит'

да

нет

x >= 25 и
x <= 40?

'не подходит'

Слайд 13

Сложные условия Простые условия (отношения) >= = Сложное условие – это

Сложные условия

Простые условия (отношения)
< <= > >= = <>
Сложное условие

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

равно

не равно

Слайд 14

Сложные условия Порядок выполнения (приоритет = старшинство) выражения в скобках not

Сложные условия

Порядок выполнения (приоритет = старшинство)
выражения в скобках
not
and
or, xor
<, <=, >,

>=, =, <>
Особенность – каждое из простых условий обязательно заключать в скобки.
Пример

4 1 6 2 5 3

if not (a > b) or (c <> d) and (b <> a)
then begin
...
end

Слайд 15

Истинно или ложно при a := 2; b := 3; c

Истинно или ложно при a := 2; b := 3; c

:= 4;
not (a > b)
(a < b) and (b < c)
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a)
(a < b) xor not (b > c)
Для каких значений x истинны условия:
(x < 6) and (x < 10)
(x < 6) and (x > 10)
(x > 6) and (x < 10)
(x > 6) and (x > 10)
(x < 6) or (x < 10)
(x < 6) or (x > 10)
(x > 6) or (x < 10)
(x > 6) or (x > 10)

Сложные условия

True

True

FALSE

(-∞; 6)


(6; 10)

(10; ∞)

(-∞; 10)

(-∞; 6) ∪ (10;∞)

(-∞; ∞)

(6; ∞)

x < 6

x > 10

x < 10

x > 6

True

True

Слайд 16

Практическая работа 3. Составление программ разветвляющейся структуры. Задание 2. Написать программу для решения квадратного уравнения.

Практическая работа 3. Составление программ разветвляющейся структуры.

Задание 2. Написать программу для

решения квадратного уравнения.
Слайд 17

Задание 2. Написать программу для решения квадратного уравнения.

Задание 2. Написать программу для решения квадратного уравнения.

Слайд 18

Оператор выбора Задача: Ввести номер месяца и вывести количество дней в

Оператор выбора

Задача: Ввести номер месяца и вывести количество дней в этом

месяце.
Решение: Число дней по месяцам:
28 дней – 2 (февраль)
30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь)
31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)
Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца.
Слайд 19

Алгоритм начало конец выбор ни один вариант не подошел ввод M

Алгоритм

начало

конец

выбор

ни один вариант не подошел

ввод M

да

нет

M = 1?

D := 31;

нет

M =

2?

D := 28;

да

нет

M = 12?

D := 31;

да

вывод D

ошибка

Слайд 20

Оператор выбора: определение и синтаксис case of : ; [ :

Оператор выбора: определение и синтаксис

case <переключатель> of <список_констант>: <один_оператор>;
[<список_констант> :

<один_оператор>;]
[<список_констант> : <один_оператор>;]
[else <один_оператор>;]
end;

Оператор выбора предназначен для организации выбора одной из любого количества ветвей алгоритма в зависимости от значения некоторого выражения.

Слайд 21

Оператор выбора Особенности: после case может быть имя переменной или арифметическое

Оператор выбора

Особенности:
после case может быть имя переменной или арифметическое выражение целого

типа (integer)
или символьного типа (char)

case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;

var c: char;
...
case c of
'а': writeln('Антилопа');
'б': writeln('Барсук');
else writeln('Не знаю');
end;

Слайд 22

Оператор выбора Особенности: если нужно выполнить только один оператор, слова begin

Оператор выбора

Особенности:
если нужно выполнить только один оператор, слова begin и end

можно не писать
нельзя ставить два одинаковых значения

case i+3 of
1: a := b;
1: a := c;
end;

case i+3 of
1: a := b;
2: a := c;
end;

Слайд 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;

перечисление

диапазон

смесь

Слайд 24

Что неправильно? case a of 2: begin a := b; 4:

Что неправильно?

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: a := c;
end;

3..6:

case a+c/2 of
2: a := b;
4: a := c;
end;

case a of
2: a := b; d := 0;
4: a := c;
end;

begin

end;

Слайд 25

Вопросы к экзамену 17. Условный оператор: определение, синтаксис, особенности. 18. Синтаксис

Вопросы к экзамену

17. Условный оператор: определение, синтаксис, особенности.
18. Синтаксис оператора условия. Сложные условия.


19. Оператор выбора: определение, синтаксис, особенности.
Слайд 26

Практическая работа 4. Составление программ разветвляющейся структуры с использованием оператора выбора.

Практическая работа 4. Составление программ разветвляющейся структуры с использованием оператора выбора.

Задание

1. Присвоить строке S значение дня недели для заданного числа D при условии, что в месяце 31 день и 1-е число – понедельник.