bruch in c



  • 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/2
    

    Gruß
    Werner

    Was, 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/2
    

    Was, 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/2
    

    Gruß
    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.


Anmelden zum Antworten