
Length – функція, що обчислює довжину відрізка за заданими коор — динатами його кінців. Для виконання цього обчислення згадаємо, що довжину відрізка можна знайти за теоремою Піфагора:
,
Де z – шукана довжина відрізка; (x1,y1), (x2,y2) – координати кінців відрізка.
Square – функція, що визначає площу трикутника. Оскільки нам
Відомі лише координати вершин трикутника, то площу зручно обчислювати за формулою Герона:
S = p( p — a)( p — b)( p -c) ,
Де p – півпериметр трикутника; a, b, c – сторони трикутника.
Per – функція, що визначає периметр трикутника (ця формула оче — видна, тому тут ми її наводити не будемо). Для конкретно заданої задачі функція пошуку периметру трикутника може бути вкладеною у функцію пошуку площі трикутника.
Output – процедура, у якій здійснюється порівняння площ трикутни — ків. Якщо S1>S2, то виводиться повідомлення “Більшу площу має перший трикутник”. Якщо S2>S1, то виводиться повідомлення “Більшу площу має другий трикутник”. Якщо S2=S1, то виводиться повідомлення “Трикутники мають однакову площу”. Також потрібно вивести числове значення площі більшого трикутника.
Програма, що виконує запропонований алгоритм, має такий вигляд:
//Обчислення довжини відрізка Function Length (x1,y1,x2,y2:real):real; Begin
Length:=sqrt(sqr(x2-x1)+sqr(y2-y1)); End;
//Уведення координат вершин трикутника Procedure Input(x1,y1,x2,y2,x3,y3:real;
Var a, b,c:real;var korvvid:boolean); Begin
Writeln (‘Введіть координати першої вершини:’); readln (x1,y1);
Writeln (‘Введіть координати другої вершини:’); readln (x2,y2);
Writeln (‘Введіть координати третьої вершини:’); readln (x3,y3);
A:=Length(x1,y1,x2,y2);
B:=Length(x1,y1,x3,y3);
C:=Length(x3,y3,x2,y2);
If (a>=b+c) or (c>=a+b) or (b>=a+c) then begin
Korvvid:=False;
Writeln (‘Помилка! Повторіть введення:’); end
Else korvvid:=True; End;
//Знаходження площі трикутника Function Square (a, b,c:real):real; Var PP:real;
Begin PP:=(a+b+c)/2;
Square:=sqrt(PP*(PP-a)*(PP-b)*(PP-c)); End;
// Результат роботи програми Procedure Output(S1,S2:real);
Begin
If S1>S2 then begin
Writeln (‘Більшу площу має перший трикутник.’); writeln (‘Його площа дорівнює -> ‘,S1:8:2);
End
Else if S2>S1 then begin
Writeln (‘Більшу площу має другий трикутник.’); writeln (‘Його площа дорівнює -> ‘,S2:8:2);
End
Else begin
Writeln (‘Трикутники мають однакову площу.’); writeln (‘Їх площа дорівнює -> ‘,S1:8:2);
End;
End;
//Основна програма
Var x11,y11,x12,y12,x13,y13:real; x21,y21,x22,y22,x23,y23:real; a1,a2,b1,b2,c1,c2:real;
- 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
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78