Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Wahlweise Code abarbeiten (https://www.delphipraxis.net/176926-wahlweise-code-abarbeiten.html)

Gutelo 4. Okt 2013 17:12

Wahlweise Code abarbeiten
 
Hallo, gibt es eine Moeglichkeit wahlweise Code auszufuehren? Soetwas in folgender Form:

Code:
begin

if choice = true then
  {for i = 0 to Max do
    for j = 0 to Max do
     begin}
  else
  {repeat}

   Berechnungen ...

if choice = true then
{end;}
else
{until ...}

end;
also entweder eine For-Schleife oder eine repeat until Schleife?

Gutelo



end;

DeddyH 4. Okt 2013 17:15

AW: Wahlweise Code abarbeiten
 
Natürlich.
Delphi-Quellcode:
if Bedingung then
  begin
    MachWas;
  end
else
  begin
    MachWasAnderes;
  end;
Bitte gewöhn Dir gar nicht erst an, auf true oder false abzufragen, das kann zu unerwarteten Ergebnissen führen.

Gutelo 4. Okt 2013 17:21

AW: Wahlweise Code abarbeiten
 
lol, das ist ein einfacher if-then-else Zweig, ich will aber viel code entweder mit einer geschachtelten For-Loop oder mit einer repeat-until schleife abarbeiten ohne den langen Code doppelt zu schreiben.

Der Code-Schnipsel soll nur die Idee verdeutlichen und ist kein richtiger Code

DeddyH 4. Okt 2013 17:23

AW: Wahlweise Code abarbeiten
 
Hä? Dann schreib Dir halt eine Routine mit der einen und eine mit der anderen Schleife und ruf die wahlweise auf.

Gutelo 4. Okt 2013 17:33

AW: Wahlweise Code abarbeiten
 
Koennte ich, aber da es ein paar hundert Zeilen Code sind wuerde ich eine Alternative Loesung bevorzugen, anstatt das alles doppelt zu haben. Den abzuarbeitenden Code in eine Unterfunktion zu packen moechte ich auch nicht da der Funktionsaufruf zu viel Zeit kostet. Die Schleifen werden ein paar Millionen mal durchlaufen.

himitsu 4. Okt 2013 17:42

AW: Wahlweise Code abarbeiten
 
Aber das mit der Funktion ist nunmal der gängige Weg.


Du kanns natürlich beides in die Repeat-/Whileschleife schreiben.
Und dann zum Anfang der Schleife jeweil etwas Anderes/unterschiedliches machen.

Wenn "choice", dann zählst du da eben "manuell" deine beiden Variablen hoch.

Morphie 4. Okt 2013 17:42

AW: Wahlweise Code abarbeiten
 
Zitat:

ein paar hundert Zeilen Code
Das allein hört sich schon nach einem groben Designfehler an...

Furtbichler 4. Okt 2013 19:09

AW: Wahlweise Code abarbeiten
 
Zitat:

Zitat von Gutelo (Beitrag 1230856)
Den abzuarbeitenden Code in eine Unterfunktion zu packen moechte ich auch nicht da der Funktionsaufruf zu viel Zeit kostet.

Was ist denn 'zu viel Zeit'? Weißt Du überhaupt, wovon Du da redest? Wenn Du 100 Zeilen in einer Schleife hast, wird der Funktionsaufruf so mit das letzte sein, was zu lange dauert. Ich wette mit Dir, das man bei deinem Code noch ne Menge rausholen kann.

Vorschlag: Zeig uns, was Du da millionenfach ausrechnen musst. Wir haben genügend Performancegurus und Programmierexperten, die Dir hier helfen können.

Lemmy 4. Okt 2013 22:28

AW: Wahlweise Code abarbeiten
 
Zitat:

Zitat von Gutelo (Beitrag 1230854)
lol, das ist ein einfacher if-then-else Zweig, ich will aber viel code entweder mit einer geschachtelten For-Loop oder mit einer repeat-until schleife abarbeiten ohne den langen Code doppelt zu schreiben.

*g* dann schreib den Code in eine Textdatei und lad diese an der entsprechenden Stelle mit einer Include-Anweisung rein.

Delphi-Quellcode:
if choice then
  for i = 0 to Max do
    for j = 0 to Max do
     {$I MeineBerechnung}     
  else
  repeat
   {$I MeineBerechnung}     
  until xxx

Ansonsten gebe ich meinen Vorrednern recht


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 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