![]() |
For Schleife beginnt mit falscher Zahl?
Hallo, ich hab seit einiger Zeit ein kleines Problem mit meinem Programm.
Ich sollte für die Schule ein Programm erstellen, welches mit verschiedenen Sortier Algorithmen Zahlen sortieren kann. Nun war ich sehr engagierte und habe mir meinen eigenen Sortier Algorithmus ausgedacht, welcher auch einwandfrei auf dem Papier funktioniert. Nun benötige ich für den Algorithmus eine Schleife in einer Schleife. (Glaube ich zumindest). Jedenfalls lautet meine Schleife wie folgt:
Delphi-Quellcode:
nun habe ich aber das Problem, dass warum auch immer von -10 angefangen wird loszuzählen.
for ü := 9 downto 0 do
for ä := 0 to 9 do wenn dann für die Zehn nochmal von 0 bis 9 hochgezählt wurde springt es aber nicht auf -9 wie man es vermuten könnte, sondern das Programm stürzt ab. Ich hoffe die Informationen reichen um mir weiter zu helfen, ansonsten kann ich ja auch nochmal meinen Ansatz meines Algorithmus posten. -Gurkenmann |
AW: For Schleife beginnt mit falscher Zahl?
Am wenigen Code, den du gepostet hast, kann ich keinen Fehler erkennen.
Allerdings kann ich die -10 nicht nachvollziehen, diese scheinen ja irgendwie berechnet zu werden.
Code:
Wäre sinnvoll.
ansonsten kann ich ja auch nochmal meinen Ansatz meines Algorithmus posten.
|
AW: For Schleife beginnt mit falscher Zahl?
Delphi-Quellcode:
procedure TForm1.Button9Click(Sender: TObject);
var ü,ö,ä,Merke,Merke2 : INteger; begin ü:=0; for ü := 9 downto 0 do for ä := 0 to 9 do begin if Zahlz[ü] < Zahlz[ä] then begin Merke := Zahlz[ü]; Zahlz[ü] := Zahlz[ä]; Zahlz[ä]:= Merke; end; if Zahlz[ä] < Zahlz[ä+1] then begin Merke2 := Zahlz[ä]; Zahlz[ä] := Zahlz[ä+1]; Zahlz[ä+1] := Merke; end; end; for ö := 0 to 9 do Stringgrid7.Cells[1,ö] := inttostr(Zahlz[ö]); So das ist mein ganzer Code... Ich hoffe es reicht, da es sehr schwer ist den Algorithmus zu erklären :/ |
AW: For Schleife beginnt mit falscher Zahl?
Me.E. müsste es
Delphi-Quellcode:
Ohne den Code im Detail nachvollzogen zu haben
Zahlz[ä+1] := Merke2;
|
AW: For Schleife beginnt mit falscher Zahl?
Stimmt, das habe ich übersehen, aber dadran lag es nicht. Es muss an der Schleife liegen oder am ersten if Befehl.
Ich habe ja sogar ü davor 0 gesetzt, aber es geht einfach nicht :/ |
AW: For Schleife beginnt mit falscher Zahl?
Das ist nicht notwendig.
Welche Variable hat -10? ü beginnt bei 9. Mach mal den Blatttest und vergleiche anschliessend im Debugger. Edit: Ich vermute es liegt in der 2. Abfrage: a+1 : 9 + 1 = 10 -> Höchster Index 9 |
AW: For Schleife beginnt mit falscher Zahl?
Oh, wow! Es hat echt geklappt!
Mein Algorithmus funktioniert :-D Vielen vielen Dank! Du kannst dir gar nicht vorstellen wie glücklich ich grade bin xD Es lag an dem zweiten if! An dem +1 und der 9. Ich habe jetzt die zweite Schelfe von 0-8 laufen lassen :) Ich werde dich in meiner Danksagung erwähnen, wenn ich das vor meiner Klasse präsentiere ;) Vielen Dank! Ich wünsche dir noch ein schönes Wochenende! |
AW: For Schleife beginnt mit falscher Zahl?
Gerne Geschehen.
Zitat:
|
AW: For Schleife beginnt mit falscher Zahl?
Hat es einen tieferen Grund warum du Umlaute als Zählvariablen nimmst?:shock:
|
AW: For Schleife beginnt mit falscher Zahl?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz