Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab2.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
199.17 Кб
Скачать

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;

якщо:

  1. i=1;

  2. i=2;

  3. i=9;

  4. i=80;

  5. i=101;

Чи має практичний зміст оператор1 в цьому операторі case? Якщо ні, то спростіть його.

3. Яке значення буде мати змінна f після виконання оператора

case i of

1,2,4: f:=1;

2,3,5: f:=2;

7..10: f:=3;

end;

якщо:

  1. і=4;

  2. і=2;

  3. і=11;

  4. і=3.

6. Варіанти завдань

  1. .

  2. .

  3. .

  4. .

  5. .

  6. .

  7. .

  8. .

  9. .

  10. .

  11. .

  12. .

  13. .

  14. .

  15. .

  16. .

  17. .

  18. .

  19. .

  20. .

  21. .

  22. .

  23. .

  24. .

  25. .

  26. .

  27. .

  28. .

  29. .

  30. .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]