Читайте также:
|
|
Вычислительные процессы, алгоритм которых содержит хотя бы одну типовую ветвящуюся структуру, называются ветвящимися.
Для организации ветвлений в программах используют операторы передачи управления (операторы перехода).
Допускается запись условного оператора в двух формах - полной и краткой.
Полная форма условного оператора if предназначена для программирования разветвлений и имеет вид:
If Логическое выражение then оператор 1 else оператор 2;
где оператор1, оператор2 – простые (в том числе и условные) или составные операторы. Здесь используются ключевые слова: if – если; then [зен] – тогда (то); else [элз] – иначе.
В дальнейшем для удобства изложения оператор 1 будем называть then-ветвью, а оператор 2 - else-ветвью. Подчеркнем, что в каждой из ветвей может находиться только один оператор. Перед else символ ’; ’ не ставится никогда.
Оператор if выполняется так:
1) вычисляется значение логического выражения, результат вычислений анализируется;
2) если результатом является true, выполняется оператор 1, если false – оператор 2.
После выполнения любой из ветвей выполняется следующий по порядку оператор программы.
Пример 3.8. Составить программу нахождения максимального из двух чисел.
var a, b, max: real;
Begin
write ('введите числа a,b'); readln(a, b);
if a > b then max:=a else max:=b;
writeln (max:10:2)
End.
Если a > b, то выполняется оператор max:=a (ветвь then), в противном случае – оператор max:=b (ветвь else). После выполнения любой ветви следующим будет выполнен оператор вывода.
Если в одной или в обеих ветвях оператора if необходимо разместить не один, а несколько операторов, то каждую такую группу следует представить в виде одного составного оператора.
Составной оператор используется в тех случаях, когда в соответствии с правилами построения конструкций языка можно использовать один оператор, а выполнить нужно несколько действий.
Составной оператор начинается служебным словом begin и заканчивается словом end. Между этими словами размещаются необходимые для вычислений операторы. Слова begin и end играют в составном операторе роль скобок и называются, поэтому операторными скобками. Например
Begin
c:=a; a:=b; b:=c
End
Пример 3.9. Решить уравнение ax2 + bx + c = 0 (a ¹ 0)
Var
a, b, c, x1, x2, d: real;
Begin
write ('введите a,b,c '); readln (a,b,c);
d:= sqr(b) – 4*a*c;
if (d < 0) then write ('корни комплексные ')
Else
Begin
d:= sqrt (d); a:=2*a;
x1:= (- b + d) / a; x2:= (- b – d) / a;
writeln (x1:10:2, x2:10:2)
End
End.
Если условие d < 0 истинно, выводится сообщение «корни комплексные», после чего работа программы заканчивается. В противном случае выполняется else-ветвь, содержащая составной оператор (четыре оператора присваивания и оператор вывода).
Краткая форма условного оператора if. Эта форма используется при программировании ответвлений и имеет вид:
if Логическое выражение then оператор 1;.
Если логическое выражение есть tru e, то выполняется оператор 1, в противном случае выполняется следующий оператор программы.
Пример 3.10. Даны два числа. Если второе число больше первого – уменьшить его в два раза.
var a, b: real;
Begin
write ('введите a, b '); readln (a, b);
if a < b then b:= b / 2;
writeln (a:10:2, b:10:2)
end.
В операторе if непосредственно за ключевыми словами then и else могут следовать любые операторы, в том числе и операторы if. В этом случае они называются вложенными. Ниже приведены примеры, в которых используются вложенные операторы if.
Пример 3.11. Вычислить значение функции у по формуле при a > b.
Блок-схема алгоритма приведена на рис. 4.1. Здесь в линейную структуру вложена ветвящаяся, ветвь «нет» которой, в свою очередь, составляет еще одна ветвящаяся структура. Глубина вложения такой ветвящейся структуры равна 2.
|
Программа имеет следующий вид.
Var
x, y, a, b: real;
Begin
writeln ('введите x, a, b ');
Дата добавления: 2015-07-18; просмотров: 110 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример 3.4 | | | Вычисление сумм |