Programmcodees

Zum Erzeugen magischer Quadrate beliebiger Kantenlänge ist es ganz praktisch, einen Satz von Berechnungsfunktionen verfügbar zu haben. Eine Prüffunktion, die die Eigenschaften eines vorgegebenen Quadrates prüft und dieses ggf. als "magisch" erkennt, ist ebenfalls nützlich.

Eine Sammlung einfacher C-Funktionen für diese Aufgabe ist schnell geschrieben. Die hier wiedergegebene Programmquelle ist frei von Rechten Dritter. Wie üblich, verwenden die geneigten Leser den Code auf eigenes Risiko. Eine Gewähr für die Richtigkeit wird nicht übernommen.

 Rahmenprogramm

Das Rahmenprogramm ist einfach und setzt auf wxWidgets auf. Damit sollte es sowohl unter MS-Windows als auch in eine graphischen Oberfläches eines Linux-Systems compilierbar sein. Der vollständige Quellcode für DevCpp kann hier heruntergeladen werden. Wer MS-Windows benutzt, findet hier ein ausführbares Programm.

Die eigentlichen Funktionen zum Bearbeiten magischer Quadrate sind unabhängig von der Benutzeroberfläche und können in anderen Programmen eingebunden werden.

Alle Funktionen zum Berechnen bzw. Prüfen eines Quadrates gehen davon aus, daß sie ein gültiges File-Handle erhalten. Die Erzeuger schreiben ASCII-Dateien, die Prüffunktion liest solche. Sie können folglich die generierten Quadrate einfach in Textdokumente importieren bzw. Textdateien, die solche vermeintlichen magischen Quadrate enthalten, prüfen, auch wenn sie nicht mit den hier vorgestellten Routinen erzeugt wurden. Die Quadrate werden zeilenweise ausgegeben bzw. gelesen, wobei dei Einträge einer Zeile mit Kommata getrennt sind. Zwischenräume zwischen den Werten und Leerzeilen sind zulässig.

yyy

 Erzeugung ungerader magischer Quadrate

yyy

 Erzeugung doppelt-gerader magischer Quadrate

yyy

 Erzeugung einfach-gerader magischer Quadrate

yyy

 Prüfung eines Quadrates auf die magische Eigenschaft

Die Prüfung nimmt darauf Rücksicht, daß bestimmte Eigenschaften in einem magischen Quadrat zusätzlich vorhanden sein können. Momentan wird geprüft:

Beachten Sie, daß die Prüfung der magischen Eigenschaft mehrfache Summationen über Zeilen bzw. Spalten benötigt, sodaß die Prüfung dieselbe Komplexität hat, wie die Erzeugung eines magischen Quadrates.

yyy

weiter zum Exkurs


Stand: 27.11.2006 /
 HPs Home      Magische Quadrate/Home