bruch in c
-
mit der Rational Number library von boost geht es auch:
#include <boost/rational.hpp> // .. boost::rational< int > a( 1, 2 ); // a=1/2Gruß
Werner
-
Werner Salomon schrieb:
mit der Rational Number library von boost geht es auch:
#include <boost/rational.hpp> // .. boost::rational< int > a( 1, 2 ); // a=1/2Gruß
WernerWas, wenn man float in das template reintut?
-
Dann hast du einen "Rational", der potentiell irrationale Zahlen in Nenner und/oder Zähler haben kann...

greetz, Swordfish
-
Krux schrieb:
sich ne Bruch-Klasse zu schreiben, ist auch recht gut zum üben, besonder wenn man mal das Operatorenüberladen sinnvoll testen möchte.
Eine Bruch-Klasse in C schreiben?

Da bin ich ja mal gespannt.
-
Krux schrieb:
Werner Salomon schrieb:
boost::rational< int > a( 1, 2 ); // a=1/2Was, wenn man float in das template reintut?
dann wird es Dein Compiler nicht übersetzen. Der Typ für das rational-template muss u.a. über den Modulo-Operator (%) verfügen. Die Klasse benötigt den Operator um den größten gemeinsamen Teiler zu finden; und dies wiederum, um den Bruch ggf. zu kürzen.
Beispiel:
boost::rational< int > a( 3, 6 ); cout << a << endl;ergibt:
1/2Gruß
Werner
-
Javaner schrieb:
Krux schrieb:
sich ne Bruch-Klasse zu schreiben, ist auch recht gut zum üben, besonder wenn man mal das Operatorenüberladen sinnvoll testen möchte.
Eine Bruch-Klasse in C schreiben?

Da bin ich ja mal gespannt.Huch, hier ist ja das C++ und nicht das C Forum

-
Swordfish schrieb:
Dann hast du einen "Rational", der potentiell irrationale Zahlen in Nenner und/oder Zähler haben kann...

greetz, Swordfish
Nope, dann hast du einen festen Blödsinn. Und "irrationale Zahlen" kannst du mit nem float/double sowieso nicht darstellen, denn alles was sich als Bruch darstellen lässt ist rational und nicht irrational, und alles was in float/double darstellbar ist ist auch als Bruch darstellbar. Ok, mit Ausnahme von NaN, +inf, -inf etc.
-
och, die sind schon darstellbar. -x/0 ist -inf, x/0 ist +inf und 0/0 ist NaN ^^
-
Und was ist mit "negative zero"?

-
hustbaer schrieb:
Und was ist mit "negative zero"?

-0/-0 :p kreativ denken ^^
-
thordk schrieb:
hustbaer schrieb:
Und was ist mit "negative zero"?

-0/-0 :p kreativ denken ^^
Das ist weder negative noch zero. Sehr kreativ.
Außerdem kann die 'rational'-Klasse keine negativen Nenner speichern.