
Лабораторна робота №2 Тема. Програмування розгалужених алгоритмів
Завдання. Обчислити значення функції
де D - область трикутника з вершинами A(xА, yА), B(xВ, yВ), C(xС, yС).
Розгалуженним називається алгоритм, послідовність виконання дій якого залежить від виконання деякої умови. Умова в Turbo Pascal задається логічним виразом, операндами якого є дані логічного типу.
1. Дані логічного типу
Дані логічного типу можуть приймати лише два значення: логічний 0 та логічна 1. Відповідно до цього в Turbo Pascal є дві логічні константи: true (логічна 1) та false (логічний 0). Ці константи можуть бути поіменовані в розділі const.
Наприклад:
const
t=true; f=false;
Змінні логічного типу описуються в розділі var:
var
список змінних:boolean;
Приклад.
var
a1,a2,b1,b2 :boolean;
Описуються змінні a1,a2,b1,b2 як змінні логічного типу.
Над даними логічного типу можна виконувати логічні операції: логічне множення, логічне додавання, заперечення.
Операція логічного множення (логічне І) позначається стандартним ідентифікатором and, має два операнди і дає в результаті true, якщо обидва операнди дорівнюють true, і false, якщо хоча б один операнд дорівнює false.
Операція логічного додавання (логічне АБО) позначається стандартним ідентифікатором or, має два операнди і визначається співвідношенням
Операція заперечення позначається стандартним ідентифікатором not має один операнд і визначається співвідношенням
Розподіл логічних операцій за пріоритетами такий:
1
.
not спадання
2. and пріоритету
3. or
Дані логічного типу можна порівнювати між собою. Значення false менше за значення true.
Можна порівнювати також дані арифметичних типів. Результатом порівнювання є логічне значення true або false.
Знаки операцій порівнювання
> більше
>= більше або дорівнює
< менше
<= менше або дорівнює
= дорівнює
<> або # не дорівнює
Операції порівнювання даних арифметичних типів мають нижчий пріоритет порівняно з логічними операціями and, or, not.
Також можна порівнювати дані типів char і string Ці операції порівнювання ( >,>=,<,<=,=,<> ) мають нижчий пріоритет порівняно з операцією зчеплення. З двох символьних значень більшим є те, в якого код більший.
Приклад.
'A'>'a'= false, код букви A - 67, а букви a - 97;
'A'<'a'=true,
'+'>'K' = false, +має код 43, K має код 75.
Порівнювання текстових значень відбувається зліва направо до першого не співпадаючого символу. Більшим є те текстове значення, в якого перший не співпадаючий символ є більшим. Якщо текстові значення мають різні довжини, але в спільній частині символи співпадають, то коротке текстове значення є меншим. Два текстових значення є рівними, якщо вони одинакові по довжині і мають одинакові відповідні символи. Тому:
'ABC' < 'ABc' = true, ('c' > 'C');
'ABCD' < 'ABCDE' = true,
'a+b' < 'A' = false.
Логічні константи, логічні змінні та логічні функції - це первинні логічні вирази. За допомогою логічних операцій та круглих дужок записуються складні логічні вирази.
Приклад.
l1 and l2 > (x>5) and (y>10) or (sin(x) > 0.3)
Як видно з останнього прикладу, в логічних виразах можуть бути одночасно логічні операції та операції порівнювання.
Операції порівнювання мають нижчий пріоритет порівняно з логічними операціями.
Приклад. В логічному виразі
l1 and l2 > l3 or l4 and (x>5)
послідовність дій така:
1. l1 and l2 = R1;
2. x>5 =R2;
3. l4 and R2 = R3;
4. l3 or R3 = R4;
5. R1>R4 = значення виразу.
В операторах присвоєння змінна та вираз можуть мати логічний тип. В цьому випадку оператор присвоєння називається логічним оператором присвоєння.
Приклади.
r:=1 and l2 or (x<5);
h:=false;
Значення логічних змінних не можна безпосередньо вводити з клавіатури та виводити на екран за допомогою стандартних процедур read, readln, write, writeln.