AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi schleifen umschreiben

Ein Thema von xxsasch4xx · begonnen am 1. Mär 2010 · letzter Beitrag vom 1. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#1

Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:18
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:
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;
bitte um hilfe!

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:20
Hi und herzlich Willkommen

Wie sieht denn Dein Code für die repeat-Schleife aus?
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#3

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:27
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:
 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;
[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:31
Hi,

eine Repeat-Until-Schleife sieht so aus:

Delphi-Quellcode:
repeat
  Anweisungen;
until Bedingung;
Als sinnfreies Beispiel, dass die Variable I solange erhöht, bis diese 6 ist.

Delphi-Quellcode:
i := 0;

repeat
  Inc(I);
until I = 6;
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#5

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:33
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
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:38
Hi,

als kleiner Tipp:

Delphi-Quellcode:
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;
Edit: Um Missvertändnissen vorzubeugen: Die Schleifen sind nicht komplett so! (Beachte Post von himitsu unter mir)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.081 Beiträge
 
Delphi 12 Athens
 
#7

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:38
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:
I := 1;
repeat
  J := I + 1;
  repeat
    ...
    J := J + 1;
  until J = 5;
  I := I + 1;
until I = 4;
Wobei die eigentliche Entsprechung einer FOR-Schleife eine While-Schleife wäre, da am Anfang geprüft wird.
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#8

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:47
Delphi-Quellcode:

 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;
in der ersten zeile kommt bei mir eine fehlermeldung!

"anweissung erforderlich, aber ausdruck vom typ 'integer' gefunden"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:50
Da fehlt ja auch ein "I :=". Kann man aber drauf kommen, dass das so keinen Sinn ergibt.

[edit] Buchstabendreher [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#10

Re: Delphi schleifen umschreiben

  Alt 1. Mär 2010, 14:54
Delphi-Quellcode:

  J := I + 1;
for schleifenvariable i kann nach durchlauf undefiniert sein steht an der stelle
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz