Таблиця 6

Операція Прiоритет Вид операцiї
@, not, +, - *, /, div, mod, and, shl, shr +, -, or, xor =, < >, <, >, <=, >=, in Перший Другий Третiй Четвертий Унарна операцiя Операцiї типу множення Операцiї типу додавання Операцiї відношення

 

3.1.6. Структуровані оператори

Структуровані оператори являють собою об'єднання, побудовані з інших операторів за певними правилами. Структуровані оператори поділяються на три групи: складені, умовні та повтору.

 

3.1.6.1. Складений оператор

Являє собою групу з довільного числа операторів, відділених один від одного знаком <;> та обмежкних операторними дужками, в ролі яких виступають службаві слова BEGIN та END. Формат складеного оператора:

Begin

<оператор 1>;

. . . . . .

<оператор N>;

End;

Приклад:

Begin

a:=a*b+sin(x);

rez:=a+b+Pi;

Writeln('z=',rez);

End;

Складений оператор сприймається як єдине ціле (серія команд). Такий оператор може розміщуватися скрiзь, де допустимий простий оператор. Як правило, складений оператор використовується в умовних операторах та операторах повтору.

 

3.1.6.2. Умовні оператори

Умовнi оператори забезпечують використання, або невикористання деякого оператора, або блоку в залежностi вiд заданих умов. В Turbo-Pascal є два умовних оператора: IF та CASE.

Оператор IF може приймати одну з двох форм:

1. IF <умова> THEN <оператор 1> ELSE <оператор 2>

2. IF <умова> THEN <оператор>

Тут <умова> - вираз булiвського типу. В першому випадку, якщо значення виразу iстине, виконується <оператор 1>, якщо хибне - <оператор 2>. В другому випадку, якщо вираз має значення True, виконується <оператор>, якщо False - оператор, що слiдує за IF.

В ролi операторiв, що входять в склад IF, можуть виступати простi, або складнi оператори.

Приклад:

if ((X*X+Y*Y)<=R*R)and(Y>=0)

then Writeln('Точка належить заданій фігурі')

else Writeln('Точка не належить заданій фігурі');

Оператори IF можуть бути вкладеними всередині складеного оператора.

Приклад: Read (CH);

if CH="N" then Parol:=True else Parol:=False;

Read(Cod);

if Parol=True then if Cod=100 then Write("Пароль і код не правильні")

При вкладених операторах кожне ELSE відповідає тому THEN, яке безпосередньо знаходиться перед ELSE. Для зміни цього порядку використовуються операторні дужки BEGIN-END.

Приклад: if (a=b) and (c=d) then

begin

Writeln("Норма"); F:=0;

if c=0 then F:=1;

end;

else Writeln ("Перевищення норми");

Оператор вибору CASE є узагальненням оператора IF i дозволяє зробити вибiр з довiльного числа варiантiв. Вiн складається з виразу, що зветься селектором, та списку параметрiв (операторiв), кожному з яких вiдповiдає список констант вибору (список може складатися i з однiєї константи). Як і в операторі IF, тут може міститися слово ключове слово ELSE, що має той самий смисл.

Форма оператора:

CASE <вираз-селектор> OF

<список 1> :<оператор 1;>

<список 2> :<оператор 2;>

. . . . . . . . . . . . .

<cписок N> :<оператор N;>

[ELSE <оператор>]

End;

Ключове слово ELSE та <оператор> не є обов'язковим елементом. Якщо список констант вибору містить більше однієї константи, то вони відділяються комами. Тип константи обов'язково повинен співпадати з типом селектора. Список констант вибору складається з довільного числа значень або діапазонів. Межі діапазону описуються двома константами через роздільник <..>.

Приклади:

1) Cелектор iнтервального типу:

Case i of

1..10 : Writeln ('число',i,'в межах 1-10');

11..20 : Writeln ('число',i,'в межах 11-20');

else Writeln ('число',i,'поза межами контролю')

end

2) Селектор перелiчувального типу. Перелiчувальний тип не може безпосередньо вводитися з клавiатури в програму та виводитися на дисплей. Для цього використовуються спецiальнi прийоми з використанням оператора CASE:

Var Season : (winter,spring,summer,autumn);

Begin

. . . . . . . . . . . . . . .

Case season of

winter : Writeln( "Winter");

spring : Writeln("Spring");

summer : Writeln("Summer");

autumn : Writeln("Autumn")

end;

Приклад:

Обчислити значення функції використовуючи умовний оператор IF (повну і скорочену форму)

Текст програми

Program Rozgal;

Var x,y,a:real;

Begin Writeln ('Введіть змінну х:');

Write ('x=');

Readln(x);

A:=x*x*x+1;

If x<=0 then y:=A-(abs(sin(x))+2*x) else If x>3 then

y:=A-(3*sqr(x)-2) else y:=A-(sin((sqr(x)+1)/2*x)/cos((sqr(x)+1)/2*x));

Writeln('y=',y:8:3)

End.

Результат виконання програми

Введіть змінну х:

х=-1

У= 1,159

Введіть змінну х:

х=2

У= 12,381

Введіть змінну х:

х=4.5

у= 33,375

Приклад:

Обчислити значення функції використовуючи оператор вибору CASE.

Текст програми

Program Rozgal;

Var x,y1,y2,y3,a:real;i:integer;

Begin Writeln ('Введіть змінну х:');

Write ('x=');

Readln(x);

A:=x*x*x+1;

If x<=0 then

Begin y1:=A-(abs(sin(x))+2*x); i:=1;

end;

If x>3 then

Begin y2:=A-(3*sqr(x)-2); i:=2;

end;

If (x<=3) and (x>0) then y3:=A-(sin((sqr(x)+1)/2*x)/cos((sqr(x)+1)/2*x));

Case i of

1:Writeln('y=',y1:8:3);

2:Writeln('y=',y2:8:3)

else Writeln('y=',y3:8:3);

end;

End.

Результат виконання програми

Введіть змінну х:

х=-1

У= 1,159

Введіть змінну х:

х=2

У= 12,381

Введіть змінну х:

х=4.5

у= 33,375