При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор. Его общий вид:
Для записи неполных ветвлений используется неполная форма условного оператора:
Слова if — then — else переводятся с английского языка на русский как если — то — иначе, что полностью соответствует записи ветвления на алгоритмическом языке.
Обрати внимание!
Перед else знак «;» не ставится.
В качестве условий используются логические выражения:
- простые — записанные с помощью операций отношения;
- сложные — записанные с помощью логических операций.
Пример:
Алгоритм определения принадлежности точки x отрезку [a,b] . Если точка x
принадлежит данному отрезку, то выводится ответ ДА, в противном случае —
НЕТ. Запишем на языке Паскаль алгоритм определения принадлежности
точки x отрезку [a,b] .
Пример:
Алгоритм, в котором переменной y присваивается значение большей из трёх величин a , b и c . Запишем на языке Паскаль данный алгоритм.
В условном операторе и после then, и после else
можно использовать только один оператор. Если при некотором условии
требуется выполнить определённую последовательность операторов, то их
объединяют в один составной оператор.
Конструкция вида
называется составным оператором.
Пример:
Алгоритм решения квадратного уравнения тебе хорошо известен. Запишем соответствующую программу на языке Паскаль.
program uravnenie;
var a, b, c: real;
var d: real;
var x, x1, x2: real;
begin
writeln ('Решение квадратного уравнения');
write ('Введите коэффициенты a, b, c >>');
readln (a, b, c);
d:=b*b-4*a*c;
if d<0 then writeln ('Корней нет');
if d=0 then
begin
x:=-b/2*a;
writeln ('Корень уравнения x=', x:9:3)
end;
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln ('Корни уравнения:');
writeln ('x1=', x1:9:3);
writeln ('x2=', x2:9:3)
end;
end.
var a, b, c: real;
var d: real;
var x, x1, x2: real;
begin
writeln ('Решение квадратного уравнения');
write ('Введите коэффициенты a, b, c >>');
readln (a, b, c);
d:=b*b-4*a*c;
if d<0 then writeln ('Корней нет');
if d=0 then
begin
x:=-b/2*a;
writeln ('Корень уравнения x=', x:9:3)
end;
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln ('Корни уравнения:');
writeln ('x1=', x1:9:3);
writeln ('x2=', x2:9:3)
end;
end.
В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:
При использовании таких сложных конструкций (их ещё называют вложенными ветвлениями) следует иметь в виду, что else всегда относится к ближайшему оператору if.
Пример:
Воспользуемся вложенным ветвлением для записи на языке Паскаль алгоритма решения линейного уравнения ax+b=0 .
program lin_urav;
var
a,b,x:real;
begin
writeln('Решение линейного уравнения');
write('Введите коэффициенты a и b<<');
readln(a,b);
if a<>0 then
begin
x:=-b/a;
writeln('Корень уравнения x=',x:9:3);
end
else if b<>0 then writeln ('Корней нет')
else writeln(' x - любое число');
end.
Как
правило, для решения одной и той же задачи можно предложить несколько
алгоритмов. Убедимся в этом, записав программу решения линейного
уравнения, не прибегая к вложенным ветвлениям.
program lin_urav_2;
var
a,b,x:real;
begin
writeln('Решение линейного уравнения');
write('Введите коэффициенты a и b<<');
readln(a,b);
if a<>0 then
begin
x:=-b/a;
writeln('Корень уравнения x=',x:9:3);
end;
if (a=0) and (b<>0) then writeln('Корней нет');
if (a=0) and (b=0) then writeln('x-любое число')
end.
Комментариев нет:
Отправить комментарий