[C/C++] Ausdruck erläutern!!

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Megalomaniac, 18. Januar 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 18. Januar 2009
    Ausdruck erläutern!!

    Hallo leutz,

    Hab mal ne frage zu einem Ausdruck der mir ganz und gar nicht logisch erscheint!!!

    "Es sei int a,b; vereinbart. Wann ist der Ausdruck (a=b) wahr?"

    Ergebniss = Wenn b != 0 ist!
    was wird damit gemeint???

    Und das Makro leuchtet mir auch nicht ein!

    Definieren Sie ein Makro das von zwei Parameterwerten das Maximum ermittelt:

    Ergebniss:
    Code:
    #define MAX(x,y) ((x)>=(y)) ? (x):(y)
    Bitte jemand erläutern!!


    Danke Vorab
    Gruß
     
  2. 18. Januar 2009
    AW: Ausdruck erläutern!!

    Lies dir mal was zum "Ternären Operator" durch:
    C/C++ - Bedingungsoperator
     
  3. 18. Januar 2009
    AW: Ausdruck erläutern!!

    ok, das makro leuchtet mir nun ein aber der erste Ausdruck is immernoch verwirrend!!
     
  4. 18. Januar 2009
    AW: Ausdruck erläutern!!

    also
    "Es sei int a,b; vereinbart. Wann ist der Ausdruck (a=b) wahr?"

    sie mal a und b als 2 mengen. vereinbart bedeutet das a ODER b gilt.
    dies gilt aber nur wenn die schnittmenge 0 ist, weil du sonst ein element aus menge a bzw b doppelt zählen würdest.

    dh a geschnitten b muss 0 sein.
     
  5. 18. Januar 2009
    AW: Ausdruck erläutern!!

    Hmm, leuchtet mir ehrlich gesagt immernoch nicht ein!
    Vereinbart = Schnittmenge is ok, aber wenn a geschnitten mit b ungleich 0 sein muss, was hilft mir die aussage b ungleich 0 dan b gleich a? Ich bring da keinen Zusammenhang rein sry.. ?
     
  6. 18. Januar 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Ausdruck erläutern!!

    Das hier ist "a oder b".

    {bild-down: https://www.xup.in/tn/2009_01/24723489.png}



    Und WANN schneiden sich jetzt a und b? *hirn anstreng(en)*
     
  7. 18. Januar 2009
    AW: Ausdruck erläutern!!

    Ich würde das anders sehen. Vereinbart heißt hier einfach nur definiert/gegeben.
    (a=b) ist demzufolge wahr, wenn a, das auf den Wert von b gesetzt wird
    (Achtung: "=" ist eine Zuweisung, "==" ein Vergleich)
    wahr ist, also wenn b wahr (!=0) ist
     
  8. 26. Januar 2009
    AW: Ausdruck erläutern!!

    also mit mengen hat das ganze nichts zu tun, sondern mit operatoren!!!

    wenn du sagst a = b ist das eine zuweisung (kein vergleich) und der ausdruck ist immer wahr solanger b>0 ist. das ist das gleiche wie if(a).
    das hier "z = (x>=y) ? x : y "kommt eigentlich aus java und bedeuten: wenn x größer oder gleich y ist, dann ist rückgabewert x und sonst y.
    wenn du sagst a == b, dann ist das ein vergleichsoperator und der ausdruck ist dann wahr wenn a gleich b ist. rückgabewert ist größer 0.
     
  9. 26. Januar 2009
    AW: Ausdruck erläutern!!

    Nicht ganz, der Ausdruck ist auch wahr, wenn b < 0
    Alles was <> (ungleich) 0 ist, ist in C(++) wahr, nur 0 ist falsch.

    Der Ausdruck wertet einfach das Ergebnis der Zuweisung aus, also in diesem Fall den Wert von a:

    Gehen wir mal davon aus:
    Code:
    a = 0; // egal, kann irgendwas sein
    b = -1;
    Dann der Ausdruck:

    Code:
    if (a = b)
    Das ist das gleiche wie:

    Code:
    a = b;
    if (a) // in a steht jetzt -1 (der Wert von b) wegen der Zuweisung und -1 = true, da -1 <> 0
    Daraus folgt: da du a immer den Wert von b zuweist und hinterher auf true (<> 0) oder false (0) prüfst, entscheidet b, ob das Ergebnis true oder false ist.

    Stimmts?
     
  10. 26. Januar 2009
    AW: Ausdruck erläutern!!

    du hast vollkommen recht, ich habe den negativen bereich vergessen. deswegen mag ich die öffentlichen foren, zwei köpfe sind immer besser ein ein
     
  11. 26. Januar 2009
    AW: Ausdruck erläutern!!

    Erledigt!?

    ~closed~

    Mfg,

    Kolazomai
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.