From c038f8f4bdbd3d1fdfa328d2eac0efdcaeb9cb09 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 28 May 2022 19:09:42 +0300 Subject: Autocommit at 28.05.2022 @ 19:09 --- src/Models/CellFormula.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'src/Models/CellFormula.cpp') 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) { -- cgit v1.3.1-23-gd82d