Zufallszahl in QBasic erstellen

Wachhund

nicht mehr wegzudenken
Hi Leute, :) :) :)

es kann mir doch bestimmt hier irgend einer helfen oder??? :confused
Ich soll auf QBasic ein Programm schreiben, dass fünfzig zahlen zeigt.
Die zahlen sollen auch fünfstellig sein.
Und das beste ist, dass die ganzen Zahlen zufällig sein müssen. :eek:

Ich wär sehr froh, wenn mir einer helfen könnte. :angel
 
for i = 1 to 50
a = Int (RND*100000)
print a
next

Kurze Beschreibung damit du notfalls erklären kannst wie es geht:

for i = 1 to 50 startet eine Schleife die 50 mal durchlaufen wird
RND gibt eine Zufahl zwischen 0 und <1 aus. Durch das malnehmen mit 100000 kriegst du eine Zahl zwischen 0 und <100000
INT schneidet die Nachkommastellen ab (Keine Rundung) damit kriegst du zahlen zwischen 0 und 99999
Print a gibt die Zahl auf dem Bildschirm aus
Next beendet die Schleife.

Sollte die Zahl 0 nicht erlaubt werden mußt die die Zeilen etwas ändern:

for i = 1 to 50
a = Int (RND*99999)+1
print a
next
 
Hi Perry,

erstmal danke, der Anfang ist ja schon top.
Aber es sind nur 23 Zahlen und ein paar sind vier stellige Zahlen.
Hast du dafür auch eine Lösung parat???


Trotzdem danke.
 
Ach so. 2 ,3 und 4 stellige sollen nicht dabei sein?

for i = 1 to 50
a = Int (RND*90000)+10000
print a
next

Berechnet Zufallszahlen zwischen 0 und <90000 und rechnet dann 10000 dazu.

Ist doch einfach wenn man den Sinn verstanden hat oder?

Was meinst du aber mit sind nur 23 Zahlen?

Sollen nur 23 Zahlen rauskommen? Dann brauchst du nur das ändern:

for i = 1 to 23

Oder kommen nur 23 verschiedene Zahlen raus, also einige Zahlen mehrfach?

Dann bin ich Baff. Ich habe kein QBasic und sowas zuletzt auf dem C64 gemacht. Da waren die Werte von RND mit 8 oder 16 Nachkommastellen, und somit ist es bei 50 Zahlen Unwahrscheinlich aber nicht Unmöglich das gleiche Zahlen kommen.

Aber auch dafür gibt es eine Lösung, brauch ich aber einen Moment da ich mir die Syntax erst zusammensuchen muß.
 
Um doppelte Zahlen zu vermeiden, tuts am besten ein Array mit (max) Zahlen.

10 REM start
11 CLS : REM bildschirm leeren

20 anz = 23
30 min = 10000
40 max = 99999

50 DIM a(anz)

60 FOR i = 1 TO anz
70 z = INT(RND * (max - min + 1)) + min

80 REM kontrolle
90 FOR k = 1 TO (i - 1)
100 IF z = a(k) THEN GOTO 70: REM doppelt ?
110 NEXT k

120 a(i) = z
130 NEXT i

140 REM ausgabe liste a 5 zahlen
150 FOR i = 0 TO INT(anz / 5)
152 FOR j = 1 TO 5
154 IF (i * 5 + j) > anz THEN GOTO 168
160 PRINT a(i * 5 + j);
168 NEXT j: PRINT
170 NEXT i

180 END

Das ist auf die Schnelle gezimmert, funzt soweit. Wer mag, kann die Ausgabe noch nach Größe sortieren ;)
 
:cry: :cry: :cry: :cry:

Du bist gemein. Hättest du das nicht früher schreiben können?

DIM Wert(50)
a=1
DO WHILE a<51
b=INT(RND*90000)+10000
FOR i = 1 TO a-1
IF b=Wert(i) GOTO Vorhanden
NEXT
Wert(a)=b
a=a+1
Vorhanden:
LOOP
FOR i = 1 TO 50
PRINT Wert(i)
NEXT
 
Original geschrieben von Pennywise
Mal doof gefragt, rein interessehalber, wo brauchst Du noch QBasic? :)

Ich würde mal schwer auf Informatikunterricht in der Schule tippen...
Damals habe ich noch LOGO programmiert :devil Hat mir genau gar nichts gebracht ;)
 
Aber welche Schule? QBasic ist ja etwas weltfremd, würde am ehesten auf Berufsschule oder dergleichen mit unflexiblen Lehrkräften tippen. :rolleyes:
 
mein Mathelehrer auf der Unität hat immer gesagt, wenn wir über den Unsinn von
Integral- und Differenzialrechnung und deren praktischer Anwendung gemeutert haben,
das er selbst wisse, das wir das wahrscheinlich nie wieder brauchen,
aber der Sinn dieser Übung ist das logische Denken.

Auch hier scheint es so, das das Problem erkannt werden soll, und dann
das ganze sinnvoll umzusetzen.
 
Stimmt.

Wenn man den Kiddies auf der Grundschule Basic beibringt haben sie es anschließend leichter ordentliche Programmiersprachen zu lernen.

Aber mit 17 noch QBasic?

OK, vor 20 Jahren aber heute????



Hmm,




Überleg,



Wenn man bedenkt das Wachhund das nicht allein lösen konnte scheint es sinnvoll zu sein.

Und jetzt ganz tief und schnell:
Bolt.gif
 
Herzlichen dank an euch, ihr habt mich gerettet. :D
Es klappt wunderbar das Programm. :rollin

Ich bin in der 10. Klasse und habe Informatik Unterricht.
Der Lehrer hatte dann so eine tolle Idee und gab uns
diese Aufgabe.

Danke nochmal.
 
Oben