Wie komme ich auf den Wert und Datentyp der Aussagen?
Kann mir jemand bei dieser Aufgabe helfen?
es muss der Wert und der Datentyp mit Begründung angeben werden, ich weiß jedoch nicht wie ich es begründen kann.
Vielen Dank im Voraus!
4 Antworten
Für den Wert: Operatorrangfolge+Auswertungsrichtung (bzw. Assoziativität).
Der Typ ergibt sich auf verschiedenen Faktoren, dazu muß man die Regeln der Sprache kennen bzw. in der Doku nachschlagen (gilt auch für Rangfolge/Auswertungsrichtung.
Grundlegend, wenn hinter einer Konstante ein f steht, dann handelt es sich um einen Float, ein int ist ein Integer, der Rest ergibt sich dann ggf. aus Typpromotionen.
Das erste ist kein Ausdruck, sonderen eine Reihe von Ausdrücken. Dort werden aber offenbar die Variablen definiert.
Ansonsten sollte sich das recht trivial lösen lassen, wenn man die Regeln der Sprache kennt. Die kann man im Internet nachschauen.
mann kann sich aber natürlich auch ein Program schreiben, welches die Ausdrücke auswertet und ihren Wert (und Datentyp) ausgibt.
Korrekt. Man kann aber gegebenenfalls auf C++ zurückgreifen (zumeist compiliert das schlicht genauso) oder man probiert etwas rum damit, ob man eine sinnvolle Ausgabe erhält.
'(Am Ende wird wohl nur relevant sein, ob es ein Integer oder ein Floating-Point ist.)
Begründung ist hauptsächlich die Bindungsstärke der Operatoren.
zB für Java: https://www.cs.bilkent.edu.tr/~guvenir/courses/CS101/op_precedence.html
(Allerdings keine Ahnung, ob ---- bei Java geht)
Ansonsten noch die Regeln, wann zu was implizit gecastet wird. Für Java:
https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html
Wenn man es ganz streng nimmt könnte man noch bei den Float-Werten begründen, warum es jetzt gerade genau diese Werte sind (da float-Werte ja teilweise nur Approximationen sind)
Ich würde mal raten, dass ihr in der Vorlesung / im Unterricht Folien zu den entsprechenden Regeln hattet, evtl. auch mit zugehörigen Namen
Es gibt in dieser Aufgabe die drei Variablen a, b und c, die am Anfang definiert werden, jeweils mit Wert und Datentyp.
In jeder Zeile wird eine Rechenoperation durchgeführt, die jeweils wieder einen Wert mit einem bestimmten Datentyp zum Ergebnis hat.
Bei den Berechnungen musst du beachten, welcher Datentyp herauskommt, wenn bestimmte Datentypen miteinander verrechnet werden.
Und die Operatorrangfolge muss beachtet werden.
Das mit dem Type ausgeben lassen stellt sich bei C etwas schwierig dar.