Операторы цикла
End.
Else
Begin
End.
Begin
Var
Begin
End.
End
Begin
Else
Begin
Var
End
Begin
End.
Begin
write ('введите числа a,b'); readln(a, b);
if a > b then max:=a else max:=b;
writeln ( max:10:2 )
Если a > b, то выполняется оператор max:=a (ветвь then), в противном случае – оператор max:=b (ветвь else). После выполнения любой ветви следующим будет выполнен оператор вывода.
Если в одной или в обеих ветвях оператора if необходимо разместить не один, а несколько операторов, то каждую такую группу следует представить в виде одногосоставного оператора.
Составной оператор используется в тех случаях, когда в соответствии с правилами построения конструкций языка можно использовать один оператор, а выполнить нужно несколько действий.
Составной оператор начинается служебным словом begin и заканчивается словом end. Между этими словами размещаются необходимые для вычислений операторы. Слова begin и end играют в составном операторе роль скобок и называются, поэтому операторными скобками. Например
c:=a; a:=b; b:=c
Пример 4.9.Решить уравнение ax2 + bx + c = 0 ( a ¹ 0 )
a, b, c, x1, x2, d : real;
write ('введите a,b,c '); readln (a,b,c);
d := sqr(b) – 4*a*c;
if (d < 0) then write ('корни комплексные ')
d := sqrt (d); a:=2*a;
x1:= ( - b + d ) / a; x2 := ( - b – d ) / a;
writeln (x1:10:2, x2:10:2)
Если условие d < 0 истинно, выводится сообщение «корни комплексные», после чего работа программы заканчивается. В противном случае выполняется else-ветвь, содержащая составной оператор (четыре оператора присваивания и оператор вывода).
Краткая форма условного оператора if. Эта форма используется при программировании ответвлений и имеет вид:
if Логическое выражение then оператор 1;.
Если логическое выражение есть true, то выполняется оператор 1, в противном случае выполняется следующий оператор программы.
Пример 4.10.Даны два числа. Если второе число больше первого – уменьшить его в два раза.
var a, b : real;
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.
Пример 4.11.Вычислить значение функции у по формуле при a > b.
Блок-схема алгоритма приведена на рис. 4.1. Здесь в линейную структуру вложена ветвящаяся, ветвь «нет» которой, в свою очередь, составляет еще одна ветвящаяся структура. Глубина вложения такой ветвящейся структуры равна 2.
![]() |
![]() | |||||
![]() | |||||
![]() | |||||
|
Программа имеет следующий вид.
x, y, a, b : real;
writeln ('введите x, a, b ');
readln (x, a, b);
if x <= a then y := sqr (x)
else if x > b then y := sqr (sqr (x))
else y := x * sqr (x);
writeln ( y:10:2 )
Пример 4.12.Составить программу решения следующей задачи
Схема алгоритма на рис 4.2.
![]() | |||
|
Программа имеет следующий вид:
var x, a, z : real;
write ('введите x,a'); readln (x, a);
if (a = 2) and (x = 1) then z := sqr (a * x)
if (a = 3) or (x = 2) then
z := exp (1 / 3 * ln (x*a))
else z := exp (1 / 5 * ln (x));
writeln ( z:10:2 )
В отличие от предыдущих примеров, где в качестве условий в операторах if использовались выражения отношения, здесь условия представляют собой более сложные логические выражения, содержащие логические операции and и or. В большинстве случаев это делает программу более простой и понятной.
Циклическим называют вычислительный процесс, алгоритм которого представляет собой линейную структуру с вложенными в нее одной или несколькими циклическими структурами, каждая из которых имеет глубину вложения равную 1.
Для организации циклов используются специальные операторы языка, называемые операторами цикла.
В языке TurboPascal таких операторов три: цикл с предусловием While, цикл с постусловием Repeat и цикл с параметром For.