Almetare  1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
Number Klassenreferenz

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 ...
 
Numberoperator= (const Number &n)
 Ueberladener Zuweisungsoperator.
 
Numberoperator *= (const Number &n)
 Multiplikation und gleichzeitig Zuweisung.
 
Numberoperator/= (const Number &n)
 Division und gleichzeitig Zuweisung.
 
Numberoperator+= (const Number &n)
 Addition und gleichzeitig Zuweisung.
 
Numberoperator-= (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.
 

Ausführliche Beschreibung

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.

Beschreibung der Konstruktoren und Destruktoren

◆ Number()

Number::Number ( const string &  sym)

Konstruktor wandelt gegebenen String in eine Zahl.

Untersucht, ob der eingegebene String als Bruch interpretiert werden kann:

  • es darf kein "." vorkommen
  • es darf kein "e" vorkommen
  • Zahl muss kleiner als 100000 sein, da sonst ein Overflow passieren koennte
  • wenn "/" gefunden, muessen Zaehler und Nenner kleiner 100000 sein
    Parameter
    symEingabe-String, der eine Zahl enthalten muss (Bruch, double oder int)

Dokumentation der Elementfunktionen

◆ calcBaseOp()

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.

Parameter
opPZeiger auf den auszufuehrenden Operator
nzweiter Operand neben *this

◆ makeStr()

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.

Parameter
formatsteuert Darstellungsart der Ausgabe, darf folgende Werte haben:
  • format = 0: NRM - Standardformat
  • format = 1: SCI - wissenschaftliches Format
  • format = 2: FIX - fixes Format
  • format = 3: FRC - Bruchdarstellung
  • format = 4: MIX - Bruchdarstellung als gemischter Bruch
  • format = 5: SXG - Sexagesimaldarstellung
digitsAnzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci)
shiftNumAnzahl der Stellen, um die das Komma der Mantisse einer Zahl im wissenschaftlichen Format nach rechts (>0) oder links (<0) verschoben wird.
forceSciExtra 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.
Rückgabe
Ergebnis-String

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: