PASCAL має засоби програмування, що дозволяють залежно від виконання або невиконання певних умов пропустити групу операторів або замінити її іншими операторами:
Та ні Та ні
Наприклад: 1) Х<>0 2) X >MAX
Y:= Sin(X) /X Рішення немає Max:= X
Такі програми називаються такими, що розгалужуються, а процес неоднозначного рішення — галуженням.
У PASCAL – програмах процеси, що розгалужуються, реалізуються за допомогою Умовних операторів. Умовний оператормає наступну структуру:
IF <умова > THEN <оператор 1 > ELSE <оператор 2 >,
Умовний оператор виконується таким чином: якщо (IF) виконується <условие>, тоді (THEN) виконується <оператор 1>, інакше (ELSE) виконується <оператор 2>. Після виконання Умовного оператора виконується наступний за ним оператор програми.
Якщо після слів THEN, ELSE необхідно виконати декілька операторів, то їх необхідно укласти в операторні дужки BEGIN . END. Такий оператор називається СКЛАДЕНИМ. Він може включати і інші Умовні оператори.
Умови в Умовному операторі записуються за допомогою логічних виразів, тобто виразів, що містять операції порівняння: (=), (<), (>), (<=), (>=), (<>).
У операціях порівняння можуть брати участь тільки вирази одного типа — числа (цілі або речовинні), символи, рядки.
При створенні складних умов використовуються логічні операції: NOT, AND, OR, XOR.
Наприклад: d >= 0; (x< pi) AND (cos(x)<>0); (liter = ‘П’) OR (liter = ‘п’).
При записі логічного виразу, як і виразів будь-якого іншого типа, дотримується пріоритет операцій: — (дужки); — NOT; — DIV, MOD, AND *, / ; — (+), (—), OR, XOR ; — (=) (<>) (<=) (>=) .
Приклад:Знайти коріння квадратного рівняння ( Ax2 + Bx + C = 0 ).
PROGRAM korni;
{ У цій програмі обчислюється коріння квадратного рівняння}
USES crt;
VAR A,B,C,D : REAL;
X1,X2 : REAL;
BEGIN
Clrscr;
READLN (A,B,C)
D : = SQR(B) — 4*A*C;
IF D <0 THEN WRITELN(‘Рішення немає’) { Цей оператор виконується якщо D<0}
ELSE BEGIN X1 : = (- B + D)/2*A; { Цей складений оператор виконується } X2 : = (- B - D)/2*A; { якщо не виконується умова D<0 }
WRITELN(‘X1=’,X1,’X2=’,X2)
END;
Readkey { Цей оператор виконується після Умовного}