Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models / CellFormula.cpp
diff options
context:
space:
mode:
Commit272f317bb0817ec46ecfae9696457ec84b8ec55c (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-05-30 17:57:35 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-05-30 17:57:35 +0300
Filesf43dad6728fe83c8c60ffb97200ad445b4eeb3bd /src/Models/CellFormula.cpp
FMI-OOP-P2_Tables-272f317bb0817ec46ecfae9696457ec84b8ec55c.tar
FMI-OOP-P2_Tables-272f317bb0817ec46ecfae9696457ec84b8ec55c.tar.gz
FMI-OOP-P2_Tables-272f317bb0817ec46ecfae9696457ec84b8ec55c.zip
Parent3f16ffd43bbff7684c1a572c688bbd6990daf616 (diff)
Autocommit at 30.05.2022 @ 17:57
1 files changed, 8 insertions, 3 deletions
-rw-r--r--src/Models/CellFormula.cpp11
diff --git a/src/Models/CellFormula.cpp b/src/Models/CellFormula.cpp
index 4990ee4..915c38d 100644
--- a/src/Models/CellFormula.cpp
+++ b/src/Models/CellFormula.cpp
@@ -3,6 +3,11 @@
#include <cstring>
#include <iostream>
#include <stdexcept>
+
+const Cell* CellFormula::ptrByInd(int firstInd, int secondInd) const {
+ return (firstInd < 0) ? &localCells[secondInd] : (*tableCells)[firstInd][secondInd];
+}
+
double pow(double x, unsigned y) {
if (y == 0) return 1;
@@ -13,7 +18,7 @@ double pow(double x, unsigned y) {
}
double CellFormula::calculate(unsigned index) {
- CellLoc& c = formula[index].left;
+ Cell* currCell = ptrByInd(formula[index].left);
double lval = (c.firstInd == -1) ? localCells[c.secondInd].getNumeralValue() : (*tableCells)[c.firstInd][c.secondInd]->getNumeralValue();
while (formula[index].right < 0) {
@@ -47,7 +52,7 @@ CellFormula::CellFormula(const char* str, const List<List<Cell*>>* tableCells) :
#include <iostream>
-double CellFormula::getNumeralValue() {
+double CellFormula::getNumeralValue() const {
try {
return calculate();
}
@@ -56,7 +61,7 @@ double CellFormula::getNumeralValue() {
}
}
-String CellFormula::getValueForPrint() {
+String CellFormula::getValueForPrint() const {
try {
return String() += calculate();
}