Операторы цикла


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.

 

 
 

 

 


           
 
 
   
     
 


 
 
Рис. 4.1. Алгоритм с тремя ветвями

 


Программа имеет следующий вид.

 

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.

       
 
 
   
Рис. 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.