Zitat von
Wolfgang Mix:
@Amateurprofi:
Dein Code ist natürlich produktiver als der vom Lehrer, aber der hat sich hoffentlich
Gedanken gemacht, warum er das so vorgestellt hat :)
Wenn ich Post #1 richtig gelesen habe, liegen ja 6 unsortierte Zahlen bereits vor,
die Christian ja "nur noch" sortieren muß.
Beispiele dazu gibt es ja genug, z.B. in der CodeLib oder hier im thread weiter oben.
Hallo Wolfgang,
Von 6 Zahlen, die bereits unsortiert vorliegen kann ich nichts entdecken.
Der Code den Christian in der Schule erhalten hat besteht aus dem Hauptprogramm und einer Prozedur "Ziehung".
Die Prozedur "Ziehung" stellt 6 Zufallszahlen aus dem Bereich 6..49 in das Array "Lotto".
Das Hauptprogramm macht in etwa folgendes
Delphi-Quellcode:
Ziehung;
if (nicht alle 6 Zahlen unterschiedlich) then Ziehung;
Ausgabe der 6 Zahlen;
Oh, gerade kommt mir der Gedanke, daß du mit den 6 bereits vorliegenden Zahlen, die Zahlen meinen könntest, die die Prozedur "Ziehung" liefert.Und gerde
Bei der Prüfung (die mit den vielen ORs) ist übrigens dem Lehrer (oder Christian) ein Fehler unterlaufen.
Es wird nicht geprüft, ob Lotto[2]=Lotto[5] ist. Statt dessen wird 2 Mal geprüft, ob Lotto[1]=Lotto[5] ist.
Und, wie in #5 schon von Klaus01 erwähnt, ist natürlich nicht sichergestellt das im Falle eines Falles die zweite Ziehung 6 unterschiedliche Zahlen bringt.
Tatsächlich ist es so, daß in ca. 27 % der Fälle bei der ersten Ziehung Duplikate auftreten und bei ca. 7 % auch die zweite Ziehung "in die Hose geht". (Habs 100 Mio Mal durchlaufen lassen und gezählt.... Natürlich mit korrekter Prüfung.
Gut, wenn der Lehrer so prüft, wie er Programme schreibt, dann merkt er das nicht.
Meinen Code habe ich hier eigentlich nur reingestellt, weil der vorgegebene Code offensichtlich nicht korrekt arbeitet.
Daß C. als Hausarbeit das Sortieren zu machen hat.... Tja, das meinte ich als ich schrieb, daß ich nicht seine Hausaufgaben machen will.
Gerade sehe ich, daß da schon jemand den Fehler bei der "OR"-Sammlung gesehen hat - egal, ich laß das jetzt so.