Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Größer als und kleiner als (https://www.delphipraxis.net/95625-groesser-als-und-kleiner-als.html)

Hawkeye219 10. Jul 2007 18:08

Re: Größer als und kleiner als
 
Hallo,

wer Probleme mit den Vergleichsoperatoren hat und mindestens über Delphi6 verfügt, der kann auch die (überladene) Funktion Delphi-Referenz durchsuchenInRange aus der Unit Math verwenden:

Delphi-Quellcode:
if InRange(BMI, 19, 24) or {and?} InRange(Alter, 19, 24) then ...
Gruß Hawkeye

DeddyH 10. Jul 2007 18:11

Re: Größer als und kleiner als
 
Wenn nur ANDs verwendet werden, muss das auch ohne Klammern funktionieren.

mkinzler 10. Jul 2007 18:12

Re: Größer als und kleiner als
 
Zitat:

Wenn nur ANDs verwendet werden, muss das auch ohne Klammern funktionieren.
es ist aber eine or in der Mitte

DeddyH 10. Jul 2007 18:16

Re: Größer als und kleiner als
 
Das ist ja das Problem, dass der Fragesteller selbst nicht genau zu wissen scheint, ob beiden Zahlen im angegebenen Bereich liegen müssen. Übrigens hat AFAIK AND eine stärkere Bindung als OR, oder? Somit wären die Klammern in jedem Fall überflüssig, oder bin ich da fehlinformiert?

mkinzler 10. Jul 2007 18:17

Re: Größer als und kleiner als
 
M.W. sind sie gleich berechtigt

Rociel 10. Jul 2007 18:20

Re: Größer als und kleiner als
 
Die OH äußert sich dazu mit dem Kurzschlussverfahren =) :

Vollständige Auswertung und Kurzschlussverfahren im Vergleich
Der Compiler unterstützt zwei Auswertungsmodi für die Operatoren and und or: die vollständige Auswertung und das Kurzschlussverfahren. Bei der vollständigen Auswertung werden alle Operanden eines and- oder or-Ausdrucks auch dann ausgewertet, wenn das Resultat des gesamten Ausdrucks bereits feststeht. Das Kurzschlussverfahren geht streng von links nach rechts vor und wird beendet, sobald das Ergebnis des gesamten Ausdrucks feststeht. Wenn beispielsweise der Ausdruck A and B im Kurzschlussverfahren ausgewertet wird und A den Wert False hat, wertet der Compiler B nicht mehr aus, da bereits feststeht, dass nach der Auswertung von A auch der gesamte Ausdruck den Wert False haben wird.

Hawkeye219 10. Jul 2007 18:32

Re: Größer als und kleiner als
 
AND und OR sind nicht gleichberechtigt! AND entspricht einer Multiplikation ("Punktrechnung"), OR einer Addition ("Strichrechnung"). Es gilt aber immer noch der Satz: Punktrechnung vor Strichrechnung.

Aber warum lange rätseln, wenn man durch gezieltes Setzen von Klammern für Klarheit bei Compiler und Leser sorgen kann?

Gruß Hawkeye

DeddyH 10. Jul 2007 18:34

Re: Größer als und kleiner als
 
Zitat:

Zitat von Hawkeye
Aber warum lange rätseln, wenn man durch gezieltes Setzen von Klammern für Klarheit bei Compiler und Leser sorgen kann?

Da stimme ich Dir voll zu. Allerdings erklärt das dann nicht, dass es nun mit Klammern läuft, ohne hingegen nicht.

mkinzler 10. Jul 2007 18:36

Re: Größer als und kleiner als
 
Vielleicht weil immer ein AND/OR ein bool'schen Audruck liefert

DeddyH 10. Jul 2007 18:43

Re: Größer als und kleiner als
 
Siehe #29


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.
Seite 4 von 5   « Erste     234 5      

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