Was wäre eine Programmiersprache ohne Beispiele? … eben …
- Hello World
- Tannenbaum – ASCII-Art
- Geo-Art
- Suche nach vier Ziffern
- Abstand
- Teilen
- Komplexe Zahlen
- Fast vollkommene Zahlen
- Summe der Teiler
- DATA
- Wurzelzwerg
Hello World
PRINT "HELLO WORLD"
Druckt “Hello World” in der Ausgabe.
Tannenbaum – ASCII-Art
Z = 1 WHILE Z != 0 INPUT "ZEILEN:", Z IF Z = 0 THEN BREAK ENDIF PRINT "" FOR J = Z TO 1 STEP - 1 ZEILE = " " FOR I = 1 TO J ZEILE = ZEILE + " " NEXT FOR K = 1 TO (Z+1-J)*2-1 ZEILE = ZEILE + "#" NEXT PRINT ZEILE NEXT ZEILE = "" FOR L = 1 TO Z+1 ZEILE = ZEILE + " " NEXT ZEILE = ZEILE + "#" PRINT ZEILE PRINT "" WEND
Fragt nach der Anzahl der Zeilen und druckt einen Tannenbaum in der Ausgabe.
0 beendet das Programm.
Geo-Art
REM mit Button lat/lon Koordinaten holen
a = GETLAT()
b = GETLON()
c = 0.0
FOR i = 1 TO 10
PROJECTION(a, b, 100.0, c)
c = c + 36.0
x = GETLAT()
y = GETLON()
WPTSADD(x, y)
NEXT
Liest eine Koordinate ein und speichert einen Kreis mit Radius 100m und 10 Punkten im Abstand von 36 Grad in der Wegpunktliste.
Suche nach vier Ziffern
FOR Z = 1 TO 9
FOR A = 1 TO 9
FOR H = 1 TO 9
FOR L = 0 TO 9
C = 0
U = Z * 1000 + A * 100 + H * 10 + L
V = A * 1000 + H * 100 + Z * 10 + L
W = H * 1000 + A * 100 + Z * 10 + L
IF ISSQR(U) = 1 THEN
C = C + 1
ENDIF
IF ISSQR(V) = 1 THEN
C = C + 1
ENDIF
IF ISSQR(W) = 1 THEN
C = C + 1
ENDIF
IF C = 3 THEN
PRINT "ZAHL: "; Z, A, H, L
ENDIF
NEXT
NEXT
NEXT
NEXT
Gesucht werden vier Ziffern, die entsprechend kombiniert drei vier-stellige Quadratzahlen bilden.
Abstand
R = 197
LAT = 50.9621667
LON = 11.03585
C = 0
FOR M = 0 TO 999
FOR S = 1 TO 2
FOR N = 0 TO 999
X = 50 + (57 + M / 1000) / 60
Y = 11 + (S + N / 1000) / 60
D = DISTANCE(LAT, LON, X, Y)
IF D <= R THEN
C = C + 1
ENDIF
NEXT
NEXT
NEXT
PRINT "Punkte im Radius ", R, " SIND ", C
Sucht die Anzahl der möglichen Koordinaten, die innerhalb eines Radius R um die Koordinate (LAT|LON) liegen.
Teilen
FOR A = 1 TO 9
FOR B = 0 TO 9
Z = A * 10000 + 6790 + B
C = Z / 72
R = MOD(Z, 72)
IF R = 0 THEN
PRINT Z, A,B,C
ENDIF
NEXT
NEXT
Jemand kauft 72 identische Produkte.
Diese Produkte kosten alle denselben Preis C
und dieser Preis ist ein ganzzahliger Eurobetrag.
(also 1 Euro oder 2 Euro oder 3 Euro usw.)
Die Gesamtsumme des Kaufpreises beträgt A679B Euro.
Dabei ist B eine Zahl aus der Menge der ganzen Zahlen von 0 bis 9
und A eine Zahl aus der Menge der ganzen Zahlen von 1 bis 9.
Der Gesamtkaufpreis ist also fünfstellig.
Was ist A und B?
Und wieviel kostet nun ein einzelnes Produkt?
Komplexe Zahlen
DATA 1.91372648, 2.4914364, 3.05909465, 0.71522325
DIM L
FOR I = 1 TO 2
LISTCLEAR(L)
READ X
READ Y
POLAR(L, X, Y)
PRINT L
NEXT
Liest aus einem Datenblock jeweils eine komplexe Zahl in Form von kartesischen Koordinaten und wandelt diese in ihre polare Form um.
Fast vollkommene Zahlen
DIM T
FOR I = 15 TO 99
LISTCLEAR(T)
DIVISORS(T, I)
S = SUM(T) - I
D = I - 4
IF S = D THEN
PRINT I, D, T
ENDIF
NEXT
Gesucht seien nicht vollkommene Zahlen, sondern – sagen wir – “fast vollkommene Zahlen”.
Die seien so definiert:
Eine natürliche Zahl n soll eine “fast vollkommene Zahl” sein, wenn die Summe aller ihrer (positiven) Teiler außer sich selbst um eine bestimmte Differenz kleiner ist als die Zahl n.
Frage: was ist die nächstgrößere fast vollkommene Zahl A bezüglich der Differenz 4 nach der 14?
Summe der Teiler
DIM T
FOR I = 1 TO 999
LISTCLEAR(T)
DIVISORS(T, I)
S = SUM(T) - I
IF S > I THEN
PRINT I, S, T
END
ENDIF
NEXT
Es gibt tatsächlich auch natürliche Zahlen, bei denen die Summe aller ihrer (positiven) Teiler außer sich selbst größer ist als die Zahl selbst. Welches ist die kleinste natürliche Zahl B, für die das der Fall ist?
DATA
DATA 120,064,064,048,008,072,048,000
DATA 024,036,004,008,016,032,060,000
DATA 012,018,018,012,000,000,000,000
DATA 024,036,004,008,004,036,024,000
DATA 016,048,080,120,016,016,016,000
DATA 000,000,000,000,000,000,000,000
DATA 120,064,064,048,008,072,048,000
DATA 024,036,004,008,004,036,024,000
DATA 120,064,064,048,008,072,048,000
DATA 000,000,000,000,000,000,000,000
DATA 056,076,076,084,100,100,056,000
DATA 016,048,016,016,016,016,056,000
DATA 024,036,004,008,004,036,024,000
DATA 012,018,018,012,000,000,000,000
DATA 056,076,076,084,100,100,056,000
DATA 120,064,064,048,008,072,048,000
DATA 000,000,000,000,000,000,000,000
DATA 016,048,080,120,016,016,016,000
DATA 016,048,080,120,016,016,016,000
DATA 048,072,072,048,072,072,048,000
FOR I = 1 TO 20
FOR J = 1 TO 8
READ A
S = CONVERTBASE(A, 10, 2)
T = PADLEFT(S, "0", 8)
T = SUBST(T, "0", " ", 0)
T = SUBST(T, "1", "#", 0)
PRINT T
NEXT J
NEXT I
DATA 120,064,064,048,008,072,048,000
DATA 024,036,004,008,016,032,060,000
DATA 012,018,018,012,000,000,000,000
DATA 024,036,004,008,004,036,024,000
DATA 016,048,080,120,016,016,016,000
DATA 000,000,000,000,000,000,000,000
DATA 120,064,064,048,008,072,048,000
DATA 024,036,004,008,004,036,024,000
DATA 120,064,064,048,008,072,048,000
DATA 000,000,000,000,000,000,000,000
DATA 056,076,076,084,100,100,056,000
DATA 016,048,016,016,016,016,056,000
DATA 024,036,004,008,004,036,024,000
DATA 012,018,018,012,000,000,000,000
DATA 056,076,076,084,100,100,056,000
DATA 120,064,064,048,008,072,048,000
DATA 000,000,000,000,000,000,000,000
DATA 016,048,080,120,016,016,016,000
DATA 016,048,080,120,016,016,016,000
DATA 048,072,072,048,072,072,048,000
SCREEN(1)
STROKE(1)
ANTIALIAS(0)
COLOR(0, 0, 0)
FOR I = 1 TO 20
FOR J = 1 TO 8
READ A
S = CONVERTBASE(A, 10, 2)
T = PADLEFT(S, "0", 8)
Y = 100 +I * 9 + J
FOR K = 1 TO 8
X = 100 + K
C = MID(T, K, 1)
IF C = "1" THEN
DOT(X, Y)
ENDIF
NEXT K
NEXT J
NEXT I
Wurzelzwerg
Lat= 53.4738833
Lon= 11.4083167
for i = 4 to 20
N = i*7
if mod(N,2)=1 then
if mod(N,3)=2 then
if mod(N,4)=3 then
if mod(N,5)=4 then
if mod(N,6)=5 then
X=N*8+83
Y=N*10-8*N-77
print "N=",N,"X=",X,"Y=",Y
projection(Lat, Lon, X,Y)
La=GETLAT()
Lo=GETLON()
LaNach=ROUND((La - TRUNC(La))60,3) LoNach=ROUND((Lo - TRUNC(Lo))60,3)
print "N"+ STR(TRUNC(La))+"° "+STR(LaNach)+" E"+ STR(TRUNC(Lo))+"° "+STR(LoNach)
endif
endif
endif
endif
endif
next
Gehe von hier in Richtung Y Grad genau X Meter.“
Finde dazu die kleinste ganze Zahl „N“, die beim Dividieren durch 2 einen Rest von 1, beim Dividieren durch 3 einen Rest von 2, beim Dividieren durch 4 einen Rest von 3, beim Dividieren durch 5 einen Rest von 4, beim Dividieren durch 6 einen Rest von 5, doch beim Dividieren durch 7 keinen Rest ergibt.
X=N*8+83
Y=N*10-8*N-77