bool
-
- Verwende [cpp]- und nicht [code]-Tags.
- Hör endlich mit diesen Makros auf und verwende C++-Alternativen (Funktionen,
const-Variablen). Das gilt natürlich nicht für diejenigen, die für bedingte Kompilierung zuständig sind. - Sobald du mehrere logische Bedingungen hast, brauchst du grundsätzlich mehrere Abfragen. Du kannst vielleicht mit AND, OR und NOT etwas zusammenfassen, aber oft wird der Code dadurch schlechter.
- Es gibt auch noch
operator?:- das wäre dann wohl die Cheaterlösung.
-
Du könntest dann das hier auch noch abkürzen:
if ( Bedingung ) return true; else return false;Ist ersetzbar mit:
return ( Bedingung )Die Bedinung ist schlussentlich auch ein boolscher Ausdruck.
-
Nexus schrieb:
...
Ich möchte noch
- Verwende aussagekräftige Titel für deine Threads
hinzufügen.
-
whaaatz schrieb:
bool
int
-
whaaatz schrieb:
prototyp:
bool isInRange(int zahl, int untereGrenze, int obereGrenze);inline bool isInRange(int zahl, int untereGrenze, int obereGrenze) { const unsigned u = untereGrenze; return (zahl-u) <= (obereGrenze-u); }So?
Gruß,
SP
-
Sebastian Pizer schrieb:
whaaatz schrieb:
prototyp:
bool isInRange(int zahl, int untereGrenze, int obereGrenze);inline bool isInRange(int zahl, int untereGrenze, int obereGrenze) { const unsigned u = untereGrenze; return (zahl-u) <= (obereGrenze-u); }So?
Gruß,
SPMein Mathe-Verständnis sagt dazu
zahl-u <= oberGrenze-u | auf beiden Seiten +u
zahl <= obergrenze
Das verwirtrt mich.
-
volkard schrieb:
Mein Mathe-Verständnis sagt dazu
zahl-u <= oberGrenze-u | auf beiden Seiten +u <=> zahl <= obergrenzeDas verwirtrt mich.
Es ist wegen der Modulo-Arithmetik nicht ganz korrekt. u ist ein
unsignedint. => zahl-u und obereGrenze-u sind auchunsignedints (nie negativ) => Die Äquivalenz (<=>) ist an der Stelle falsch. Es muss heißenuntergrenze <= zahl <= obergrenze | überall u abziehen ~~~~~~~~~~~ ~~~~ ~~~~~~~~~~ int int int <=> 0 <= zahl-u <= obergrenze-u ~~~~~~ ~~~~~~~~~~~~ unsigned unsigned...und da 0<=zahl-u immer gilt (ist ja unsigned), kann man sich diesen Test sparen.
Gruß,
SP
-
Netter Trick.

-
Ist trotzdem nicht ganz richtig. So würde die Funktion nämlich bei z.B. isInRange(2, 1, 0) true zurückgeben..
-
Du hast recht. Ich habe stillschweigend untereGrenze <= obereGrenze vorausgesetzt.