Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Schleife Durchlauf


pana11 - Mi 24.06.09 12:10
Titel: Schleife Durchlauf
Hallo wie mache ich es, dass die Schleife nur einmal bis 5 durchläuft und nicht 5 mal bis 5??



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var i: integer

begin

For  i:=  1    to   5     do Begin
showmessage('Hallo');
showmessage('wie');
showmessage('geht');
showmessage('es');
showmessage('dir?');
end;

end;


jaenicke - Mi 24.06.09 12:34

Wie meinst du das? Die Schleife so wie sie ist läuft genau einmal von 1 bis 5...
Und jedesmal werden die 5 Zeilen ausgegeben, die in jedem Schleifendurchlauf stehen.


pana11 - Mi 24.06.09 12:41

irgendwie eben nicht. die schleife gibt mir den satz anstatt 1 mal gleich 5 mal aus.


jaenicke - Mi 24.06.09 12:51

Ja, die Schleife läuft 5 Mal. Und bei jedem Durchlauf gibst du alle 5 Worte aus...

Wenn du das nur einmal haben willst, wofür die Schleife?

Delphi-Quelltext
1:
2:
3:
4:
5:
showmessage('Hallo');
showmessage('wie');
showmessage('geht');
showmessage('es');
showmessage('dir?');
Kann es sein, dass dir der Sinn einer Schleife noch nicht so ganz klar ist? :gruebel:

Einen sehr guten Crashkurs findest du hier:
http://crashkurs.christian-stelzmann.de
und die neue Version speziell ab Turbo Delphi:
http://www.christian-stelzmann.de/index_tutorials_crashkurs_reloaded.html

Ein weiteres gutes Online-Buch:
http://de.wikibooks.org/wiki/Programmierkurs:_Delphi


Delete - Mi 24.06.09 13:42

Anderer Ansatz:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
const StrArray: array[1..5of string = ('Hallo','wie','geht','es','Dir?');
var i: integer;
begin
  for i := Low(StrArray) to High(StrArray) do
    ShowMessage(StrArray[i]);
end;


pana11 - Mi 24.06.09 14:01

okay und wenn ich i als Zahlen ausgeben lassen will also 1-5 und

writeLn(i); einfüge anstatt dem showmessage zeugs, kommt ne fehlermeldung.



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var i: integer

begin

For  i:=  1    to   5     do Begin
writeLn(i);
end;

end;


BenBE - Mi 24.06.09 14:05

Da werden Sie geholfen: :arrow: Crashkurs Delphi [http://www.christian-stelzmann.de/artikel/crashkurs.htm] von user profile iconChristian S.

Zudem:
- Welche Fehlermeldung kommt denn? Kristallkugeln sind in diesem Forum Mangelwahre, da wir Programmierer und keine Hellseher sind.

(Auch wenn ich sofort weiß, woran es liegt, aber eine gewisse Formalie möchte ich halt gewahr wissen)


pana11 - Mi 24.06.09 14:09

Als Fehler kommt, dass eine "Exception der Klasse EInoutError aufgetreten ist. Meldung:'E/A-Fehler 103'"


jaenicke - Mi 24.06.09 14:10

Belasse es doch ruhig bei ShowMessage. ;-)

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  i: integer
begin
  for i := 1 to 5 do
  begin
    ShowMessage(IntToStr(i));
  end;
So formatiert kann man das später besser überblicken, wenn die Quelltexte länger sind.

user profile iconpana11 hat folgendes geschrieben Zum zitierten Posting springen:
Als Fehler kommt, dass eine "Exception der Klasse EInoutError aufgetreten ist. Meldung:'E/A-Fehler 103'"
Hast du ein Windows-Programm mit Formular (Fenster) oder ein Konsolenprogramm erstellt? Wenn es ein Windowsprogramm ist, dann gibts da keine Konsole, also auch keine Ausgabe mit WriteLn.


pana11 - Mi 24.06.09 14:17

Danke jetzt gehts.


pana11 - Mi 24.06.09 18:24

habe hier eine kleine präsentation die ich demnächst halten muss erstellt.
könnte sich die evtl. jemand anschaun und sagen ob man das so lassen kann?

http://www.zshare.net/download/6180539157ff7ec6/


jaenicke - Mi 24.06.09 18:28

Warum hängst du die Datei nicht einfach an? :roll:

Aber davon abgesehen gehört eine neue Frage in einen neuen Thread. (// EDIT: Na gut, das Thema Schleifen ist zumindest das selbe.)

// EDIT:
Ja, ok, sieht soweit gar nicht so schlecht aus. Allerdings würde ich den Quelltext noch ordentlich formatieren. So blickt da keiner durch.


pana11 - Mi 24.06.09 19:13

Und wieder ne Frage...:?:

Welche Schleife ist abweisend und welche ist nichtabweisend?


jaenicke - Mi 24.06.09 19:15

Abweisend heißt, dass die Bedingung vor den Durchläufen und damit vor dem ersten Durchlauf geprüft wird. Es wird also, wenn die Bedingung nicht erfüllt ist, auch der erste Durchlauf bereits abgewiesen.

// EDIT:
http://erbs.project.aida.h-da.de/vorlesungswiki/wiki/index.php/Abweisende_Schleife_-_While-Schleife


BenBE - Mi 24.06.09 19:17

Geheimtipp:
Vom Meister persönlich [http://www.delphi-forum.de/viewtopic.php?p=474452#474452]:
Psssst: Crashkurs [http://www.christian-stelzmann.de/index_tutorials_crashkurs.html], Crashkurs Reloaded [http://www.christian-stelzmann.de/index_tutorials_crashkurs_reloaded.html]