Задача 1
Проаналізувати, чи є число Y дільником числа X.
Текст програми:
program dilenna;
Uses WinCrt;
var
X,Y : integer;
BEGIN
ClrScr;
writeln('Enter X,Y:');
readln(x,y);
if x mod y=0 then writeln('Yes!')
else writeln('No!');
END.
Умовний оператор IF може бути вкладений в інший, тобто припускається запис вигляду:
IF <Умова1>THEN<Оператор1>
ELSE IF <Умова2>THEN<Оператор2>
ELSE ...;
Задача 2
Постановка задачі:
Розробити блок-схему та програму обчислення значення функції
Значення x – дійсне і вводиться з клавіатури.
Схема алгоритму:
так
ні
ні
так
Лістинг програми:
Program MultiFunction;
Uses WinCrt; {Підключення модуля керування виводом на екран}
Var
x,y: real;
Begin
ClrScr; {Очищення екрану}
Writeln(‘Програма реалізації розгалужених алгоритмів’);
Writeln;
Writeln(‘Розробив студент групи _______ _________________’);
Writeln;
{Введення початкових даних}
Writeln(‘Введіть значення Х’);
Readln(x);
{Обчислення значення функції}
If x<=0 Then y:=Sin(2*Sqr(x)) Else
If x>=1 Then y:= Sqrt(Sqr(x)+5)
Else y:= Cos(x+1);
{Виведення результату}
Writeln(‘x=’,x:4:1,’ ‘,’y=’,y:5:2);
Writeln(‘Програма роботу закінчила’);
End.
Задача 3
Постановка задачі:
Розробити блок-схему та програму обчислення значення функції
Схема алгоритму:
так
ні
так
ні
ні так
f= - π
f=sin((x+y)/3)
Лістинг програми:
program BoolOperation;
uses WinCrt;
var x,y,f:real;
begin
clrscr;
write(‘Введіть x та y:’);
readln(x,y);
if (x>0) and (y<0) then f:=exp(y*ln(x)) else
if x*y>0 then f:=arctan(x/y) else
if (trunc(x) mod 3=0) or (trunc(y) mod 3=0)
then f:=sin((x+y)/3
else f:=-pi;
writeln(‘f=’,f:7;2);
end.
Задача 4
Постановка задачі:
Розробити блок-схему та програму знаходження найбільшого з трьох цілих чисел max(a, b, c).
Схема алгоритму:
Лістинг програми:
program Max3;
uses WinCrt;
var a,b,c,max:integer;
begin
clrscr; {Очищення екрану}
writeln(‘Введіть три числа’);
readln(a,b,c); {Введення вхідних даних}
if a>b then max:=a {Якщо а>b, то max=a…}
else max:=b; {…інакше max=b}
if c>max then max:=c; {Якщо c>max, то max=c}
Writeln(‘max=’,max:4) {Виведення результата}
end.
Оператор варіанту CASE також дає можливість ефективно організувати розгалуження у Pascal-програмах. Якщо слід обирати більше ніж з 2 – 4 гілок, він дає перевагу порівняно із вкладеними операторами IF.
Синтаксис оператора CASE:
CASE <Керуюча змінна або вираз типу ORDINAL> OF
<Набір значень1>: <Оператор1>;
<Набір значень2>: <Оператор2>;
...
<Набір значень N>: <Оператор N>
ELSE <Альтернативний оператор>;
END;
Тут між службовими словами CASE та OF має стояти змінна або вираз перераховуваного (ORDINAL) типу, тобто Byte, Shortint, Interger, Word, Char, Boolean або діапазон. Набір значень – це конкретні значення змінної або виразу, за яких необхідно виконати відповідний оператор, ігноруючи інші. Якщо в наборі кілька значень, вони відділяються комою. Припускається вказувати також діапазони значень. Альтернативна гілка ELSE не є обов’язковою. Завершується конструкція CASE оператором end.
Приклад програми з оператором CASE, що аналізує введений символ:
