Einfach oder nicht Einfach? Syntaxbäume



  • Aufgabe 2: Zeichnen Sie die Syntaxbäume der folgenden Ausdrücke und machen Sie sich die
    Bedeutung der Ausdrücke klar. Überprüfen Sie Ihre Erkenntnisse anhand kurzer C-
    Programme.
       1) *--j=0
       2) fabs(x)<fabs(y)? fabs(y)*sqrt(1+(x/y)*(x/y)): x==0? 0:
          fabs(x)*sqrt(1+(y/x)*(y/x))
       3) i==0?++z,++z:--z,--z
    

    hallo, ich habe kein ahnung von dieser aufgabe.
    Kann mir jemand helfen?

    Mein Professor konnte mir auch nicht helfen, aber wir kriegen Bonuspunkte für die Klausur auf diese Aufgabe. 😞



  • Wenn du keine Ahnung hast und auch aufgrund von Aufzeichnungen und Freund Google nichts verstehst, dann wäre es möglich, dass du dir diese Bonuspunkte aus eben diesem Grund auch nicht verdient hast. 😉

    Von einem Forum eine Lösung für seine Hausaufgaben zu erwarten ist jedenfalls nicht gerade sehr guter Stil. 🙄

    Ich kann mom. leider nicht viel mit der Bezeichnung "Syntaxbaum" anfangen, aber ich nehme mal an, dass sich das schlichtweg auf die Priorität der Operatoren bezieht.

    Demnach sollst du die wohl einfach nacheinander auflösen (an Beispielen?!) und eben die Zwischenschritte dokumentieren.

    Vlt. wäre es angebracht, wenigstens ein wenig Vorwissen zur Verfügung zu stellen, anstatt "Macht mal bitte" zu sagen...



  • kommst du mit ausdrücken an sich nicht klar, oder wo genau liegt dein problem?

    wenn du weißt was ein syntaxbaum ist (sollte wohl im ersten semester vermittelt werden) und auch den ?:-operator (http://de.wikibooks.org/wiki/C-Programmierung:_Ausdrücke_und_Operatoren#Bedingung_.3F: ) kennst, dann schildere doch mal genau, wobei man dir helfen soll/kann.



  • Ich verstehe schon was da steht und ich weiß auch Bescheid über Bindungsprioritäten.
    Mir war nur unklar, wie man ein ? : oder eben einen Pointer im Syntaxbaum darstellt, da ich das nur mit Rechenoperatoren aus der Vorlesung kannte.

    Lustigerweise hatte der Tutor, der das prüfte auch keine Ahnung davon und hat allen die volle Punktzahl auf diese Aufgabe gegeben.

    Tolle Wurst.
    Trotzdem danke für die Mühe. 🙂


Anmelden zum Antworten