Ergebnis max 100

  • VB.NET

Es gibt 63 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Ergebnis max 100

    Tach proggis,

    habe 2 Zufallszahlen (0 - 100) die zusammengerechnet ein Ergebnis von max. 100 ergeben sollen. (soweit ist's Klar)
    Damit meine ich, wenn die 1. Zufallszahl zb. 30 wäre dürfte die 2. 0 - max. 70 sein (kleiner ist immer möglich)
    oder, ist die 1. Zahl 93 darf die 2. 0 - max 7 sein.

    Wie ist das realisierbar? da ich noch nicht so gut im Proggen bin brauche ich Eure Hilfe!!!

    Danke im Vorraus!!!

    Das hier sind Grundlagen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    Danke picoflop für die scnelle Antwort,

    da ich aber immer unterschiedliche Zufallszahlen habe bekomme ich das nicht hin,

    Hier der Code:

    Quellcode

    1. Private Sub Label1_Text(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.TextChanged
    2. Dim Zufall1 As New Random
    3. Dim Zufall2 As New Random
    4. Dim Zahl1 As Integer = Zufall1.Next(100 * Rnd() + 1)
    5. Dim Zahl2 As Integer = Zufall2.Next(100 * Rnd() + 1)
    6. Dim Ergebnis As Integer = Zahl1 + Zahl2
    7. Label1.Text = Zahl1 & " + " & Zahl2 & " ="
    8. End Sub


    wüßte jetzt (auf Anhieb) nicht wo ich den Vorschlag unterbringen sollte.
    Habs so gemacht:

    Quellcode

    1. Private Sub Label1_Text(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.TextChanged
    2. Dim Zufall1 As New Random
    3. Dim Zufall2 As New Random
    4. Dim r As New Random
    5. Dim Zahl1 As Integer = Zufall1.Next(100 * Rnd() + 1)
    6. Dim Zahl2 As Integer = Zufall2.Next(100 * Rnd() + 1)
    7. Zahl1 = r.Next(0, 101)
    8. Zahl2 = r.Next(0, 101 - Zahl1)
    9. Dim Ergebnis As Integer = Zahl1 + Zahl2
    10. Label1.Text = Zahl1 & " + " & Zahl2 & " ="
    11. End Sub

    Danke!!!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Markus0909“ ()

    meist du so?!?

    Quellcode

    1. Private Sub Label1_Text(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.TextChanged
    2. Dim Zufall1 As New Random
    3. Dim Zufall2 As New Random
    4. Dim r As New Random
    5. Dim Zahl1 As Integer = Zufall1.Next(100 + 1)
    6. Dim Zahl2 As Integer = Zufall2.Next(100 + 1)
    7. Zahl1 = r.Next(0, 101)
    8. Zahl2 = r.Next(0, 101 - Zahl1)
    9. Dim Ergebnis As Integer = Zahl1 + Zahl2
    10. Label1.Text = Zahl1 & " + " & Zahl2 & " ="
    11. End Sub


    Jetzt aber so:

    Quellcode

    1. Private Sub Label1_Text(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.TextChanged
    2. Dim Zufall1 As New Random
    3. Dim Zufall2 As New Random
    4. Dim Zahl1 As Integer = Zufall1.Next(100 + 1)
    5. Dim Zahl2 As Integer = Zufall2.Next(100 + 1 - Zahl1)
    6. Dim Ergebnis As Integer = Zahl1 + Zahl2
    7. Label1.Text = Zahl1 & " + " & Zahl2 & " ="
    8. End Sub
    So, weiter "kürzen" kann man das glaube nicht mehr:

    Quellcode

    1. Private Sub Label1_Text(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.TextChanged
    2. Dim Zufallszahl As New Random
    3. Dim Zahl1 As Integer = Zufallszahl.Next(100 + 1)
    4. Dim Zahl2 As Integer = Zufallszahl.Next(100 + 1 - Zahl1)
    5. Dim Ergebnis As Integer = Zahl1 + Zahl2
    6. Label1.Text = Zahl1 & " + " & Zahl2 & " ="
    7. End Sub
    Dann solltest Du mal in den Task-Manager schauen, speziell die Prozessorlast. Denn eigentlich hast Du Dir da eine astreine Endlosschleife gebaut. Die Sub wird bei einem Text-Change-Event ausgelöst...und darin änderst Du den Text...hmmm...

    Gruß FatFire

    Verdammt, zu langsam.

    Edit: Hm, nein, doch nicht. Man sollte erst ausprobieren und dann posten :D
    Aber von der Logik her...
    @FatFire: Endlos vermutlich nicht, da sicherlich auch öfter mal dieselbe Komb. getroffen wird. Aber schau die mal die Pos von New Random() an. Klingelts?

    @Markus: Mach doch mal spasseshalber aus dem "Dim r as new Random" ein "Static r as new Random()"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()

    Achja, ach Mensch, auf die normalen Sachen komme ich mal wieder nicht:
    Du musst den Zufallsgenerator außerhalb der Sub definieren (also objektweit), sonst bekommst Du nicht wirklich Zufallswerte, wenn der ständig neu initialisiert wird und zweimal kurz hintereinander abgefragt wird.
    Denn da hast Du dann sehr schnell ein immer wiederkehrendes Muster.

    Gruß FatFire

    PS: Picoflop, Du bist so genial, achtest echt auf alles.
    hi machs so

    VB.NET-Quellcode

    1. randomize()
    2. Dim r As New Random
    3. neuezahlen:
    4. Zahl1 = r.Next(0, 100)
    5. Zahl2 = r.Next(0, 100)
    6. Dim Ergebnis As Integer = Zahl1 + Zahl2
    7. if ergebnis > 100 then goto neuezahlen
    8. Label1.Text = Zahl1 & " + " & Zahl2 & " = "
    Du meinst eher Größer als..

    if ergebnis > 100 then goto neuezahlen

    So gut bin ich in Mathe das ich das noch u nterscheiden kann

    Dadurch das das Ergebnis nie Größer 100 sein wird durchläut das programm die schleife bis das Ergebnis Größer 100 ist.....