PROGRAM DRAWCIRCLES (INPUT,OUTPUT,GRAPHIC); (* S. ABSCHNITT 2.11.5 UEBER REKURSIONEN *) (* 15.9.1986 FLORIAN MATTHES PASCAL 2.0 *) CONST XMAX = 319; YMAX = 199; VAR T : INTEGER; PROCEDURE QUADCIRCLE(TIEFE:INTEGER; MX,MY,R:INTEGER); (* ZEICHNE REKURSIV EINEN KREIS, DER VIER KREISE ENT- *) (* HAELT, DIE SICH GEGENSEITIG BERUEHREN. *) VAR R2: INTEGER; BEGIN CIRCLE(1,MX,MY,R,,0,360,0,10); IF TIEFE>1 THEN BEGIN (* BILDE KREIS AUS *) R2:= R DIV 2; (* 4 KLEINEREN KREISEN *) QUADCIRCLE(TIEFE-1, MX-R2, MY , R2); QUADCIRCLE(TIEFE-1, MX , MY-R2, R2); QUADCIRCLE(TIEFE-1, MX+R2, MY , R2); QUADCIRCLE(TIEFE-1, MX , MY+R2, R2); END; END; (* QUADCIRCLE *) BEGIN COLOR(0,1); COLOR(1,2); COLOR(5,5); WRITE('WELCHE TIEFE? :4' #157); READLN(T); GRAPHIC(1,1); QUADCIRCLE(T, XMAX DIV 2, YMAX DIV 2, YMAX DIV 2); REPEAT UNTIL KEYPRESSED; GRAPHIC(0); END.