Другие языки программирования и технологии

turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!

Определить, принадлежит ли точка с координатами (х,у) заданному множеству точек на координатной плоскости (включая границы).
1 программа
var
X0, Y0, R0, R1 : Real;
R, X, Y : Real;
begin
WriteLn('X0, Y0 - координаты центра окружности кольца (смещение от точки (0,0) )');
WriteLn('R - внешний радиус кольца');
WriteLn('r - внутренний радиус кольца');
Write('Введите X0, Y0, R и r через пробел : '); ReadLn(X0, Y0, R1, R0);
WriteLn('Вводите через пробел координаты X, Y (-100 -100 для выхода) :');
repeat
Write('X Y : '); ReadLn(X, Y);
X := X - X0; Y := Y - Y0; { совместим центр фигуры с центром координат }
R := X*X + Y*Y;
if R > R1*R1 then WriteLn('Не принадлежит. ')
else if R < R0*R0 then WriteLn('Не принадлежит. ')
else WriteLn('Принадлежит. ')
until (X0 = -100) and (Y0 = -100);
end.
2 программа
var
X0, Y0, H0, H1 : Real;
H, X, Y : Real;
begin
WriteLn('X0, Y0 - координаты центра фигуры (смещение от точки (0,0) )');
WriteLn('H - расстояние от центра фигуры до внешнего угла');
WriteLn('h - расстояние от центра фигуры до внутреннего угла');
Write('Введите X0, Y0, H и h через пробел : '); ReadLn(X0, Y0, H1, H0);
WriteLn('Вводите через пробел координаты X, Y (-100 -100 для выхода) :');
repeat
Write('X Y : '); ReadLn(X, Y);
X := X - X0; Y := Y - Y0; { совместим центр фигуры с центром координат }
H := Abs(X) + Abs(Y);
if (H < H1) and (H > H0) then WriteLn('Принадлежит. ')
else WriteLn('Не принадлежит. ');
until (X0 = -100) and (Y0 = -100);
end.
3 программа
var
X0, Y0, H, R : Real;
Hx, Rxy, X, Y : Real;
begin
WriteLn('X0, Y0 - координаты центра фигуры (смещение от точки (0,0) )');
WriteLn('H - вся ширина области');
WriteLn('R - радиус описанной окружности');
Write('Введите X0, Y0, H и R через пробел : '); ReadLn(X0, Y0, H, R);
WriteLn('Вводите через пробел координаты X, Y (-100 -100 для выхода) :');
repeat
Write('X Y : '); ReadLn(X, Y);
X := X - X0; Y := Y - Y0; { совместим центр фигуры с центром координат }
Hx := Abs(X);
Rxy := X*X + Y*Y;
if Hx > H/2 then WriteLn('Не принадлежит. ')
else if Rxy > R*R then WriteLn('Не принадлежит. ')
else WriteLn('Принадлежит. ');
until (X0 = -100) and (Y0 = -100);
end.
4 программа не влезла в 4000 символов!
Александр Зенкевич
Александр Зенкевич
92 988
Лучший ответ