Würfelprogramm Klasse 8

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lukas96
User
Beiträge: 6
Registriert: Dienstag 5. April 2011, 19:43

Code: Alles auswählen

eins=0
zwei=0
drei=0
vier=0
fünf=0
sechs=0
z=randrange(1,7)
for k in range(600):
    if z==1:
        eins=eins+1
    if z==2:
        zwei=zwei+1
    if z==3:
        drei=drei+1
    if z==4:
        vier=vier+1
    if z==5:
        fünf=fünf+1
    if z==6:
        sechs=sechs+1
writeln("Die 1 kam genau ",eins," mal vor, das entspricht",eins/600*100,"%")
writeln("Die 2 kam genau ",zwei," mal vor, das entspricht",zwei/600*100,"%")
writeln("Die 3 kam genau ",drei," mal vor, das entspricht",drei/600*100,"%")
writeln("Die 4 kam genau ",vier," mal vor, das entspricht",vier/600*100,"%")
writeln("Die 5 kam genau ",fünf," mal vor, das entspricht",fünf/600*100,"%")
writeln("Die 6 kam genau ",sechs," mal vor, das entspricht",sechs/600*100,"%")
Als ergebnis kommt immer raus, dass irgendeine Zahl immer 100% hat.
Was habe ich falsch gemacht?
oder: funltioniert der Zufallsgenerator randrange,der mit tandom importiert wird nicht?
vielen dank im vorraus
Lukas
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Der Zufallszahlengenerator funktioniert prima, aber schau mal, wie häufig du wohl eine Zufallszahl berechnest...

Stefan
lukas96
User
Beiträge: 6
Registriert: Dienstag 5. April 2011, 19:43

Vielen dank!
so ist's also richtig:

Code: Alles auswählen

eins=0
zwei=0
drei=0
vier=0
fünf=0
sechs=0
for k in range(600):
    z=randrange(1,7)
    if z==1:
        eins=eins+1
    if z==2:
        zwei=zwei+1
    if z==3:
        drei=drei+1
    if z==4:
        vier=vier+1
    if z==5:
        fünf=fünf+1
    if z==6:
        sechs=sechs+1
writeln("Die 1 kam genau ",eins," mal vor, das entspricht",eins/600*100,"%")
writeln("Die 2 kam genau ",zwei," mal vor, das entspricht",zwei/600*100,"%")
writeln("Die 3 kam genau ",drei," mal vor, das entspricht",drei/600*100,"%")
writeln("Die 4 kam genau ",vier," mal vor, das entspricht",vier/600*100,"%")
writeln("Die 5 kam genau ",fünf," mal vor, das entspricht",fünf/600*100,"%")
writeln("Die 6 kam genau ",sechs," mal vor, das entspricht",sechs/600*100,"%")
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Kamen in Klasse 8 eigentlich schon Listen oder Dictionaries als Datentypen dran? Die Variablen "eins" bis "sechs" sind eher umständlich. Das ginge viel kürzer. Und wieso eigentlich writeln und nicht print? Hat euer Lehrer da seine alten Pascal-Programme wiederverwendet?

Stefan
Antworten