![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Elite
![]() Registriert seit: 07.09.2000
Beiträge: 1.036
|
![]() auf ein neues: hab ich da wieder mal einen denkfehler? oder stimmt mal wieder des skript nicht *grml*
Code:
übungsbeispiele: ergebnisse laut skript: 17+4 > 9 && 8*2 !=16 ergebnis= 0 2*11 != 10 || 9 == 11 ergebnis= 1 43 != 30+4 && !2 > 3 ergebnis= 0 48-5 != 33+10 && 21 == !0 ergebnis= 0 !4 || !20 ergebnis= 0 17+2 != 45/3 && !(11-11) ergebnis= 1 17 < 20 && !(4-4) ergebnis= 1 denke aber es ist 0!! 17 ist kleiner als 20 (trifft zu) - 17 ist aber nicht kleiner als 4-4 (trifft nicht zu) da aber beide zutreffen müssen ist das ergebnis bei mir 0 hmm... scheibar komm ich auch irgendwie nicht mit dem ! not operator zurecht: !0 ergebnis =1 (ist mir klar, wenn der operand gleich 0 ist, dann ist das ausdrucksergebnis 1, wenn nicht dann 0) !14 || 12 > 11 ergebnis= 1 (wieso? !14 ist nicht null also muss ergebnis= 0 sein und 12 ist grösser als 11, also trifft zu, ergebnis=1) nach welcher regel wird beurteilt, das logische oder, hilft mir dabei nicht wirklich und die operanden haben die gleiche priorität. ich hab mir schon das gehirn verrenkt aber ich komm einfach nicht drauf welchen denkfehler ich begehe.
____________________________________
Bye Bastet |
![]() |
![]() |
![]() |
#2 | |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.107
|
![]() Zitat:
Wenn der Operator && vorkäme wär das Ergebnis 0. 17 < 20 && !(4-4) Ich würd auch sagen es ist 1 weil !0 bedeutet ja alle Zahlen außer 0 sind wahr. Alles ohne Gewähr, hab auch Probleme beim C++ Programmieren an der Uni. ![]() |
|
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.107
|
![]() sry doppelpost...
|
![]() |
![]() |
![]() |
#4 |
Veteran
![]() |
![]() [quote]Original geschrieben von Bastet
Code:
17 < 20 && !(4-4) ergebnis= 1 denke aber es ist 0!! Code:
(17 < 20) && !(4-4) Code:
(17 < 20) - > 1 Code:
!(4-4) - > !(0) - > 1 Code:
1 && 1 |
![]() |
![]() |
![]() |
#5 |
Elite
![]() Registriert seit: 07.09.2000
Beiträge: 1.036
|
![]() danke erstmal - ich glaub ich habs
!14||12>11 also sobald ein , oder || operator dabei ist, wird davon ausgegangen dass einer wahr ist. @fabsi ja, daran dachte ich auch schon, aber auf grund eines anderen beispiels habe ich den gedanken wieder verworfen.
____________________________________
Bye Bastet |
![]() |
![]() |
![]() |
#6 |
Großmeister
![]() |
![]() Verstaubten Kernighan Ritchie aus dem Schrank hol ...
![]() Bei solchen Aufgaben ist es wichtig, die Priorität der Operatoren zu kennen. vielleicht hilft dir das hier weiter, wenn nicht eh schon bekannt -> Code:
Priorität Operator Assoziativität 15 ( ) [ ] -> . von links nach rechts 14 ! ~ ++ -- + - (TYP) * & sizeof von rechts nach links 13 * / % (Rechenoperationen) von links nach rechts 12 + - (binär) von links nach rechts 11 << >> von links nach rechts 10 < <= > >= von links nach rechts 9 == != von links nach rechts 8 & von links nach rechts 7 ^ von links nach rechts 6 | von links nach rechts 5 && von links nach rechts 4 || von links nach rechts 3 ?: von rechts nach links 2 = += -= /= *= %= >>= <<= &= |= von rechts nach ^= links 1 , (Sequenz-Operator) von links nach rechts |
![]() |
![]() |
![]() |
#7 | |
Großmeister
![]() |
![]() Zitat:
![]() ! liefert immer null, wenn operand <> 0 ist |
|
![]() |
![]() |
![]() |
#8 |
Elite
![]() Registriert seit: 07.09.2000
Beiträge: 1.036
|
![]() operatoren, die in der gleichen zeile stehen, haben gleiche priorität. aso - die wie oben in der liste aufgezählt wurden zb. + - gleiche priorität.
@maxb wahhh.... verwirr mich nicht ![]() !not - ist dieser operand gleich null ist das ausdrucksergebnis 1, andernfalls 0 somit: !10 ergebnis= 0 !0 ergebnis= 1 !14 ergebnis= 0 gibts zu ! evt. ne erklärung für dummies? hab schon überall nachgelesen, aber es wird immer wie oben erklärt.
____________________________________
Bye Bastet |
![]() |
![]() |
![]() |
#9 | |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.107
|
![]() Zitat:
z.B. 15<10||3+5==8 ist das Ergebnis 1 weil 3+5=8 wahr ist. |
|
![]() |
![]() |
![]() |
#10 | |
Veteran
![]() |
![]() Zitat:
http://www.schellong.de/c.htm Das ist mein Standardnachschlagwerk, wenn ich wo nicht weiter weiß. (a || b) = c: Logisch oder: Sobald a ODER b 1 ergeben ist c 1 (a && b) = c: Logisch und: Sobald a UND b 1 ergeben ist c 1 deiner erklärung von ! war eh gut: !Zahl liefert 1 wenn Zahl 0 ist und 0 wenn Zahl nicht 0 ist. |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|