Similar presentations:
Разветвляющиеся алгоритмы на языке Паскаль
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=-51 Ввод 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 формула , х ay 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;