Website Summary Files Commits Branches @commit @diff @stats
path: root / Polymorphism / MathExpression
diff options
context:
space:
mode:
diff --git a/Polymorphism/MathExpression/Expression.hpp b/Polymorphism/MathExpression/Expression.hpp
deleted file mode 100644
index 4f09790..0000000
--- a/Polymorphism/MathExpression/Expression.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#pragma once
-
-#include <iostream>
-
-class Expression
-{
-public:
- virtual void Print() = 0;
- virtual int Evaluate() = 0;
- virtual ~Expression(){}
- int getType(){ return type; }
-protected:
- int type; //Ако обектът е NUM, ще пазим тук 1, а ако обектът е Операция, ще пазим тук 2.
-};
-
-
diff --git a/Polymorphism/MathExpression/Num.hpp b/Polymorphism/MathExpression/Num.hpp
deleted file mode 100644
index 91e1492..0000000
--- a/Polymorphism/MathExpression/Num.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-
-#include "Expression.hpp"
-class Num : public Expression
-{
- int number;
-public:
- Num(int number)
- {
- this->number = number;
- type = 1;
- }
- void Print()
- {
- std::cout << number;
- }
- int Evaluate()
- {
- return number;
- }
- int getNum()
- {
- return number;
- }
-
-}; \ No newline at end of file
diff --git a/Polymorphism/MathExpression/Operation.hpp b/Polymorphism/MathExpression/Operation.hpp
deleted file mode 100644
index ade8404..0000000
--- a/Polymorphism/MathExpression/Operation.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#pragma once
-#include "Expression.hpp"
-class Operation : public Expression
-{
-
-public:
- Expression* left;
- char op;
- Expression* right;
- Operation(Expression* left, char ch, Expression* right)
- {
-
- this->left = left;
- op = ch;
- this->right = right;
- type = 2;
-
- }
- void Print()
- {
- std::cout << '(';
- left->Print();
- std::cout << op;
- right->Print();
- std::cout << ')';
- }
- int Evaluate()
- {
- int result = left->Evaluate();
- int value2 = right->Evaluate();
-
- if (op == '+')
- result += value2;
- else if (op == '*')
- result *= value2;
- else
- return 0; //Invalid operation
- return result;
- }
- ~Operation()
- {
-
- delete left;
- delete right;
- op = '\0';
- }
-
-}; \ No newline at end of file
diff --git a/Polymorphism/MathExpression/README.md b/Polymorphism/MathExpression/README.md
deleted file mode 100644
index 4472fb4..0000000
--- a/Polymorphism/MathExpression/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Hierarchy
-
-
-![enter image description here](https://i.ibb.co/ZHnWnKG/1-hierarchy.jpg "Hierarchy")
-
-# How does an object looks like
-
-![enter image description here](https://i.ibb.co/KFfsf7S/2-Example-Expr.jpg "Example")
diff --git a/Polymorphism/MathExpression/main.hpp b/Polymorphism/MathExpression/main.hpp
deleted file mode 100644
index 5fa3f8f..0000000
--- a/Polymorphism/MathExpression/main.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "Expression.hpp"
-#include "Num.hpp"
-#include "Operation.hpp"
-bool AreTheSame(Expression* left, Expression* right);
-int main()
-{
- Expression* l = new Num(3);
- Expression* r = new Num(7);
- Expression* final1 = new Operation(l, '+', r);
-
- Expression* l2 = new Num(3);
- Expression* r2 = new Num(7);
- Expression* final2 = new Operation(l2, '+', r2);
-
- std::cout << final1->Evaluate();
-
- std::cout << AreTheSame(final1, final2);
-
- delete final1, final2; //Винаги трием най-големите 'Expression-и'. Те се грижат за по-малките от които са образувани.
-
-
-
-}
-bool AreTheSame(Expression* left, Expression* right)
-{
- if (left->getType() != right->getType())//гледаме дали не са от раличен тип (едното да е опрация,другото да е число)
- return false; //очевидно са различни тогава
-
- if (left->getType() == 1) //ако двете са числа
- {
- Num* l = (Num*)left; //Конвертираме пойнтерите
- Num* r = (Num*)right;
- return l->getNum() == r->getNum(); //сравняваме стойностите
- }
- else //Ако двете са операции
- {
- Operation* l = (Operation*)left;
- Operation* r = (Operation*)right;
- return (l->op == l->op) && AreTheSame(l->left, r->left) && AreTheSame(l->right, r->right);
- //гледаме дали знаците на опрациите съвпадат, дали левите страни съвпадат и дали десните страни съвпадат.
- }
-
-}