10 ' ZYKLOIDE
20 '
30 MODE 2:WINDOW #1,1,80,25,25:DEG
40 LOCATE#1,45,1:INPUT #1,;"Eing.(E/H),R,P,G";z$,a,b,g:CLS:LOCATE #1,1,1
50 z$=UPPER$(z$):IF a<=0 OR b<=0 OR g<=0 OR z$="H" AND a<=1 THEN 40
60 IF z$="E" THEN PRINT#1,"EPIZYKLOIDE ";:t=1:GOTO 80
70 IF z$="H" THEN PRINT#1,"HYPOZYKLOIDE";:t=2 ELSE GOTO 40
80 PRINT#1,"  R:";a;" P:";b;" G:";g 
90 c=190:ORIGIN 320,208:i=0:ON t GOSUB 130,150:MOVE x,y
100 FOR i=0 TO 10000000/(a+1) STEP g:ON t GOSUB 130,150:DRAW x,y 
110 za$=INKEY$:IF za$<>"" THEN 40
120 NEXT:GOTO 40
130 y=(c/(a+b+1))*((a+1)*SIN(i)-b*SIN((a+1)*i))
140 x=1.09*(c/(a+b+1))*((a+1)*COS(i)-b*COS((a+1)*i)):RETURN
150 y=(c/(a+b-1))*((a-1)*SIN(i)-b*SIN((a-1)*i))
160 x=1.09*(c/(a+b-1))*((a-1)*COS(i)+b*COS((a-1)*i)):RETURN
170 END