Подсчет количества точек с целочисленными координатами, находящихся внутри круга заданного радиуса - Pascal

Узнай цену своей работы

Формулировка задачи:

Напишите программу для подсчета числа точек с целочисленными координатами, находящихся внутри круга с центром в начале координат и радиусом 1000.

Решение задачи: «Подсчет количества точек с целочисленными координатами, находящихся внутри круга заданного радиуса»

textual
Листинг программы
var x,y,r,x2,r2,k:integer;
begin
r:=1000;
k:=0;
r2:=r*r;//^2 чтобы не считать на каждом шаге
//считаем в одной четверти по вертикальным линиям
for x:=1 to r-1 do//ось У не считаем
 begin
  x2:=x*x;//x^2 чтобы не считать на каждом шаге
  k:=k+trunc(sqrt(r2-x2))//количество точек на одной линии
 end;
k:=4*(k+r)+1;//кол. точек в четверти умножаем на 4+4 радиуса + точка (0;0)
write('k=',k);
end.

Объяснение кода листинга программы

  1. Объявляются переменные:
    • x - координата точки по оси X
    • y - координата точки по оси Y
    • r - радиус круга
    • x2 - квадрат координаты точки по оси X
    • r2 - квадрат радиуса круга
    • k - счетчик точек, находящихся внутри круга
  2. Присваивается значение переменной r равное 1000.
  3. Присваивается значение переменной k равное 0.
  4. Вычисляется значение переменной r2 как квадрат переменной r (r2 := r * r).
  5. Запускается цикл для подсчета точек в одной четверти круга, проходя через вертикальные линии.
    • Для каждого значения переменной x, начиная от 1 до r-1 (ось Y не учитывается), выполняется:
      • Вычисляется значение переменной x2 как квадрат значения переменной x (x2 := x * x).
      • Значение переменной k увеличивается на целую часть квадратного корня из разности r2 и x2 (k := k + trunc(sqrt(r2 - x2))).
  6. Вычисляется общее количество точек в круге:
    • Умножается значение переменной k на 4 и прибавляется 4 умноженное на значение переменной r, затем прибавляется 1 (k := 4 * (k + r) + 1).
  7. Выводится результат подсчета в формате k=значение_переменной_k.

Оцени полезность:

13   голосов , оценка 4.385 из 5
Похожие ответы