| Author: | Thomas Weise |
| Supervisors: | Raik König and Gerd Kunert |
Formula is a program that is able to use simple AI to solve exercises. It has a database which contains formulas. The user will specify known variables and a requested value. Formula will then browse its database to find formulas that fit and will even be able to combine multiple formulas in order to solve the task. Furthermore, Formula automatically recognizes ambiguous expressions inside the formula: If a problem is to be solved that involves the computation of a square root of 9, for example, Formula will detect that both, 3 and -3, are possible results.
Der theoretische Teil meiner Besonderen Lernleistung entstand erst nach Beendigung der praktischen Arbeit und soll diese in chronologischer Reihenfolge nachvollziehen. Dabei bezieht er sich auf die letzte Version von Formula.
Weil es sich um ein Programm handelt, ist es unumgänglich Fachwörter aus dem Bereich der Informatik zu verwenden. Diese werden jedoch stets erklärt. Ebenso werden Zusammenhänge in beispielsweise Quelltextauszügen durch farbliches Hervorheben verdeutlicht.
Da der Umfang des theoretischen Teils auf nur zwanzig Seiten beschränkt ist, kann ich hier nur die wichtigsten Aspektes meines Programms ansprechen. Um diese jedoch genauer zu erklären fehlt dennoch Platz.
Der Gedanke zu "Formula" entstand bereits in der zehnten Klasse, noch bevor mir die Möglichkeit einer Besonderen Lernleistung bekannt war. Damals versuchte ich gerade, einige mathematische Grundfunktionen, wie zum Beispiel den Arcussinus, algorithmisch darzustellen. Zu dieser Zeit beschäftigte ich mich ebenfalls mit einigen Aspekten der künstlichen Intelligenz. Darunter ist zu verstehen, dass ein Rechner aus den Atomen "Tagsüber scheint die Sonne." und "Es ist Tag." folgert "Die Sonne scheint.". Aus diesen beiden Ideen entstand dann das endgültige Projektziel mit folgenden Aufgabenstellungen. - Es ist ein Softwareprogramm zu entwickeln welches Aufgaben aus den Bereichen Physik und Chemie lösen kann.
- Dabei sollen Formeln aus einer Datenbasis verwendet werden. Diese Formeln müssen vom Benutzer modifiziert werden können.
- Das Programm soll für jedes Problem selbständig die richtigen Formeln auswählen und ineinander einsetzen.
- Das Programm muss möglichst einfach zu bedienen sein. Daraus folgt, dass Lösungen verständlich formuliert werden und auch ein nachvollziehbarer Rechenweg inklusive Zwischenergebnissen angezeigt wird.
- Jegliche interne Berechnung muss numerisch stabil verlaufen.
- Bei Gleichungen mit mehreren Lösung müssen auch alle Lösungen ausgegeben werden. Daraus entstand schließlich ein Softwareprogramm für PC-kompatible Computer unter dem Betriebssystem Microsoft Windows (32 Bit).
"Formula" dient dazu, physikalische und chemische Berechnungen zu vereinfachen. So können Aufgabenstellungen direkt in das Programm eingegeben werden. Daraus wird dann automatisch ein Rechenweg ermittelt, und alle notwendigen Gleichungen werden ausgerechnet. Dabei ist es möglich, dass mehrere Formeln ineinander eingesetzt werden. Der Benutzer erhält eine Lösung der Aufgabe, die allen schulischen Standards ("Gegeben", "Gesucht" und "Lösung") entspricht. Selbstverständlich werden auch alle Zwischenergebnisse berechnet und ausgegeben. Die Lösungen können gespeichert oder in die Zwischenablage kopiert und später in ein Dokument eingefügt werden. Auch kann man sie sofort drucken. Vom Benutzer können neue Formeln eingegeben werden. Ebenso kann man die bereits vorhandenen Formeln bearbeiten oder entfernen. Das Programm ist auch in der Lage, mehrere Ergebnisse zu berechnen, da beispielsweise bei Dreieckskalkulationen mehr als eine Lösung möglich sein kann. In solchen Berechnungen ist es meist notwendig, auf Winkelfunktionen zu zugreifen. Dabei stehen vier Modi der Winkelangabe (Altgrad, Neugrad, Bogenmaß und Vollkreise) zu Verfügung. Gute Beispiele für die Zeitersparnis, die die Arbeit mit Formula mit sich bringen kann, finden Sie im Anhang A. Für die mathematische Seite des Projekts hatte ich mir bereits die Aufgabe gestellt, dass alle Operationen numerisch stabil ablaufen sollen. Dies bedeutet, dass zum Beispiel Fehler wie "Division by Zero" (englisch für Division durch Null) umgangen werden. Zusätzlich musste es eine Möglichkeit geben, Formeln dauerhaft abzuspeichern, da es sinnlos wäre, wenn man bei jedem Programmstart alle, möglicherweise notwendigen, Formeln eingeben müsste. Zu all dem kam hinzu, dass ich mir fest vorgenommen hatte, mein Ziel aus eigener Kraft zu erreichen, also keinen der Bestandteile meines Programms aus irgendeiner Literatur zu übernehmen. Einzig beim mathematischen Teil des Projektes war Hilfe notwendig, da mir auf diesem Gebiet noch Kenntnisse fehlen.
Daraus ergaben sich folgende Probleme:
1. Wie stellt man eine mathematische Formel auf dem Computer dar?
2. Wie speichert man solche Formeln dauerhaft?
3. Wie findet man Lösungen für Problemstellungen?
4. Wie rechnet man Formeln mit Hilfe mathematischer Funktionen aus?
5. Wie stellt man die mathematischen Grundfunktionen numerisch stabil dar?
6. Wie schafft man es, alle möglichen Lösungen zu beachten?
7. Wie erstellt man eine sinnvolle, möglichst selbsterklärende, Bedienoberfläche?
Um diese Probleme zu lösen, standen mir zur Verfügung:
1. Die Hilfe von Dr. Gerd Kunert, der mich seit 1999 auf dem Gebiet der Mathematik tatkräftig unterstützt hat.
2. Die Hilfe von Herr König, der mich bei dieser theoretischen Ausarbeitung unterstützt hat.
3. Turbo Pascal 7.0
4. und später Delphi 4.0 Standard
Mathematics, Implementation/Frameworks, Turbo Pascal, Delphi (Programming Language)
@misc{W1999FOR,
author = {Thomas Weise},
title = {{Formula {--} A Multi-Solution Formula Resolution and Computation System}},
publisher = {{Dr. Wilhelm Andr{\'{e}} Gymnasium: {Chemnitz, Sachsen, Germany}}},
year = {1999},
url = {http://www.it-weise.de/documents/files/W1999FOR.pdf},
note = {Besondere Lernleistung},
key = {W1999FOR},
},| Metadata: | http://www.it-weise.de/documents/metaW1999FOR.html |
| Full document: | http://www.it-weise.de/documents/files/W1999FOR.pdf (893 kiB) |
| Presentation: | http://www.it-weise.de/documents/files/W1999FOR_slides.pdf (612 kiB) |
| Source code: | http://www.it-weise.de/documents/files/W1999FOR_sources.zip (3 MiB) |