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