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

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

Нарисовать шары с помощью рекурсии. пример:
program recurs;
uses graphabc;
var x,y,r,d,m:integer;
procedure ris(x,y,r:integer);
var i:integer;
begin
Rectangle ( x, y,x+ r,y+r);
 ris(x+round(3*r/4),y+round(r/4),round(r/2));
end ;
begin
      x:=280;
   y:=100;
    r:=100;
   ris(x,y,r);
   readln ;
end.

Код к задаче: «Нарисовать шары с помощью рекурсии - 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.

13   голосов, оценка 4.231 из 5


СОХРАНИТЬ ССЫЛКУ