![]() |
Prozedur in Schleife oder Schleife in Prozedur
Hallo!
Ich bin gerade dabei, eine eigene Programmiersprache á la ![]() Wie ist das mit Schleifen? Ich habe jetzt die Klasse TParse beim Ausführen einer Schleife Rekursiv angelegt. Also so:
Delphi-Quellcode:
Danke mal, dass es da beim lesen gleich jemanden vom Stuhl schmeißt.. ;)
LoopParser := TParse.Create(MiniPoint);
for i := 1 to FLoops[FLastLoop-1].Loops do Output := Output + LoopParser.Parse(FLoops[FLastLoop-1].Commands); LoopParser.Free; "Man kann doch nicht eine Prozedur in einer Schleife Aufrufen..." Macht das Performancemäßig gesehen einen Unterschied, ob die Prozedurch x mal aufgerufen wird, oder in der Prozedur eine Schleife läuft, die den ganzen Code x mal wiederholt? Grüße Faux |
Re: Prozedur in Schleife oder Schleife in Prozedur
Hallo faux,
ich nehme an, Dein Quelltext entspricht einem Teil der Methode Parse der Klasse TParse. Mir hat man zu rekursiven Funktionen folgendes gelernt. 1. rekursive Funktionen köennen viel Speicher verbrauchen D. h. jede lokal deklarierte Variable, die auf dem Stack abgelegt ist, belegt bis zum Beenden der Funktion Platz im Speicher. 2. rekursive Funktionen sind kürzer und lesbarer als nichtrekursive Entsprechungen. 3. Man kann jede rekursive Funktion nichtrekursiv auflösen. Fazit: Wenn die Rekursionstiefe ausreichend klein ist, kann man mit rekursiven Funktionen arbeiten. Weil ich "ausreichend" nicht definieren kann, vermeide ich Rekusionen grundsätzlich. Für Deinen Fall habe ich zu wenig Einblick in das Problem, um eine eindeutige Antwort zu geben. |
Re: Prozedur in Schleife oder Schleife in Prozedur
Zitat:
Danke für Antwort! Grüße Faux |
Re: Prozedur in Schleife oder Schleife in Prozedur
Hey.
Also so weit ich weiß ist es nicht sehr sinnvoll eine Procedure in einer Schleife einzubauen, da der Aufruf einer Procedure länger dauert. Hier die Quelle: ![]() mfg shark |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 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