Ok, explizite Typumwandlung wir auch casting genannt. In C und C++ musst du dem Compiler (fast) immer genau sagen was du willst. Machst du das nicht läuft du Gefahr, dass das Ergebnis nicht stimmt. Es kann also passieren, dass wenn du char + char addierst und die Zahlen zu groß sind, z. B. 127 + 127, das Ergebnis nicht korrekt ist. Es kann dann sein, dass das Ergebnis -2 ist! Deshalb muss der Compiler genau wissen was du von ihm willst. In der Aufgabe sind x und y vorzeichenbehaftete Zahlen. Wahrscheinlich int (oder signed int). Daraus kann der Compiler zunächst keine float machen. Das musst du ihm mitteilen. Beispiel:
float z;
int a, b;
z = (float)a * (float)b;
So kriegt‘s der Compiler in jedem Fall hin. Gruß jobe.
Sonstiger Berufsstatus, Punkte: 505
Naja, ich wollte dir nicht einfach die Aufgabe lösen sondern dir einen Denkanstoß geben. Wenn z= a*b in C++ zur Anweisung z = (float)a * (float)b führt hatte ich gehofft, dass du den Rest hinbekommst. Noch ein Beispiel: z= 2a + b/a wird zu z = (float)2a + float(b)/float(a). Jetzt sollte es doch klappen, oder?
─ jobe 11.11.2021 um 06:36Ah alles klar
danke
Markdown wird unterstützt.
könntest du mir ein Beispiel geben wie man es dann von der Formel in c++ umschreibt?
─ mathe_97 10.11.2021 um 23:29mit a*b hat man doch nicht die Formel wiedergegeben das irritiert mich gerade