![]() |
Die while-do-Schleife
Servus,
und zwar geht um folgenden Code:
Delphi-Quellcode:
In dem Tutorial, wovon ich das Beispiel erhalten habe, steht folgender Satz: Damit es keine Verwirrung gibt: der Code hat nichts mit ʺi!ʺ zutun!
var i, max : Integer;
richtig : Boolean; begin {...} i := 2; richtig := true; while richtig do begin i := i*i; richtig := i < max; end; {...} end; Meine Frage: Womit hat der Code zutun? Ich wäre dankbar für eure Hilfe. MfG, Farhan [edit=Luckie]Delphi-Tags gesetzt. Beim nächsten mal bitte selber machen. Mfg, Luckie[/edit] |
Re: Die while-do-Schleife
Wie meinst du das? Was der Code macht?
|
Re: Die while-do-Schleife
Warum fragst du nicht den Autor des Tutorials?
|
Re: Die while-do-Schleife
Zitat:
|
Re: Die while-do-Schleife
Der Autor hat nur die Funktionsweise eine while-Schleife demonstriert. Der Schleifenrumpf ist ihm dabei unerheblich.
|
Re: Die while-do-Schleife
Zitat:
Edit: Mal ne Frage gant nebenbei. Der Schleifenrumpf ist doch der Teil, der bei diesem Code zwischen begin und end steht, also die Anweisungen? |
Re: Die while-do-Schleife
Könntest du die Quelle angeben? Es könnte der Fall sein, das da etwas aus dem Zusammenhang gerissen wurde. Zum Beispiel, dass eine Schleife abhängig von i gezeigt wurde. :glaskugel: Wobei hier die Schleifensteuerung auch indirekt von i abhängig ist. :gruebel:
|
Re: Die while-do-Schleife
Zitat:
|
Re: Die while-do-Schleife
Die Schleife wird hier solange wiederholt, wie Richtig true ist, dabei wir bei jeden Schleifendurchlauf mit
Delphi-Quellcode:
geschaut ob das derzeitige i noch kleiner als das gesetzte Maximum ist, ist dies erfüllt, wird Richtig true gesetzt, ansonsten false (und die Schleife bricht ab).
richtig := i < max;
|
Re: Die while-do-Schleife
Wobei man das auch verkürzen könnte:
Delphi-Quellcode:
while i < max do
begin i := i*i; end; |
Re: Die while-do-Schleife
Zitat:
Edit: @Cyf: Ja, richtig erklärt. Der Autor hat es mir auch so ähnlich erklärt. @Luckie: Raffiniert, deine Methode zum Verkürzen. Ganz logisch! :wink: |
Re: Die while-do-Schleife
Zitat:
Da vor der Schleife richtig = True gesetzt wird, wird (in der Originalversion) die Schleife, unabängig von i und max, mindestens 1 Mal durchlaufen. In #1 wurde (vermutlich unbeabsichtigt) eine While Schleife benutzt, um eine Repeat Schleife zu simulieren. also :
Delphi-Quellcode:
repeat
i := i*i; until i>=max; |
Re: Die while-do-Schleife
Die anderen Werte werden aber auch gesetzt
|
Re: Die while-do-Schleife
Zitat:
|
Re: Die while-do-Schleife
Da es sich um eine loakle Variable handelt, wird sie bestimmt gesetzt.
Das Beispiel erscheint aber so oder so ein schlechtes zu sein |
Re: Die while-do-Schleife
Zitat:
|
Re: Die while-do-Schleife
Zitat:
Abhängig hiervon liefert Luckies "verkürzter" Code identische oder auch andere Ergebnisse als der Originalcode. Worauf ich hinweisen wollte ist, daß man beim Optimieren von Routinen darauf achten muß, daß der "optimierte" Code die selben Ergebnisse liefert, wie der Originalcode. Darüber, daß das Beispiel ein gar gräßliches ist, herrscht, glaube ich, kein Zweifel. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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