Kriege Fehler nicht weg

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Phil_man.

    Kriege Fehler nicht weg

    Hi,
    Ich haben folgenden Fehler:

    Quellcode

    1. Fehler 1 Der Wert vom Typ "System.Random" kann nicht in "Double" konvertiert werden. C:\Dokumente und Einstellungen\a\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\Kopfrechentrainer\Form1.vb 18 13 Kopfrechentrainer


    Zu dem Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim g As Double
    3. Dim c As Double
    4. Dim a As New Random
    5. Dim b As New Random
    6. Dim r As New Random
    7. Dim strArr() As String = {"+", "-", "*", "/"}
    8. Dim re As String
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. Timer1.Start()
    11. End Sub
    12. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    13. a.Next(0, 100)
    14. b.Next(0, 100)
    15. re = strArr(r.Next(0, strArr.Length))
    16. c = a re b
    17. If c = g Then
    18. MsgBox("RICHTIG")
    19. End If
    20. End Sub
    21. End Class


    Hab mir ähnliche Sachen angeguckt, es aber net so richtig verstanden.
    Wozu DREI Randoms?
    Random ist ein GENERATOR, keine Variable.

    VB.NET-Quellcode

    1. Dim rn As New Random 'nue einer
    2. Dim rate As Integer = rn.Next(1, 100)
    3. Dim rate2 As Integer = rn.Next(1, 1000)
    4. Dim rate3 As Integer = rn.Next(234, 235425)
    5. Dim rate4 As Integer = rn.Next(2, 5)

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim rn As New Random
    3. Dim a As Double = rn.Next(0, 100)
    4. Dim b As Double = rn.Next(0, 100)
    5. Dim g As Double
    6. Dim c As Double
    7. Dim strArr() As String = {"+", "-", "*", "/"}
    8. Dim re As String
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. Timer1.Start()
    11. End Sub
    12. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    13. re = strArr(rn.Next(0, strArr.Length))
    14. c = a re b
    15. If c = g Then
    16. MsgBox("RICHTIG")
    17. End If
    18. End Sub
    19. End Class


    jetzt habe ich nur noch das problem: zu

    VB.NET-Quellcode

    1. c = a re b
    Fehler:

    Quellcode

    1. End of -Anweisung erwartet

    Phil_man schrieb:


    Quellcode

    1. c = a re b

    so wird es nicht funktionieren. "re" liefert 0, 1, 2 oder 3 zurück!
    Du muss das ergebnis von "re" auswerten und entsprechende Rechenoperation durchführen:

    VB.NET-Quellcode

    1. Select Case re.Next(0, 3)
    2. Case Is = 0
    3. c = a + b
    4. Case Is = 1
    5. c = a - b
    6. Case Is = 2
    7. c = a * b
    8. Case Is = 3
    9. c = a / b
    10. End Select
    Also, ich habe noch ein kleines Problem. Wenn ich mir g und c ausgeben lasse, dann ist c zwar richtig doch g ist immer null egal ob etwas in der Box steht, wie behebe ich das Problem? Komme gerade nicht drauf :P

    EDIT: Code sieht jetzt so aus:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim rn As New Random
    3. Dim a As Double = rn.Next(0, 100)
    4. Dim b As Double = rn.Next(0, 100)
    5. Dim g As String
    6. Dim f As Double
    7. Dim c As Double
    8. Dim strArr() As String = {"+", "-", "*", "/"}
    9. Dim re As String
    10. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    11. Timer1.Start()
    12. Dim re As String = "+"
    13. Select Case re
    14. Case "+"
    15. c = a + b
    16. Case "-"
    17. c = a - b
    18. Case "*"
    19. c = a * b
    20. Case "/"
    21. c = a / b
    22. End Select
    23. TextBox1.Text = a
    24. TextBox2.Text = re
    25. TextBox3.Text = b
    26. End Sub
    27. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    28. g = TextBox4.Text
    29. g = Val(f)
    30. MsgBox("c = " & c)
    31. MsgBox("f = " & f)
    32. If f = c Then
    33. MsgBox("FAIL")
    34. End If
    35. End Sub
    36. End Class

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Phil_man“ ()

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim rn As New Random
    3. Dim a, b, f, c As Double
    4. Dim strArr() As String = {"+", "-", "*", "/"}
    5. Dim zufallsOperator As Integer
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. a = rn.Next(0, 100)
    8. b = rn.Next(0, 100)
    9. zufallsOperator = rn.Next(1, 4)
    10. Select Case strArr(zufallsOperator)
    11. Case "+"
    12. c = a + b
    13. Case "-"
    14. c = a - b
    15. Case "*"
    16. c = a * b
    17. Case "/"
    18. c = a / b
    19. End Select
    20. TextBox1.Text = a
    21. TextBox2.Text = strArr(zufallsOperator)
    22. TextBox3.Text = b
    23. End Sub
    24. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    25. f = Val(TextBox4.Text)
    26. MsgBox("c = " & c & " f= " & f)
    27. If f = c Then
    28. MsgBox("Richtig")
    29. Else
    30. MsgBox("FAIL")
    31. End If
    32. End Sub
    33. End Class