Определить, сколько точек попадает в кольцо с внутреним радиусом r1 и внешним радиусом r2 - Pascal
Формулировка задачи:
вводятся по очереди координаты n точек определить сколько из них попадает в кольцо с внутреним радиусом r1 и внешним радиусом r2
Решение задачи: «Определить, сколько точек попадает в кольцо с внутреним радиусом r1 и внешним радиусом r2»
textual
Листинг программы
var
r1, r2, cx, cy, x, y, r: Real;
n: Integer;
begin
Write('Центра кольца, внутренний и внешний радиусы: ');
ReadLn(cx,cy,r1,r2);
WriteLn('Вводите координаты точек, окончание: end');
{$I-}
n:=0; r1:=sqr(r1); r2:=sqr(r2);
repeat
Read(x,y);
if IOResult<>0 then Break;
r:=sqr(x-cx)+sqr(y-cy);
if (r>=r1) and (r<=r2) then Inc(n);
until False;
WriteLn('Точек в кольце: ',n);
end.
Объяснение кода листинга программы
- Объявление переменных:
r1, r2, cx, cy, x, y, r: данные с плавающей запятой, представляющие входные значения и промежуточные вычисленияn: целочисленная переменная для подсчета количества точек внутри кольца
- Запрос ввода данных:
- Пользователю предлагается ввести центр кольца (
cx,cy), внутренний радиусr1и внешний радиусr2
- Пользователю предлагается ввести центр кольца (
- Цикл ввода точек:
- Пока не будет введено
end, пользователю предлагается вводить координаты точек (x, y) - Ввод координат точек прекращается при вводе
end
- Пока не будет введено
- Подсчет точек в кольце:
- Для каждой введенной точки
x, yрасчитывается квадрат расстоянияrот точки до центра кольца - Если расстояние
rпопадает в диапазон между квадратами внутреннего (r1) и внешнего (r2) радиусов кольца, увеличивается счетчикn
- Для каждой введенной точки
- Вывод результата:
- После окончания ввода точек выводится количество точек, попавших в кольцо.