Попадання точки в заштриховану область: Приклад 3

В даному параграфі продовжимо цикл розв'язоку задач з використанням команди розгалуження, а якщо бути більш точним, то задач на попадання точки в заштриховану область. Для цього, припустимо, що в декартовій системі координат міститься два кола. Перше з них радіуса десять з центром в початку координат і друге — радіуса пять з центром в точці .

Ілюстрація графічної області

Необхідно написати програму, що визначає, чи потрапляє точка з заданими координатами  в зафарбовану на малюнку синім кольором область. Результат роботи вивести у вигляді текстового повідомлення.

Отже, запустимо середовище програмування Delphi, створимо новий проект, та на головній формі розмістимо наступні її елементи: два компоненти типу TEdit, один компонент типу TButton, один компонент типу TChart та один компонент типу TStatusBar. В результаті виконання даного кроку, головна форма прокту набуде наступного вигляду.

Головна форма delphi-проекту "Попадання точки в заштриховану область"

Далі перейшовши до обробника події OnClick компонента Button1 («Перевірити»), в тілі процедури Button1Click запишемо код, з допомогою якого буде здійснюватись перевірка на попадання точки в заштриховану область та вивід її у компоненті TChart. Після цього, на подію OnCreate головної форми проекту, у тому ж таки компоненті TChart, реалізуємо побудову вище вказаних кіл. Відмітимо, що дану побудову було реалізовано для зручності аналізу результатів роботи програми.

procedure TForm1.Button1Click(Sender: TObject);
var
x, y, a, b: real;
begin
// Зберігаємо задані користувачем значення для координатів точки в змінну x та y
x := StrToFloat(Edit1.Text);
y := StrToFloat(Edit2.Text);
// Виводимо її у компоненті TChart
Series5.Clear;
Series5.AddXY(x, y, '', clRed);
// Здійснюємо провірку на попадання точки в заштриховану область
a := Sqrt(Sqr(x) + Sqr(y));
b := Sqrt(Sqr(x — 10) + Sqr(y));
if (a <= 10) and (b <= 5) then
StatusBar1.Panels[0].Text := 'Точка (' + Edit1.Text + ', ' + Edit2.Text + ') попадає в заштриховану область'
else
StatusBar1.Panels[0].Text := 'Точка (' + Edit1.Text + ', ' + Edit2.Text + ') не попадає в заштриховану область';
end;
TForm1.FormCreate(Sender: TObject);
var
x, y: real;
begin
// Побудова геометричних фігур
x := −10;
while (x <= 15) do
begin
if (x >= −10) and (x <= 10) then
begin
y := Sqrt(100 — x * x);
Series1.AddXY(x, y, '', clRed);
Series2.AddXY(x, -y, '', clRed);
end;
if (x >= 5) and (x <= 15) then
begin
y := Sqrt(25 — (x — 10) * (x — 10));
Series3.AddXY(x, y, '', clRed);
Series4.AddXY(x, -y, '', clRed);
end;
x := x + 0.001;
end;
end;

Після того, як з програмним кодом розібрались, збережемо, відкомпілюємо та запустимо delphi-проект на виконання. Далі, у вікні що появиться, способом введення з клавіатури, задамо для компонентів Edit1 та Edit2 відповідні значення (координати точки) та скористаємось копкою «Перевірити». В результаті виконання даного кроку, в нижній частині форми, а саме в одній із панелей компонента StatusBar1, буде виведено повідомлення про те, чи попадає точка з такими координатами у заштриховану область чи ні.

Визначення попадання точка з координатами (7, 1) в заштріховану область

Скачати delphi-проект Попадання точки в заштриховану область.

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар