{
Пример 4.2. Задано множество точек на плоскости. Определить,
принадлежит ли хотя бы одна точка множества внутренней области
круга с центром в точке (a, b) и радиусом R.
Система тестов
╔═══════╤════════════════╤═══════════════════════════════╤═══════════╗
║ │ │ Данные │ ║
║ Номер │ Проверяемый ├───┬───┬───┬──────┬────────────┤ Результат ║
║ теста │ случай │ а │ b │ R │Кол-во│ Координаты │ ║
║ │ │ │ │ │точек │ точек │ ║
╟───────┼────────────────┼───┼───┼───┼──────┼────────────┼───────────╢
║ 1 │ Принадлежит │ 1 │ 0 │ 2 │ 3 │ X=(-1,2,3) │ "Да" ║
║ │ │ │ │ │ │ Y=(2,1,2) │ ║
╟───────┼────────────────┼───┼───┼───┼──────┼────────────┼───────────╢
║ 2 │ Не принадлежит │ 1 │ 0 │ 2 │ 2 │ X=(-1,3) │ "Нет" ║
║ │ │ │ │ │ │ Y=(2,2) │ ║
╚═══════╧════════════════╧═══╧═══╧═══╧══════╧════════════╧═══════════╝
}
Program SetOfPoints;
Uses Crt;
Type Mas = Array [1..20] of Real;
Var X, Y : Mas; { массивы координат точек }
i, NPoints : Integer; { NPoints - количество точек }
a, b, Radius : Real; { координаты центра и радиус }
Flag : Boolean;
{--------------------------------------------}
Procedure Input; {описание процедуры ввода данных}
Begin
ClrScr;
Write('Введите координаты центра круга: '); ReadLn(a, b);
Write('Введите радиус круга: '); ReadLn(Radius);
Write('Введите количество точек: '); ReadLn(NPoints);
For i := 1 to NPoints do
begin
WriteLn(i : 4, '-ая точка ');
Write('X = '); ReadLn(X[i]);
Write('Y = '); ReadLn(Y[i]);
end; WriteLn
End; {of Input}
{--------------------------------------------}
Procedure Inside(Var Flag : Boolean); { описание процедуры проверки }
Begin { принадлежности точек области }
Flag := FALSE ; i := 1;
While (i<=NPoints) and not Flag do
If Sqr(X[i]-a)+Sqr(Y[i]-b) < Sqr(Radius) {Sqr - возведение в квадрат }
then Flag := TRUE
else i:=i+1;
End; {of Inside}
{--------------------------------------------}
Procedure Output( Flag : Boolean); { описание процедуры }
Begin { вывода результатов }
Write('О т в е т : в множестве точек ');
If Flag then WriteLn('cодержатся')
else WriteLn('не содержатся');
WriteLn(' точки, принадлежащие заданной области.');
ReadLn
End; {of Output}
{--------------------------------------------}
BEGIN
Input; { вызов процедуры ввода данных }
Inside(Flag); { вызов процедуры проверки принадлежности }
Output(Flag) { вызов процедуры вывода результатов }
END.
Похожие записи/страницы:
- В одномерных массивах Х и Y одинакового размера n хранятся координаты n точек плоскости. Определить минимальный…
- Подсчитать число точек внутри круга с радиусом R.c центром в точке с координатами (1;1). Координаты заданы…
- Точка принадлежит заштрихованной области или нет - Pascal(Паскаль)
- Определить ли принадлежит ли точка кругу с заданным радиусом - Pascal(Паскаль)
- Даны действительные числа x1,y1,x2,y2,x3,y3. Выяснить, сколько общих точек имеют треугольник с координатами…
- Заданы координаты двух точек (x1;y1) и (x2;y2). Определить лежат ли они на одной окружности с центром в начале…
- Задано два множества точек на плоскости. В первом множестве найдите хотя бы одну точку, сумма расстояний от…
- Дано натуральное n и вещественные x1,y1,...xn,yn. рассматривая пары xi и yi, как координаты точек на плоскости,…