Подсчет количества точек с целочисленными координатами, находящихся внутри круга заданного радиуса - 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.
Объяснение кода листинга программы
- Объявляются переменные:
x- координата точки по оси Xy- координата точки по оси Yr- радиус кругаx2- квадрат координаты точки по оси Xr2- квадрат радиуса кругаk- счетчик точек, находящихся внутри круга
- Присваивается значение переменной
rравное 1000. - Присваивается значение переменной
kравное 0. - Вычисляется значение переменной
r2как квадрат переменнойr(r2 := r * r). - Запускается цикл для подсчета точек в одной четверти круга, проходя через вертикальные линии.
- Для каждого значения переменной
x, начиная от 1 до r-1 (ось Y не учитывается), выполняется:- Вычисляется значение переменной
x2как квадрат значения переменнойx(x2 := x * x). - Значение переменной
kувеличивается на целую часть квадратного корня из разности r2 и x2 (k := k + trunc(sqrt(r2 - x2))).
- Вычисляется значение переменной
- Для каждого значения переменной
- Вычисляется общее количество точек в круге:
- Умножается значение переменной
kна 4 и прибавляется 4 умноженное на значение переменнойr, затем прибавляется 1 (k := 4 * (k + r) + 1).
- Умножается значение переменной
- Выводится результат подсчета в формате
k=значение_переменной_k.