Нехай маємо область, зображену на малюнку

За введеними координатами точки (x,y) потрібно вияснити, чи належить ця точка заштрихованій області, чи ні.
Спочатку потрібно формалізувати заштриховану область. Легко бачити, що до заштрихованої області відносяться ті точки, відстань від яких до точки перетину осей координат (0,0) не більша за 1 і не менша за 1/2. Тобто, якщо записати це формально, то для того, щоб точка потрапляла до заштрихованої області, достатньо, щоб для її координат одночасно виконувались нерівності
та
.
Тепер визначимось з об'єктами на формі. Очевидно, що нам потрібно 2 об'єкти Edit (для введення координат x та y відповідно), об'єкт Label для виведення результату на екран та об'єкт Button для самої перевірки.
Крім того, нам потрібні будуть 2 змінні типу real для введення самих координат. Отже, запишемо сам алгоритм програми
x:=strtofloat(edit1.text);
{присвоюється значення першої координати у змінну х конвертуючи рядкову змінну edit1.text у дійсну x}
y:=strtofloat(edit2.text);
{присвоюється значення першої координати у змінну y конвертуючи рядкову змінну edit2.text у дійсну y }
if (sqrt(sqr(x)+sqr(y))>=0.5) and (sqrt(sqr(x)+sqr(y))<=1) then
{якщо (відстань від точки до центру кола більша або дорівнює 0,5) та (відстань від точки до центру кола менша або дорівнює 1) то}
label1.Caption:='Точка знаходиться у заштрихованій області'
{виводиться у Label1 текст 'Точка знаходиться у заштрихованій області'}
else {інакше}
label1.Caption:='Точка не знаходиться у заштрихованій області';
{виводиться у Label1 текст 'Точка не знаходиться у заштрихованій області'}
А вся програма матиме вигляд
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
x,y:real;
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=strtofloat(edit1.text);
y:=strtofloat(edit2.text);
if (sqrt(sqr(x)+sqr(y))>=0.5) and (sqrt(sqr(x)+sqr(y))<=1) then
label1.Caption:='Точка знаходиться у заштрихованій області'
else
label1.Caption:='Точка не знаходиться у заштрихованій області';
end;
end.