Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Hybrid-Darstellung

  1. #1
    Gesperrt
    Registriert seit
    10.02.2010
    Beiträge
    446

    Standard Tipps/Rätsel für C++

    Da ich zur Zeit C++
    anfang bzw. grade lerne hoffe ich das ihr mir ein paar tipps geben könnt
    oder vielleicht auch ein paar Rätsel stellt die ich lösen muss im laufe meines c
    ++ kapitel

    Danke schon mal

  2. #2
    DateMake Dialer
    Registriert seit
    04.07.2010
    Beiträge
    100

    Standard

    int i = 30;
    i += i++ + ++i;

    welches Ergebnis liefert das unter c++ und warum ist das Ergebnis bei Java anders? =) (bzw. wie wird es bei C++ berechnet und wie bei Java?)

  3. #3
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von Rifler Beitrag anzeigen
    int i = 30;
    i += i++ + ++i;

    welches Ergebnis liefert das unter c++ und warum ist das Ergebnis bei Java anders? =) (bzw. wie wird es bei C++ berechnet und wie bei Java?)
    Und wie soll das bitte gehen? Der Ausdruck ist undefiniert und es ist compilerabhängig was dabei rauskommt.
    Siehe: Stroustrup: C++ Style and Technique FAQ

    Oder hättest du eine andere Antwort erwartet? Was soll da bitte die Begründung sein?

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  4. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Bozok (10.09.2010), luxury11 (10.09.2010), ocz (09.09.2010)

  5. #4
    Gesperrt
    Registriert seit
    10.02.2010
    Beiträge
    446

    Standard

    ok ich werd die Lösung dann posten. Nächste Rätsel bitte!

  6. #5
    Der `Toastflüsterer` Avatar von AlterHacker
    Registriert seit
    27.09.2008
    Beiträge
    690

    Standard

    Nimm eine Zahl * 8. Nur mit binären Operatoren.
    Überprüfe mit einem binären Operator, ob eine Zahl gerade ist oder nicht.

    Security is an illusion.
    Cheater : 8=o
    Normaluser : 8=======o
    Ich : 8================o

    BM: (4|2|0)

  7. #6
    Anfänger
    Registriert seit
    12.05.2009
    Beiträge
    8

    Standard

    hierbei gehts ihm denke ich um das Pre bzw eben postfix... was mich aber interessieren würde ist warum das in java anders berechnet wird... und vor allem wies da abläuft...gleich nochmal back 2 basics ... =/

  8. #7
    Anfänger
    Registriert seit
    10.07.2008
    Beiträge
    10

    Standard

    int i = 30;
    i += i++ + ++i;

    i wird mit 30 initialisiert.

    "+=" heisst, dass auf das gesetzte i (30) noch was dazu kommt.
    i++ => i+1 (31)
    + => normaler operator
    ++i => i+1 (31)

    Also im Ergebnis: 30 + 31 + 31= 92

  9. #8
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    @Invincible
    Hier verweise ich nochmal auf Stroustrups FAQ: "Similarly, the order of evaluation of arguments is unspecified."

    i += i++ + ++i;
    Habs also mal für folgende Szenarien durchgespielt:
    1) Erst ++i, dann i++, dann i
    31 + 31 + 32 = 94
    2) Erst i, dann ++i, dann i++
    30 + 31 + 31 = 92
    3) Erst i, dann i++, dann ++i
    30 + 30 + 32 = 92
    4) Erst i++, dann ++i, dann i
    30 + 32 + 32 = 94

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  10. #9
    DateMake Dialer
    Registriert seit
    04.07.2010
    Beiträge
    100

    Standard

    ^^ ok, dann helfe ich mal:
    Hier der Code:

    int i = 30;
    i += i++ + ++i;

    In C++ liefert es als Ergebnis: 94
    In Java liefert es als Ergebnis: 92

    So jetzt die große Frage: WARUM?

    Fangen wir mit C++ an. Ausdrücke werden immer von rechts nach links ausgewertet.
    1. Schritt: ++i wird ausgeführt und dann Ergebnis eingesetzt:
    i += i++ + 31;

    2. Schritt: Als nächstes wird i++ ausgeführt, d.h. zuerst i (=31) eingesetzt und danach i erhöht, also:
    i += 31 + 31;

    3. Schritt: Nun lösen wir das += auf in nur = und setzen für i beim summieren 32 ein:
    i = 32 + 31 + 31
    i = 94

    So und jetzt kommt die große Frage, was macht Java anders?
    Ich bin damals 1 Stunde gesessen und hab überlegt ^^ bin aber auf eine Lösung gekommen Lol nur leider fällt sie mir grad jetzt nicht ein, dazu müsste ich wieder n Stück länger nachdenken, aber vll. fällt sie ja einem von euch auch ein. Also hf damit =) =)
    (ps: natürlich ist der Ausdruck oben definiert, da c++ Ausdrücke immr von rechts nach links auflöst)

    edit: Eines noch vorweg, die Reihenfolge bei Java ist auch von rechts nach links, es hat mit der Reihenfolge des Einsetzens zu tun. Bei C++ wirds immer kurz davor eingesetzt, bei Java glaube ich, gleich am Anfang, wodurch sich später ein Wert überschreibt, was dann zum Ergebnis führt.

  11. #10
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von Rifler Beitrag anzeigen
    Fangen wir mit C++ an. Ausdrücke werden immer von rechts nach links ausgewertet.
    Manchmal frage ich mich wirklich, ob die Leute meine Posts mit Absicht übergehen, oder einfach nur zufälliger Weise nicht zuhören.
    Zitat Zitat von http://www2.research.att.com/~bs/bs_faq2.html#undefined
    Similarly, the order of evaluation of arguments is unspecified.
    Also nochmal auf deutsch: wenn dein C++ Compiler die Ausdrücke von rechts nach links auswertet, dann mag das zwar schön sein, aber es ist keines Falls irgendwo vorgeschrieben und könnte ebenso gut von links nach rechts, oder von der mitte nach rechts und dann von links wieder zur Mitte sein.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Tutorial+Rätsel
    Von Sirect im Forum Biete Tutorials
    Antworten: 11
    Letzter Beitrag: 13.07.2009, 10:44

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •