Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Prüfen, ob eine Zahl in einem Bereich vorhanden ist
Andidreas - So 05.08.07 09:14
Titel: Prüfen, ob eine Zahl in einem Bereich vorhanden ist
Hallo
Wie kann ich prüfen, ob eine Zahl innerhalb von 10115-14199 enthalten ist?
Dank im voraus
Andidreas
Moderiert von
Gausi: Topic aus VCL (Visual Component Library) verschoben am So 05.08.2007 um 10:42
Hobby-Programmierer - So 05.08.07 09:19
Moin ...
kann das zwar jetzt net prüfen, aber sollte nicht folgendes funktionieren
Delphi-Quelltext
1:
| if x in [10115..14199] then |
LG Mario
Gausi - So 05.08.07 09:40
Das wird afaik nicht funktionieren, weil Sets nicht so groß sein können. Aber so gehts auf jeden Fall:
Delphi-Quelltext
1:
| if (aZahl >= 10115) AND (aZahl <= 14199) then Showmessage('Sie haben gewonnen!'); |
Andidreas - So 05.08.07 09:48
Danke Gausi. Funktioniert bestens.
BenBE - So 05.08.07 10:05
@Gausi: Wird auch nicht funktionieren, da die Grenzen von Sets auf 256 Elemente begrenz sind und Bit-Indizes als Byte behandelt werden. D.h. es wird immer nur das LSB einer Zahl betrachtet, womit die Abfrage
Delphi-Quelltext
1:
| If X in [256..511] Then Halt; |
immer
False ergeben würde, während
Delphi-Quelltext
1:
| If X in [0..255] Then Halt; |
immer
True liefert ;-)
Wenn man weiß, das X nie größer als 255 wird ist diese Abfrage zwar legitim, aber dennoch immer langsamer als Gausi's Version.
Gausi - So 05.08.07 10:14
Also das:
Delphi-Quelltext
1:
| If X in [256..511] Then Halt; |
geht bei mir eh nicht durch den Compiler:
| Zitat: |
| [Fehler] Unit1.pas(29): Konstantenausdruck verletzt untere Grenzen |
Ob das nach Delphi7 geändert wurde, weiß ich nicht.
Andidreas - So 05.08.07 10:16
Bekomme genau die gleiche Fehlermeldung.
Biergeneral - Fr 10.08.07 12:00
Sonst gibts in der Math unit auch noch
InRange(Value, Min, Max) : Boolean
Aber da wird vermutlich auch nichts anderes als (Value > Min) and (Value < Max) drinstehen ;)
mkinzler - Fr 10.08.07 12:02
eher (Value < Max) oder besser (Value >= Min) and (Value <= Max)
Biergeneral - Fr 10.08.07 22:24
Stand da doch :D *hust*
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!