Wir wollen eine Klasse Problem schreiben, die die Interfacedefinition der
Korrekturprogramme darstellt. Diese Klasse ist eine Relation zwischen drei
Datentypen. Diese sind Problem, Instanz und Beweis.
Problem ist ein eigener Datentyp mit einem konstanten Konstruktor,
welcher zur grundsätzlichen Unterscheidung der Probleme dient.
Instanz ist eine beliebige Datenstruktur einer Aufgabe.
Beweis ist eine beliebige Datenstruktur einer Lösung.
validiere ist die Funktion, die die Gültikeit der Aufgabe prüft.
verifiziere ist die Funktion, die die Korrektheit der Lösung
überprüft.
getInstanz ist die Funktion, welche die Visualizierung der Aufgabe
erledigt
getBeweis ist die Funktion, welche die Visualisierung der Lösung
erledigt
Die Klasse wird dann für die einzelnen Probleme instantiiert. Somit entscheidet der Interpreter selbst, um welches Problem es sich handelt, und welches Korrekturprogramm benutzt wird.
Desweiteren soll die Datenstruktur Einsendung entweder eine Aufgabe oder
eine Lösung repräsetieren, welche vom Studenten kommt.
Eine Aufgabe besteht aus den Teilen Problem, Instanz und Beweis.
Eine Lösung besteht aus den Teilen Problem, Ident und Beweis.
Dabei sind Problem Instanz und Beweis die gleichen Datentypen,
wie sie in der Klasse Problem verwendet werden. Hinzu kommt
Ident, welcher zur Unterscheidung der einzelnen Aufgaben eines Problems genutzt
wird.
Demnach ergibt sich dadurch eine exaktere Beschreibung des Programms wie folgt:
Johannes Waldmann 2009-11-17