und zur logischen Negation eines Ausdruckes
&& bedingtes logisches UND a<2 && b>0 || bedingtes logisches ODER c ==' ' || c =='.'
Regeln:
! logische Negation ! b
VERBATIM/b213a: int x, y, z; x = 3; y = 5; (wobei 3 = 011 und 5 = 101 ist) z = x & y; ==> z = 1 (1) z = x && y; ==> z = 1 (1) z = x | y; ==> z = 111 (7) z = x || y; ==> z = 1 (1)
1) | Ein Ausdruck, der durch logische Verknüpfung von Teilausdrücken gebildet wird, kann die Werte 1 (TRUE) und 0 (FALSE) annehmen |
2) | Vergleichsoperatoren haben höheren Rang als bedingte logische Operatoren |
3) | bedingte logische Operationen werden von links nach rechts ausgewertet, solange bis Ergebnis eindeutig ist ! |
4) | && hat höheren Rang als || |
Aufgabe:
BEISPIELE/b213a.c: #include <stdio.h> main() /* logische Operatoren */ { int x , y, z; x = 1; y = 2; z = 0; x = x && y || z; printf("%d\n", x); printf("%d\n", x || ! y && z ); }
BEISPIELE/b213b.c: #include <stdio.h> int letter(c) int c; { if( ((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z')) ) return(1); else return(0); } main() /* Vergleich: c Buchstabe? -> wahr (1) */ /* c Buchstabe? -> falsch (0) */ { printf("5: %d\n", letter(5)); printf("g: %d\n", letter('g')); printf("T: %d\n", letter('T')); printf("@: %d\n", letter('@')); }
VERBATIM/b213b: int letter(c) /* in C typische Form des Zeichenvergleichs */ int c; { return(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'); }
VERBATIM/b213c: int y, z; z=2; y=!(!z);