Урок 14.04.20. Составной оператор. Многообразие способов записи ветвлений.
Посмотрите видео.
Ознакомьтесь с теоретическим материалом.
В условном операторе и после 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.
Задание к уроку:
- Скачайте файл с заданием. Скачать
- Ответьте на вопросы..
- Отметьте правильные ответы.
- Сохраните изменения в файле.
- Отправьте файл на проверку (нажмите кнопку внизу и заполните форму).