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

К уроку 21 - разветвляющиеся алгоритмы.pptx

  • Количество слайдов: 15

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

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

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

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

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

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

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

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

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

Задание: по известной блок-схеме cоставить программу на языке Паскаль начало Ввод x да X-1<0 Задание: по известной блок-схеме cоставить программу на языке Паскаль начало Ввод x да X-1<0 y=4 нет y=3 Вывод y конец Program z 1; 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.

Поиск наименьшего значения из трех чисел x, y и z. Решение состоит в следующем: Поиск наименьшего значения из трех чисел 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.

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

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

Перевод алгоритма на Pascal Var x, y: real; BEGIN Read(x); if x=8 then WRITE(‘Нет Перевод алгоритма на 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.

Замена значения одной величины из трех заданных В этом случае эффективней вместо трех последовательных Замена значения одной величины из трех заданных В этом случае эффективней вместо трех последовательных условных операторов использовать один с вложением двух других. Составить алгоритм, который наибольшее из трех вещественных чисел 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;