Для организации алгоритмов с процессом разветвления используються условные опероторы. Разветвление зависит от выполнения или невыполнения определееного условия. Иногда в одной ветви ни одна операция не выполняется. В качестве условия используется значение логического выражения. В Pascal имеются два условных оператора: IF и CASE. УСЛОВНЫЙ ОПЕРАТОР
Оператор If является широко распространенным способом изменения возможностей естественного выполнения действий в программе. Согласно синтаксической диаграмме, этот оператор описывается в одном из следующих видов: На алгоритмическом языке Если условие то серия 1 иначе серия 2 все Если условие то серия 1 все На языке Pascal IF THEN ELSE IF THEN Или сокращенно:
Синтаксическая диаграмма условного оператора ВыражениеОператор 1 Оператор 2 Ifthen else Сначала вычисляется выражение, заданное в виде условия после слова IF,является логическим типом (Boolean-булевый ). Если значение условия True (истина), т.е. условие выполняется, тогда выполняется (серия 1), а (серия 2), расположенный после слова Else, не выполняется. Во втором случае, когда значение выражения False (ложь), т.е. условие не соблюдается, то выполняется (серия 2), а (серия 1) не выполняется.
Для облегчения чтения и понимания условные операторы принято писать в ступенчатом виде. If then else В условном операторе часто применяется соствавной оператор следующего вида: If then begin оператор 1; оператор 2; оператор n - 1; оператор n; end.
Разветвление условного оператора в общем виде: Условие Оператор1 Оператор 1 Оператор2 Оператор 2 НетДа
Рассмотрим несколько примеров. Пример 1. Блок – схема этого примера: Начало Ввод х x
Программа на алгоритмическом языке Программа на алгоритмическом языке: алг Е (вещ х, у) арг х рез нач если х
Пример 2: Составьте программу вичисления значений у, зависимых от х, как показано на рисунке: Решение: По указанному графику значение у, зависящее от х, пишется следующим образом: Ј Ј.3,5 ;02,2 ;0, xеслиx x если хх у x y
Блок-схема этой задачи: Начало Ввод х X
Программа на алгоритмическом языке Программа на алгоритмическом языке: Программа на языке Паскаль алг F1 (вещ х, у) арг x рез y нач если x < 2 то y:=x иначе если x < 3 то y:= 2 иначе y:=-x+5 все кон PROGRAM F1 ( INPUT, OUTPUT ); var x, y : real; Begin write ( Введите число х в диапозоне (0; 5) : ); readln ( x ); If x < 2 then y: = x else y: = -x + 5; writeln ( при х =, х:6:1, :4, у =, у:6:3 ); end.
Пример 3.Найдите корни квадратного уравнения Программа на алгоритмическом языке Программа на алгоритмическом языке: aлг квт (вещ а,b,c,x1, x2,лит у ) aрг a, b, c pез x1, x2 вещ D D:=b^2-4*a*c если D < 0 то у:=корней нет иначе все кон Программа на языке Паскаль PROGRAM B5; { решение квадратного уравнения a*x*x + b*x + c} var a,b,c,d,x1,x2:real; begin write ( Введите значения a, b, c: ); readln (a, b, c); D:=sqr(b)-4*a*c; If d
Начало Ввод a, b, c Нет вещ. корней Вывод x, y Конец Блок-схема решения квадратного уравнения
Пример 4. Пусть заданы любые два числа. Если абсолютная величина первого больше, чем второго, то следует уменьшить первое число в пять раз, иначе их нужно оставить как есть. алг В3 (вещ х, у) арг х, у рез нач если abs (x)>abs (y) то x:=x/5 все кон Программа на алгоритмическом языке Программа на языке Pascal PROGRAMM B3; var x, y: real; begin write (x, y=); readln (x, y); If abs (x)>abs (y) then x:=x/5; writeln (x=, x:6:2, :4, y=, y:6:2); end.
Пример 5. ЈЈ 2616,20*2 ;2616,5 или хесли хх хеслиx y Программа на алгоритмическом языке алг В4 (вещ х, у) арг х рез у нач если (x > 16) и (x =16) and (x