Нарисовать шары с помощью рекурсии - Pascal ABC

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

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

Нарисовать шары с помощью рекурсии. пример:

Решение задачи: «Нарисовать шары с помощью рекурсии»

textual
Листинг программы
uses graphABC;
const k1=2;
      k2=1.3;
var x,y,r,d,n:integer;
{функция рисования, x,y-координаты цента,r-начальный радиус, n-глубина рекурсии}
function ris(x,y,r,n:integer):integer;
begin
if n=0 then ris:=0
else
 begin
  circle(x,y,r);
  dec(n);
  ris:=ris(x+round(k2*r),y,round(r/k1),n);
  ris:=ris(x-round(k2*r),y,round(r/k1),n);
  ris:=ris(x,y-round(k2*r),round(r/k1),n);
  ris:=ris(x,y+round(k2*r),round(r/k1),n);
  circle(x,y,r)
 end;
end;
begin
r:=70;
x:=windowwidth div 2;
y:=windowheight div 2;
ris(x,y,r,5);
end.

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

В данном коде используется язык программирования Pascal ABC. Переменные:

  • k1 и k2 - константы, определяющие значения коэффициентов для расчета радиуса шара и его центра.
  • x и y - переменные, определяющие координаты центра шара.
  • r - переменная, определяющая начальный радиус шара.
  • n - переменная, определяющая глубину рекурсии. Функция ris() рекурсивно рисует шары с заданными координатами центра, радиусом и глубиной рекурсии. В начале функции проверяется значение переменной n. Если оно равно нулю, то функция завершается. В противном случае, выполняется цикл, состоящий из вызова функции ris() с измененными координатами центра и уменьшенным значением глубины рекурсии. Вызовы функции ris() рисуют шары вокруг центра с заданным радиусом. После каждого вызова функции circle() изменяется значение переменной n. Цикл в функции ris() повторяется до тех пор, пока значение переменной n не станет равным нулю. После этого, функция завершается и возвращает значение 0. В конце кода задаются значения переменных x, y и r, а затем вызывается функция ris() с глубиной рекурсии равной 5.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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