Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Verzeichnisse | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente

Number Klassenreferenz

Die Klasse Number repraesentiert Zahlen. Mehr ...

#include <number.h>

Aufstellung aller Elemente

Öffentliche Methoden

 Number ()
 Number (int v)
 Number (long v)
 Number (double v)
 Number (const Fraction &f)
 Number (const string &s)
 Konstruktor wandelt gegebenen String in eine Zahl.
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.
bool calcBaseOp (const FrcOpFuncp opP, Number n)
 Allgemeine Funktion zur Berechnung einer Operation (Grundrechenart) mit dem Objekt *this und einer weiteren Zahl n.
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  )  [inline]
 

Number::Number int  v  )  [inline]
 

Number::Number long  v  )  [inline]
 

Number::Number double  v  )  [inline]
 

Number::Number const Fraction f  )  [inline]
 

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:
    sym Eingabe-String, der eine Zahl enthalten muss (Bruch, double oder int)


Dokumentation der Elementfunktionen

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:
opP Zeiger auf den auszufuehrenden Operator
n zweiter Operand neben *this

Number Number::dblToFrc  ) 
 

Konvertiert die Zahl *this von einem Double in einen Bruch.

Fraction Number::frc  )  const [inline]
 

Number Number::frcToDbl  ) 
 

Konvertiert die Zahl *this von einem Bruch in einen Double.

double Number::getVal  )  const [inline]
 

bool Number::isFrc  )  const [inline]
 

bool Number::isFrcOverflow  )  const [inline]
 

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:
format steuert 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
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.
Rückgabe:
Ergebnis-String

Number & Number::operator *= const Number n  ) 
 

Multiplikation und gleichzeitig Zuweisung.

Number & Number::operator+= const Number n  ) 
 

Addition und gleichzeitig Zuweisung.

Number & Number::operator-= const Number n  ) 
 

Subtraktion und gleichzeitig Zuweisung.

Number & Number::operator/= const Number n  ) 
 

Division und gleichzeitig Zuweisung.

Number & Number::operator= const Number n  ) 
 

Ueberladener Zuweisungsoperator.

double Number::val  )  const [inline]
 


Freundbeziehungen und Funktionsdokumentation

Number operator * const Number n1,
const Number n2
[friend]
 

bool operator!= const Number n1,
const Number n2
[friend]
 

Pruefung auf Ungleichheit.

Number operator+ const Number n1,
const Number n2
[friend]
 

Number operator- const Number n  )  throw (ZeroDivide) [friend]
 

Number operator- const Number n1,
const Number n2
[friend]
 

Number operator/ const Number n1,
const Number n2
[friend]
 

bool operator< const Number n1,
const Number n2
[friend]
 

Operator "kleiner als".

ostream& operator<< ostream &  os,
const Number n
[friend]
 

Ausgabeoperator.

bool operator<= const Number n1,
const Number n2
[friend]
 

Operator "kleiner als oder gleich".

bool operator== const Number n1,
const Number n2
[friend]
 

Vergleichsoperator.

bool operator> const Number n1,
const Number n2
[friend]
 

Operator "groesser als".

bool operator>= const Number n1,
const Number n2
[friend]
 

Operator "groesser als oder gleich".


Dokumentation der Datenelemente

Fraction Number::mFrc [private]
 

Bruch, falls Zahl als Bruch dargestellt werden kann.

bool Number::mIsFrc [private]
 

Flag gibt an, ob Zahl als Bruch repraesentiert wird.

double Number::mVal [private]
 

numerischer Wert der Zahl


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Mon Oct 10 19:54:32 2005 für Almetare von  doxygen 1.4.1