Розгалужений процес вміщує декілька шляхів. Вибір того чи іншого шляху залежить від виконання деяких умов. У багатьох випадках виникає потреба в зміні послідовного порядку операторів, що стає можливим завдяки операторам управління. До них в першу чергу відносяться IF та CASE.
Оператор IF реалізує операцію умовного переходу (операцію розгалуження на два напрямки).
Загальний вигляд:
If умовний вираз then…else…;
В умовному виразі задається умова розгалуження. При виконанні оператора IF цей вираз обчислюється з отриманням логічного результату. Якщо результат True, то виконується простий або складний оператор після слова Then. Якщо результат False, то виконується оператор після Else.
Наприклад:
If A<7.2 then Y:=5*A else Y:=5/A;
Частину оператора Else … можна не вживати:
If X>0 then K:=K+1;
Це означає, що у випадку, коли число Х більше нуля, буде виконано оператор K:=K+1. Якщо така умова для конкретного числа хибна, то змінення К не відбувається, а управління передається на оператор, який в програмі записано після оператора If.
Складений оператор Begin…End суттєво розширює можливості If:
If X>0 then begin
K:=K+1;
R:=a;
End
Else begin
L:=L+1;
Q:=A;
End;
У складному операторі записують будь-яку кількість операторів. Вони виконуються “як одне ціле”. Тут можуть бути “свої” If, цикли, тощо.
Зверніть увагу на те, що після оператора, який стоїть перед Else, не ставиться крапка з комою.
Оператор Case забезпечує розгалуження на декілька напрямків.
Загальний вигляд:
Case індекс вибору of список вибору;
Else…; End;
де індекс вибору – проста змінна цілого, символічного, перелічуваного або логічного типу;
список вибору – сукупність простих або складних операторів, перед кожним з яких стоїть константа вибору, тип якої співпадає з типом індексу вибору.
Після слова Else може стояти простий або складний оператор (ця конструкція може бути відсутня).
Приклад:
Case Kit of
1: Y:=sin(x);
2: Y:=cos(x);
3: Y:=sin(x)+cos(x);
Else Y:=0;
End; {case}
Змінна Kit (цілого типу) повинна бути визначеною до виконання оператора Case. Якщо Kit дорівнює 1, обчислюється функція Y:=sin(x), якщо вона дорівнює 2, то : Y:=cos(x). У тому випадку, коли Kit відрізняється від 1, 2 або 3, буде виконано оператор Y:=0.
У списку вибору можна вживати складний оператор Вegin… End.
Розгалужений процес вміщує декілька шляхів. Вибір того чи іншого шляху залежить від виконання деяких умов. У багатьох випадках виникає потреба в зміні послідовного порядку операторів, що стає можливим завдяки операторам управління. До них в першу чергу відносяться IF та CASE.
Оператор IF реалізує операцію умовного переходу (операцію розгалуження на два напрямки).
Загальний вигляд:
If умовний вираз then…else…;
В умовному виразі задається умова розгалуження. При виконанні оператора IF цей вираз обчислюється з отриманням логічного результату. Якщо результат True, то виконується простий або складний оператор після слова Then. Якщо результат False, то виконується оператор після Else.
Наприклад:
If A<7.2 then Y:=5*A else Y:=5/A;
Частину оператора Else … можна не вживати:
If X>0 then K:=K+1;
Це означає, що у випадку, коли число Х більше нуля, буде виконано оператор K:=K+1. Якщо така умова для конкретного числа хибна, то змінення К не відбувається, а управління передається на оператор, який в програмі записано після оператора If.
Складений оператор Begin…End суттєво розширює можливості If:
If X>0 then begin
K:=K+1;
R:=a;
End
Else begin
L:=L+1;
Q:=A;
End;
У складному операторі записують будь-яку кількість операторів. Вони виконуються “як одне ціле”. Тут можуть бути “свої” If, цикли, тощо.
Зверніть увагу на те, що після оператора, який стоїть перед Else, не ставиться крапка з комою.
Оператор Case забезпечує розгалуження на декілька напрямків.
Загальний вигляд:
Case індекс вибору of список вибору;
Else…; End;
де індекс вибору – проста змінна цілого, символічного, перелічуваного або логічного типу;
список вибору – сукупність простих або складних операторів, перед кожним з яких стоїть константа вибору, тип якої співпадає з типом індексу вибору.
Після слова Else може стояти простий або складний оператор (ця конструкція може бути відсутня).
Приклад:
Case Kit of
1: Y:=sin(x);
2: Y:=cos(x);
3: Y:=sin(x)+cos(x);
Else Y:=0;
End; {case}
Змінна Kit (цілого типу) повинна бути визначеною до виконання оператора Case. Якщо Kit дорівнює 1, обчислюється функція Y:=sin(x), якщо вона дорівнює 2, то : Y:=cos(x). У тому випадку, коли Kit відрізняється від 1, 2 або 3, буде виконано оператор Y:=0.
У списку вибору можна вживати складний оператор Вegin… End.
Приклад: скласти програму обчислення функції
Програма:
Var X, Y, Z, F : Real;
Begin
Write(‘Введіть Y, Z :’);
ReadLn(Y,Z);
Write(‘Введіть X :’);
ReadLn(X);
IF (X>=Y) THEN F:=SQR(X)+EXP(Z)/COS(Y)
ELSE F:=SIN(X)+COS(Z);
WriteLn(‘Значення F=’,F);
End.
1)var
a:array[1..5]of integer;
i,n,s:integer;
begin
writeln('Введите кол-во элементов');
readln(n);
writeln('Введите число');
s:=0;
for i:=1 to n do begin
read(a[i]);
if a[i]>0 then s:=s+a[i]
end;
writeln('Сумма положительных элементов массива равна ', s)
end.
2)var
a:array[1..10]of integer;
i,n,P:integer;
begin
writeln('Введите число элементов');
readln(n);
writeln('Введите число');
P:=1;
for i:=1 to n do begin
read(a[i]);
if a[i] mod 6 = 0
then P:=P*a[i]
end;
writeln('Произведение элементов массива кратных 6 равна ',P)
end.
3)var
a:array[1..5]of integer;
n,i:integer;
begin
writeln('Введите кол-во элементов');
readln(n);
writeln('Введите число');
for i:=1 to n do begin
read(a[i]);
if a[i]>0 then begin
a[i]:=a[i]*3;
writeln('Новый элемент равен: ',a[i])
end;
if a[i]<=0 then begin
a[i]:=a[i]+5;
writeln('Новый элемент равен: ',a[i])
end;
end;
end.
Буду рад если отметишь мой ответ как лучший