
4. Методичні вказівки до виконання роботи
Виконання роботи
необхідно починати з виведення логічного
виразу, який приймає значення true,
якщо точка
належить області D
трикутника з
вершинами A,
B,
C та false,
якщо не належить. Для цього необхідно
зобразити графічно область D.
Це можна зробити при певних конкретних
значеннях координат вершин трикутника
ABC.
Нехай ці координати будуть:
,
,
C(3,0).
З малюнка, який ви намалюйте самі, видно,
що точка
попаде в область трикутника, якщо вона
буде лежати нижче прямої AB,
нижче прямої BC
та вище прямої AC.
Іншими словами, повинні одночасно
виконуватися умови
,
та
,
де r,
p,
s,
q,
w,
v
- параметри рівнянь прямих AB,
BC,
AC,
записаних з кутовими коефіцієнтами.
Знайдемо ці параметри. Для цього запишемо
рівняння прямих.
Пряма AB:
,
,
тобто
.
Пряма BC:
,
,
тобто
.
Пряма AC:
,
,
тобто
..
Таким чином, для того щоб точка належала області трикутника необхідно, щоб її координати задовольняли нерівності:
,
,
Всі ці нерівності мають виконуватися одночасно і тому повинні бути з’єднані сполучником і (логічним І)
І І (*)
Тепер можна скласти алгоритм розв’язування задачі у вигляді блок-схеми (рис. 1), де в блоці 2 зірочкою(*) позначений знайдений логічний вираз.
Turbo Pascal програма може мати такий вигляд:
program lab2;
var
x,y,u:real;
h:boolean;
begin
write('x=’); readln(x);
write('y=’); readln(y);
h:=(y<=x) and (y<=-2*x+6) and (y>=-0.5*x+1.5);
if h then u:=sin(x)+cos(x)
else u:=0;
writeln(u=', u:1:2)
end.
З використанням оператора case ця програма може мати такий вигляд:
program lab2;
var
x,y,u:real;
h:boolean;
begin
write('x=’); readln(x);
write('y=’); readln(y);
h:=(y<=x) and (y<=-2*x+6) and (y>=-0.5*x+1.5);
case h of
true :u:=sin(x)+cos(x);
false:u:=0
end;
writeln(u=', u:1:2)
end.
5. Контрольні запитання
1. В програмі лабораторної роботи використовувалася змінна логічного типу. Чи можна обійтися без неї? Якщо так, то модифікуйте програму.
2. Яке значення буде мати змінна f після виконання оператора
case i of
1,3 :if i=2 then f:=3 else f:=4;
2..10 :f:=40;
11..100: f:=i*i
end;
якщо:
i=1;
i=2;
i=9;
i=80;
i=101;
Чи має практичний зміст оператор1 в цьому операторі case? Якщо ні, то спростіть його.
3. Яке значення буде мати змінна f після виконання оператора
case i of
1,2,4: f:=1;
2,3,5: f:=2;
7..10: f:=3;
end;
якщо:
і=4;
і=2;
і=11;
і=3.
6. Варіанти завдань
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.