Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Function vereinfachen, bei vielen if abfragen (https://www.delphipraxis.net/49558-function-vereinfachen-bei-vielen-if-abfragen.html)

runger 13. Jul 2005 09:13

Re: Function vereinfachen, bei vielen if abfragen
 
Hallo,

kann man das Ergebnis irgendwie mathematisch erfassen?
z.B. result:=a+y+z
wobei wenn ich z nicht haben will z einfach null gesetzt wird?

Rainer

Matthias-k 13. Jul 2005 09:28

Re: Function vereinfachen, bei vielen if abfragen
 
case und if combinieren, abschnitte machen:

[delphi]
if a >=0 and <100 then
begin
case ...
case ...
//bis case varaible = 100
end;

if a>99 and <200 then
begin
case ...
case ...
//bis case variable = 200
end;

zumindest wird die procedure dadurch ein wenig schneller!

schreiben musst du den mist trotzdem!

(wobei mir immernoch ne klar is, was du wirklich machen willst)

aber leb ruhig damit, 1500 zeilen mist zu schreiben! :wall:

matthias

r2c2 13. Jul 2005 10:31

Re: Function vereinfachen, bei vielen if abfragen
 
Zitat:

Zitat von Matthias-k
case und if combinieren, abschnitte machen:

Warum jetzt schon wieder kombinieren? Und warum ohne else beim if? :gruebel:
Ich dachte wir hätten geklärt, dass es mit nem langen case geht. Oder hab ich da was verpasst? Und warum soll das ganze schneller sein?

mfg

Christian

Jasocul 13. Jul 2005 10:37

Re: Function vereinfachen, bei vielen if abfragen
 
Sein Gedanke war wohl, dass dann die schnelleren Sprungtabellen erzeugt werden.

Hallo_Thomas 13. Jul 2005 10:40

Re: Function vereinfachen, bei vielen if abfragen
 
@r2c2 frag mal runger oder Matthias-k

Ich finds erst mah ne tolle Idee mit dem Case of, Dankeschön Thomas

Hallo_Thomas 13. Jul 2005 11:00

Re: Function vereinfachen, bei vielen if abfragen
 
noch mah ne kleene Frage

Delphi-Quellcode:
function zaehler(z:Integer):Integer;
var x :Integer;
begin

  case z of
for x:=0 to 144 do
    x : begin
      Result := Zaehler[x]
    end;
Kann ich diese Case of ANweisung mit soner Schleife combinieren ohne alle 144 Werte auszuschreiben?

r2c2 13. Jul 2005 11:07

Re: Function vereinfachen, bei vielen if abfragen
 
@Jasocul
:idea: Ah! Jetzt hab ichs kapiert!


@Hallo_Thomas
Zitat:

Zitat von Hallo_Thomas
noch mah ne kleene Frage

Delphi-Quellcode:
function zaehler(z:Integer):Integer;
var x :Integer;
begin

  case z of
for x:=0 to 144 do
    x : begin
      Result := Zaehler[x]
    end;
Kann ich diese Case of ANweisung mit soner Schleife combinieren ohne alle 144 Werte auszuschreiben?

lol... Ne, so nicht, aber, dann setzt du ja voraus, dass es n mathematischen zusammenhang zwischen z und den Summanden gibt. Dann kann man das seeeehr vereinfachen:
Delphi-Quellcode:
Result := <mathematischer Zusammenhang>;

z.B.:

Result := z*2+(z-4);
mfg

Christian

Hallo_Thomas 13. Jul 2005 11:14

Re: Function vereinfachen, bei vielen if abfragen
 
[/quote]r2c2


Delphi-Quellcode:
Result := z*2+(z-4);

Wie komme ich da, an den Wert des Zaehlers?

Jasocul 13. Jul 2005 11:17

Re: Function vereinfachen, bei vielen if abfragen
 
Ich verstehe es noch nicht. Zaehler ist bei dir eine Funktion und du übergist and die Funktion "z". Welchen Wert des Zaehler (der ja dein Funktions-Bezeichner ist) willst du denn in Erfahrung bringen?
Vielleicht habe ich ja auch ein Brett vor dem Kopp.

r2c2 13. Jul 2005 11:19

Re: Function vereinfachen, bei vielen if abfragen
 
Zitat:

Zitat von Hallo_Thomas
Wie komme ich da, an den Wert des Zaehlers?

Welcher Zähler? Du prüfst bei deinem Pseudo-Code doch nur, welchen Wert z hat. Wenn der 1 ist(d.h. deine Pseudo-Schleife bis1 gezählt hat), ist x=z(das fragst du ja bei deinem Pseudo-case ab).

Wenn das wirklich so ist, d.h., wenn du das wirklich so gemeit hast, kannst du dir 1499 Zeilen sparen!

mfg

Christian

//Edit: Schon wieder 2 min. zu spät! :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.
Seite 3 von 4     123 4      

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