Відрізок АС (та BD) називається діагоналлю даного чотирьохкутника, так як містить дві протилежні вершини.
По-перше, знайдемо значення за допомогою визначників:
Рівняння прямої для діагоналей АС таBD:
Рівняння прямої, що проходить через точки А та С:
та B та D:
Щоб знайти точку перетину діагоналей запишемо рівняння (4) та (5) у систему:
Вирішимо систему через визначення.
Точка перетину діагоналей О має такі координати:
Знаходимо довжину повної діагоналі BD:
довжину OD:
та довжину OB:
Тепер знайдемо відношення OB та OD:
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.
Для даного компоненту маються можливості:
- редагування тексту (виділення фрагменту, перетворення виділеного тексту, чуттєвість до регістру);