Нарисовать шары с помощью рекурсии - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д