Разветвленные алгоритмы.
Поиск наименьшего значения из трех чисел x, y и z.
Вычисление значения функции, в зависимости от значения аргумента
Перевод алгоритма на Pascal
Замена значения одной величины из трех заданных

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

1.

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

2.

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

3. Разветвленные алгоритмы.

В некоторых задачах для получения конечного
результата рассматриваются несколько вариантов решения
(два и больше). Выбор варианта производится в
зависимости от условия (простого или сложного) с
помощью условного оператора:
IF … THEN … ELSE…;
или
IF…
THEN…;
(полная форма)
(неполная форма).
if
if
then
Решение1
условие
else
Решение2
then
Решение
условие
else

4.

Задача 1: в блок – схеме алгоритма
вычисления значения функции
4, если x 1 0 ; заполните пустые блоки.
y
3, если x 1 0 .
начало
Ввод
x
да
X-1<0
y=4
нет
y=3
Вывод
y
конец

5.

X=-5
1 Ввод x
начало
1
3
да
2
Ввод
x
X-1<0
y=4
y=3
4 Вывод
y
конец
2
X-1<0 -5-1<0,да
3
Y=4
4
нет
-5
Вывод
y
4

6.

X=5
начало
1
да
2
нет
3
конец
5
2
X-1<0
5-1<0, нет
4
X-1<0
4 Вывод
y
Ввод x
3
Ввод
x
y=4
1
y=3
Y=3
Вывод
y
3

7.

ПОЛНАЯ ФОРМА
ВЕТВЛЕНИЯ
НА АЛГОРИТМИЧЕСКОМ
ЯЗЫКЕ
Если
условие
то
серия команд 1
иначе серия команд 2
конец ветвления
НА ЯЗЫКЕ ПАСКАЛЬ
IF <условие>
then <серия команд 1>
else <серия команд 2>;

8.

НЕПОЛНАЯ ФОРМА
ВЕТВЛЕНИЯ
НА АЛГОРИТМИЧЕСКОМ
ЯЗЫКЕ
Если
условие
то
серия команд 1
конец ветвления
НА ЯЗЫКЕ ПАСКАЛЬ
IF <условие>
then <серия команд 1>;

9.

Операции отношения:
< - меньше
> - больше
<= - меньше или равно
>= - больше или равно
<> - не равно
= - равно

10.

Задание: по известной блок-схеме
cоставить программу на языке Паскаль
начало
Ввод
x
да
X-1<0
y=4
нет
y=3
Вывод
y
конец
Program z1;
Var Y: Integer;
X: Real;
Begin
Write( ’ vvedi x= ’ );
Read ( x);
If x-1<0 then
y:=4
else y:=3;
Write ( ’ y= ’ , y );
Readln;
End.

11. Поиск наименьшего значения из трех чисел x, y и z.

Решение состоит в следующем: сначала сравниваем
два числа х и у (полная форма), а затем
наименьшее из них (min) сравниваем с третьим
числом z. Если z меньше минимального, то
присваиваем минимальному значение z, иначе
ничего не делаем (неполная форма).
VAR x, y, z, min: real;
BEGIN
READ(x, y, z);
if x < y then min := x else min := y;
if z < min then min := z;
Write(min);
END.

12. Вычисление значения функции, в зависимости от значения аргумента

1 формула , х a
y 2 формула , a x b
3 формула , в остальных случаях
В таких задачах эффективней использовать
вложенный
условный
оператор,
чем
последовательную проверку каждого интервала.
Используя вложенный условный оператор, мы
уменьшаем количество операторов до одного
вместо того количества, которое соответствует
количеству возможных вариантов решения. Также
уменьшается
общее
количество
операций
отношения в проверяемых условиях (ветвь else
исключает ранее проверенное условие), что
делает алгоритм быстрым.

13.

начало
Начать построение
блок-схемы (повторить)
х
нет
да
да
x≤1
x=8
да
нет
нет
x < -1
У = х*х
У = 3*х – 5
У=(1 – х)/(х – 8)
Вывод
y
дальше
Вывод
‘нет решений’
конец

14. Перевод алгоритма на Pascal

Var x, y: real;
BEGIN
Read(x);
if x=8
then WRITE(‘Нет решений')
else begin
if x<=1
then if x<-1
then y:=sqr(x)
else y:=3*x-5
else y:=(1-x)/(x-8);
write(y);
end;
END.

15. Замена значения одной величины из трех заданных

В этом случае эффективней вместо трех
последовательных
условных
операторов
использовать один с вложением двух других.
Составить алгоритм, который наибольшее из
трех вещественных чисел a, b, c заменяет их
средним значением.
if (a > b) and (a > c) then а := (а + b + c) / 3
else
if (b > a) and (b > c) then b := (а + b + c) / 3
else
if (c > b) and (c > a) then c := (а + b
+ c) / 3;
English     Русский Правила