|
| Autor |
Nachricht |
davidb_ Newbie

Anmeldedatum: 24.09.2007 Beiträge: 2
|
Rechentrainer[brauch hilfe]
Verfasst am: 27.09.2007, 18:34 |
|
|
Hallo zusammen,
Ich hab ja erst vor kurzen angefangen zu Programmiern
(das ist jetzt mein drittes Projekt^^)
Ich habe folgende Aufgabenstellung erhalten:
Ich soll ein Proggramm schreiben:,
-welches in 2 Textfelder zufällig Zahlen erstellt
-Der benutzer die richtige antwort in ein Drittes feld schreibt
-Das Programm die Antwort prüft
Ich bin soweit:
-Man wählt über einen Knopf die Rechenart aus
-dann werden zahlen in 2 felder eingefügt
Mein problem:
Ich habe nun auch schon einen Button mit dem man prüfen kann ob das ergebnis bei der addition richtig wäre..
aber wie schaffe ich das ich die überprufung aller rechenarten in einem Knopf mache?
Das müsste ich ja Theoretisch schon zuweisen,wenn ich die rechenart auswähle,oder?
aber wie genau geht das dann?
Quellcode is lang,deswegen in einer .rtf....
http://www.xbox-front-fighters.de/Webspell/demos/ini/davidb/VB.rtf
Danke jetz schon für eure Hilfe
EDIT:
Eine Lösung ist mir jetzt schon eingefallen..
Einfach 4 Prüfen Buttons machen, je nach ausgewählter rechenart,den entsprechenden Button anzeigen lassen..
Ist nur nicht sonderlich elegant^^
gehts auch anders?^^ |
|
| |
|
 |
regenwurm_ Coder

Anmeldedatum: 20.07.2007 Beiträge: 85
|
Verfasst am: 27.09.2007, 18:46 |
|
|
Du könntest auch Timer machen, die Zeiten kann der user ja per TextBox eingeben
Ich post dir gleich die source.. ^^[/vb] |
|
| |
|
 |
regenwurm_ Coder

Anmeldedatum: 20.07.2007 Beiträge: 85
|
Verfasst am: 27.09.2007, 19:00 |
|
|
Kp ob es funktioniert ^^
[vb:1:7d552e288d]Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliseconds As Long)
Private Function GetRandomNum(Min As Long, Max As Long) As Long
GetRandomNum = Int(Rnd * (Max - Min + 1) + Min)
End Function
Private Sub Command1_Click()
Text1.Text = (GetRandomNum(7, 22))
End Sub
Private Sub cmd_add_Click()
Text1.Text = (GetRandomNum(7, 22))
Text2.Text = (GetRandomNum(7, 22))
Label1.Caption = "+"
tim_add.Enabled = True
End Sub
Private Sub cmd_divi_Click()
Text1.Text = (GetRandomNum(7, 22))
Text2.Text = (GetRandomNum(7, 22))
Label1.Caption = ":"
tim_div.Enabled = True
End Sub
Private Sub cmd_minus_Click()
Text1.Text = (GetRandomNum(7, 22))
Text2.Text = (GetRandomNum(7, 22))
Label1.Caption = "-"
tim_sub.Enabled = True
End Sub
Private Sub cmd_multi_Click()
Text1.Text = (GetRandomNum(7, 22))
Text2.Text = (GetRandomNum(7, 22))
Label1.Caption = "*"
tim_multi.Enabled = True
End Sub
Private Sub Text4_Click()
MsgBox "Bitte geben sie millisekunden ein!"
End Sub
Private Sub tim_add_Timer()
Dim zeit As String
Sleep Text4.Text
If Val(Text1.Text) + Val(Text2.Text) = Text3.Text Then
MsgBox "Ergebnis richtig! - Bravo!!!"
Else
MsgBox "Ergebnis leider falsch"
End If
tim_add.Enabled = False
End Sub
Private Sub tim_div_Timer()
Sleep Text4.Text
If Text1.Text / Text2.Text = Text3.Text Then
MsgBox "Ergebnis richtig! - Bravo!!!"
Else
MsgBox "Ergebnis leider falsch"
End If
tim_div.Enabled = False
End Sub
Private Sub tim_multi_Timer()
Dim zeit As String
Sleep Text4.Text
If Text1.Text * Text2.Text = Text3.Text Then
MsgBox "Ergebnis richtig! - Bravo!!!"
Else
MsgBox "Ergebnis leider falsch"
End If
tim_multi.Enabled = False
End Sub
Private Sub tim_sub_Timer()
Dim zeit As String
Sleep Text4.Text
If Text1.Text - Text2.Text = Text3.Text Then
MsgBox "Ergebnis richtig! - Bravo!!!"
Else
MsgBox "Ergebnis leider falsch"
End If
tim_sub.Enabled = False
End Sub
[/vb:1:7d552e288d]
Meine GUI sieht so aus:
@Mods.. sorry für Doppelpost :S |
|
| |
|
 |
davidb_ Newbie

Anmeldedatum: 24.09.2007 Beiträge: 2
|
Verfasst am: 27.09.2007, 19:13 |
|
|
@regenwurm
danke schon mal,echt nett von dir,
ich probier es dann gleich mal aus^^
@all andre
bin für andere lösungsvrschkäge immer noch gerne offen (will ja was lernen^^)
Und ich habe noch ein problem:
So wird derzeit meine zufällige zahl ermittelt:
zB
[vb:1:2bb27372a4]txt_zahl1.Text = Int(Rnd * 100)[/vb:1:2bb27372a4]
Da besteht folgendes problem,es kommen immer die selben zahlen beim programm start,in einer festen reihenfolge
gibts einen anderen befehl?^^ |
|
| |
|
 |
regenwurm_ Coder

Anmeldedatum: 20.07.2007 Beiträge: 85
|
Verfasst am: 27.09.2007, 19:54 |
|
|
GetRandomNum = Int(Rnd * (Max - Min + 1) + Min)
damit wird die GetRandomNum immer gemischt.
Danach GetRandomNum(x, y)
x =kleinste zahl y= grösste zahl (glaube ich ^^) |
|
| |
|
 |
The-God-of-all_ Poster

Anmeldedatum: 20.05.2007 Beiträge: 170 Wohnort: App.Path
|
Verfasst am: 28.09.2007, 13:14 |
|
|
| davidb hat Folgendes geschrieben: | Da besteht folgendes problem,es kommen immer die selben zahlen beim programm start,in einer festen reihenfolge
gibts einen anderen befehl?^^ |
Das ist immer dann wenn du nur rnd nimmst und nicht erst Randomize aufrufst. Du solltest immer das erste mal bevor du rnd aufrufst Randomize aufrufen, das liegt daran dass der Computer eigentlich keine Zufallszahlen Berechnen kann sondern diese aus irgendwelchen Zahlen berechnet. Wenn du nicht vorher Randomize aufrufst dann nimmt er immer die gleichen (sie ändern sich bei jedem Aufruf der Funktion, werden aber immer in der gleichen Reihenfolge verwendet und die fängt bei Programmstart immer wieder von vorne an). Mit der Funktion Randomize kannst du eine Zahl festlegen. Dieser Parameter ist aber Optional, wenn du ihn weg lässt dann benutzt der Computer Automatisch die System zeit. |
|
| |
|
 |
|
|