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

Gemeinsame Basisklasse aller wissenschaftlichen Casio-Rechner. Mehr ...

#include <calc_casio_sci.h>

Klassendiagramm für ComputerCasioSci:
ComputerSci ComputerBase ComputerFx3600p ComputerFx85v

Öffentliche Methoden

 ComputerCasioSci ()
 Konstruktor fuegt die neuen Symbole zur Symboltabelle hinzu.
 
bool getIsMode () const
 
bool getIsKinInput () const
 
bool getIsKoutInput () const
 
bool getIsXkInput () const
 
Number getKmem (int idx) const
 
CalcMode getCalcMode () const
 
Number getXdata () const
 
string getSdDat () const
 
string getLrDat () const
 
void setKmem (const int idx, const Number &num)
 
void setIsMode (bool isOn=false)
 
void setIsKinInput (bool isOn)
 
void setIsKoutInput (bool isOn)
 
void setIsXkInput (bool isOn)
 
void setCalcMode (CalcMode cm)
 
void setXdata (Number x)
 
void setSdDat (const string &dat)
 
void setLrDat (const string &dat)
 
Number calcA () const
 Berechnet aus den K-Speichern den y-Achsenabschnitt A bei Regressionsrechnung. Mehr ...
 
Number calcB () const
 Berechnet Regressionskoeffizient B aus den K-Speichern. Mehr ...
 
Number calcR () const
 Berechnet Korrelationskoeffizient r aus den K-Speichern. Mehr ...
 
void handleEmptyNumStack (Number &a, SymOperator *soP, Number &b)
 Erfindet einen zweiten Operanden, falls ein Operator mit nur einem berechnet werden soll. Mehr ...
 
void handleDisplayAfterBra ()
 Siehe Kommentar ComputerBase::handleDisplayAfterBra(). Mehr ...
 
SymOperatorcheckConstMode (SymOperator *opP)
 Untersucht, ob in den Konstanten-Modus gewechselt werden muss oder dieser abgeschaltet werden muss. Mehr ...
 
void handlePercent ()
 Prozessiert das Prozentzeichen. Mehr ...
 
void popNumDepOnLastSym ()
 Siehe gleichartige Funktion in ComputerBase.
 
bool popNumDepOnLastSymCasio ()
 Siehe gleichartige Funktion in ComputerBase.
 
void aftProcess (string &in)
 Fuehrt Aktionen nach Prozessierung des Symbols in aus. Mehr ...
 
string makeCompCasioSciInfoStr ()
 Erzeugt fuers Debugging String mit den wichtigen Member-Variablen. Mehr ...
 
virtual string makeCompInfoStr ()
 
- Öffentliche Methoden geerbt von ComputerSci
 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 bool map (string &sym)
 
- Ö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)
 

Geschützte Methoden

bool mapCasioSci (string &sym)
 Mapped einige Symbole auf andere Symbole um. Mehr ...
 
bool mapKinKoutInputCasioSci (string &sym)
 Fuehrt spezielles Mapping von Ziffern oder "+", "-", "*", "/" aus, falls zuvor "Kin" oder "Kout" eingegeben wurde. Mehr ...
 
- Geschützte Methoden geerbt von ComputerSci
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 ...
 

Geschützte Attribute

DisplayCasioScimDisplayCasioP
 Zeiger auf das zugehoerige Display.
 
bool mIsMode
 Mode-Modus.
 
bool mIsKinInput
 Kin wurde gedrueckt.
 
bool mIsKoutInput
 Kin wurde gedrueckt.
 
bool mIsXkInput
 X<->K wurde gedrueckt.
 
Number mKmem [6]
 Konstantenspeicher K1 bis K6.
 
CalcMode mCalcMode
 Calculation-Modus CMP, SD, LR.
 
Number mXdata
 temporaerer Speicher fuer Regressionsrechnung
 
string mSdDat
 zuletzt im Editor eingegebene SD-Daten
 
string mLrDat
 dito LR-Daten
 
- Geschützte Attribute geerbt von ComputerSci
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 addCasioSymsToSymTab ()
 Fuegt die Symbole der wissenschaftlichen Casio-Rechner der Symboltabelle hinzu. Mehr ...
 
bool mapInvCasioSci (string &sym)
 Ordnet einem Symbol dasjenige Symbol zu, das ihm im Invers-Modus entspricht. Mehr ...
 
bool mapModeCasioSci (string &sym)
 Ordnet einem Symbol dasjenige Symbol zu, das ihm im Mode-Modus entspricht. Mehr ...
 

Freundbeziehungen

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

Ausführliche Beschreibung

Gemeinsame Basisklasse aller wissenschaftlichen Casio-Rechner.

Dokumentation der Elementfunktionen

◆ addCasioSymsToSymTab()

void ComputerCasioSci::addCasioSymsToSymTab ( )
private

Fuegt die Symbole der wissenschaftlichen Casio-Rechner der Symboltabelle hinzu.

◆ aftProcess()

void ComputerCasioSci::aftProcess ( string &  in)
virtual

Fuehrt Aktionen nach Prozessierung des Symbols in aus.

Schaltet die Modes zurueck.

Parameter
inSymbol der aktuellen Taste

Erneute Implementation von ComputerSci.

◆ calcA()

Number ComputerCasioSci::calcA ( ) const

Berechnet aus den K-Speichern den y-Achsenabschnitt A bei Regressionsrechnung.

Rückgabe
y-Achsenabschnitt A

◆ calcB()

Number ComputerCasioSci::calcB ( ) const

Berechnet Regressionskoeffizient B aus den K-Speichern.

Rückgabe
Regressionskoeffizient B

◆ calcR()

Number ComputerCasioSci::calcR ( ) const

Berechnet Korrelationskoeffizient r aus den K-Speichern.

Rückgabe
Korrelationskoeffizient r

◆ checkConstMode()

SymOperator * ComputerCasioSci::checkConstMode ( SymOperator opP)
virtual

Untersucht, ob in den Konstanten-Modus gewechselt werden muss oder dieser abgeschaltet werden muss.

Bedingungen fuers Einschalten:

  • Es muss zwei Mal unmittelbar hintereinander derselbe Operator eingegeben worden sein.
  • Es duerfen keine Klammern eingegeben worden sein.

Bedingung fuers Ausschalten:

  • Irgendein Operator wurde eingegeben.
Parameter
opPZeiger auf den Operator
Rückgabe
falls Konstantenmodus, Zeiger auf den Konstantenoperator, sonst NULL

Erneute Implementation von ComputerBase.

◆ handleDisplayAfterBra()

void ComputerCasioSci::handleDisplayAfterBra ( )
virtual

Siehe Kommentar ComputerBase::handleDisplayAfterBra().

Casio schreibt "0" ins Display nach "(".

Erneute Implementation von ComputerBase.

◆ handleEmptyNumStack()

void ComputerCasioSci::handleEmptyNumStack ( Number a,
SymOperator soP,
Number b 
)
virtual

Erfindet einen zweiten Operanden, falls ein Operator mit nur einem berechnet werden soll.

Casio fx-85v und fx-3600P verhalten sich so: "3+=" => 3, "3-=" => 3, "3*=" => 9, "3/=" => 1.

Parameter
soPZeiger auf Operator
Rückgabewerte
aerster Operand
bzweiter Operand

Erneute Implementation von ComputerBase.

◆ handlePercent()

void ComputerCasioSci::handlePercent ( )
virtual

Prozessiert das Prozentzeichen.

Prozentrechnung des Casio fx-3600P:

1: a* b%: a*b/100
2: a**b%: a*b/100
3: a/ b%: a*100/b
4: a//b%: b*100/a
5: a+ b%: (a+b)*100/b
6: a++b%: (a+b)*100/a
7: a- b%: (a-b)*100/b
8: a--b%: (b-a)*100/a
9: a% : a
10: a*% : a*a/100 : wie oben mit b = a
11: a**% : a*a/100 : wie oben mit b = a
12: a/% : a*100/a = 100 : wie oben mit b = a
13: a//% : a*100/a = 100 : wie oben mit b = a
14: a+% : a :
15: a++% : (a+a)*100/a = 200: wie oben mit b = a
16: a-% : a
17: a--% : (a-a)*100/a = 0 : wie oben mit b = a

Erneute Implementation von ComputerSci.

◆ makeCompCasioSciInfoStr()

string ComputerCasioSci::makeCompCasioSciInfoStr ( )

Erzeugt fuers Debugging String mit den wichtigen Member-Variablen.

Rückgabe
String mit den wichtigen Member-Variablen

◆ mapCasioSci()

bool ComputerCasioSci::mapCasioSci ( string &  sym)
protected

Mapped einige Symbole auf andere Symbole um.

Das ist z.B. noetig, wenn die Invers-Taste gedrueckt wurde (sin wird zu asin).

Rückgabewerte
symzu mappendes Symbol, enthaelt bei der Rueckkehr das neue Symbol.
Rückgabe
true, wenn Mapping stattgefunden hat, sonst false

◆ mapInvCasioSci()

bool ComputerCasioSci::mapInvCasioSci ( string &  sym)
private

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

Rückgabewerte
symzu mappendes Symbol, bei Rueckkehr neues Symbol
Rückgabe
true, wenn Mapping stattgefunden hat, sonst false

◆ mapKinKoutInputCasioSci()

bool ComputerCasioSci::mapKinKoutInputCasioSci ( string &  sym)
protected

Fuehrt spezielles Mapping von Ziffern oder "+", "-", "*", "/" aus, falls zuvor "Kin" oder "Kout" eingegeben wurde.

"Kin", "Kout" oder "X<->K" wurden ohne Parameter eingegeben. Die naechste Ziffer muss nun als Parameter interpretiert werden. Es gibt noch eine Sonderfunktion der Kin-Taste: Mit der Tastenkombination "Kin + 2" wird z.B. der aktuelle Anzeigewert zum Speicher 2 addiert. Der Zusammenbau des endgueltigen Symbols ist also dreistufig. Um das Konzept zu erhalten, dass ein Symbol immer nur einen numerischen Parameter erhalten kann, wird folgende Vereinbarung getroffen: Die Symbole "kin@1", "kin@2", ..., "kin@6" bedeuten: Speichern in entspr. Speicher.
"kin@431": addiere in Speicher 1
"kin@432": addiere in Speicher 2
...
"kin@436": addiere in Speicher 6 (43 ist ASCII-Wert von '+')

"kin@451": subtrahiere in Speicher 1
"kin@452": subtrahiere in Speicher 2
...
"kin@456": subtrahiere in Speicher 6 (45 ist ASCII-Wert von '-')

"kin@421": multipliziere in Speicher 1
"kin@422": multipliziere in Speicher 2
...
"kin@426": multipliziere in Speicher 6 (42 ist ASCII-Wert von '*')

"kin@471": dividiere in Speicher 1
"kin@472": dividiere in Speicher 2
...
"kin@476": dividiere in Speicher 6 (47 ist ASCII-Wert von '/')

Der Parameter wird in der process()-Funktion des Symbols Kin entsprechend ausgewertet.

Rückgabewerte
symZiffer oder "+", "-", "*", "/", bei Rueckkehr neues Symbol
Rückgabe
true, wenn Mapping stattgefunden hat, sonst false

◆ mapModeCasioSci()

bool ComputerCasioSci::mapModeCasioSci ( string &  sym)
private

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

Rückgabewerte
symzu mappendes Symbol, bei Rueckkehr neues Symbol
Rückgabe
true, wenn Mapping stattgefunden hat, sonst false

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