Similar presentations:
Алгоритмическая конструкция ветвление
1.
АЛГОРИТМИЧЕСКАЯКОНСТРУКЦИЯ ВЕТВЛЕНИЕ
Сложные условия
ОСНОВНЫЕ
АЛГОРИТМИЧЕСКИЕ
КОНСТРУКЦИИ
2.
Простые и составные условияПростые условия состоят из одной операции сравнения.
Составные условия получаются из простых с помощью
логических связок and (и), or (или), not (не).
Пример. Алгоритм определения принадлежности точки Х
отрезку [A; B].
A, B, X
да
(X>=A) and (X<=B)
ДА
нет
НЕТ
Ответ:
Ответ:Не
Принадлежит
принадлежит
A=2
B=4
X=4
B=6
X=6
3.
Программирование на алгоритмическом языке3
Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет
включительно. Ввести возраст человека и определить,
подходит ли он фирме (вывести ответ «подходит» или
«не подходит»).
Особенность: надо проверить, выполняются ли два
условия одновременно.
?
Можно ли решить известными методами?
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
4. Вариант 1. Алгоритм
Программирование на алгоритмическом языке4
Вариант 1. Алгоритм
начало
ввод x
да
да
“подходит”
x <= 40?
x >= 25?
нет
нет
“не подходит”
“не подходит”
конец
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
5. Вариант 1. Программа на ШАЯ (Кумир)
Программирование на алгоритмическом языке5
Вариант 1. Программа на ШАЯ (Кумир)
алг Сотрудник
нач
цел x
вывод "Введите ваш возраст", нс
ввод x
если x >= 25 то
если x <= 40 то
вывод "Подходит!"
иначе
вывод "Не подходит."
все
иначе
вывод "Не подходит."
все
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
6.
Вариант 1. Программа на языке Паскальprogram p1;
var x: integer;
begin
writeln('Введите возраст');
read ( x );
if x >= 25 then
if x <= 40 then
writeln ('Подходит')
else writeln ('Не подходит')
else
writeln ('Не подходит');
end.
6
7. Вариант 2. Алгоритм
Программирование на алгоритмическом языке7
Вариант 2. Алгоритм
начало
ввод x
да
x >= 25
и
x <= 40?
“подходит”
нет
“не подходит”
конец
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
8. Вариант 2. Программа на ШАЯ (Кумир)
Программирование на алгоритмическом языке8
Вариант 2. Программа на ШАЯ (Кумир)
алг Сотрудник
нач
цел x
вывод "Введите ваш возраст", нс
ввод x
если x >= 25 и x <= 40 то
вывод "Подходит!"
иначе
сложное
вывод "Не подходит."
условие
все
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
9.
Вариант 2. Программа на языке Паскальprogram qq;
var x: integer;
begin
сложное
writeln('Введите возраст');
условие
read ( x );
if (x >= 25) and (x <= 40) then
writeln ('Подходит')
else writeln ('Не подходит')
end.
9
10. Сложные условия
Программирование на алгоритмическом языке10
Сложные условия
равно
Простые условия (отношения)
<
<=
>
>=
=
<>
не равно
Сложное условие – это условие, состоящее из нескольких
простых условий (отношений), связанных с помощью
логических операций:
• И (and – И одновременное выполнение условий))
x >= 25 И x <= 40
• ИЛИ (or – ИЛИ (выполнение хотя бы одного из
условий))
x <= 25 ИЛИ x >= 40
• НЕ (not – НЕ (отрицание, инверсия, обратное условие))
НЕ (x > 25)
x???
<= 25
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
11. Сложные условия
Программирование на алгоритмическом языке11
Сложные условия
Порядок выполнения (приоритет = старшинство)
ШАЯ (Кумир):
• выражения в скобках
• НЕ
• <, <=, >, >=, =, <>
• И
• ИЛИ
Пример на ШАЯ (Кумир):
Паскаль:
• выражения в скобках
• not
• and
• or
• <, <=, >, >=, =, <>
Особенность – каждое из простых условий
обязательно заключать в скобки.
2
1
6
3
5
4
если не (a > 2) или c <> 5 и b < a то
...
все
Пример на языке Паскаль:
4
1
6
2
5
3
if not (a > b) or (c <> d) and (b <> a)
then begin
...
end
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
12. Сложные условия на ШАЯ (Кумир)
Программирование на алгоритмическом языке12
Сложные условия на ШАЯ (Кумир)
Истинно или ложно при a := 2; b := 3; c := 4; d:=5
Да
не (a > b)
Да
a < b и b < c
Нет
a > c или b > c
a < b и b > c
Нет
a > c и b > d
Нет
Да
не (a >= b) или c = d
Да
a >= b или не (c < b)
a > c или b > c или b > a
К. Поляков, 2010-2011
Да
http://kpolyakov.narod.ru
13. Сложные условия на ШАЯ (Кумир)
Программирование на алгоритмическом языке13
Сложные условия на ШАЯ (Кумир)
Для каких значений x истинны условия:
x
x
x
x
x
x
x
x
<
<
>
>
<
<
>
>
6
6
6
6
6
6
6
6
К. Поляков, 2010-2011
и x
и x
и x
и x
или
или
или
или
<
>
<
>
x
x
x
x
x<6
10
нет таких
10
6 < x < 10
10
x > 10
10
x < 10
< 10
> 10
все x
< 10
x>6
> 10
http://kpolyakov.narod.ru
14.
Сложные условия на языке ПаскальИстинно или ложно при 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) and (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
14
15.
Программирование на алгоритмическом языке15
Задания
«3»: Ввести три числа и определить, верно ли, что они
вводились в порядке возрастания.
Пример:
Введите три числа:
4 5 17
да
«4»: Ввести номер месяца и вывести название времени
года.
Пример:
Введите номер месяца:
4
весна
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
16.
Программирование на алгоритмическом языке16
Задания
«5»: Ввести возраст человека (от 1 до 150 лет) и вывести
его вместе с последующим словом «год», «года»
или «лет».
Пример:
Введите возраст:
24
Вам 24 года
К. Поляков, 2010-2011
Введите возраст:
57
Вам 57 лет
http://kpolyakov.narod.ru
17.
Программирование на алгоритмическом языкеК. Поляков, 2010-2011
http://kpolyakov.narod.ru
18.
Наибольшая из 3-х величинПеременной Y присваивается значение большей из трёх
величин A, B и C.
YY
B==>Y
AB
C
Шаг
Y:=A
да
B>Y
нет
Y:=B
1
Константы
А
В
С
10
30
20
Переменная
Y
10
2
да
Y:=C
C>Y
30 > 10 (Да)
нет
3
Условие
30
4
20 > 30 (Нет)
Ответ: Y = 30
19.
Решение линейного уравнения ax + b = 0Список данных
a, b, x - вещ
a, b
да
x:=-b/a
нет
a<>0
да
Корней нет
b<>0
нет
Любое число
20.
Самое главноеДля записи любого алгоритма достаточно трёх
основных алгоритмических конструкций (структур):
следования, ветвления, повторения.
Ветвление - алгоритмическая конструкция, в которой
в зависимости от результата проверки условия (да или
нет)
предусмотрен
выбор
одной
из
двух
последовательностей действий (ветвей).
Алгоритмы, в основе которых лежит структура
«ветвление», называют разветвляющимися.
21.
Опорный конспектВетвление - алгоритмическая конструкция, в которой в
зависимости от результата проверки условия (да или нет)
предусмотрен выбор одной из двух последовательностей действий
(ветвей).
Алгоритмы, в основе которых лежит структура «ветвление»,
называют разветвляющимися.
Да
Действие 1
Условие
Нет
Действие 2
Полная форма ветвления
Да
Условие
Нет
Действие 1
Неполная форма ветвления