AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [Suche]Hilfe bei Turbo Pascal Lottozahl Generator
Thema durchsuchen
Ansicht
Themen-Optionen

[Suche]Hilfe bei Turbo Pascal Lottozahl Generator

Ein Thema von crisbinfranke · begonnen am 9. Feb 2010 · letzter Beitrag vom 16. Feb 2010
Antwort Antwort
Seite 2 von 2     12   
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#11

Re: [Suche]Hilfe bei Turbo Pascal Lottozahl Generator

  Alt 10. Feb 2010, 00:19
Hallo Christian,
schau dir doch mal auf ARD die Ziehung der Lottozahlen an.
Die Maschine hat 49 numerierte Kugeln, aus denen sie 6 Kugeln herausnimmt (eigentlich 7, denn sie zieht auch noch die Zusatzzahl).
Wenn die Maschine 1 Kugel "gezogen" hat, kann sie diese Kugel nicht noch einmal ziehen, weil Kugel nicht mehr in der Trommel ist.

"Deine" Ziehungsmaschine funktioniert so, daß sie eine Kugel aus der Trommel zieht, irgendwie notiert, daß diese Kugel "gezogen" wurde und dann die Kugel wieder in die Trommel wirft.
Dann zieht sie wieder eine Kugel, prüft, ob sie die schon vorher gezogen hatte und wiederholt das so lange bis sie zufällig eine Kugel erwischt, die noch nicht gezogen wurde.

Ich will nicht deine Hausaufgaben machen, aber ich hab dir mal die Ziehungsroutine so aufgeschrieben, daß sie in etwa so arbeitet wie die Ziehungsmaschine und habe sie ausgiebig kommentiert.
Ich hoffe, das hilft dir weiter.
Delphi-Quellcode:
var lotto:array [1..6] of integer;

procedure ziehung;
var zahlen:array[1..49] of integer;
    i,k,n:integer;
Begin
  // die Kugeln 1 is 49 in die Trommel füllen
  for i:=1 to 49 do zahlen[i]:=i;
  // Merken, daß 49 Kugeln in der Trommel sind
  n:=49;
  for k:=1 to 6 do
  Begin
    // Eine der NOCH VERFÜGBAREN Kugeln auswählen
    i:=random(n)+1;
    // Die ausgewählte Kugel in den Behälter für gezogene Zahlen tun
    lotto[k]:=zahlen[i];
    // Den Platz, auf dem bisher die gezogene Kugel lag, mit der
    // bisher letzten noch verfügbaren Kugel auffüllen
    zahlen[i]:=zahlen[n];
    // Anzahl der noch verfügbaren Kugeln um 1 senken.
    dec(n);
  End;
End;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#12

Re: [Suche]Hilfe bei Turbo Pascal Lottozahl Generator

  Alt 10. Feb 2010, 19:43
@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.
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
mani64

Registriert seit: 8. Apr 2009
49 Beiträge
 
Delphi 5 Professional
 
#13

Re: [Suche]Hilfe bei Turbo Pascal Lottozahl Generator

  Alt 10. Feb 2010, 21:05
Hallo crisbinfranke,

in deinem Code ist noch ein kleiner Fehler:
Delphi-Quellcode:
if (lotto[1]=lotto[2]) or (lotto[1]=lotto[3]) or (lotto[1]=lotto[4])
  or (lotto[1]=lotto[5]) or (lotto[1]=lotto[6]) or (lotto[2]=lotto[3])
  or (lotto[2]=lotto[4]) or (lotto[1]=lotto[5]) or (lotto[2]=lotto[6]) // es muss in der Mitte heißen: lotto[2]=lotto[5]
  or (lotto[3]=lotto[4]) or (lotto[3]=lotto[5]) or (lotto[3]=lotto[6])
  or (lotto[4]=lotto[5]) or (lotto[4]=lotto[6]) or (lotto[5]=lotto[6])
  then ziehung
Wie klappt es inzwischen mit der Sortierung?
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#14

Re: [Suche]Hilfe bei Turbo Pascal Lottozahl Generator

  Alt 10. Feb 2010, 21:44
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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
crisbinfranke

Registriert seit: 27. Okt 2009
11 Beiträge
 
#15

Re: [Suche]Hilfe bei Turbo Pascal Lottozahl Generator

  Alt 16. Feb 2010, 15:13
Tut mir leid, dass ich mich jetzt erst zu alledem äußere.
Heute stand ja wieder Informatik auf dem Stundenplan.
Vielen dank für alle Antworten.
Programm läuft, so wie es soll.
Ich hatte das Gefühl, dass mein Lehrer sich gefreut hat, dass ich mich um Hilfe bemüht habe.

MfG,
Christian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz