Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Klasse zum Rechnen mit Bruechen. Mehr ...
#include <fraction.h>
Öffentliche Methoden | |
Fraction (long n, long d=1) throw (ZeroDivide) | |
Konstruktor konstruiert Brueche aus Zaehler und Nenner. Mehr ... | |
Fraction (const Fraction &f) | |
long | getNumr () const |
long | getDnom () const |
long | gcd () const |
Berechnet den groessten gemeinsamen Teiler (ggT) des Bruchs. Mehr ... | |
long | lcm () const |
Berechnet das kleinste gemeinsame Vielfache (kgV) des Bruchs. Mehr ... | |
void | shorten () |
Kuerzt den Bruch durch Division von Zaehler und Nenner durch den ggT. Mehr ... | |
Fraction | rcp () const throw (ZeroDivide) |
double | getVal () const |
void | getMixedFraction (long &whole, Fraction &f) const |
Wandelt Bruch in einen gemischten Bruch um. Mehr ... | |
string | getMixedFraction () const |
Gibt den Bruch als gemischten Bruch in String-Form zurueck. Mehr ... | |
string | getFraction () const |
Gibt Bruch als String zurueck. Mehr ... | |
bool | isOverflow () const |
Fraction & | operator *= (const Fraction &f) |
Multiplikation von Bruechen. Mehr ... | |
Fraction & | operator/= (const Fraction &f) throw (ZeroDivide) |
Division von Bruechen. Mehr ... | |
Fraction & | operator+= (const Fraction &f) |
Addition von Bruechen. Mehr ... | |
Fraction & | operator-= (const Fraction &f) |
Subtraktion von Bruechen. Mehr ... | |
Öffentliche, statische Methoden | |
static void | setShortened (bool is) |
Private Attribute | |
long | mNumr |
Zaehler (numerator) | |
long | mDnom |
Nenner (denominator) | |
Statische, private Attribute | |
static bool | mIsShortened = true |
gibt an, ob Bruch gekuerzt werden soll | |
Freundbeziehungen | |
Fraction | operator * (const Fraction &f1, const Fraction &f2) |
Fraction | operator/ (const Fraction &f1, const Fraction &f2) throw (ZeroDivide) |
Fraction | operator+ (const Fraction &f1, const Fraction &f2) |
Fraction | operator- (const Fraction &f1, const Fraction &f2) |
bool | operator== (const Fraction &f1, const Fraction &f2) |
bool | operator!= (const Fraction &f1, const Fraction &f2) |
bool | operator< (const Fraction &f1, const Fraction &f2) |
bool | operator<= (const Fraction &f1, const Fraction &f2) |
bool | operator> (const Fraction &f1, const Fraction &f2) |
bool | operator>= (const Fraction &f1, const Fraction &f2) |
ostream & | operator<< (ostream &os, const Fraction &f) |
Ausgabeoperator fuer einen Bruch. Mehr ... | |
Klasse zum Rechnen mit Bruechen.
Die Klasse repraesentiert einen Bruch, der aus einem Zaehler und einem Nenner besteht. Zaehler und Nenner sind long-Variablen, dadurch kann bei Berechnungen kein Genauigkeitsverlust entstehen; allerdings wird ein Ueberlauf nicht automatisch erkannt, so dass ein Anwender selbst sicherstellen muss, dass Zaehler und/oder Nenner nicht zu gross werden.
Die Operatoren der vier Grundrechenarten und die ueblichen Vergleichsoperatoren stehen als ueberladene Operatorfunktionen zur Verfuegung. Weitere Funktionen kuerzen den Bruch, ermitteln kgV und ggT, erzeugen einen gemischten Bruch u.a.
Ein Element dieser Klasse wird als Member in der Klasse Number verwendet.
Fraction::Fraction | ( | long | n, |
long | d = 1 |
||
) | |||
throw | ( | ZeroDivide | |
) |
Konstruktor konstruiert Brueche aus Zaehler und Nenner.
Kann ausserdem zur Konvertierung von long-Parametern in Brueche verwendet werden.
n | Zaehler ("Nominator") |
d | Nenner ("Denominator") |
class | ZeroDevide, wenn der Nenner 0 ist |
long Fraction::gcd | ( | ) | const |
Berechnet den groessten gemeinsamen Teiler (ggT) des Bruchs.
Der ggT (gcd - greatest common devisor) wird nach dem "Euklidischen Algorithmus" berechnet.
string Fraction::getFraction | ( | ) | const |
Gibt Bruch als String zurueck.
void Fraction::getMixedFraction | ( | long & | whole, |
Fraction & | f | ||
) | const |
Wandelt Bruch in einen gemischten Bruch um.
Ein gemischter Bruch besteht aus einem ganzen Teil und einem Bruch, z.B.:
4/3 = 1_1/3.
Falls der ganzzahlige Teil vorhanden ist (nicht Null), erhaelt er das Vorzeichen.
whole | ganzzahliger Anteil des Bruchs |
f | der Restbruch nach Abspalten des ganzzahligen Anteils |
string Fraction::getMixedFraction | ( | ) | const |
Gibt den Bruch als gemischten Bruch in String-Form zurueck.
long Fraction::lcm | ( | ) | const |
Berechnet das kleinste gemeinsame Vielfache (kgV) des Bruchs.
Das kgV (lcm - least common multiple) wird nach der Formel
berechnet.
Multiplikation von Bruechen.
f | Multiplikator (*this ist der Multiplikand) |
Addition von Bruechen.
f | zweiter der Summanden (*this ist der erste Summand) |
Subtraktion von Bruechen.
f | Subtrahend (*this ist der Minuend) |
Fraction & Fraction::operator/= | ( | const Fraction & | f | ) | |
throw | ( | ZeroDivide | |||
) |
Division von Bruechen.
f | Divisor (*this ist der Dividend) |
void Fraction::shorten | ( | ) |
Kuerzt den Bruch durch Division von Zaehler und Nenner durch den ggT.
Ein negatives Vorzeichen wird grundsaetzlich dem Zaehler zugeordnet.
|
friend |
Ausgabeoperator fuer einen Bruch.
os | Output-Stream |
f | auszugebender Bruch |