Hallo zusammen,
schreib Freitag mein Klausur über C und da bin ich paar einer Übungsaufgabe hierauf gestoßen:
Welche der folgenden Aussagen sind korrekt?
(a) Jede Addition mit int- oder double-Operanden liefert das mathematisch richtige Ergebnis
(b) Jede Addition mit int- Operanden liefert das mathematisch richtige Ergebnis
© Jede Addition mit int- Operanden liefert das mathematisch korrekte Ergebnis, sofern kein Überlauf
(d) Jede Addition mit double-Operanden liefert das mathematisch korrekte Ergebnis, sofern kein Überlauf
(e) Jede Addition mit double-Operanden liefert das mathematisch korrekte Ergebnis
(f) keine Addition mit double-Operanden liefert das richtige Ergebnis
Also ich würde sagen, dass © und (f) richtig sind. Bei double-Operanden kann ja immer noch der Rundungsfehler im Spiel sein und dann zu Fehlern führen. Das ist bei int ja nicht der Fall, da muss man nur auf den Überlauf achten.
Ist das so richtig, oder habe ich mich vertan?
MfG
Gerd
Seite 1 von 1
Addition Mit Int- Und Double-operanden korrekte Ergebnisse???
Anzeige
#2
geschrieben 02. August 2006 - 20:27
bei c stimm ich dir zu, aber warum soll f stimmen?
annahme: f) stimmt.
double a = 1; double b = 2; double c = a+b; ==> c = 3; ==> ergebnis richtig ==> f) stimmt nicht.
annahme: f) stimmt.
double a = 1; double b = 2; double c = a+b; ==> c = 3; ==> ergebnis richtig ==> f) stimmt nicht.
I'm mó. mo's good twin.
#3
geschrieben 02. August 2006 - 20:39
da haste natürlich recht. war dumm von mir!!!
aber (d) und (e) sollten doch auch nicht stimmen oder?
das wörtchen jede bezieht sich ja somit auch auf operationen, die rundungsfehler beinhalten. also stimmt nur ©!?!?!
aber (d) und (e) sollten doch auch nicht stimmen oder?
das wörtchen jede bezieht sich ja somit auch auf operationen, die rundungsfehler beinhalten. also stimmt nur ©!?!?!
#4
geschrieben 02. August 2006 - 20:40
bei c stimm ich dir zu, aber warum soll f stimmen?
annahme: f) stimmt.
double a = 1; double b = 2; double c = a+b; ==> c = 3; ==> ergebnis richtig ==> f) stimmt nicht.
annahme: f) stimmt.
double a = 1; double b = 2; double c = a+b; ==> c = 3; ==> ergebnis richtig ==> f) stimmt nicht.
Kommt es nicht darauf an wieviele stellen man hinter dem komma anschaut?
Ich weis ja nicht wie Pingelig die sind, aber wenn man genug stellen hinterm komma hat dann stimmt das Ergebniss nicht mehr.
#5
geschrieben 02. August 2006 - 20:47
darum könnte ja eigentlich nur c richtig sein. double-operationen mit nachkommastellen sind also definitiv fürs rechnen ungeeignet
#6
geschrieben 02. August 2006 - 21:33
Ich würde auch sagen, dass nur c richtig ist.
Mathematische Operationen sind vom Prozessor abhängig. Irgendein Pentium hätte den Bug, dass er mit großen Zahlen (oder waren es doch kleine ) nicht mehr rechnen konnte und falsche Ergebnisse ausgespuckt hat.
Mathematische Operationen sind vom Prozessor abhängig. Irgendein Pentium hätte den Bug, dass er mit großen Zahlen (oder waren es doch kleine ) nicht mehr rechnen konnte und falsche Ergebnisse ausgespuckt hat.
#7
geschrieben 03. August 2006 - 08:44
Zitat
darum könnte ja eigentlich nur c richtig sein. double-operationen mit nachkommastellen sind also definitiv fürs rechnen ungeeignet
naja, aber es ist die einzige möglichkeit, mit ungeraden z ahlen zu rechnen (also floating und fixpoint insg) und die bilden immer nur eine endliche teilmenge der rationalen zahlen ab. in der computergrafik wird die ganze zeit um dieses problem herumgetänzelt - weil man eben nie genau rechnen kann.
Zitat
Kommt es nicht darauf an wieviele stellen man hinter dem komma anschaut?
Ich weis ja nicht wie Pingelig die sind, aber wenn man genug stellen hinterm komma hat dann stimmt das Ergebniss nicht mehr.
Ich weis ja nicht wie Pingelig die sind, aber wenn man genug stellen hinterm komma hat dann stimmt das Ergebniss nicht mehr.
hab ja absichtlich mit ganzen zahlen gerechnet und damit bewiesen, dass es zumindest eine operation 1+2 = 3 gibt, die keine fehler macht und damit die aussage widerlegt...
floatingpoint-zahlen sind nicht in dem sinne "vor-dem-komma" und "nach-dem-komma" getrennt
siehe auch: http://de.wikipedia.org/wiki/IEEE_754
(afaik wird IEEE 754 auf intel und powerpc prozessoren implementiert ... mehr oder weniger erfolgreicht (siehe pentium bug))
I'm mó. mo's good twin.
Thema verteilen:
Seite 1 von 1