Примеры реализации полного и неполного ветвлений в языке Паскаль. Оператор перехода. В этом параграфе рассмотрим еще несколько примеров, иллюстри- рующих использование условного оператора в полной и неполной фор- мах в языке Паскаль. Также приведем пример использования безуслов- ного оператора (оператора перехода). Пример 1. Даны три целых числа a,b,c. Определить, принадлежит ли число c отрезку [a,b]. Ответ на экран выдать в виде сообщения ‘Да’ или ‘Нет’. Указания: Принадлежность числа c отрезку [a,b] определяется c по- мощью булевского выражения (c>=a) and (c<=b). Если оно истинно, то c принадлежит отрезку, иначе – не принадлежит. Соответственно в про- грамме необходимо использовать полную форму условного оператора, на каждой из ветвей которого будет располагаться один оператор вывода writeln c текстом сообщения: Program poln_vetvlen; Var a,b,c : integer; begin write(‘Введите a,b,c’); readln(a,b,c); If (c>=a) and (c<=b) then writeln(‘Да’) else writeln(‘Нет’); end. Пример 2. Даны три вещественных числа. Просуммировать те из них, которые являются положительными. Указания: Эта программа является частным случаем задачи обра- ботки потока данных, а именно – нахождение суммы чисел некоторой последовательности, удовлетворяющих заданному условию. Первона- чально сумму необходимо обнулить, а затем по очереди проверять каж- дое из чисел на выполнение заданного условия, и в случае истинности условия добавлять соответствующее число к сумме с помощью операто- ра присваивания вида: S:=S+<число>. То есть в программе необходимо организовать три последовательных неполных ветвления: 34 Program nepoln_vetvlen; Var a,b,c,s : real; Begin Write(‘введите три числа ’); Readln(a,b,c); S:=0; If a>0 then s:=s+a; If b>0 then s:=s+b; If c>0 then s:=s+c; Writeln( ‘Сумма равна ’,s:5:2) End. В двух рассмотренных примерах на каждой из ветвей стояло по одному оператору. Теперь рассмотрим пример, в котором на каждой ветви будет более одного оператора, то есть необходимо будет исполь- зовать составной оператор: Пример 3. Даны два вещественных числа x и y. Возвести эти числа в квадрат, если оба числа отрицательны, и удвоить их в против- ном случае. Указания: При истинности булевского выражения (x<0) and (y<0) необходимо возводить каждое из чисел в квадрат, то есть выпол- нять два оператора присваивания, при ложности – также два оператора присваивания для умножения каждого из чисел на число 2. Поэтому на ветвях then и else необходимо использовать составной оператор (не за- бывать ставить операторные скобки begin- end): Program sostavn_oper; var x,y: real; begin write(‘Введите 2 числа ’); readln(x,y); if (x<0) and (y<0) then begin x:=sqr(x); y:=sqr(y) end else begin x:=2*x; y:=2*y end; writeln(x:6:2, y:6:2) end.