§ 3.4. Программирование разветвляющихся алгоритмов
3.4.3. Многообразие способов записи ветвлений
В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:
При использовании таких сложных конструкций (их ещё называют вложенными ветвлениями) следует иметь в виду, что else всегда относится к ближайшему оператору if.
Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма решения линейного уравнения.
program n_12;
var a, b, х: real;
begin
writeln ('Решение линейного уравнения');
write ('Введите коэффициенты а, b>>');
readln (а, b) ;
if а<>0 then
begin
х:=-b/a;
writeln ('Корень уравнения х=', х: 9: 3)
end
else if b<>0 then writeln ('Корней нет')
else writeln ('x - любое число');
end.
Как правило, для решения одной и той же задачи можно предложить несколько алгоритмов. Убедимся в этом, записав программу решения линейного уравнения, не прибегая к вложенным ветвлениям.
program n_13;
var a, b, х: real;
begin
writeln ('Решение линейного уравнения');
write ('Введите коэффициенты а, b>>');
readln (а, b) ;
if а<>0 then
begin
x:=-b/a;
writeln ('Корень уравнения х=', х:9:3)
end;
if (а=0) and (b<>0) then writeln ('Корней нет');
if (a=0) and (b=0) then writeln ('x - любое число')
end.
Возможно, второй вариант программы покажется вам более наглядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.
Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а, b].
|