![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Являє собою групу з довільного числа операторів, відділених один від одного знаком <;> та обмежкних операторними дужками, в ролі яких виступають службаві слова 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
Дата публикования: 2014-11-04; Прочитано: 1786 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!