Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Die while-do-Schleife (https://www.delphipraxis.net/117247-die-while-do-schleife.html)

Farhan 15. Jul 2008 00:11

Re: Die while-do-Schleife
 
Zitat:

Zitat von Luckie
Der Autor hat nur die Funktionsweise eine while-Schleife demonstriert. Der Schleifenrumpf ist ihm dabei unerheblich.

Genau so ist es auch! Der Autor hat mir erst vorkurzem geantwortet. :-D

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:

Amateurprofi 15. Jul 2008 00:22

Re: Die while-do-Schleife
 
Zitat:

Zitat von Luckie
Wobei man das auch verkürzen könnte:
Delphi-Quellcode:
while i < max do
begin
  i := i*i;
end;

Das ist zwar kürzer, bringt aber nicht unbedingt die gleichen Resultate.
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;

mkinzler 15. Jul 2008 05:37

Re: Die while-do-Schleife
 
Die anderen Werte werden aber auch gesetzt

Amateurprofi 15. Jul 2008 08:14

Re: Die while-do-Schleife
 
Zitat:

Zitat von mkinzler
Die anderen Werte werden aber auch gesetzt

ja, aber aus dem in #1 abgebildeten code-fragment ist nicht ersichtlich, mit welchem Wert "max" belegt wird.

mkinzler 15. Jul 2008 08:19

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

Luckie 15. Jul 2008 08:42

Re: Die while-do-Schleife
 
Zitat:

Zitat von Amateurprofi
Das ist zwar kürzer, bringt aber nicht unbedingt die gleichen Resultate.
Da vor der Schleife richtig = True gesetzt wird, wird (in der Originalversion) die Schleife, unabängig von i und max, mindestens 1 Mal durchlaufen.

Ich bin davon ausgegangen, dass natürlich i und max entsprechend gesetzt werden.

Amateurprofi 15. Jul 2008 17:56

Re: Die while-do-Schleife
 
Zitat:

Zitat von mkinzler
Da es sich um eine loakle Variable handelt, wird sie bestimmt gesetzt.
Das Beispiel erscheint aber so oder so ein schlechtes zu sein

Es ist nicht die Frage ob sie gesetzt wird, sonder, mit welchem Wert sie gesetzt wird.
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 13:38 Uhr.
Seite 2 von 2     12   

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