04 Beispiele

Was wäre eine Programmiersprache ohne Beispiele? … eben …

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 = GETLAT()
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 ISSQR(U) = 1 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(A, O, 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?