Programm : Rechentrainer

 

Wer braucht ihn nicht? Den Rechentrainer. Er soll Kopfrechen-Aufgaben stellen (ev. mit einstellbarem Schwierigkeitsgrad) und dann die eigene Lösung bestätigen bzw. als falsch anmahnen. Dabei können verschiedene Rechenarten gewählt werden.

Zunächst braucht man einen Aufgaben-Generator, der zufällig Zahlenpaare wählt:

procedure TForm1.AufgabeBtnClick(Sender: TObject);
begin
    a := random(20); b := random(20); // je nach Schwierigkeitsgrad
    case op of
        1 : e := a+b;
        2 : e := a-b;
        3 : e := a*b;
        4 : e := a div b;
    end;
    AufgabenLbl.Caption := IntToStr(a)+opstr+IntToStr(b);
end;

Die Variablen a,b,e sollen globale Variablen sein, weil sie von anderen Routinen des Programms auch benutzt werden. Zusätzlich wurden noch zwei weitere globale Variable definiert:

op: steht für die Rechenart und wird durch Drücken eines der vier Knöpfe '+',  '-', 'x' bzw. ':' gesetzt. Um die Ausgaberoutine einfacher zu halten, wird gleichzeitig eine Variable opstr gesetzt, so dass man nur eine Anweisung für die Ausgabe der Aufgabe bekommt. Die einfachste Möglichkeit wäre, jedem der Knöpfe eine eigene OnClick-Routine zuzuweisen-

procedure TForm1.PlusBtnClick(Sender: TObject);
begin
    op := 1 ;
    opstr := '+';
end;
 

usw....Die Routinen aller Knöpfe für die Rechenart ähneln sich aber so sehr, dass man sie gerne zu einer einzigen Routine zusammenfassen würde. Irgendwie muss Windows ja wissen, welcher Knopf gerade gedrückt wurde. In Delphi geschieht das über den Parameter Sender, der beim Aufruf der Routine mit übergeben wird.

procedure TForm1.OperationBtnClick(Sender: TObject);
begin
 
if Sender = PlusBtn       then begin; op := 1 ; opstr := '+';  end;
    if Sender = MinusBtn    then begin  op := 2 ; opstr := '-';  end;
    if Sender = MalBtn       then begin  op := 3 ; opstr := 'x';  end;
    if Sender = DurchBtn    then begin  op := 4 ; opstr := ':';  end;
end;

Diese Routine wird im Programmcode geschrieben und auch als Methode im Formular-Objekt angemeldet. Will man jetzt diese Methode mit der OnClick-Prozedur eines Knopfes verbinden, so öffnet man beim Objekt-Inspektor die Ereignisse des betreffenden Knopfes. Anstatt nun doppelt zu klicken, lässt man sich die möglichen (auch von den Parametern her kompatiblen) Methoden anzeigen und wählt dann die Methode OperationBtnClick. Das wiederholt man bei allen vier Knöpfen. Die Methode sucht sich je nach geklicktem Knopf die entsprechende Operation heraus und gibt sie an das Programm weiter.

Zurück zu Delphi

© Dietrich Praclik