![]() |
Delphi schleifen umschreiben
hallo, ich habe ein problem mit delphi
ich will zwei for schleifen die direkt hinter einander liegen in 2 gleichwertige repeat umschreiben aber es klappt nicht! hier mein quellcode mit den for schleifen
Delphi-Quellcode:
bitte um hilfe!
for i:=1 to 4 do
for j:=i+1 to 5 do begin if a[i] < a[j] then begin h:=a[i]; a[i]:=a[j]; a[j]:=h; end; end; [edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit] |
Re: Delphi schleifen umschreiben
Hi und herzlich Willkommen :hi:
Wie sieht denn Dein Code für die repeat-Schleife aus? |
Re: Delphi schleifen umschreiben
mein quelltext für die repeat schleifen sieht so aus aber ich habe zum beispiel keine ahnung wo man die until's hinschreiben muss das man keine endlosschleife bekommt
Delphi-Quellcode:
[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
i:=0;
repeat i:=i+1; repeat j:=i+1; until i>3; begin if a[i] < a[j] then begin h:=a[i]; a[i]:=a[j]; a[j]:=h; end; end; until j>4; |
Re: Delphi schleifen umschreiben
Hi,
eine Repeat-Until-Schleife sieht so aus:
Delphi-Quellcode:
Als sinnfreies Beispiel, dass die Variable I solange erhöht, bis diese 6 ist.
repeat
Anweisungen; until Bedingung;
Delphi-Quellcode:
i := 0;
repeat Inc(I); until I = 6; |
Re: Delphi schleifen umschreiben
aber
hier stehen ja zwei for schleifen direkt hintereinander for i:=1 to 4 do for j:=i+1 to 5 do ich weiss nicht wie man festlegt das die erste repeat schleife dann nur die erste anweisung durchführt weil wenn ich ein until unter die erste anweisung der ersten repeat schleife mache dann kommt da ja was durcheinander. einzelne umschreibungen sind kein problem aber wenn da eine for schleife in der anderen drin ist weiss ich nicht wie das geht |
Re: Delphi schleifen umschreiben
Hi,
als kleiner Tipp:
Delphi-Quellcode:
Edit: Um Missvertändnissen vorzubeugen: Die Schleifen sind nicht komplett so! (Beachte Post von himitsu unter mir)
I := 1;
repeat // for i := 1 to 4 do J := I + 1; repeat // for J := i + 1 to 5 do Anweisungen until J = 5; until I = 4; |
Re: Delphi schleifen umschreiben
i:=i+1; und j:=i+1; gehört an das Ende der jeweiligen Repeatschleifen, da sonst der 1. Durchlauf übersprungen würde.
Delphi-Quellcode:
Wobei die eigentliche Entsprechung einer FOR-Schleife eine While-Schleife wäre, da am Anfang geprüft wird.
I := 1;
repeat J := I + 1; repeat ... J := J + 1; until J = 5; I := I + 1; until I = 4;
Delphi-Quellcode:
I := 1;
while I <= 4 do begin J := I + 1; while I <= 5 do begin ... J := J + 1; end; I := I + 1; end; @xxsasch4xx: Bitte stell deine QuellCodes in entsprechende Code-Tags (für Delphi = [delphi]...[/delphi]). Deine Posts kannst du noch 24 Stunden lang editieren und dieses ändern. |
Re: Delphi schleifen umschreiben
Delphi-Quellcode:
in der ersten zeile kommt bei mir eine fehlermeldung!I + 1; repeat J := I + 1; repeat if a[i] < a[j] then begin h:=a[i]; a[i]:=a[j]; a[j]:=h; end; J := J + 1; until J = 5; I := I + 1; until I = 4; "anweissung erforderlich, aber ausdruck vom typ 'integer' gefunden" |
Re: Delphi schleifen umschreiben
Da fehlt ja auch ein "I :=". Kann man aber drauf kommen, dass das so keinen Sinn ergibt.
[edit] Buchstabendreher [/edit] |
Re: Delphi schleifen umschreiben
Delphi-Quellcode:
for schleifenvariable i kann nach durchlauf undefiniert sein steht an der stelleJ := I + 1; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 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