Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Die Klasse Number repraesentiert Zahlen. Mehr ...
#include <number.h>
Öffentliche Methoden | |
Number (int v) | |
Number (long v) | |
Number (double v) | |
Number (const Fraction &f) | |
Number (const string &s) | |
Konstruktor wandelt gegebenen String in eine Zahl. Mehr ... | |
double | getVal () const |
double | val () const |
Fraction | frc () const |
bool | isFrc () const |
bool | isFrcOverflow () const |
Number | frcToDbl () |
Konvertiert die Zahl *this von einem Bruch in einen Double. | |
Number | dblToFrc () |
Konvertiert die Zahl *this von einem Double in einen Bruch. | |
string | makeStr (int format=3, int digits=-1, int shiftNum=0, double forceSci=-1.0) const |
Wandelt Number in String um. Mehr ... | |
bool | calcBaseOp (const FrcOpFuncp opP, Number n) |
Allgemeine Funktion zur Berechnung einer Operation (Grundrechenart) mit dem Objekt *this und einer weiteren Zahl n. Mehr ... | |
Number & | operator= (const Number &n) |
Ueberladener Zuweisungsoperator. | |
Number & | operator *= (const Number &n) |
Multiplikation und gleichzeitig Zuweisung. | |
Number & | operator/= (const Number &n) |
Division und gleichzeitig Zuweisung. | |
Number & | operator+= (const Number &n) |
Addition und gleichzeitig Zuweisung. | |
Number & | operator-= (const Number &n) |
Subtraktion und gleichzeitig Zuweisung. | |
Private Attribute | |
double | mVal |
numerischer Wert der Zahl | |
Fraction | mFrc |
Bruch, falls Zahl als Bruch dargestellt werden kann. | |
bool | mIsFrc |
Flag gibt an, ob Zahl als Bruch repraesentiert wird. | |
Freundbeziehungen | |
Number | operator * (const Number &n1, const Number &n2) |
Number | operator/ (const Number &n1, const Number &n2) |
Number | operator+ (const Number &n1, const Number &n2) |
Number | operator- (const Number &n1, const Number &n2) |
Number | operator- (const Number &n) throw (ZeroDivide) |
bool | operator== (const Number &n1, const Number &n2) |
Vergleichsoperator. | |
bool | operator!= (const Number &n1, const Number &n2) |
Pruefung auf Ungleichheit. | |
bool | operator< (const Number &n1, const Number &n2) |
Operator "kleiner als". | |
bool | operator<= (const Number &n1, const Number &n2) |
Operator "kleiner als oder gleich". | |
bool | operator> (const Number &n1, const Number &n2) |
Operator "groesser als". | |
bool | operator>= (const Number &n1, const Number &n2) |
Operator "groesser als oder gleich". | |
ostream & | operator<< (ostream &os, const Number &n) |
Ausgabeoperator. | |
Die Klasse Number repraesentiert Zahlen.
Eine Number kann ein Bruch oder eine reelle Zahl sein. Almetare verwendet grundsaetzlich Objekte dieser Klasse zum Rechnen. Es sind Konstruktoren zur Umwandlung der fundamentalen Datentypen in Numbers vorhanden. Der Konstruktor zur Umwandlung von Strings in Numbers ueberprueft selbstaendig, ob die Zahl in einen Bruch gewandelt werden kann oder nicht. Die vier Grundrechenarten und Vergleiche stehen als ueberladene Operatoren zur Verfuegung.
Number::Number | ( | const string & | sym | ) |
Konstruktor wandelt gegebenen String in eine Zahl.
Untersucht, ob der eingegebene String als Bruch interpretiert werden kann:
sym | Eingabe-String, der eine Zahl enthalten muss (Bruch, double oder int) |
bool Number::calcBaseOp | ( | const FrcOpFuncp | opP, |
Number | n | ||
) |
Allgemeine Funktion zur Berechnung einer Operation (Grundrechenart) mit dem Objekt *this und einer weiteren Zahl n.
Es wird versucht, die Operation *opP mit Bruechen durchzufuehren. Falls das nicht geht, werden beide Operanden in double gewandelt.
opP | Zeiger auf den auszufuehrenden Operator |
n | zweiter Operand neben *this |
string Number::makeStr | ( | int | format = 3 , |
int | digits = -1 , |
||
int | shiftNum = 0 , |
||
double | forceSci = -1.0 |
||
) | const |
Wandelt Number in String um.
Falls kein Bruch, wird gewuenschtes Format und Stellenanzahl beruecksichtigt, inclusive Verschiebung des Dezimalpunkts der Mantisse, falls Zahl im wissenschaftlichen Format.
format | steuert Darstellungsart der Ausgabe, darf folgende Werte haben:
|
digits | Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci) |
shiftNum | Anzahl der Stellen, um die das Komma der Mantisse einer Zahl im wissenschaftlichen Format nach rechts (>0) oder links (<0) verschoben wird. |
forceSci | Extra fuer den Casio fx-85v: er hat zwei Modi, wie kleine Zahlen dargestellt werden: Ab einer bestimmtem "Kleinheit" (<0.01 oder <0.0000001) wird im Standardformat zwangsweise in die SCI-Darstellung gewechselt. Diese Grenze kann man in forceSci uebergeben. |