/* Kreis */
pi = 3.141593
xn = 320
yn = 200
radius = 160
SCREEN 12
FOR index = 1 TO 360 STEP .1
x = SIN((pi / 180) * index)
y = COS((pi / 180) * index)
xr = x * radius + xn
yr = y * radius + yn
LINE (xr, yr)-(xr + 1, yr + 1), 1, BF
NEXT index
/* P-Orbital */
pi = 3.141593
xn = 320
yn = 200
nradius = 160
SCREEN 12
FOR index = 0 TO 3600 STEP .1
x = SIN((pi / 180) * index)
y = COS((pi / 180) * index)
r = sin((pi/180)*index)
xr = x * r + xn
yr = y * r + yn
LINE (xr, yr)-(xr + 1, yr + 1), 1, BF
NEXT index
/* Propeller */
pi = 3.141593
xn = 320
yn = 200
nradius = 160
SCREEN 12
FOR index = 0 TO 720 STEP .1
x = SIN((pi / 180) * index)
y = COS((pi / 180) * index)
r = SIN((pi / 60) * index)
xr = x * nradius * r + xn
yr = y * nradius * r + yn
LINE (xr, yr)-(xr + 1, yr + 1), 1, BF
NEXT index
/* Kleeblatt */
pi = 3.141593
xn = 320
yn = 200
nradius = 160
SCREEN 12
FOR index = 0 TO 360 STEP .1
x = SIN((pi / 180) * index)
y = COS((pi / 180) * index)
r = SIN((pi / 90) * index)
xr = x * nradius * r + xn
yr = y * nradius * r + yn
LINE (xr, yr)-(xr + 1, yr + 1), 1, BF
NEXT index
/* Spirale */
pi = 3.141593
xn = 320
yn = 200
nradius = 160
SCREEN 12
FOR index = 0 TO 3600 STEP .1
x = SIN((pi / 180) * index)
y = COS((pi / 180) * index)
r = index / 10
xr = x * r + xn
yr = y * r + yn
LINE (xr, yr)-(xr + 1, yr + 1), 1, BF
NEXT index
/* Apfelmännchen */
DECLARE FUNCTION box! (xpos!, ypos!, xlen!, ylen!, farbe!)
DECLARE FUNCTION complex! (ix!, iy!, r!, i!, m!, gk!)
SCREEN 12
m = 4
gk = 200
maxh = 640
maxv = 480
INPUT "minr: ", minr
INPUT "maxr: ", maxr
INPUT "mini: ", mini
INPUT "maxi: ", maxi
dr = (maxr - minr) / (maxh - 1)
di = (maxi - mini) / (maxv - 1)
FOR iy = 0 TO maxv - 1
FOR ix = 0 TO maxh - 1
r = minr + ix * dr
i = mini + iy * di
k = complex(ix, iy, r, i, m, gk)
IF k = gk THEN
k = 0
ELSE
k = k MOD 9
IF k = 0 THEN k = 9
END IF
empty = box(ix, iy, 1, 1, k)
NEXT ix
NEXT iy
FUNCTION box (xpos, ypos, xlen, ylen, farbe)
LINE (xpos, ypos)-(xpos + xlen, ypos + ylen), farbe, BF
box = 0
END FUNCTION
FUNCTION complex (ix, iy, r, i, m, gk)
counter = 0
x = 0
y = 0
t = 0
WHILE (t <= m) AND (k < gk)
xt = x * x - y * y + r
yt = 2 * x * y + i
counter = counter + 1
t = xt * xt + yt * yt
x = xt
y = yt
WEND
complex = counter
END FUNCTION
/* Apfelmännchen-Orbitale */
DECLARE FUNCTION box! (xpos!, ypos!, xlen!, ylen!, farbe!)
OPEN "orbit1.txt" FOR OUTPUT AS #1
SCREEN 12
m = 4
gk = 250
dx = 320
dy = 240
r = -.5
i = -.5
FOR i = -1 TO 0 STEP .02
FOR r = -1 TO 0 STEP .02
k = 0
x = 0
y = 0
t = 0
ox = 1
oy = 1
CLS
WHILE (t <= m) AND (k < gk)
xt = x * x - y * y + r
yt = 2 * x * y + i
k = k + 1
t = xt * xt + yt * yt
x = xt
y = yt
lx = (x + 1) * 640
ly = (y + 1) * 480
empty = box(lx, ly, lx, ly, 2)
ox = lx
oy = ly
WEND
IF k = 250 THEN PRINT #1, r, i
NEXT r
NEXT i
FUNCTION box (xpos, ypos, xlen, ylen, farbe)
LINE (xpos, ypos)-(xpos + xlen, ypos + ylen), farbe, BF
box = 0
END FUNCTION
/* Interferenz */
SCREEN 12
DIM st(8)
st(0) = 160
st(1) = 80
st(2) = 40
st(3) = 20
st(4) = 10
st(5) = 5
st(6) = 2
st(7) = 1
INPUT "zoomfaktor:", zf
INPUT "farbtiefe:", cd
INPUT "farbzahl:", cn
pi = 3.1415926535#
fk = (zf * pi)
FOR s = 0 TO 7
FOR y = 0 TO 479 STEP st(s)
FOR x = 0 TO 639 STEP st(s)
col = SIN((-1 * (zf / 2) * pi) + x * (fk / 640)) - SIN((-1 * (zf / 2) * pi) + y * (fk / 480))
col = (col + 1) * cd
col = col MOD cn
IF col <> 0 THEN col = 11
LINE (x, y)-(x + (st(s) - 1), y + (st(s) - 1)), col, BF
NEXT x
NEXT y
NEXT s
/* Farbtabelle */
to line
make "ll1 []
make "ll2 []
make "x1 ((random 400) - 200)
make "y1 ((random 400) - 200)
make "x2 ((random 400) - 200)
make "y2 ((random 400) - 200)
make "ll1 lput :x1 :ll1
make "ll1 lput :y1 :ll1
make "ll2 lput :x2 :ll2
make "ll2 lput :y2 :ll2
make "colr random 8
setpc :colr
pu
setpos :ll1
pd
setpos :ll2
end
to lines
repeat 512 [line]
end
/* RAO (BASIC)
CLS
DIM e(6)
e(0) = 10
e(1) = 100
e(2) = 1000
e(3) = 10000
xs1 = 10
xs2 = 1
xs3 = 5
xs4 = 6
ys = 0
yad = 50
FOR x = 0 TO 10000 STEP 10
FOR y = 0 TO 10000 STEP 10
z1 = (xs1 + x) ^ 2 + (ys + y) ^ 2
z2 = (xs2 + x) ^ 2 + (ys + y) ^ 2
z3 = (xs3 + x) ^ 2 + (ys + y) ^ 2
z4 = (xs4 + x) ^ 2 + (ys + y) ^ 2
f1 = e(FIX(LOG(xs1 + x) / LOG(10)))
f2 = e(FIX(LOG(xs2 + x) / LOG(10)))
f3 = e(FIX(LOG(xs3 + x) / LOG(10)))
f4 = e(FIX(LOG(xs4 + x) / LOG(10)))
c1 = ((ys + y) * f1 + (xs1 + x))
c2 = ((ys + y) * f2 + (xs2 + x))
c3 = ((ys + y) * f1 + (xs3 + x))
c4 = ((ys + y) * f2 + (xs4 + x))
IF c1 = z1 THEN PRINT (ys1 + y), (xs1 + x), z1, c1
IF c2 = z2 THEN PRINT (ys1 + y), (xs2 + x), z2, c2
IF c3 = z3 THEN PRINT (ys2 + y), (xs1 + x), z3, c3
IF c4 = z4 THEN PRINT (ys2 + y), (xs2 + x), z4, c4
NEXT y
NEXT x
/* Binomialkoeffizient - 4GL */
MAIN
DEFINE ergebnis INTEGER,
wert1 INTEGER,
wert2 INTEGER
PROMPT "n : " FOR wert1
PROMPT "k : " FOR wert2
CALL binomial_koeffizient(wert1,wert2) RETURNING ergebnis
DISPLAY ergebnis
END MAIN
FUNCTION binomial_koeffizient(n,k)
DEFINE ergebnis1 INTEGER,
ergebnis2 INTEGER,
n INTEGER,
k INTEGER
IF ((k = 0) AND (n >= 0)) OR ((k = n) AND (k >= 0)) THEN
LET ergebnis1 = 1
RETURN ergebnis1
END IF
IF (n > k) AND (k > 0) THEN
CALL binomial_koeffizient(n-1,k-1) RETURNING ergebnis1
CALL binomial_koeffizient(n-1,k) RETURNING ergebnis2
LET ergebnis1 = ergebnis1 + ergebnis2
RETURN ergebnis1
END IF
END FUNCTION