WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 07.05.2005, 13:14   #1
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Frage 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
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 07.05.2005, 15:00   #2
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard

Alle Zahlen in einem Feld der Größe 6 zwischenspeichern.
Um den
Code:
 zahl = Int(((ew - aw + 1) * Rnd) + aw)
nochmals eine Schleife bilden, in der mit einer IF-Abfrage über die 6-Feld-Elemente überprüft wird, daß die Zahl noch nicht gezogen worden ist.
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten
Alt 07.05.2005, 15:14   #3
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Standard

So habe ich mir dass auch gedacht, nur wo und wie schaut der Code dann aus?

Grüße Coolbininet
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 07.05.2005, 22:50   #4
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von coolbininet
So habe ich mir dass auch gedacht, nur wo und wie schaut der Code dann aus?

Grüße Coolbininet
Pseudo Code
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
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 08.05.2005, 11:01   #5
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard

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
____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten
Alt 08.05.2005, 12:41   #6
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Standard 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
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 08.05.2005, 12:41   #7
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Standard 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
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 08.05.2005, 12:42   #8
coolbininet
Hero
 
Registriert seit: 19.09.2001
Alter: 46
Beiträge: 859


coolbininet eine Nachricht über AIM schicken coolbininet eine Nachricht über Yahoo! schicken
Standard 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
____________________________________
Wenn du eine helfende Hand brauchst, tust du gut wenn, du sie an den eigenen Armen suchst!
Website RI

Nur der Kleingeist hält Ordnung das Genie überblick das Chaos! Genie und Wahnsinn liegen dicht nebeneinander, sie können und sollen nicht getrennt werden.

|Marktorientierter Sozialist|Menschenfreund|Teamfähig|Analytiker|Logi ker|

If you want to see the Sky, fuck a Duck and learn to fly!

Mein Glück ist nicht von dieser Welt, insbesondere im Umgang mit Microsoft Produkten!

Möge die MACHT mit uns sein!
coolbininet ist offline   Mit Zitat antworten
Alt 08.05.2005, 13:02   #9
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard

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.
____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:01 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag