Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models / CellFormula.cpp
diff options
context:
space:
mode:
Commitc038f8f4bdbd3d1fdfa328d2eac0efdcaeb9cb09 (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-05-28 19:09:42 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-05-28 19:09:42 +0300
Files7d17c621731668dd3ccfe3b79f2848daea4b0c13 /src/Models/CellFormula.cpp
FMI-OOP-P2_Tables-c038f8f4bdbd3d1fdfa328d2eac0efdcaeb9cb09.tar
FMI-OOP-P2_Tables-c038f8f4bdbd3d1fdfa328d2eac0efdcaeb9cb09.tar.gz
FMI-OOP-P2_Tables-c038f8f4bdbd3d1fdfa328d2eac0efdcaeb9cb09.zip
Parent64d959af1090f5d7101c3c78153106871db7e902 (diff)
Autocommit at 28.05.2022 @ 19:09
1 files changed, 15 insertions, 9 deletions
-rw-r--r--src/Models/CellFormula.cpp24
diff --git a/src/Models/CellFormula.cpp b/src/Models/CellFormula.cpp
index 09883c2..3029a19 100644
--- a/src/Models/CellFormula.cpp
+++ b/src/Models/CellFormula.cpp
@@ -11,18 +11,22 @@ double CellFormula::calculate(unsigned index) {
if (formula[index].right & branch) {
switch (formula[index++].right & !branch) {
- case plus: lval += formula[index].left->getNumeralValue(); break;
+ case plus : lval += formula[index].left->getNumeralValue(); break;
+ case minus : lval -= formula[index].left->getNumeralValue(); break;
+ case mult : lval *= formula[index].left->getNumeralValue(); break;
+ case div : lval /= formula[index].left->getNumeralValue(); break;
+ // case pow : lval += formula[index].left->getNumeralValue(); break;
}
}
switch(formula[index].right) {
- case plus: return lval + calculate(index++);
- case minus: return lval - calculate(index++);
- case mult: return lval * calculate(index++);
- case div: return lval / calculate(index++);
- case pow:
- case none:
- default: return lval;
+ case plus : return lval + calculate(index++);
+ case minus : return lval - calculate(index++);
+ case mult : return lval * calculate(index++);
+ case div : return lval / calculate(index++);
+ case pow :
+ case none :
+ default : return lval;
}
}
@@ -31,7 +35,9 @@ String CellFormula::getValueForPrint() {
}
void CellFormula::parseAndSetValue(const char* str) {
-
+ str++;
+ while (*str == ' ') str++;
+ double number = atof(str);
}
void CellFormula::readFromFile(std::ifstream& file) {