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

Bruchdarstellung: Fliesskomma, Bruch, gemischter Bruch. Mehr ...

#include <calc_sci.h>

Klassendiagramm für ComputerSci:
ComputerBase ComputerCasioSci ComputerTiSci ComputerFx3600p ComputerFx85v ComputerTi30

Öffentliche Methoden

 ComputerSci ()
 Der Konstruktor fuegt der Symboltabelle die zusaetzlichen Symbole fuer wissenschaftliche Taschenrechner hinzu. Mehr ...
 
bool getIsInv () const
 
bool getIsHyp () const
 
bool getIsFixInput () const
 
bool getIsSciInput () const
 
AngMode getAngMode () const
 
void setIsInv (bool isOn)
 
void setIsHyp (bool isOn)
 
void setIsFixInput (bool isOn)
 
void setIsSciInput (bool isOn)
 
void setAngMode (AngMode mode=DEG)
 
string makeCompSciInfoStr ()
 Erzeugt String mit den wichtigen Member-Variablen. Mehr ...
 
virtual bool preProcess (string &in)
 Funktion erlaubt es, ein Symbol vor der eigentlichen Verarbeitung zu veraendern. Mehr ...
 
virtual void handlePercent ()
 Prozentrechnung des Solar-Rechners: Mehr ...
 
virtual void aftProcess (string &in)
 
virtual bool map (string &sym)
 
virtual string makeCompInfoStr ()
 
- Öffentliche Methoden geerbt von ComputerBase
 ComputerBase ()
 Konstruktor erzeugt Symboltabelle, initialisiert Symbol- und Nummern-Stack.
 
virtual ~ComputerBase ()
 Die mit new angelegten Symbole muessen wieder geloescht werden.
 
void createSymTabBase ()
 Erzeugt Symboltabelle mit allen Symbolen des "minimalen" Taschenrechners. Mehr ...
 
void showSymTab ()
 Schreibt alle Symbole in die Log-Datei.
 
void initStacks ()
 Initialisiert die beiden Stack-Listen. Mehr ...
 
void initMembers (bool clrMem=true)
 Initialisiert die Members von ComputerBase. Mehr ...
 
void clearNum ()
 
Number getConstVal () const
 
Number getPrcWhole () const
 
Number getMemory () const
 
int getBraLev () const
 
int getParam () const
 
SymOperatorgetConstOpP () const
 
SymOperatorgetLastOpP () const
 
SymOperatorgetLastButOneOpP () const
 
SymbolgetLastInP () const
 
SymbolgetLastButOneInP () const
 
SymbolgetSymP (const string &sym)
 
void setDsplP (DisplayBase *dsplP)
 
void setConstVal (const Number &val)
 
void setPrcWhole (const Number &val)
 
void setMemory (const Number &val)
 
void setParam (const int val)
 
void setLastOpP (SymOperator *soP)
 Speichert die Zeiger auf die beiden zuletzt eingegebene Operator-Symbole. Mehr ...
 
void setConstOpP (SymOperator *soP)
 
void setLastInPisNotToSet (bool is)
 
void setLastInP (Symbol *sP)
 Speichert den Zeiger auf das zuletzt eingegebene Symbol. Mehr ...
 
void setIsToInit (bool in)
 
void pushNewStacks ()
 Wirft neue Stacks auf die Stack-Listen. Mehr ...
 
void popStacks ()
 Holt die letzten Stacks von den Stack-Listen. Mehr ...
 
void pushNum (const Number &n)
 
void pushSym (SymOperator *sP)
 
Number getTopButOneNum ()
 
void setTopButOneNum (const Number &n)
 
bool isNumEmpty ()
 
bool isSymEmpty ()
 
Number popNum ()
 
Number topNum ()
 
SymOperatorpopSym ()
 
SymOperatortopSym ()
 
void incBraLev ()
 
void decBraLev ()
 
void printSymHelp ()
 Gibt alle Symbole der Symboltabelle auf die Konsole aus.
 
string getAllSyms ()
 Gibt saemtliche Symbole und Infos im String zurueck.
 
bool isSym (const string &sym)
 Prueft, ob Symbol sym in der Symboltabelle ist, und gibt true oder false zurueck. Mehr ...
 
Error compute ()
 Berechnet den letzten Operator auf dem Symbol-Stack. Mehr ...
 
Error swapNum ()
 
string extractParam (string &in)
 Extrahiert einen moeglicherweise vorhandenen Parameter des Symbols. Mehr ...
 
string makeCompBaseInfoStr ()
 Erzeugt fuers Debugging String mit den wichtigen Member-Variablen. Mehr ...
 
virtual void aftProcess2 (string &in)
 
virtual SymOperatorcheckConstMode (SymOperator *opP)
 Untersucht, ob in den Konstanten-Modus gewechselt werden oder dieser abgeschaltet werden muss. Mehr ...
 
virtual void handleDisplayAfterBra ()
 Erzeugt passende Anzeige nach Eingabe von "(". Mehr ...
 
virtual void popNumDepOnLastSym ()
 

Geschützte Methoden

bool mapSci (string &sym)
 Prueft verschiedene Shift-Ebenen und versucht, das Symbol sym entsprechend anzuupassen. Mehr ...
 
bool mapInvSci (string &sym)
 Ordnet einem Symbol dasjenige Symbol zu, das ihm im Invers-Modus entspricht. Mehr ...
 
bool mapHypSci (string &sym)
 Ordnet einem Symbol dasjenige Symbol zu, das ihm im Hyperbolicus-Modus entspricht (sin -> sinh, cos -> cosh etc.). Mehr ...
 
bool mapFixSciInputSci (string &sym)
 Macht aus einer Ziffer ein "fix"- oder "sci"-Symbol, wenn zuvor "fix" oder "sci" eingegeben wurde. Mehr ...
 
- Geschützte Methoden geerbt von ComputerBase
bool popNumDepOnLastSymBase ()
 Holt die vorherige Eingabe vom Zahlenstack, wenn es kein Operator war. Mehr ...
 
virtual void handleEmptyNumStack (Number &a, SymOperator *soP, Number &b)
 Erfindet einen zweiten Operanden, falls ein Operator mit nur einem berechnet werden soll. Mehr ...
 

Geschützte Attribute

bool mIsInv
 Invers-Modus.
 
bool mIsHyp
 Hyperbolicus.
 
bool mIsFixInput
 fix wurde gedrueckt, jetzt wird auf Ziffer gewartet
 
bool mIsSciInput
 sci wurde gedrueckt, jetzt wird auf Ziffer gewartet
 
AngMode mAngMode
 Modus RAD, DEG, GRA.
 
- Geschützte Attribute geerbt von ComputerBase
DisplayBasemDsplP
 Zeiger auf zugehoeriges Display.
 
SymTabT mSymTab
 Symboltabelle.
 
NumStackList mNumStackList
 Zahlen-Stack-Liste zum Rechnen.
 
SymStackList mSymStackList
 Symbol-Stack-Liste zum Rechnen.
 
NumStack mNumStack
 Default-Zahlen-Stack: ist immer leer.
 
SymStack mSymStack
 Default-Symbol-Stack: ist immer leer.
 
SymbolmLastInP
 das zuletzt eingegebene Symbol
 
SymbolmLastButOneInP
 das vorletzte eingegebene Symbol
 
SymOperatormLastOpP
 der zuletzt eingegebene Operator
 
SymOperatormLastButOneOpP
 der vorletzte eingegebene Operator
 
Number mMemory
 Speicherregister.
 
int mBraLev
 Klammerebene.
 
Number mPrcWhole
 bei Prozentrechnung: das "Ganze"
 
SymOperatormConstOpP
 bei Konstantenrechnung: der Operator
 
Number mConstVal
 bei Konstantenrechnung: der konstante Wert
 
int mParam
 bei manchen Operatoren uebergebener Parameter
 
bool mLastInPisNotToSet
 damit kann Setzen von mLastInP verhindert werden
 
bool mIsToInit
 wird von AcAc::process() auf true gesetzt und nur vom fx-3600P ausgewertet
 

Private Methoden

void addSciSymsToSymTab ()
 Funktion fuegt der Symboltabelle die zusaetzlichen Symbole fuer wissenschaftliche Taschenrechner hinzu. Mehr ...
 

Freundbeziehungen

ostream & operator<< (ostream &os, ComputerSci &c)
 

Ausführliche Beschreibung

Bruchdarstellung: Fliesskomma, Bruch, gemischter Bruch.

Die Klasse bildet die Grundlage fuer alle wissenschaftlichen Rechner. Sie unterscheidet sich von ComputerBase (s. auch dort) im wesentlichen nur durch Klassenvariablen fuer neue Modi ("invers", "hyperbolisch" etc.). Sie dient als Basisklasse fuer die eigentlichen Computer.

Beschreibung der Konstruktoren und Destruktoren

◆ ComputerSci()

ComputerSci::ComputerSci ( )

Der Konstruktor fuegt der Symboltabelle die zusaetzlichen Symbole fuer wissenschaftliche Taschenrechner hinzu.

Dokumentation der Elementfunktionen

◆ addSciSymsToSymTab()

void ComputerSci::addSciSymsToSymTab ( )
private

Funktion fuegt der Symboltabelle die zusaetzlichen Symbole fuer wissenschaftliche Taschenrechner hinzu.

◆ handlePercent()

virtual void ComputerSci::handlePercent ( )
inlinevirtual

Prozentrechnung des Solar-Rechners:

  • 1: a* b%: a*b/100
  • 2: a/ b%: a*100/b
  • 3: a+ b%: a+a*b/100
  • 4: a- b%: a-a*b/100
  • 5: a% : a
  • 6: a*% : a*a/100 : wie oben mit b = a
  • 7: a/% : 100/a
  • 8: a+% : 0
  • 9: a-% : 0

Erneute Implementation von ComputerBase.

Erneute Implementation in ComputerCasioSci und ComputerTiSci.

◆ makeCompSciInfoStr()

string ComputerSci::makeCompSciInfoStr ( )

Erzeugt String mit den wichtigen Member-Variablen.

Rückgabewerte
Stringmit den wichtigen Member-Variablen

◆ mapFixSciInputSci()

bool ComputerSci::mapFixSciInputSci ( string &  sym)
protected

Macht aus einer Ziffer ein "fix"- oder "sci"-Symbol, wenn zuvor "fix" oder "sci" eingegeben wurde.

"fix" oder "sci" wurden zuvor ohne Parameter eingegeben. Die naechste Ziffer muss nun als Parameter interpretiert werden.

Rückgabewerte
symEingabesymbol und das gemappte Symbol
Rückgabe
true, wenn das Symbol veraendert worden ist

◆ mapHypSci()

bool ComputerSci::mapHypSci ( string &  sym)
protected

Ordnet einem Symbol dasjenige Symbol zu, das ihm im Hyperbolicus-Modus entspricht (sin -> sinh, cos -> cosh etc.).

Rückgabewerte
symEingabesymbol und das gemappte Symbol
Rückgabe
true, wenn das Symbol veraendert worden ist

◆ mapInvSci()

bool ComputerSci::mapInvSci ( string &  sym)
protected

Ordnet einem Symbol dasjenige Symbol zu, das ihm im Invers-Modus entspricht.

Rückgabewerte
symEingabesymbol und das gemappte Symbol
Rückgabe
true, wenn das Symbol veraendert worden ist

◆ mapSci()

bool ComputerSci::mapSci ( string &  sym)
protected

Prueft verschiedene Shift-Ebenen und versucht, das Symbol sym entsprechend anzuupassen.

Rückgabewerte
symEingabesymbol und das gemappte Symbol
Rückgabe
true, wenn das Symbol veraendert worden ist

◆ preProcess()

bool ComputerSci::preProcess ( string &  in)
virtual

Funktion erlaubt es, ein Symbol vor der eigentlichen Verarbeitung zu veraendern.

Insbesondere wird ein Mapping durchgefuehrt, wenn ein Modus (Invers, Hyperbolicus, ...) aktiv ist. Z.B. wird im Invers-Modus das Symbol "sin" zu "asin".

Rückgabewerte
inEingabesymbol und das gemappte Symbol
Rückgabe
true, wenn das Symbol vollstaendig prozessiert worden ist

Erneute Implementation von ComputerBase.

Erneute Implementation in ComputerFx3600p und ComputerFx85v.


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