Der Aufgabensteller könnte einen kleinen Quelltext ausgeben, der z.b. eine Primzahl berechnet. Leider hat dieser Quelltext ein paar Syntax- und Semantikfehler und die Leser dürfen herausfinden welche.
Als weiteres würde ich eine Aufgabe empfehlen, die Parameterübergabe (by value, by reference, by name) und lokale und globale Variablen zum Thema hat. Ein kleiner Quelltext wird vorgegeben, worin mehrere Parameterübergabearten und Variablen drin vorkommen. Diese Variablen werden geändert untereinander zugewiesen und zwischendurch ausgegeben. Der Leser muss nun herausfinden, welchen Wert eine Variable bei der Ausgabe hat. Dies kann natürlich nur ohne PC gemacht werden.
Ich würde auch allgemeine Fragen im MultipleChoice Verfahren empfehlen (+1 Pkt für Richtig, 0 nichts angekreuzt, -1 falsch angekreuzt).
z.b. "Mitglieder einer Klasse, die unter dem Schlüsselwort private stehen, sind von abgeleiteten Klassen aus zugreifbar [falsch] [richtig]"
"Eine Methode, die mit abstract gegennzeichnet ist, muss überschrieben werden. [falsch] [richtig]"
"Eine while Schleife ist kopfgesteuert. [falsch] [richtig]"
"Es können mehrere begin und end; geschachtelt werden [falsch] [richtig]"
"Lokale Variablen werden automatisch von Delphi initialisiert [falsch] [richtig]"
"Globale Variablen werden automatisch von Delphi initialisiert [falsch] [richtig]"
"Eine for-Schleife endet immer", "Eine Repeat-Schleife endet immer"
"if (x > 0) or (x < 0) ist dasselbe wie
if (x > 0) then
if (x < 0) then"
"Inc(x,5) ist dasselbe wie, x := x + 5;"
"Sei b ein boolean und gegeben sei B := 'Hallo Welt' = 'Hallo welt'; Dann ist danach b = true."
"Das Wort result ist in Prozeduren nicht erlaubt." (das ist übrigens falsch)
"Exceptions sind Klassen, die für die Regelung von Ausnahmefällen verwendet werden"
"type TMyClass = TComponent; ist dasselbe wie type TMyClass = class(TComponent);"
"type TMySubClass = class(TComponent);
TMyClass = TMySubClass;
TMyClass2 = class(TComponent);"
Es gilt der Typ von TMyClass = TMyClass2 ." (wahr)
"Delphi kann auch Spieleprogramme erstellen".
Für eine trockene Klassenarbeit, kann ich übrigens nur abraten, ganze Quelltexte schreiben zu lassen. Besser sind auch hier immer Lückentexte (mit vorgegebenen Wörtern, Strukturen und natürlich unnütze Sachen), denn diese erfordert immer mehr Gedanken dazu, als das Niederschreiben von Quelltexten.
Das geht natürlich auch mit Computern. Der Korrekturaufwand ist dabei ziemlich gering.
Weiterhin wären kleine Textaufgaben, die in Delphi übersetzt werden sollen, auch recht gut.
"Wenn die Anzahl der Äpfel zwischen 6 und 10 liegt, darf einer weggenommen werden." wir dzu
"if (a >= 6) and (a <= 10) then
Dec(a)" (gibt natürlich noch Varianten.
Was ich nieeeee empfehle, sind lange Aufgaben, die eine dumme Abhängigkeit zwischen den einzelnen Teilaufgaben haben. (z.b. c ist nur lösbar mit Lösung von b)