Okay, sorry, falls ich dich verwirrt habe.
Zum verständnis des Grobalgos: Eigentlich ist es ein Zwischenschritt, der nach der Modellierung (die ich dir davor geboten habe) und vor der Programmierung kommt. Die Programmierung wäre der letzte Schritt erstmal, und der sollte möglichst von dir kommen. Aber in diesem Algorithmus kann man die deutschen Worte durch die jeweilige Struktur der Programmiersprache ersetzen. Der Code ist auch schon angepasst an Pascal.
Die "//" habe ich vorausgesetzt, aber später ist mir aufgefallen, dass du sie evtl. noch nicht kennst: Das sind Kommentarzeichen, alles, was in einer Zeile hinter den zwei direkt aufeinanderfolgenden / steht, wird nicht mit kompiliert. Das hilft, denn dort kann man seine Kommentare loswerden, z.B. den Code noch mal erklären. Ohne Ordnung sieht das ganze auch leicht undurchsichtig aus. Ich versuchs mal durchsichtiger:
Code:
von lauf:=1 bis 7 tue //für jede Zahl, die gezogen wird
wiederhole
frei:= true //Zahl im Feld noch nicht gefunden
zahl:= random(49+1) //Zahl, die man einsetzen will, "erwürfeln"
von x:=1 bis lauf-1 tue //für alle Zahlen, die schon gezogen wurden
falls ((Zahlen[x]= Zahl) und (frei) dann frei:=false //merke, wenn Zahl schon vorhanden
bis frei //solange weitermachen, bis Zahl gefunden, die nicht im Feld vorhanden ist
zahlen[lauf]:=zahl //Zahl ins Feld übertragen
Um es übersichtlicher (?) zu machen, hab ich es mal farbig gemacht... Die Kommentare sind in einem hellen blau gehalten. Die äußere Zählschleife, zu der aber eigentlich alles andere auch gehört, ist dunkelgrün. In Olive ist alles gehalten, dass die Repeat-Until-Schleife an sich darstellt. Darin sollte ja geprüft werden, ob die Zahl schon mal gezogen wurde. Dazu müssen alle zahlen, die schon gezogen wurden, überprüft werden, und zwar durch eine Zählschleife. Die hab ich mal dunkelrot gemacht. Die eigentliche Abfrage ist dann rot, dort wird geprüft.
Dann gibt es noch ein paar Variablen im Grobalgo. Das sind die von dir benutzten (Zahlen, zahl, lauf) sowie eine weitere Zählvariable (umbenannt von i in x, damits nicht kursiv abgebildet wird) und der Boolean-Wert zum Prüfen, den ich "frei" genannt habe, im Sinne von "noch zu vergeben".
Ich hoffe, dir hilft diese Darstellung ein wenig mehr. Durchdenk es dir noch mal, geh den Algorithmus im Kopf vielleicht auch mal durch, das kann auch helfen. Und melde dich bitte auf jeden Fall noch mal, entweder um Fragen zu stellen oder um zu sagen, dass alles verständlich ist. ich werd mich jetzt erstmal von den Tags oben erholen und geh baden...
lg Hellie