![]() |
Lotto Zahlengenerator funkt nicht ganz richtig
Hallo, habe folgendes Programm geschrieben, dass mir die Lottozahlen ausgeben soll. Diese simuliert die Ziehung bei aw = 1 und ew = 45 aber so, als ob die Zahlen wieder in den "Topf" zurückgelegt werden würden, sprich ich muss jetzt sobald die zahl innerhalb des Intervalls
gezogen wurden, diese aus der Grundmenge der zu ziehenden Zahlen entfernen, wie mache ich das? Hier das Skript: Public Function zufallszahl(aw, ew) Dim k, zahl As Integer k = 0 zahl = 0 Do While (k < 6) zahl = Int(((ew - aw + 1) * Rnd) + aw) Debug.Print zahl k = k + 1 Pause 1 Loop Debug.Print ("Sechser komplett") End Function In Erwartung auf eine Antwort verbleibe ich Grüsse Coolbininet |
Alle Zahlen in einem Feld der Größe 6 zwischenspeichern.
Um den Code:
zahl = Int(((ew - aw + 1) * Rnd) + aw) |
So habe ich mir dass auch gedacht, nur wo und wie schaut der Code dann aus?
Grüße Coolbininet |
Zitat:
schalter function_gezogen(char *zahlen, char zahl, unsigned int max) int i=0 set schalter-nicht-gezogen to true while(i < max) if (zahlen[i] = zahl) then set schalter-gezogen to true end-if return schalter pong |
Hier eine Variante die 6 Zahlen ermittelt und auch noch die Zusatzzahl.
Im Anschluss werden die Zahlen aufsteigend sortiert ausgegeben :) Private Function LottoZ(AW As Byte, EW As Byte) Dim Zahlen() As Byte, Zaehler As Byte, Zahl As Byte Dim Output As String ' AW/EW vertauschen falls AW größer EW If AW > EW Then Zahl = EW: EW = AW: AW = Zahl ' Zu kleiner Bereich? Geht nicht. If (EW - AW) < 7 Then MsgBox "Fehler! Zahlenbereich zu klein!", vbOKOnly: End ReDim Zahlen(EW) ' Hier merken wir uns die gezogenen Zahlen Zaehler = 0: Output = "" Randomize Timer Do Zahl = Int(Rnd * ((EW + 1) - AW)) + AW ' Zahl auswählen If Zahlen(Zahl) = 0 Then ' Zahl überprüfen. Eintragen wenn frei If Zaehler < 6 Then Zahlen(Zahl) = 1 Else Zahlen(Zahl) = 2 Zaehler = Zaehler + 1 ' Zähler raufsetzen wenn ok Debug.Print "*" End If Loop Until Zaehler = 7 Output = "Die Lottozahlen: " For Zahl = AW To EW If Zahlen(Zahl) = 1 Then Output = Output & Zahl & ", " Next For Zahl = AW To EW If Zahlen(Zahl) = 2 Then Output = Output & "Zusatzzahl: " & Zahl Next MsgBox Output, vbOKOnly End Function |
Habe mich sehr gefreut liebe Sesa_Mina!
Es klappt aber nicht!
Fehlermeldung 'Laufzeitfehler 13' Typen unverträglich! Was ist da unverträglich? Bytheway wie kann ich in VB ein Integerarray "befüllen" und gleichzeit dann wieder etwas daraus auslesen? Dachte immer das "Befüllen" geht so: Dim longarray as Long Redim longarray(12,125,25,25) Aber wie bekomme ich die Werte da wieder heraus, ZB in eine MSGBOX? Meine VB-Hilfe lässt mich da im Dunklen tappen! Grüße Coolbininet Grüße |
Habe mich sehr gefreut liebe Sesa_Mina!
Es klappt aber nicht!
Fehlermeldung 'Laufzeitfehler 13' Typen unverträglich! Was ist da unverträglich? Bytheway wie kann ich in VB ein Integerarray "befüllen" und gleichzeit dann wieder etwas daraus auslesen? Dachte immer das "Befüllen" geht so: Dim longarray as Long Redim longarray(12,125,25,25) Aber wie bekomme ich die Werte da wieder heraus, ZB in eine MSGBOX? Meine VB-Hilfe lässt mich da im Dunklen tappen! Grüße Coolbininet Grüße |
Habe mich sehr gefreut liebe Sesa_Mina!
Es klappt aber nicht!
Fehlermeldung 'Laufzeitfehler 13' Typen unverträglich! Was ist da unverträglich? Bytheway wie kann ich in VB ein Integerarray "befüllen" und gleichzeit dann wieder etwas daraus auslesen? Dachte immer das "Befüllen" geht so: Dim longarray as Long Redim longarray(12,125,25,25) Aber wie bekomme ich die Werte da wieder heraus, ZB in eine MSGBOX? Meine VB-Hilfe lässt mich da im Dunklen tappen! Grüße Coolbininet Grüße |
mein code funktioniert in vb6 in jedem fall (getestet!)
ad array werte zuweisen / auslesen Dim Array() Redim Array(Anzahlfelder) Array(FeldIndex) = Wert Wert = Array(FeldIndex) Damit das mit redim funktioniert muss die Variable auch als Array deklariert sein was du nicht getan hast. Dim Longarray() as long wäre die richtige deklaration. Das Klammerpaar ist hier wichtig weil das VB mitteilt dass die variable ein Array ist. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag