![]() |
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; |
Re: Delphi schleifen umschreiben
Ich denke, Du hast keine for-Schleife mehr :gruebel:
|
Re: Delphi schleifen umschreiben
Dieses + sollte ein := sein. :zwinker:
(mit etwas logischem Denken sollte man sich sowas schon denken können, vorallem wenn man Weiß, was dabei rauskommen sollte ... wir sind auch nur Menschen und verscreiben uns schnell mal :angel: ) Hab's im ![]() Zitat:
Zitat:
|
Re: Delphi schleifen umschreiben
ich habe vor der repeat schleife noch eine for schleife (die ich aber so lassen wollte)
der fehler ist aber jetzt weg i musste nur initialisiert werden! aber es werden die letzen beiden zahlen nich verglichen und vertauscht! (mein programm (bubble sort) soll 5 zufallszahlen erzeugen und sie absteigend sortieren) |
Re: Delphi schleifen umschreiben
Delphi-Quellcode:
jetzt klappt alles musste anstatt dem = zeichen nur größer als hinschreiben!J := J + 1; until J > 5; I := I + 1; until I > 4; danke |
Re: Delphi schleifen umschreiben
Schönen Gruß an Deinen Lehrer...
Sherlock |
Re: Delphi schleifen umschreiben
Zitat:
|
Re: Delphi schleifen umschreiben
Das sollte vermutlich eine kleine Andeutung sein: "erzähl Deinem Lehrer, dass wir Dir bei den Hausaufgaben geholfen haben".
|
Re: Delphi schleifen umschreiben
Also meiner Meinung nach hat sich der User xxsasch4xx wohltuend von manch anderen Hausaufgaben"machern" unterschieden.
Er hat nicht "gegoogelt" :roll: sondern selber versucht die Lösung zu finden. :thumb: Ist ein gewaltiger Unterschied ! Grüße, blauweiss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 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