Відрізок АС (та BD) називається діагоналлю даного чотирьохкутника, так як містить дві протилежні вершини.
По-перше, знайдемо значення за допомогою визначників:
(1)Рівняння прямої для діагоналей АС таBD:
; (2) ; ; . ; (3) ; ; .Рівняння прямої, що проходить через точки А та С:
(4)та B та D:
(5)Щоб знайти точку перетину діагоналей запишемо рівняння (4) та (5) у систему:
(6)Вирішимо систему через визначення.
; ; ; ; ; (7)Точка перетину діагоналей О має такі координати:
.Знаходимо довжину повної діагоналі BD:
; (8)довжину OD:
; (9)та довжину OB:
(10)Тепер знайдемо відношення OB та OD:
; .(11)1.3 Розв’язання задачі для самостійно заданих початкових даних
Задача
По введеним вершинам чотирьохкутника визначити, в якому відношенні його діагональ АС ділить діагональ BD.
Дано:
Знайти:ВідношенняOBдоOD.
Рішення:
Значення за допомогою визначників(1).
Знаходимо рівнянняпрямої для діагоналей АС таBD (формули (2) та (3)):
; ; ; ; ; ; . .Рівняння прямої, що проходить через точки А та С (4):
;та B та D (5):
.Щоб знайти точку перетину діагоналей запишемо ці два рівняння у систему (6):
.Вирішимо систему через визначники (7):
; ; . ; .Точка перетину діагоналей О має такі координати:
.Знаходимо довжину повної діагоналі BD (8):
;довжину OD (9):
;та довжину OB (10):
.Тепер знайдемо відношення OB та OD (11):
; .Відповідь:діагональ АС ділить діагональ BD з відношенням 75% до25%.
2 Сценарій розв’язання задачі в Delphi
2.1 Програмування в консольному режимі
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
x0,y0:integer;
xa,ya,xb,yb,xc,yc,xd,yd:real;
OB,OD,D,BD:real;
X1,Y1,X2,Y2,Z1,Z2,xO,yO:real;
OBP,ODP:integer;
begin
writeln('vvedite vershihy chetyrehugolnika');
readln(xa,ya,xb,yb,xc,yc,xd,yd);
X1:=yC-yA;Y1:=xA-xC;
Z1:=xA*yC-xC*yA;
X2:=yD-yB;Y2:=xB-xD;
Z2:=xB*yD-xD*yB;
D:=X1*Y2-Y1*X2;
xO:=(Z1*Y2-Y1*Z2)/D;
yO:=(X1*Z2-Z1*X2)/D;
OB:=sqrt(sqr(xO-xB)+sqr(yO-yB));
OD:=sqrt(sqr(xO-xD)+sqr(yO-yD));
BD:=sqrt(sqr(xB-xD)+sqr(yB-yD));
OBP:=round(OB*(100/BD));
ODP:=100-OBP;
writeln('Dlina OB: ',OB:4:2);
writeln('Dlina OD: ',OD:4:2);
writeln('Otnoshenie: ',OBP,'/',ODP);
readln;
end.
Рисунок 2 - Реакція ЕОМ
2.2 Компоненти форми та їх властивості
Створюючи дану програму я використовував різноманітні компоненти, такі як: Edit, Label, Button, GroupBox, CheckBox, PaintBox, ColorBox, ComboBox, Timer,MainMenuта OleContainer.
Таблиця 1 – Загальна характеристика компонентів:
Компонент | Піктограма | Панель компонентів | Опис |
Edit (вікно редагування) | Standard | Відображення, введення та редагування однорядкових текстів. Є можливість оформлення об'ємного бордюру. Основна властивість — Text. | |
Label (позначка) | Standard | Відображення тексту, який не з-змінюється користувачем. Ніякого оформлення тексту не передбачено, крім кольору позначки та тексту. Основна властивість — Caption. | |
Button (командная кнопка) | Standard | Використовується для створення кнопок, якими користувач виконує команди у додатку. | |
GroupBox (групове вікно) | Standard | Є контейнером, що об’єднує групу пов'язаних органів управління, таких, як радіокнопкі RadioButton, контрольні індикатори Checkbox і т.д. | |
CheckBox (контрольний індикатор з прапорцем) | Standard | Дозволяє користувачеві вмикати та вимикати опції програми. | |
PaintBox (вікно для малювання) | System | Використовується для створення на формі деякої області, в якій можна малювати. | |
ColorBox(список цветов) | Additional | Спеціальний варіант ComboBox для вибору одного з системних кольорів. | |
ComboBox (редактируемый список) | Standard | Об’єднує функції ListBoxта Edit. Користувач може або ввести текст, або вибрати його із списку. | |
Timer (таймер) | System | Використовується для запуску процедур, функцій та подій у вказані інтервали часу. | |
MainMenu(головне меню) | Standard | Дозволяє конструювати та створювати смугу головного меню форми та випадаючі меню. Компонент не-візуальний. | |
OLEContainer (контейнер OLE) | System | Використовується при створенні області клієнта для об'єкта OLE. |
Компонент Edit — це однорядковий редактор (рядок), призначений для вводу користувачем деяких даних. Вміст рядку є значенням властивості Text.
Для даного компоненту маються можливості:
- редагування тексту (виділення фрагменту, перетворення виділеного тексту, чуттєвість до регістру);