Soul Survivor™
Lieutenant
- Registriert
- Aug. 2007
- Beiträge
- 632
Moin,
ich erstelle gerade ein Programm, was mir 6000 Zufallszahlen aus 100000 Zahlen (von 1 - 100000) generiert.
Ich komme jedoch nicht weiter hier ersteinmal der code:
cls
open #1
Randomize timer
zwischen = STRING(12500, CHR$(0))
for i = 1 to 6000
nochmal:
Zahl = INT(RND * 100000)
if zahl = 0 then goto nochmal // 0 darf nicht gezogen werden.
zahlteil = zahl / 8 // zahl wird geteilt, denn 1 Byte = 8 bit
If zahlteil <> INT(zahlteil) then //Wenn sie nicht gerade ist
zahlteil = INT(zahlteil) // gerade machen
neu = zahlteil * 8 //neu = zahlteil * 8 um mit ges = ... nachher den rest herauszubekommen, welches
Byte die Zahl nachher belegt
ges = zahl - neu - 1 // wie vorherige zeile beschrieben, -1 weil ich ein byte weiterspringen muss
zahlteil = zahlteil +1 // zahlteil++
else
ges = 8 - 1 // wenn sie gerade ist ges = 0
end if
hoch = 2 ^ ges //ab jetzt bin ich sicher
abtr$ = mid$(zwischen, zahlteil, 1)
ascii = ASC(abtr$)
undpruef = ascii AND hoch
If undpruef = hoch then
goto nochmal
end if
Print #1, zahl
next
Irgendetwas scheint mit den hoch nicht zu stimmen.
Das Problem ist ich soll diese Aufgabe so lösen.
Jedes Byte in 8 Bit aufteilen und wenn ein Bit schon einmal verwendet wurde, so soll das Programm erkennen, ob die Zahl schoneinmal gezogen wurde.
Der erste teil scheint ganz in Ordnung zu funktionieren aber
ab der Sache mit den Hoch komm ich nicht voran, ich hoffe ihr könnt helfen.
ich erstelle gerade ein Programm, was mir 6000 Zufallszahlen aus 100000 Zahlen (von 1 - 100000) generiert.
Ich komme jedoch nicht weiter hier ersteinmal der code:
cls
open #1
Randomize timer
zwischen = STRING(12500, CHR$(0))
for i = 1 to 6000
nochmal:
Zahl = INT(RND * 100000)
if zahl = 0 then goto nochmal // 0 darf nicht gezogen werden.
zahlteil = zahl / 8 // zahl wird geteilt, denn 1 Byte = 8 bit
If zahlteil <> INT(zahlteil) then //Wenn sie nicht gerade ist
zahlteil = INT(zahlteil) // gerade machen
neu = zahlteil * 8 //neu = zahlteil * 8 um mit ges = ... nachher den rest herauszubekommen, welches
Byte die Zahl nachher belegt
ges = zahl - neu - 1 // wie vorherige zeile beschrieben, -1 weil ich ein byte weiterspringen muss
zahlteil = zahlteil +1 // zahlteil++
else
ges = 8 - 1 // wenn sie gerade ist ges = 0
end if
hoch = 2 ^ ges //ab jetzt bin ich sicher
abtr$ = mid$(zwischen, zahlteil, 1)
ascii = ASC(abtr$)
undpruef = ascii AND hoch
If undpruef = hoch then
goto nochmal
end if
Print #1, zahl
next
Irgendetwas scheint mit den hoch nicht zu stimmen.
Das Problem ist ich soll diese Aufgabe so lösen.
Jedes Byte in 8 Bit aufteilen und wenn ein Bit schon einmal verwendet wurde, so soll das Programm erkennen, ob die Zahl schoneinmal gezogen wurde.
Der erste teil scheint ganz in Ordnung zu funktionieren aber
ab der Sache mit den Hoch komm ich nicht voran, ich hoffe ihr könnt helfen.
Zuletzt bearbeitet: