Gambas: Rechentrainer
Zurück zu Gambas
Lernprogramm zum Addieren ( Zusammenzählen)
BearbeitenMit diesem kleinen Lernprogramm können Sie Addieren ( Zusammenzählen) lernen
Sie brauchen für das Programm eine grafische Form und
- 6 Textboxen
- 3 Commandbuttons
Das Programm erzeugt 2 Zufallszahlen a und b. Diese werden addiert mit dem Ergebnis c = a + b. In einer Textbox (hier: textbox5) gibt der Nutzer sein Ergebnis d ein. Diese wird durch den Befehl TESTEN mit dem wahren Ergebnis c überprüft.
Sie sollten die Commandbuttons folgendermassen bezeichnen:
- Button1 = Ende
- Button2 = Neue Aufgabe
- Button3 = Testen
Ändern Sie den Text der Commandbuttons im Eigenschaftsfenster entsprechend um.
Das Programm vergleicht d mit dem korrekten Ergebnis c in einem Unterprogramm bewertung und gibt das Ergebnis in einer der Textboxen aus. Die Gesamtzahl der Aufgaben , die Zahl der richtigen Aufgaben und die Zahl der falschen Aufgaben wird in 3 weiteren Textboxen ausgegeben.
Der Code dazu:
' Gambas class file PUBLIC a AS Integer PUBLIC b AS Integer PUBLIC c AS Integer PUBLIC SUB Form_Open() z AS Integer 'zahl der Aufgaben r AS Integer 'zahl der richtigen Aufgaben f AS Integer 'Zahl der falschen Aufgaben z = 0 r = 0 f = 0 Textbox1.Text = "" TextBox2.Text = Str(z) TextBox3.Text = Str(r) TextBox4.Text = Str(f) Textbox5.Text = "" Textbox6.Text = "" END PUBLIC SUB Button1_Click() ME.Close END PUBLIC SUB Button2_Click() z AS Integer r AS Integer f AS Integer d AS Integer z = Val(textbox2.text) z = z + 1 Randomize() ' Rem Zähler für die Zahl der Aufgaben a = Int(Rnd(1) * 10) 'Rem Zufalls Zahl holen b = Int(Rnd(1) * 10) 'Rem zweite Zufallszahl holen c = a + b PRINT c textbox1.Text = " Addiere " & Str$(a) & " und " & Str$(b) & " überprüfe das Ergebnis" textbox2.Text = Str(z) END PUBLIC SUB Button3_Click() d AS Integer d = Val(Textbox5.text) bewertung CATCH IF ERROR THEN message.Info("Bitte geben Sie ihr Ergebnis in der Textbox neben dem Button TESTEN ein!") END SUB bewertung () r AS Integer d AS Integer f AS Integer r = Val(textbox3.text) d = Val(textbox5.text) f = Val(textbox4.text) IF d = c THEN textbox6.Text = "Richtig: " & Str$(a) & " + " & Str$(b) & " = " & Str(c) IF d = c THEN r = r + 1 textbox3.Text = Str(r) IF d <> c THEN textbox6.Text = "Falsch !! Richtig wäre gewesen " IF d <> c THEN textbox6.Text = textbox6.Text & Str$(a)& " + " & Str$(b) & " = " & Str$(c) IF d <> c THEN f = f + 1 textbox4.Text = Str(f) END
Haben Sie das Programm in gang gebracht ? Was hier fehlt ist ein Übersichtsbild der Form. Das wird noch nachgeliefert. Wenn Sie die Variablen d,r,f,z noch als public vor den Unterprogrammen deklarieren, können Sie den Code noch deutlich vereinfachen.
Jetzt versuchen Sie einmal das Programm zu variieren:
- Erstellen Sie ein neues Programm mit Zufallszahlen bis 100.
- Erstellen Sie ein neues Programm mit der Multiplikation als Ergebnis.
Lernprogramm zum Subtrahieren ( Abziehen)
BearbeitenMit diesem kleinen Lernprogramm können Sie subtrahieren ( Abziehen) lernen
Sie brauchen für das Programm eine grafische Form und
- 3 Textboxen
- 3 Commandbuttons
Das Programm erzeugt 2 Zufallszahlen a und c. Diese werden von einander abgezogen mit dem Ergebnis c = a - b. In einer Textbox (hier: textbox5) gibt der Nutzer sein Ergebnis d ein. Diese wird durch den Befehl TESTEN mit dem wahren Ergebnis c überprüft.
Sie sollten die Commandbuttons folgendermassen bezeichnen:
- Button1 = Ende
- Button2 = Neue Aufgabe
- Button3 = Testen
Ändern Sie den Text der Commandbuttons im Eigenschaftsfenster entsprechend um.
Das Programm vergleicht d mit dem korrekten Ergebnis c in einem Unterprogramm bewertung und gibt das Ergebnis in einer der Textboxen aus.
Im Unterschied zum Addier-Lernprogramm erfolgt keine Zählung der Aufgaben.
Der Code dazu:
' Gambas class file PUBLIC a AS Integer PUBLIC b AS Integer PUBLIC c AS Integer PUBLIC d AS Integer PUBLIC SUB Form_Open() Textbox1.Text = "" Textbox5.Text = "" Textbox6.Text = "" END PUBLIC SUB Button1_Click() ME.Close END PUBLIC SUB Button2_Click() Randomize() a = Int(Rnd(1) * 10) 'Rem Zufalls Zahl holen c = Int(Rnd(1) * 10) 'Rem zweite Zufallszahl holen b = a - c textbox1.Text = " Subtrahiere " & Str$(a) & " minus " & Str$(b) & " und überprüfe das Ergebnis" END PUBLIC SUB Button3_Click() d = Val(Textbox5.text) bewertung CATCH IF ERROR THEN message.Info("Bitte geben Sie ihr Ergebnis in der Textbox neben dem Button TESTEN ein!") END SUB bewertung () IF d = c THEN textbox6.Text = "Richtig: " & Str$(a) & " - " & Str$(b) & " = " & Str(c) IF d <> c THEN textbox6.Text = "Falsch !! Richtig wäre gewesen " IF d <> c THEN textbox6.Text = textbox6.Text & Str$(a)& " - " & Str$(b) & " = " & Str$(c) END
Wieso wurde die Zahl c als Zufallszahl definiert und nicht b ? Wie kann man das Programm ändern , so daß keine negativen Zahlen für b herauskommen können ? Hier fehlt eine Schleife , so daß gilt c < a. Dann wird auch b immer eine positive Zahl sein.
Lernprogramm zum Multiplizieren
BearbeitenMit diesem kleinen Lernprogramm können Sie Multiplizieren ( Malnehmen) lernen
Sie brauchen für das Programm eine grafische Form und
- 6 Textboxen
- 3 Commandbuttons
Das Programm erzeugt 2 Zufallszahlen a und b. Diese werden malgenommen mit dem Ergebnis c = a * b. Das Sternchen ist in der Computersprache das Zeichen der Multiplikation. In einer Textbox (hier: textbox5) gibt der Nutzer sein Ergebnis d ein. Dieses wird durch den Befehl TESTEN mit dem wahren Ergebnis c verglichen.
Sie sollten die Commandbuttons folgendermassen bezeichnen:
- Button1 = Ende
- Button2 = Neue Aufgabe
- Button3 = Testen
Ändern Sie den Text der Commandbuttons im Eigenschaftsfenster entsprechend um.
Das Programm vergleicht d mit dem korrekten Ergebnis c in einem Unterprogramm bewertung und gibt das Ergebnis in einer der Textboxen aus. Die Gesamtzahl der Aufgaben , die Zahl der richtigen Aufgaben und die Zahl der falschen Aufgaben wird in 3 weiteren Textboxen ausgegeben.
Das Programm läßt sich auch ohne Maus bedienen. Deswegen wurden die Keypress Unterprogramme hinzugefügt. Etwas wirr funktioniert die Backspacetaste in der Textbox für die Ergebniseingabe. Deswegen wurde hier eine Umleitung programmiert.
Der Code dazu:
' Gambas class file PUBLIC a AS Integer PUBLIC b AS Integer PUBLIC c AS Integer PUBLIC r AS Integer PUBLIC d AS Integer PUBLIC f AS Integer PUBLIC z AS Integer PUBLIC SUB Form_Open() z = 0 r = 0 f = 0 Textbox1.Text = "" TextBox2.Text = Str(z) TextBox3.Text = Str(r) TextBox4.Text = Str(f) Textbox5.Text = "" Textbox6.Text = "" Button2.Default = TRUE END PUBLIC SUB Button1_Click() ME.Close END PUBLIC SUB Button2_Click() textbox5.Text ="" textbox5.SetFocus z = Val(textbox2.text) z = z + 1 Randomize() a = Int(Rnd(1) * 10) 'Rem Zufalls Zahl holen b = Int(Rnd(1) * 10) 'Rem zweite Zufallszahl holen c = a * b 'PRINT c textbox1.Text = " Multipliziere " & Str$(a) & " und " & Str$(b) & " und überprüfe das Ergebnis" textbox2.Text = Str(z) END PUBLIC SUB Button3_Click() d AS Integer d = Val(Textbox5.text) Button2.Default = TRUE bewertung CATCH IF ERROR THEN message.Info("Bitte geben Sie ihr Ergebnis in der Textbox neben dem Button TESTEN ein!") END SUB bewertung () r = Val(textbox3.text) d = Val(textbox5.text) f = Val(textbox4.text) IF d = c THEN textbox6.Text = "Richtig: " & Str$(a) & " mal " & Str$(b) & " = " & Str(c) IF d = c THEN r = r + 1 textbox3.Text = Str(r) IF d <> c THEN textbox6.Text = "Falsch !! Richtig wäre gewesen " IF d <> c THEN textbox6.Text = textbox6.Text & Str$(a)& " mal " & Str$(b) & " = " & Str$(c) IF d <> c THEN f = f + 1 textbox4.Text = Str(f) END PUBLIC SUB TextBox5_KeyPress() t AS String l AS Integer IF key.Code >= 48 AND key.Code <= 57 THEN Textbox1.text = Textbox1.text ELSE IF key.Code = key.Return THEN Button3.setfocus Button3.Default = TRUE ELSE IF key.Code = key.Backspace THEN t = textbox1.Text l = Len(t) t = Left$(t, l) textbox1.Text = t 'etwas widersinnige Funktion von Backspace ELSE IF key.Code = key.Delete THEN Textbox1.Text = "" ELSE STOP EVENT ENDIF END PUBLIC SUB Button3_KeyPress() IF key.Code = key.Return THEN Button2.setfocus END
Lernprogramm für die Vergleichszeichen >< und ist gleich
BearbeitenMit diesem kleinen Lernprogramm können Sie die Bedeutung der Vergleichszeichen trainieren
- < kleiner als
- > größer als
- = ist gleich
Sie brauchen für das Programm eine grafische Form und
- 5 Textboxen
- 5 Commandbuttons
Die Form wurde F genannt. Sie können aber auch einfach den Namen Form1 beibehalten.
Das Programm erzeugt 2 Zufallszahlen. Diese werden verglichen und man muß das richtige Zeichen > oder < oder = wählen. Sie sollten die Commandbuttons folgendermassen bezeichnen:
- Button1 = Ende
- Button2 = Neue Aufgabe
- Button3 = >
- Button4 = "="
- Button5 = <
Ändern Sie den Text der Commandbuttons im Eigenschaftswindow entsprechend um.
Das Programm vergleicht die Eingabe über die Tasten >,< und = mit dem korrekten Ergebnis in einem Unterprogramm bewertung und gibt das Ergebnis in einer der Textboxen aus. Diese Ergebnistextbox wurde bewert genannt. Sie müssen den Namen der Textbox mit F4 in den Eigenschaften entsprechend verändern.
Der Code dazu:
' Gambas class file PUBLIC a AS Integer PUBLIC b AS Integer PUBLIC c AS Integer PUBLIC d AS Integer PUBLIC z AS Integer PUBLIC r AS Integer PUBLIC f AS Integer PUBLIC SUB Form_Open() z = 0 r = 0 f = 0 TextBox2.Text = Str(z) TextBox4.Text = Str(f) TextBox3.Text = Str(r) END PUBLIC SUB Button1_Click() ME.Close END PUBLIC SUB Button2_Click() z = z + 1 ' Zähler für die Zahl der Aufgaben Randomize() a = Int(Rnd(1) * 10) 'Rem Zufalls Zahl holen b = Int(Rnd(1) * 10) 'Rem zweite Zufallszahl holen IF a > b THEN c = 62 ' Rem Ascii Code für Größer als IF a = b THEN c = 61 IF a < b THEN c = 60 textbox1.Text = " Vergleiche " & Str$(a) & " und " & Str$(b) & " und setzte das richtige Zeichen >,< oder = " textbox2.Text = Str(z) END PUBLIC SUB Button3_Click() d = 62 'Ascii Code für > bewertung END PUBLIC SUB Button5_Click() d = 60 bewertung END PUBLIC SUB Button4_Click() d = 61 bewertung END SUB bewertung () IF d = c THEN bewert.Text = "Richtig: " & Str$(a) & " " & Chr$(c) & " " & Str$(b) IF d = c THEN r = r + 1 textbox3.Text = Str(r) IF d <> c THEN bewert.Text = "Falsch !! Richtig wäre gewesen " IF d <> c THEN bewert.Text = bewert.Text & Str$(a)& " " & Chr$(c) & " " & Str$(b) IF d <> c THEN f = f + 1 textbox4.Text = Str(f) END
Harry's Rechentrainer
BearbeitenACHTUNG : Programm noch in Arbeit !!
Mit diesem Programm soll man die Grundrechnungsarten trainieren können.
Form und Steuerelemente
BearbeitenSie brauchen dazu eine neue Form und
- 2 Textboxen
- 2 Textlabelfelder
- 2 Commandbuttons
Code
Bearbeiten' Gambas class file Zahl1 AS Integer Zahl2 AS Integer Ergebnis AS Integer Antwort AS Integer PUBLIC SUB StartAdditionen_Click() Randomize() Zahl1 = Int(10*Rnd())+1 Zahl2 = Int(10*Rnd())+1 Ergebnis = Zahl1+Zahl2 Antwort = AntwortTextBox.Text AusgabeRechnungLabel.Text=Zahl1 &" + " &Zahl2 & " = " 'Anzeige der Rechnung TextLabelFedback.Text = Ergebnis 'Ausgabe nur zur Kontrolle AntwortTextBox.SetFocus END PUBLIC SUB OkButton_Click() IF Antwort = Ergebnis THEN TextLabelFedback.Text= "Richtig" ELSE TextLabelFedback.Text = "Falsch" ENDIF END PUBLIC SUB AntwortTextBox_keypress() IF key.Code=key.Enter THEN TextLabelFedback.Text = Ergebnis 'Ausgabe nur zur Kontrolle ENDIF END