Примеры реализации полного и неполного ветвлений в языке
Паскаль. Оператор перехода.
В этом параграфе рассмотрим еще несколько примеров, иллюстри-
рующих использование условного оператора в полной и неполной фор-
мах в языке Паскаль. Также приведем пример использования безуслов-
ного оператора (оператора перехода).
Пример 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.