Variation: Magisches Quadrat mit fester Summe
Nun wollen wir noch einen kleinen Schritt weiter gehen. Wie wäre es, ein magisches Quadrat zu erstellen, bei dem die Summe vorher feststeht? Du könntest dann zum Beispiel eine Person, die über 21 ist, nach ihrem Alter fragen und für sie ein ganz persönliches magisches Quadrat ihres Alters erstellen. Das macht Eindruck!
Wie müssten wir das Programm abändern?
Für diese Variante werden also nicht mehr die Werte a und b eingegeben, sondern es wird nur die gewünschte Summe eingegeben. Aus der Summe soll jetzt a und b berechnet werden. Der Rest vom Programm bleibt gleich (die Ausgabe der Zahlen). Die Summe muss größer als 21 sein, denn 22 ist die Summe des kleinsten magischen Viererquadrats.
Wenn die Summe also a*21 plus b ist, dann kann man umgekehrt auch a und b aus einer vorgegebenen Summe ermitteln. Wenn du gut in Mathe bist, kommst du vielleicht selbst drauf, ansonsten werde ich es dir sagen:
-
a ist die Summe geteilt durch 21 (als ganze Zahl)
-
b ist der Rest, der bleibt, wenn man die Summe durch 21 teilt.
So etwas haben wir doch schon mal gemacht – im Rechner mit Rest. Die Formel ist also genauso:
-
a = summe // 21 (Ganzzahldivision mit dem doppelten Schrägstrich)
-
b = summe % 21 (Rest mit Prozentzeichen ermitteln)
[ ! ] Achtung
Diese Methode funktioniert für alle Zahlen, die nicht Vielfache von 21 sind – also nicht für 21,42,63,84 …, weil dort die zweite Zahl 0 wäre. Man könnte diese Fälle im Programm gesondert behandeln – aber der Einfachheit halber belassen wir es jetzt einmal dabei.
Und so sieht dann unser geändertes Programm aus:
summe = input("Gib eine Summe (über 21) ein:")
# a und b berechnen:
a = summe // 21
b = summe % 21
# Magisches Quadrat ausgeben:
print "------------------------------------------------------------"
print a+b,a,12*a,7*a
print 11*a,8*a,b,2*a
print 5*a,10*a,3*a,3*a+b
print 4*a,2*a+b,6*a,9*a
print "------------------------------------------------------------"
Jetzt kannst du (fast) jede beliebige Summe von 22 bis unendlich eingeben, und Python wird dir daraus ein gültiges magisches Quadrat berechnen!
Abbildung 7.10 Magisches Quadrat für die Summe 25
Zusammenfassung
-
Programme sind eine Folge von Befehlen.
-
Die meisten Programme bestehen aus den Elementen Dateneingabe, Datenverarbeitung (Berechnung), Datenausgabe.
-
Beim Start eines Programms führt Python nacheinander jeden Befehl in der Liste aus, von oben nach unten. Wenn ein Befehl abgearbeitet worden ist, folgt der nächste.
-
Zum Zwischenspeichern von Werten und Zeichenketten werden Variablen verwendet. Diese verwendet man genau so wie ihren Inhalt.
-
Wenn man die Formel kennt, kann man für jede Berechnung, egal ob einfach oder kompliziert, ein Programm schreiben, das einem die Ermittlung des gewünschten Wertes vereinfacht.
-
Du kannst in jedes Programm Kommentare einfügen, um sie besser verständlich zu machen. Kommentare beginnen mit einem #-Zeichen und enden am Ende der Zeile.