Startseite

www.turniersystem.de


Erläuterungen zu den Mathe-Programmen

 

 

Zur Hauptseite

Schach!

turniersystem-online
Schachuhr
Bestellen: Turniersystem-CD

Schach?

Anzeigetafel - Demo-Version
Übungsaufgaben Mathematik und Physik
Gedanken zu Wirtschaft und Politik

 

Kontakt / Impressum

Allgemeines:

Die meisten Programme habe ich mit SharpDevelop2.0 in VB2005 geschrieben, einfach deshalb, weil ich diese Sprache und diese Programmierumgebung auch im Unterrichtsfach Programmierung verwendet habe. Davor habe ich - ebenfalls im Programmier-Unterricht mit VisualStudio 6.0 und C++ gearbeitet, einige Programme stammen noch aus dieser Zeit.
Damit die Programme laufen, benötigen sie noch einige Programmbibliotheken, die von VisualStudio bzw. SharpDevelop kommen. Diese sind in der Datei "dll-Dateien.zip" enthalten und sollten in den Windows-System32-Ordner kopiert werden.

Es müsste aber auch reichen, sie im gleichen Verzeichnis wie die Programme zu haben.
Die VB-Programme brauchen natürlich auch die .NET-Umgebung (W2k mit SP4)


Die meisten Programme habe ich - zum Teil in abgespeckter Form - auch im Unterricht Programmierung mit Berufsfachschülern erarbeitet. Ein Programm zur Lösung quadratischer Gleichungen war auch mal Prüfungsaufgabe.
Neben dem Programmieren ist natürlich auch das Verstehen der Lösungswege und Algorithmen Ziel dieser Arbeit:
Wenn man einem Computer erklären kann, wie er eine Aufgabe lösen soll, hat man den Lösungsweg gewöhnlich auch selbst begriffen.

"Quad-Gleich":

Lösen von quadratischen Gleichungen mit allen Sonderfällen.

War als Konsolenprogramm Prüfungsaufgabe zum Thema Programmverzweigung. Den Algorithmus in die TextChanged-Methode gepackt und fertig.

"LGS":

Löst lineare Gleichungssysteme mit bis zu 10 Variablen, nimmt (beim Gauss'schen Algorithmus) einen eventuell nötigen Austausch von Variablen und Gleichungen vor und zeigt auch die resultierende Dreiecks- oder Trapez-Matrix an.

Als Beispiel für das Arbeiten mit Schleifen fast schon zu komplex. Dabei ist der eigentliche Gauss'sche Algorithmus noch das wenigste, viel mehr wird durch die erforderlichen Abfragen wegen Sonderfällen das Ganze aufgebläh�t.
(Wenn man hier einfach abbricht, verschenkt man möglicherweise ein paar Lösungen, aber das Programm bleibt überschaubar.)
Neben dem Gauss habe ich auch die Berechnung mittels Determinanten implementiert, allerdings steigt dabei der Rechenaufwand mit n!, für zehn Gleichungen sind das pro Determinante gut 3 Millionen rekursive Funktionsaufrufe, das dauert dann doch ein bisschen.
Auch ist der "Entwicklungssatz für Determinanten", der hier zu Grunde liegt, den meisten nicht geläufig.

"Primzahlen":

Das Programm bestimmt alle Teiler einer Zahl, zerlegt in Primfaktoren oder zeigt alle Primzahlen eines Bereichs an. Aus Gründen der Variablentypen und der Rechenzeit nur bis etwa 18Trillionen (64Bit-Zahl) - also den RSA-Algorithmus kann man damit nicht knacken ...

Verwendet Brute-Force mit der Einschränkung, dass außer der Zwei keine geraden Zahlen mehr durchprobiert werden.

"Kopfrechentrainer":

Stellt zufällig Aufgaben aus dem vom Nutzer festzulegenden Aufgaben- und Zahlenbereich. Zählt die Richtigen und vergibt je nach Zeit Punkte. Die Zeiten sind im Quelltext fest voreingestellt.

War eine �Übung zu Zufallszahlen und Schleifen, mit der graphischen Oberfläche ist es einfacher zu programmieren als ohne!

"Complex-Rechner":

Rechnet die wesentlichen Aufgaben mit komplexen Zahlen, zeigt gleichzeitig die arithmetische/kartesische Form (Real- und Imaginärteil) und die trigonometrische/polare Form (Betrag und Winkel) an, Eingabe ist in beiden Formen ohne Umschalten möglich.

Arbeitet intern mit einem Kellerspeicher, um Klammern und Vorrangregeln zu beachten. Eine einfache Form, die dieses nicht kann, ist erheblich leichter zu programmieren.

"Vektorrechner":

Ermöglicht die Lösung aller Aufgaben aus der Vektorrechnung , die man den "armen Schülern" in Mathe-Prüfungen so zumutet - einschließlich Veranschaulichung.

Eine Klasse "CVektor", für die alle wesentlichen Operatoren überladen werden, ist Grundlage des Programms, dazu kommt das Lösen von Gleichungssystemen und eine graphische Darstellung, die das Drehen eines Koordinatensystems ermöglicht - da musste ich ziemlich tief in die Trickkiste mit den Koordinatentransformationen greifen ...
Einfacher wäre es als Konsolenprogramm zur Berechnung der wichtigsten Dinge.

"MatheSpezial":

Dieses Programm löst die Aufgaben der Funktionsanalyse/Kurvendiskussion für alle(!) Funktionen.
Also Anzeige des Graphen mit ziemlich frei w�lbarem Anzeigebereich, Berechnungvon Nullstellen, Extrem- und Wendepunkten, bei gebrochen-rationalen Funktionen auch Polstellen;
Berechnung von Schnittpunkten zweier Graphen (l�t also beliebige Gleichungen im Bereich (-100;100)(!));
Berechnung von Integralen, Fl�heninhalten (auch wenn Nullstellen im Intervall sind), und Rotationsvolumen.
Und schließlich kann die erste und zweite Ableitung als Term angezeigt werden - für beliebige Funktionen!!!
Für Polynome und gebrochen-rationale Funktionen ist auch die Erstellung einer Funktion aus vorgegebenen Eigenschaften möglich.
Aus zwei Funktionen kann die Summenfunktion erstellt werden.
In der aktuellen Version ist das Speichern in einem speziellen XML-Format möglich, ebenso ein Export der Bilder als GIF oder JPG.

Die meiste Arbeit steckt in der Programmbibliothek "highmath.dll", dort sind die Funktionenklassen und die Methoden definiert. Mit Schülern haben wir die Klassen "Funktion" und "Polynom" erarbeitet, bis auf die "FreieFunktion" sind auch die anderen Klassen nicht zu schwierig.
Die "FreieFunktion" muss eine Zeichenkette parsen, gegenber dem Funktionen-Applet auf dieser Webseite habe ich den Parser völlig neu gebaut. Das ist etwas für Informatik-Studenten ...
Irgendjemand hatte mir mal erklärt: "Differenzieren ist Arbeit, Integrieren ist Kunst."
Das Bestimmen einer Ableitung klappt immer, ist nur manchmal etwas langwierig und somit genau richtig für einen Computer. Es ist nur nicht ganz einfach, dem Computer alle Ableitungsregeln richtig beizubringen.
Damit keine Dummheiten passieren, enthält der Ableitungsterm noch ein paar "mathematisch unnötige" Klammern und läßt sich meistens auch noch vereinfachen.

Das Programm "MatheSpezial" stellt dann nur noch die graphische Oberfläche bereit und sorgt für die Dateiarbeit usw.



 
© Bernd Sumpf 8/2007