Almetare  1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
calc_fx85v.h
gehe zur Dokumentation dieser Datei
1 //******************************************************************************
2 // Copyright (c) 2002-2004 by Friedemann Seebass, Germany.
3 // Dieses Programm ist freie Software. Siehe GNU GPL Notiz in Datei main.cpp.
4 // This program is free software. See the GNU GPL notice in file main.cpp.
5 // Projekt: Almetare - Alle meine Taschenrechner
6 //******************************************************************************
11 //******************************************************************************
12 // Wann Wer Was
13 // ---------- -------- ---------------------------------------------------------
14 // 16.03.2003 fse Konstruktor CalculatorFx85v mit Argument argc
15 // 01.03.2003 fse Konstruktor CalculatorFx85v mit Argument **argv
16 // 05.05.2002 fse erzeugt
17 //******************************************************************************
18 
19 #ifndef CALC_FX85V_H
20 #define CALC_FX85V_H
21 
22 #ifndef __cplusplus
23 #error calc_fx85v.h is only for C++!
24 #endif
25 
26 //******************************************************************************
27 
28 #include "calc_casio_sci.h"
29 
30 using namespace std;
31 
32 //******************************************************************************
33 
34 class DisplayFx85v;
35 
36 //******************************************************************************
37 // Klasse ComputerFx85v:
38 //******************************************************************************
39 
41 
43 {
46 
47  void addCasioFx85SymsToSymTab();
48  bool preProcess(string& in);
49 public:
50  ComputerFx85v();
51 // ~ComputerFx85v();
52  bool map(string& sym);
53  bool getIsForcedSciTypeB() { return mIsForceSciTypeB; }
54  void setIsForcedSciTypeB(bool isOn) { mIsForceSciTypeB = isOn; }
55 };
56 
57 //******************************************************************************
58 // Klasse DisplayFx85v:
59 //******************************************************************************
60 
62 
64 {
66 
67  void makeSeven(string displayStr = "");
68 // int getNumStrLen(string numStr) const;
69  void setInv (bool on) { mInv = on ? "s" : "."; } // Casio fx-85v: "s"
70 // string formatSciNumStr(string& numStr);
71 protected:
72 public:
74  void setModes();
75 };
76 
77 //******************************************************************************
78 // Klasse CalculatorFx85v:
79 //******************************************************************************
80 
82 // fse, 01.03.03: Konstruktor mit Argument **argv
83 
85 {
86  const char mSep;
87  string nvRamToStr();
88  void restoreNvRam();
89 public:
90  CalculatorFx85v(int argc, char** argv);
91  ~CalculatorFx85v();
92 };
93 
94 //******************************************************************************
95 // zusaetzliche Symbole im Casio fx-85v:
96 //************************* ************************* **************************
97 
99 
100 class AcForceSci : public SymAction
101 {
102 public:
103  AcForceSci() : SymAction("force", "switch between forced SCI at x<0.01 or x<1e-7") {}
104  void process();
105 };
106 
107 //************************* ************************* **************************
108 
110 
111 class OpNpr : public SymOperator
112 {
113 public:
114  OpNpr() : SymOperator("npr", 6, "permutation nPr with repetition") {}
115  Number calcVal(const Number& a, const Number& b)
116  { return Number(Util::fact(a.getVal()) / Util::fact((a-b).getVal())); }
117  void process() { processCommon(); }
118 };
119 
120 //************************* ************************* **************************
121 
123 
124 class OpNcr : public SymOperator
125 {
126 public:
127  OpNcr() : SymOperator("ncr", 6, "combination nCr without repetition") {}
128  Number calcVal(const Number& a, const Number& b)
129  { return Number(Util::fact(a.getVal()) / Util::fact(b.getVal()) / Util::fact((a-b).getVal())); }
130  void process() { processCommon(); }
131 };
132 
133 //****************** ******************* ******************* *******************
134 
136 
137 class FnCbrt : public SymOtherFunction
138 {
139 public:
140  FnCbrt() : SymOtherFunction("cbrt", "cubic root") {}
141  Number calcVal(const Number& a) { return Number(Util::root(a.getVal(), 3.0)); }
142 
143 };
144 
145 //******************************************************************************
146 //************************************** ***************************************
147 //************************* ************************* **************************
148 
149 #endif // !CALC_FX85V_H
Die Klasse implementiert den Computer des Casio fx-85v.
Definition: calc_fx85v.h:42
Kubikwurzel.
Definition: calc_fx85v.h:137
Die Klasse implementiert den Calculator des Casio fx-85v.
Definition: calc_fx85v.h:84
Gemeinsame Basisklasse aller wissenschaftlichen Casio-Rechner.
Definition: calc_casio_sci.h:43
bool mIsForceSciTypeB
true, wenn SCI erst bei Zahlen kleiner 1e-7
Definition: calc_fx85v.h:45
Basisklasse der Nicht-Winkelfunktionen.
Definition: symbols.h:252
DisplayFx85v * mDisplayFx85vP
Zeiger auf das Display des Rechners.
Definition: calc_fx85v.h:44
static double root(double x, double y)
Berechnet x^(1/y).
Definition: util.cpp:1008
Die Klasse Number repraesentiert Zahlen.
Definition: number.h:48
Basisklasse fuer die Operatoren.
Definition: symbols.h:103
static double fact(double n)
Berechnet rekursiv die Fakultaet n! der Zahl n.
Definition: util.cpp:986
Basisklasse fuer alle Aktionen ("=", "%", ...).
Definition: symbols.h:277
Basisklasse aller Taschenrechner.
Definition: calculator.h:244
Gemeinsame Klassen fuer wissenschaftliche Casio-Rechner (Modul special).
Klasse der Anzeige aller wissenschaftlichen Casio-Rechner.
Definition: calc_casio_sci.h:102
Permutation ohne Wiederholung.
Definition: calc_fx85v.h:124
Permutation mit Wiederholung.
Definition: calc_fx85v.h:111
Basisklasse aller Computer.
Definition: calculator.h:84
ComputerFx85v * mCompP
Zeiger auf den Computer des Rechners.
Definition: calc_fx85v.h:65
Die Klasse implementiert die Anzeige des Casio fx-85v.
Definition: calc_fx85v.h:63
Erzwingt gegebenenfalls SCI-Anzeige schon bei Werten kleiner 0,01 statt 1e-7.
Definition: calc_fx85v.h:100
const char mSep
Separator fuer nvRam-String in der Konf.datei.
Definition: calc_fx85v.h:86