Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0351: Zufallszahlen in vorgegebenen Grenzen generieren

 von 

Beschreibung 

Da immer wieder im Forum erfragt, jetzt auch als Tipp, das Bilden von Zufallszahlen innerhalb eines durch Minimum und Maximum begrenzten Bereichs.

Update am 23. September 2004 von alchimist: Die Funktion enthielt einen Fehler, bei dem der größte und der kleinste Wert nicht in der gleichen Häufigkeit vorkamen, wie die dazwischen.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,02 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Listen-Steuerelement "List1"
' Steuerelement: Schaltfläche "Command1"

Option Explicit

Private Sub Form_Load()
  'Ordentlich durchmischen, sonst kommt immer wieder die gleiche
  'Zahlen-Reihenfolge
  Randomize
End Sub

Private Sub Command1_Click()
    Dim x As Long
    
    List1.Clear
    
    For x = 0 To 100
      List1.AddItem CStr(GetRandomNum(7, 22))
    Next x
End Sub

Private Function GetRandomNum(Min As Long, Max As Long) As Long
    GetRandomNum = Int(Rnd * (Max - Min + 1) + Min)
End Function
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 8 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Simon Wawroschek am 08.10.2007 um 22:55

Gaanz aktuell darf ich hier noch meinen Senf hinzufügen:
@chr0m
Int rundet ab und Rnd ist immer kleiner als eins.

Insofern ist die aktuelle Version da oben sinnvoll. :)

Kommentar von chr0m am 21.04.2005 um 16:57

Meiner Meinung nach ist die Formel
"Rnd * (Max - Min + 1) + Min" falsch, müsste doch eigentlich "Rnd * (Max - Min) + Min heissen.

Warum wird nochmal die Zufallszahl addiert?

Kommentar von ChuchiMeischtr am 27.04.2004 um 22:11

Also, mehr als dürftig... In MSDN wird diese GetRandomNum-Funktion mehr als ausführlich beschrieben, das einzige, was hier neu ist, ist das Ganze in eine Liste zu schreiben!
MSDN-Stichwort: "Rnd -Funktion (Bsp.)"

Kommentar von Paul Veith am 17.05.2002 um 07:45

Ich möchte ein Ratespiel ähnlich "Wer wird Millionär" schreiben. Wie schaffe ich es, dass auf den 4 Antwortbuttons enmal die richtige Antwort und drei manl die falsche Antwort erscheint, ohne dass es doppelt belebte Buttons gibt?
Danke
Paul

Kommentar von mO der Troll am 04.11.2001 um 15:19

(bitte nicht lachen)
Juuhuu endlich weis ich wie man das mach das nicht immer die selben zahlen bei rnd kommen (Ramdomize)
Danke Danke Danke

Kommentar von Markus am 12.08.2001 um 22:32

Nicht übel nur nicht sehr genau dokumentiert suche so was in c++ ne ahnung wo ich so was finden kann?

Kommentar von Simon Wawroschek am 18.05.2001 um 22:17

Zzzzzzz...

Kommentar von Knutz am 01.05.2001 um 02:37

Cool!