Wie komme ich auf den Wert und Datentyp der Aussagen?

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.


KarlRanseierIII  16.12.2022, 13:23

Das mit dem Type ausgeben lassen stellt sich bei C etwas schwierig dar.

0
Destranix  16.12.2022, 16:04
@KarlRanseierIII

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.)

1

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.

Woher ich das weiß:Studium / Ausbildung