Сайт учителя

Тинькова Е.Н.

Урок 30

 


3.4.2. Составной оператор

В условном операторе и после then, и после else можно исполь­зовать только один оператор. Если при некотором условии требует­ся выполнить определённую последовательность операторов, то их объединяют в один составной оператор.
Конструкция вида

begin  <последовательность операторов>  end

 называется составным оператором.

Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.

program n_11;

var a, b, с: real;
var d: real;
var x, x1, x2: real;

begin

writeln ('Решение квадратного уравнения');
write ('Введите коэффициенты а, b, c>>');
readln (a, b, с);
d:=b*b-4*a*c;
if d<0 then writeln ('Корней нет');
if d=0 then

begin

x:=-b/2/a;
writeln ('Корень уравнения х=', х: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.


3.4.3. Многообразие способов записи ветвлений

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

if  <условие1>   then

if  <условие2>   then   <оператор1>
else  <оператор2>

При использовании таких сложных конструкций (их ещё называ­ют вложенными ветвлениями) следует иметь в виду, что else всегда относится к ближайшему оператору if.

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма ре­шения линейного уравнения.

program n_12;

   var a, b, x: real;

begin

writeln ('Решение линейного уравнения’);
write ('Введите коэффициенты а, b>>');
readln (a, b); 
if a<>0 then

begin

x:=-b/a;
writeln ('Корень   уравнения   х=',   х:9:3)

end

else  if  b<0   then  writeln   ('Корней  нет')

     else  writeln   (' x  -  любое  число');

end.

Как правило, для решения одной и той же задачи можно предло­жить несколько алгоритмов. Убедимся в этом, записав программу решения линейного уравнения, не прибегая к вложенным ветвле­ниям.

program n_l3;

var a, b, x: real;

begin

writeln ('Решение линейного уравнения');
write ('Введите коэффициенты а, b>>');
readln (a, b);
if а<>0 then

begin
x:=-b/a;
writeln   ('Корень   уравнения   х=',   х:9:3):

end;

if (a=0) and (b<>0) then  writeln ('Корней  нет’);

if (a=0) and (b=0) then writeln ('x  - любое  число’);

end.

Возможно, второй вариант программы покажется вам более на­глядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.

Используйте вложенные ветвления для записи программы, определя­ющей принадлежность точки х отрезку [а, b].


Вопросы и задания

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполне­нии заданий.

2. Как на языке Паскаль записывается полное и неполное ветвление?

3. Является ли условным оператором следующая последовательность символов?

а) if  x<y  then  x:=0  else read(у)
б) if  x>=y  then  x:=0;   y:=0  else write(z)
в) if  x<y<z   then  a:=a+l

4. Что такое составной оператор? Для чего он используется в условном операторе?

5. Дан условный оператор:

if  a<5   then  c:=l
else  if  a>5   then  с: =2

else  с:=3

Какое значение имеет переменная а, если в результате выпол­нения условного оператора переменной с присваивается значе­ние 3?


САМОЕ ГЛАВНОЕ

 

Block title

Вход на сайт

Поиск

Календарь

«  Декабрь 2024  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Статистика


Онлайн всего: 12
Гостей: 12
Пользователей: 0

Архив записей