WinFuture-Forum.de: Lottozahlen Mit Array In Delphi -> Unlogischer Fehler - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Lottozahlen Mit Array In Delphi -> Unlogischer Fehler


#1 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 21. Mai 2006 - 17:54

Also ich soll in Info ein Programm basteln welches:
Lotto zahlen zieht, diese in einem Array speichert und ausgibt
Die Zahlen sollen sortiert werden und es darf keine Zahl doppelt sein.
Ich bin mit dem Programm soweit fertig aber mir tun sich einige Probleme auf die garnich da sein dürften
1.
 for i:=0 to 6 do

heisst ja dass er i bei jedem durchlauf erhöht

In meiner ersten for schleife klappt das ja auch noch jedoch zählt er danach komischerweise von 7(!!!) bis 0 runter, schreibt aber bei Lotto[7] trotzdem in die erste Spalte des Arrays o.0

Und beim sortieren kommt es ab und zu mal dazu dass die erste Zahl einfach so ohne Grund eine 0 wird und eine andere Zahl gelöscht wird :)

Ich bin wirklich überfragt^^
Ich hab das Programm ma angehängt und hoffe mir kann jemand helfen

mfg skelle

Hier der Link zum Prog

Dieser Beitrag wurde von skelle bearbeitet: 21. Mai 2006 - 18:00

0

Anzeige



#2 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.448
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 22. Mai 2006 - 14:10

procedure TForm1.ZieheClick(Sender: TObject);
var i,n,k:integer;
Lotto:feld;
LottoZ:Zahlen;
werte:string;
begin
werte:=",,";
randomize;

for i:=0 to 6 do
begin
LottoZ[i]:=random(48);
while (0<>pos(,,+LottoZ[i]+, werte)) and (pos(,,+LottoZ[i]+, werte)+1)<>"," then LottoZ[i]:=random(48);
werte:=",,"+IntToStr(LottoZ[i])
end;


//Sortieren
k:=0;
i:=0;
for k:=0 to 6 do
begin
for i:=0 to 6 do
begin
if Lotto[i] > Lotto[i+1]
then begin
n:=Lotto[i];
Lotto[i]:=Lotto[i+1];
Lotto[i+1]:=n;
end;
end;
end;
for i:=0 to 6 do
Tab1.cells[i,0]:=inttostr(Lotto[i]);
end;

end.

Dieser Beitrag wurde von tavoc bearbeitet: 22. Mai 2006 - 14:10

your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#3 Mitglied ist offline   Kenny 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.430
  • Beigetreten: 22. September 03
  • Reputation: 13

geschrieben 22. Mai 2006 - 14:33

LottoZ[i]:=random(48); müsste doch LottoZ[i]:=random(48)+1; heissen oder? ist schon länger her, dass ich das in der schule hatte...
"Irgendwat is ja immer."
0

#4 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 22. Mai 2006 - 14:50

theoretisch haste recht aber ich hab ja n Extra Array mit den Zahlen und wenn ne null generiert wird is es halt LottoZ[0] was der 1 entspricht
0

#5 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 22. Mai 2006 - 16:42

1. while..then ?
2. "for k:=0 to 6 do begin \ for i:=0 to 6 do begin \ if Lotto[i] > Lotto[i+1] then begin" führt natürlich zu einem Zugriff auf Lotto[7]!
3. "end." ?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0