From 4ac9086d253b5f0615de01d2ece9bebe02ceca8a Mon Sep 17 00:00:00 2001 From: Lo-Lap Date: Sun, 1 Oct 2023 23:58:47 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=A1=D1=82=D1=80=D0=BE=D1=87=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D0=BA=D0=B0=D0=BB=D1=8C=D0=BA=D1=83=D0=BB=D1=8F=D1=82?= =?UTF-8?q?=D0=BE=D1=80=20=D1=81=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=BC=D0=B8=20=D1=84=D1=83?= =?UTF-8?q?=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=D0=BC=D0=B8:=20+,-,*,/,().=20?= =?UTF-8?q?=D0=A2=D0=B0=D0=BA=D0=B6=D0=B5=20=D1=81=D0=B4=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BE=D1=82=D1=80=D0=B8=D1=86=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20=D1=87=D0=B8=D1=81=D0=B5=D0=BB?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D1=8F?= =?UTF-8?q?=D0=B2=D0=BD=D0=BE.=20=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=20?= =?UTF-8?q?=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D1=81=20=D0=BA=D0=B0=D0=BB=D1=8C=D0=BA=D1=83?= =?UTF-8?q?=D0=BB=D1=8F=D1=82=D0=BE=D1=80=20=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=B3=D0=BE=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D1=84=D0=B0=D0=B9=D0=BB=20cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Calculator/Calculator.sln | 31 +++++ Calculator/Calculator/Calculator.cpp | 13 +++ Calculator/Calculator/Calculator.vcxproj | 139 ++++++++++++++++++++++ Calculator/Calculator/calcul.cpp | 141 +++++++++++++++++++++++ Calculator/Calculator/calcul.h | 30 +++++ 5 files changed, 354 insertions(+) create mode 100644 Calculator/Calculator.sln create mode 100644 Calculator/Calculator/Calculator.cpp create mode 100644 Calculator/Calculator/Calculator.vcxproj create mode 100644 Calculator/Calculator/calcul.cpp create mode 100644 Calculator/Calculator/calcul.h diff --git a/Calculator/Calculator.sln b/Calculator/Calculator.sln new file mode 100644 index 0000000..4cf099c --- /dev/null +++ b/Calculator/Calculator.sln @@ -0,0 +1,31 @@ +п»ї +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32819.101 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Calculator", "Calculator\Calculator.vcxproj", "{EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Debug|x64.ActiveCfg = Debug|x64 + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Debug|x64.Build.0 = Debug|x64 + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Debug|x86.ActiveCfg = Debug|Win32 + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Debug|x86.Build.0 = Debug|Win32 + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Release|x64.ActiveCfg = Release|x64 + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Release|x64.Build.0 = Release|x64 + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Release|x86.ActiveCfg = Release|Win32 + {EB43910F-C3D2-44CF-A1FF-855A2AA6EE51}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BE3AC232-DA28-4578-827B-9660B65419AC} + EndGlobalSection +EndGlobal diff --git a/Calculator/Calculator/Calculator.cpp b/Calculator/Calculator/Calculator.cpp new file mode 100644 index 0000000..ef706ee --- /dev/null +++ b/Calculator/Calculator/Calculator.cpp @@ -0,0 +1,13 @@ + +#include +#include +#include "calcul.h" +using namespace std; + +int main() +{ + calcul cal; + + cal.maths(); + +} diff --git a/Calculator/Calculator/Calculator.vcxproj b/Calculator/Calculator/Calculator.vcxproj new file mode 100644 index 0000000..3da545f --- /dev/null +++ b/Calculator/Calculator/Calculator.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {eb43910f-c3d2-44cf-a1ff-855a2aa6ee51} + Calculator + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + \ No newline at end of file diff --git a/Calculator/Calculator/calcul.cpp b/Calculator/Calculator/calcul.cpp new file mode 100644 index 0000000..1d80a59 --- /dev/null +++ b/Calculator/Calculator/calcul.cpp @@ -0,0 +1,141 @@ +#include "calcul.h" + +int priority(char c) +{ + if ((c == '+') || (c == '-')) return 1; + if ((c == '*') || (c == '/')) return 2; + else return 0;//если встретили0 открывающуюся скобку +} + +bool calcul::check_neg(char c)//обработка отрицательных чисел, если оно первое число в выражении или идёт после открывающей скобочки +{ + if (c == '-') + { + if (number.size() == 0) + return true; + else if ((operation.top() == '(') && (operation.size() > number.size()))//когда - сразу после скобок, то количесвто операций превышает количество считанных чисел + { + return true; + } + else return false; + } + else return false; +} + +calcul::calcul() +{ + char c; + while (c=cin.peek()) + { + if (c == '\n') break; + if (c == ' ') cin.ignore(); + if (((c >='0') && (c <= '9')) || check_neg(c))//словили цифру от 0 до 9 + + { + double value; + cin >> value;//извлекаем число из потока + number.push(value); + continue; + } + if ((c == '+') || (c == '-') || (c == '/') || (c == '*') || (c=='(')) + { + if ((operation.size() == 0)||(c=='('))//открывающую скобку в любом случае либо в начало стека, либо кладём в стек поверх других операций + { + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + } + else if (priority(c) <= priority(operation.top())) + //если у рассматриваемой операции приоритет меньше или равен уже лежащей на стеке операции, то сначала посчитаем операцию, которая есть на стеке, а потом добавим новую + { + oper(); + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + } + else//стек с операциями не пуст и приоритет рассматриваемой операции не меньше, чем уже положенная на стек + { + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + } + continue; + } + if (c == ')') + { + while (operation.top() != '(')//выполняем опрации в скобочках + { + oper(); + } + operation.pop();//удаляем открывающуюся скобку + cin.ignore();//извлекаем просмотренный символ из потока + } + else { + cout << "Expression entered incorrectly" << endl; + break; + } + } +} + + +void calcul::maths()//чтобы обработать все необработанные операции с числами +{ + while (operation.size() != 0) + { + oper(); + } + if (number.size() != 0) cout << "Result=" << number.top() << endl; +} + +void calcul::oper()//обрабатывает только одну операцию с числами +{ + double a, b, c; + a = number.top();//взяли вверхнее число из стека + number.pop();//удалили взятое число из стека + b=number.top();//взяли вверхнее число из стека + number.pop();//удалили взятое число из стека + //берём операцию из стека с операциями + switch (operation.top()) + { + case '+': sum(a, b); break; + case '-': substraction(b, a); break;//меняем порядок. так как порядок в стеке отличается от изначального порядка в консоли + case '*': multiplication(a, b); break; + case '/': division(b, a); break;//меняем порядок. так как порядок в стеке отличается от изначального порядка в консоли + } + if (operation.size()!=0) operation.pop();//удаляем операцию из стека при условии, что он не пуст, после попытки деления на 0 +} +void calcul::sum(double a, double b) +{ + double c = a + b; + number.push(c);//кладём результат в стек с числами +} +void calcul::substraction(double a, double b) +{ + double c = a - b; + number.push(c);//кладём результат в стек с числами +} + + +template //шаблон, так как у нас два стека разных типов +void clearStack(stack & s) +{ + while (s.size() != 0) { + s.pop(); + } + return; +} + +void calcul::division(double a, double b) +{ + if (b == 0) + { + cout<<"Error. You can't divide by zero"; + //Чтобы дальше не обрабатывать операции, очищаем стеки чисел и операций + clearStack(operation); + clearStack(number); + return; + } + double c = a / b; + number.push(c);//кладём результат в стек с числами +} +void calcul::multiplication(double a, double b) +{ + double c = a * b; + number.push(c);//кладём результат в стек с числами +} \ No newline at end of file diff --git a/Calculator/Calculator/calcul.h b/Calculator/Calculator/calcul.h new file mode 100644 index 0000000..761f7f8 --- /dev/null +++ b/Calculator/Calculator/calcul.h @@ -0,0 +1,30 @@ +#pragma once +#ifndef calcul_h +#define calcul_h + +#include +#include +#include +#include + +using namespace std; + +class calcul +{ +public: + stack number; + stack operation; + + calcul(); + bool check_neg(char c); + void maths(); + void oper(); + void sum(double a, double b); + void substraction(double a, double b); + void division(double a, double b); + void multiplication(double a, double b); + + + +}; +#endif \ No newline at end of file From 1e3878f3dc4c806db4b57fa713d3d1bffa6625e3 Mon Sep 17 00:00:00 2001 From: Lo-Lap Date: Tue, 3 Oct 2023 23:01:23 +0300 Subject: [PATCH 2/5] Added expression input in a loop. Added the function of reading from the stream. Fixed a bug with reading a space --- Calculator v0.1/Calculator/Calculator.cpp | 20 +++ Calculator v0.1/Calculator/calcul.cpp | 160 ++++++++++++++++++++++ Calculator v0.1/Calculator/calcul.h | 33 +++++ 3 files changed, 213 insertions(+) create mode 100644 Calculator v0.1/Calculator/Calculator.cpp create mode 100644 Calculator v0.1/Calculator/calcul.cpp create mode 100644 Calculator v0.1/Calculator/calcul.h diff --git a/Calculator v0.1/Calculator/Calculator.cpp b/Calculator v0.1/Calculator/Calculator.cpp new file mode 100644 index 0000000..2383196 --- /dev/null +++ b/Calculator v0.1/Calculator/Calculator.cpp @@ -0,0 +1,20 @@ + +#include +#include +#include "calcul.h" +using namespace std; + +int main() +{ + calcul cal; + char c; + while (c=cin.peek()) + { + if (c == '#') break;//прерываем цикл записи + cal.readthread(); + cal.maths(); + cin.ignore(); + } + + +} diff --git a/Calculator v0.1/Calculator/calcul.cpp b/Calculator v0.1/Calculator/calcul.cpp new file mode 100644 index 0000000..d5a9fdb --- /dev/null +++ b/Calculator v0.1/Calculator/calcul.cpp @@ -0,0 +1,160 @@ +#include "calcul.h" + +int priority(char c)//приоритеты операций +{ + if ((c == '+') || (c == '-')) return 1; + if ((c == '*') || (c == '/')) return 2; + return 0; +} + +void calcul::processing_oper(char c)//обработка полученных опреаций +{ + if ((operation.size() == 0) || (c == '('))//открывающую скобку в любом случае либо в начало стека, либо кладём в стек поверх других операций + { + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + return; + } + + if (priority(c) <= priority(operation.top())) + //если у рассматриваемой операции приоритет меньше или равен уже лежащей на стеке операции, то сначала посчитаем операцию, которая есть на стеке, а потом добавим новую + { + oper(); + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + return; + } + //стек с операциями не пуст и приоритет рассматриваемой операции не меньше, чем уже положенная на стек + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + return; +} + +bool calcul::check_neg(char c)//обработка отрицательных чисел, если оно первое число в выражении или идёт после открывающей скобочки +{ + if (c == '-') + { + if (number.size() == 0) + return true; + if ((operation.top() == '(') && (operation.size() > number.size()))//когда - сразу после скобок, то количесвто операций превышает количество считанных чисел + { + return true; + } + return false;//c='-' но ни одно из условий не выполнено + } + return false; +} + +void calcul::readthread() +{ + char c; + while (c = cin.peek()) + { + if (c == '\n') break; + if (c == ' ') + { + cin.ignore(); + continue; + }; + if (((c >= '0') && (c <= '9')) || check_neg(c))//словили цифру от 0 до 9 + + { + double value; + cin >> value;//извлекаем число из потока + number.push(value); + continue; + } + if ((c == '+') || (c == '-') || (c == '/') || (c == '*') || (c == '(')) + { + processing_oper(c); + continue; + } + if (c == ')') + { + while (operation.top() != '(')//выполняем опрации в скобочках + { + oper(); + } + operation.pop();//удаляем открывающуюся скобку + cin.ignore();//извлекаем просмотренный символ из потока + continue; + } + + cout << "Expression entered incorrectly" << endl; + break; + + } +} + +calcul::calcul() +{ + +} + + +void calcul::maths()//чтобы обработать все необработанные операции с числами +{ + while (operation.size() != 0) + { + oper(); + } + if (number.size() != 0) cout << "Result=" << number.top() << endl; + number.pop();//удаляем последнее число в стеке +} + +void calcul::oper()//обрабатывает только одну операцию с числами +{ + double a, b, c; + a = number.top();//взяли вверхнее число из стека + number.pop();//удалили взятое число из стека + b=number.top();//взяли вверхнее число из стека + number.pop();//удалили взятое число из стека + //берём операцию из стека с операциями + switch (operation.top()) + { + case '+': sum(a, b); break; + case '-': substraction(b, a); break;//меняем порядок. так как порядок в стеке отличается от изначального порядка в консоли + case '*': multiplication(a, b); break; + case '/': division(b, a); break;//меняем порядок. так как порядок в стеке отличается от изначального порядка в консоли + } + if (operation.size()!=0) operation.pop();//удаляем операцию из стека при условии, что он не пуст, после попытки деления на 0 +} + +void calcul::sum(double a, double b) +{ + double c = a + b; + number.push(c);//кладём результат в стек с числами +} +void calcul::substraction(double a, double b) +{ + double c = a - b; + number.push(c);//кладём результат в стек с числами +} + + +template //шаблон, так как у нас два стека разных типов +void clearStack(stack & s) +{ + while (s.size() != 0) { + s.pop(); + } + return; +} + +void calcul::division(double a, double b) +{ + if (b == 0) + { + cout<<"Error. You can't divide by zero"; + //Чтобы дальше не обрабатывать операции, очищаем стеки чисел и операций + clearStack(operation); + clearStack(number); + return; + } + double c = a / b; + number.push(c);//кладём результат в стек с числами +} +void calcul::multiplication(double a, double b) +{ + double c = a * b; + number.push(c);//кладём результат в стек с числами +} \ No newline at end of file diff --git a/Calculator v0.1/Calculator/calcul.h b/Calculator v0.1/Calculator/calcul.h new file mode 100644 index 0000000..bea1bcf --- /dev/null +++ b/Calculator v0.1/Calculator/calcul.h @@ -0,0 +1,33 @@ +#pragma once +#ifndef calcul_h +#define calcul_h + +#include +#include +#include +#include + +using namespace std; + +class calcul +{ +private: + stack number; + stack operation; + +public: + calcul(); + void readthread(); + bool check_neg(char c); + void maths(); + void oper(); + void processing_oper(char c); + void sum(double a, double b); + void substraction(double a, double b); + void division(double a, double b); + void multiplication(double a, double b); + + + +}; +#endif \ No newline at end of file From d22424cb8f5f85a67e624a05bbc84163237e260d Mon Sep 17 00:00:00 2001 From: Lo-Lap Date: Sat, 7 Oct 2023 01:30:28 +0300 Subject: [PATCH 3/5] The project was rebuilt using Cmake. Two non-standard functions have been added. Added a map for prioritizing operations and storing functions (so as not to use switch). --- .../Calculator_main/CMakeLists.txt | 20 ++ .../Calculator_main/Calculator_main.cpp | 30 +++ .../Calculator_main/Calculator_main.h | 8 + Calculator_main/Calculator_main/calcul.cpp | 211 ++++++++++++++++++ Calculator_main/Calculator_main/calcul.h | 41 ++++ Calculator_main/Calculator_main/dll_read.cpp | 34 +++ Calculator_main/Calculator_main/dll_read.h | 22 ++ Calculator_main/plugins/cos.cpp | 9 + Calculator_main/plugins/cos.dll | Bin 0 -> 50176 bytes Calculator_main/plugins/lg.cpp | 11 + Calculator_main/plugins/lg.dll | Bin 0 -> 59904 bytes 11 files changed, 386 insertions(+) create mode 100644 Calculator_main/Calculator_main/CMakeLists.txt create mode 100644 Calculator_main/Calculator_main/Calculator_main.cpp create mode 100644 Calculator_main/Calculator_main/Calculator_main.h create mode 100644 Calculator_main/Calculator_main/calcul.cpp create mode 100644 Calculator_main/Calculator_main/calcul.h create mode 100644 Calculator_main/Calculator_main/dll_read.cpp create mode 100644 Calculator_main/Calculator_main/dll_read.h create mode 100644 Calculator_main/plugins/cos.cpp create mode 100644 Calculator_main/plugins/cos.dll create mode 100644 Calculator_main/plugins/lg.cpp create mode 100644 Calculator_main/plugins/lg.dll diff --git a/Calculator_main/Calculator_main/CMakeLists.txt b/Calculator_main/Calculator_main/CMakeLists.txt new file mode 100644 index 0000000..0b12039 --- /dev/null +++ b/Calculator_main/Calculator_main/CMakeLists.txt @@ -0,0 +1,20 @@ +п»ї# CMakeList.txt : CMake project for Calculator_main, include source and define +# project specific logic here. +# +cmake_minimum_required(VERSION 3.8) + +project( Calculator_main ) + +set(CMAKE_CXX_STANDARD 20) + +add_executable (Calculator_main "Calculator_main.cpp" "Calculator_main.h" "calcul.cpp" "calcul.h" "dll_read.h" "dll_read.cpp") + +set( SOURCE_LIB C:/program_visual_studio/programming/Calculator_main/plugins ) + +set ( CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON ) + +add_library(cos SHARED ${SOURCE_LIB}/cos.cpp ) + +add_library(lg SHARED ${SOURCE_LIB}/lg.cpp) + +target_link_libraries(Calculator_main cos lg) diff --git a/Calculator_main/Calculator_main/Calculator_main.cpp b/Calculator_main/Calculator_main/Calculator_main.cpp new file mode 100644 index 0000000..939b4e2 --- /dev/null +++ b/Calculator_main/Calculator_main/Calculator_main.cpp @@ -0,0 +1,30 @@ +п»ї// Calculator_main.cpp : Defines the entry point for the application. +// + +#include "Calculator_main.h" + +#include +#include "calcul.h" +using namespace std; + +int main() +{ + cout << "This is a calculator" << endl; + cout << "Standart operations: +, -, *, /, ^, ()" << endl; + cout << "Non-standart mathematical operations: cos, ln" << endl; + cout << "To complete the work enter #" << endl << endl; + cout << "Enter the expression: "; + + calcul cal; + char c; + while (c = cin.peek()) + { + if (c == '#') break;//прерываем цикл записи + cal.readthread(); + cal.maths(); + cout << endl << "Enter the expression: "; + cin.ignore(); + } + + +} diff --git a/Calculator_main/Calculator_main/Calculator_main.h b/Calculator_main/Calculator_main/Calculator_main.h new file mode 100644 index 0000000..31a6fb2 --- /dev/null +++ b/Calculator_main/Calculator_main/Calculator_main.h @@ -0,0 +1,8 @@ +п»ї// Calculator_main.h : Include file for standard system include files, +// or project specific include files. + +#pragma once + +#include + +// TODO: Reference additional headers your program requires here. diff --git a/Calculator_main/Calculator_main/calcul.cpp b/Calculator_main/Calculator_main/calcul.cpp new file mode 100644 index 0000000..439d0e1 --- /dev/null +++ b/Calculator_main/Calculator_main/calcul.cpp @@ -0,0 +1,211 @@ +#include "calcul.h" + +template //шаблон, так как у нас два стека разных типов +void calcul::clearStack(stack & s) +{ + while (s.size() != 0) { + s.pop(); + } + return; +} + +calcul::calcul() +{ + oper_priority = { + {"+",1}, + {"-",1}, + {"*",2}, + {"/",2}, + {"^",3} + }; + function.insert( + { "+", + [&](double a,double b) {double c = a + b; number.push(c); }//кладём результат в стек с числами + } + ); + function.insert( + { "-", + [&](double a,double b) + {double c = b - a;//меняем порядок. так как порядок в стеке отличается от изначального порядка в консоли + number.push(c); + }//кладём результат в стек с числами + } + ); + function.insert( + { "*", + [&](double a,double b) {double c = a * b; number.push(c); }//кладём результат в стек с числами + } + ); + function.insert( + { "/", + [&](double a,double b) {if (a == 0) + { + cout << "Error. You can't divide by zero" << endl; + //Чтобы дальше не обрабатывать операции, очищаем стеки чисел и операций + clearStack(operation); + clearStack(number); + return; + } + double c = b / a;//меняем порядок. так как порядок в стеке отличается от изначального порядка в консоли + number.push(c);//кладём результат в стек с числами + } + } + ); + function.insert( + { + "^", + [&](double a,double b) {double c = pow(b,a);//меняем порядок. так как порядок в стеке отличается от изначального порядка в консоли + number.push(c); } + }); +} + +void calcul::readthread() +{ + char c; + while (c = cin.peek()) + { + std::string s; + std::stringstream ss; + ss << c; + ss >> s; + if (c == '\n') break; + if (c == ' ') + { + cin.ignore(); + continue; + }; + if (((c >= '0') && (c <= '9')) || check_neg(s))//словили цифру от 0 до 9 + + { + double value; + cin >> value;//извлекаем число из потока + number.push(value); + continue; + } + if ((c == '+') || (c == '-') || (c == '/') || (c == '*') || (c == '(') || (c == '^')) + { + processing_oper(s); + continue; + } + if ((c == 'c') || (c == 'l')) + { + string nstand; + while (c != '(') { + nstand.push_back(c); + cin.ignore(); + c = cin.peek(); + } + + operation.push(nstand); + + continue; + } + if (c == ')') + { + while (operation.top() != "(")//выполняем опрации в скобочках + { + oper(); + } + operation.pop();//удаляем открывающуюся скобку + cin.ignore();//извлекаем просмотренный символ из потока + if (operation.size()!=0) nonstandart();//если после '(' сразу идёт нестандартная функция, сразу её считаем, чтобы не возникало проблем при подсчёте сложных выражений + continue; + } + } +} + +void calcul::processing_oper(string c)//обработка полученных опреаций +{ + if ((operation.size() == 0) || (c == "("))//открывающую скобку в любом случае либо в начало стека, либо кладём в стек поверх других операций + { + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + return; + } + + if (oper_priority[c] <= oper_priority[operation.top()]) + //если у рассматриваемой операции приоритет меньше или равен уже лежащей на стеке операции, то сначала посчитаем операцию, которая есть на стеке, а потом добавим новую + { + oper(); + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + return; + } + //стек с операциями не пуст и приоритет рассматриваемой операции не меньше, чем уже положенная на стек + operation.push(c); + cin.ignore();//извлекаем просмотренный символ из потока + return; +} + +bool calcul::check_neg(string c)//обработка отрицательных чисел, если оно первое число в выражении или идёт после открывающей скобочки +{ + if (c == "-") + { + if (number.size() == 0) + return true; + if (operation.size() != 0) + { + if ((operation.top() == "(") && (operation.size() > number.size()))//когда - сразу после скобок, то количество операций превышает количество считанных чисел + return true; + } + return false;//c='-' но ни одно из условий не выполнено + } + return false; +} + + +void calcul::maths()//чтобы обработать все необработанные операции с числами +{ + while (operation.size() != 0) + { + if (function.find(operation.top()) != function.end()) + { + oper(); + continue; + } + //нет обработки функций из plagins так как их считаем сразу как встретились, + //чтобы можно было правильно вычислять сложные выражения использующие нестандартные функции + cout << "Expression entered incorrectly" << endl; + clearStack(operation); + clearStack(number); + break; + } + if (number.size() != 0) + { + cout << "Result=" << number.top() << endl; + number.pop();//удаляем последнее число в стеке (результат) + } +} + +void calcul::nonstandart() +{ + if (dll.is_plugin(operation.top())) + { + double a = number.top(); + number.pop(); + double result = dll.calculation(operation.top(), a); + number.push(result); + operation.pop(); + } +} + +void calcul::oper()//обрабатывает только одну стандартную операцию с числами +{ + double a, b, c; + a = number.top();//взяли вверхнее число из стека + number.pop();//удалили взятое число из стека + b = number.top();//взяли вверхнее число из стека + number.pop();//удалили взятое число из стека + + //берём операцию из стека с операциями + function[operation.top()](a, b); + if (operation.size() != 0) operation.pop();//удаляем операцию из стека при условии, что он не пуст, после попытки деления на 0 +} + + +calcul::~calcul() +{ + clearStack(operation);//очищаем стек с опреациями + clearStack(number);//очищаем стек с числами + function.clear();//очищаем map с операциями + oper_priority.clear();//очищаем map с приоритетами +} \ No newline at end of file diff --git a/Calculator_main/Calculator_main/calcul.h b/Calculator_main/Calculator_main/calcul.h new file mode 100644 index 0000000..51ad877 --- /dev/null +++ b/Calculator_main/Calculator_main/calcul.h @@ -0,0 +1,41 @@ +#pragma once +#ifndef calcul_h +#define calcul_h + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dll_read.h" + + +using namespace std; + +class calcul +{ +private: + stack number; + stack operation; + map oper_priority;//приоритеты математических операций + map > function;//соотнесение математической операции и то, что она делает + dll_read dll; + +public: + calcul(); + void readthread(); + bool check_neg(string c); + void maths(); + void oper(); + void nonstandart(); + void processing_oper(string c); + template + void clearStack(stack & s); + ~calcul(); + +}; +#endif \ No newline at end of file diff --git a/Calculator_main/Calculator_main/dll_read.cpp b/Calculator_main/Calculator_main/dll_read.cpp new file mode 100644 index 0000000..8d8fe92 --- /dev/null +++ b/Calculator_main/Calculator_main/dll_read.cpp @@ -0,0 +1,34 @@ +#include "dll_read.h" + +dll_read::dll_read() { + WIN32_FIND_DATAA detect; + HANDLE det = FindFirstFileA((p + std::string("*.dll")).c_str(), &detect); + if (det == INVALID_HANDLE_VALUE) { + throw std::exception();//библиотека не существует + return; + } + do { + std::string func_name(detect.cFileName); + HMODULE hm = LoadLibraryA((p + func_name).c_str()); + if (!hm) throw std::exception();//проблема в загрузке библиотеки + + std::string funct = func_name.substr(0, func_name.find(".dll")); + + auto func = (double (*) (double))GetProcAddress(hm, "func"); + + if (func) { + function.insert(std::pair(funct, func)); + continue; + } + throw std::exception(); + } while (FindNextFileA(det, &detect) != NULL); +} + +double dll_read::calculation(std::string s, double num) { + + return(function[s](num)); +} + +bool dll_read::is_plugin(std::string str) { + return(function.find(str) != function.end()); +} \ No newline at end of file diff --git a/Calculator_main/Calculator_main/dll_read.h b/Calculator_main/Calculator_main/dll_read.h new file mode 100644 index 0000000..11d3a26 --- /dev/null +++ b/Calculator_main/Calculator_main/dll_read.h @@ -0,0 +1,22 @@ +#pragma once +#ifndef dll_read_h +#define dll_read_h + +#include +#include +#include +#include +#include + +class dll_read +{ +private: + std::map > function; + std::string p = "C:\\program_visual_studio\\programming\\Calculator_main\\plugins\\"; +public: + dll_read(); + bool is_plugin(std::string s); + double calculation(std::string s,double number); +}; + +#endif \ No newline at end of file diff --git a/Calculator_main/plugins/cos.cpp b/Calculator_main/plugins/cos.cpp new file mode 100644 index 0000000..048f4ae --- /dev/null +++ b/Calculator_main/plugins/cos.cpp @@ -0,0 +1,9 @@ +#include +#define _USE_MATH_DEFINES +#define M_PI 3.14159265358979323846 + +extern "C" __declspec(dllexport) + +double func(double number) { + return std::cos(number*M_PI/180); +} \ No newline at end of file diff --git a/Calculator_main/plugins/cos.dll b/Calculator_main/plugins/cos.dll new file mode 100644 index 0000000000000000000000000000000000000000..a24bc13c5cdf388043c32db88feb5d39ff1ce74c GIT binary patch literal 50176 zcmeHw3t&{m)&Fd=n}k5vfUE{Zz2HWp2(Bd72t;>b!*`<_-G=Z`kz~nk$jWAS-3I}+ zpTQ7Idfk>0{;bp`!yR9)04&quGNao|?E- z=Xh#jZId@F1Ve$PAy>1|;PU$e5n+i(2u1yZ*Du&FnkzI1+@7fg1^H%`_1bmI6Tkgi z(cN08y>9$HFCbrg-SPK4&f$c6{=ngJ93Q`F{5{>Ae*E2k2D}(_&vRI$!nf~M^2hRg zjklqRcn|K0vyw6Qb$RT6t`t04SwEX3jLaH6ku3+NM!^~i0Vy!ns-u|FS&ZdS8XpZZ z0i~owe6m%*ku(*u})Bo3SR9A4eDJSS=E*8yPF-h=WA8 zW9+z~YIzTM(*PgjGd1E_5kcAKQA8v%^*yy+WCh0Rr-t0Fh>Nk$P6c8u!f6OsBBXq* zXnLwb#$L)pK^y_PVvsrYV@1i-ph`#zL|?fg??|NrGven}==O|4Sr5W!gh8WeB|3|x zp>Zi=QR;g?0=4@vLdwTVbfIvl0XVK>24ZUekrW~%t(?x|3xIG9@q_L;zwJZlW~F2P z^>TaZ(|dA0W4-T4M}hb6?iDsdIF-! zl$}GZeH%mH`}t9bPMLzJh6?^R7E!qgQ5dtL_X{hcPmV>TCw@kXUM5^IranXa5qMV6{ zI;rkD%DzCN?IX_BlzoxfeU6&^VmhKvNE`Z6L;+Il`9?&=MAuIwzb4{c)ZhE5ACFL{ zyQr5pkSxEU(jvm0MA5xjh;AXeohKu@50kF<64IK1WN{Mb$<)TTh-B5#h$ay3<6J~b zXc+II>{f8$c94nw<2CTUag5!Zw?J&$Z+YKXXg6EmH(qR5u$r;=jf)L+fbv32SFvrU zrEbS?$`WIS3J@gAkS|Tkx9u-)t@w~u@aPoVHXYzD!&}JeDof*CcC!EkE8SPRN51N_ zL_(Byqp9-Vw<(Q8l5MhS2wJYNp~}P#e0cpC!`5+h*v&;9wdO*x!(q;&+LGNY0%>l$ z+H7W#5(2tNA%U#ObOPCtioQxwsx>=B$zit2UNq8oj))>Bi{$R2X8Q~Tm~o54EXXfG zioWskNuMVY#x3zaqx@YpW!Osc4d0JshXy6YR9Qu+WwOGoJs!<1jrWcPN4Xz8U4!-^ z!$e(MMgK3+N+f?9COMOzKv|dJWuT~S+43nD3bnKP7RtwKOecH?^2G{r zuLkKFtX1vtNLHUkUXD_9h1Z${vKOx8Wbu_CyA)(yhLvals|X_zR5i@um5>J$eQCV! za`^+aM5-kxEPCGEJ<=nM#?&h|oeA3#G~(NG*JrnxGmO3E&c@#V;`? z8ScIdzH7Y0un|yGu{hLJ25I)IW!I=y(^hd7T4UEx&sIu?Q%Qu~9fpa3Fhny~_CoZE z#-**|GN7}xAvv2Ael10Be}d=^L|uk*;)ai6Lis2y-A8GwJObs4^7Du@5y{(ug9glB z&X%ahL+qdIcp-}xwpFvB(gexsJ7!RM2n`cKCy?C>d=8QHPK<;|3bOK9lQ3QQJJ1cgPHNUZq`eYiWCf#gVq}qj57PsSl7q~j zq4lBda$VFQ=X|V;ND8kX{OypuNG5ddJ-GeJ){yT_&9{A`Z!wAuomiE0qy$OdxuZ0m zB;UK$096fSiQjFgFLo6Clt7o^Cjj(OX;9vwlwYfq2hz)_Jrmk<#0jPX_NKxup%oqImGON?PzOPKE6Ng`7j4PL@@2l7&!6fKCQ zyG5x}#osh6o|sq?rd3o(rr6noT9g=6pIR4&Ai2DBq*qE#N;aq1P}@%H@H@C>DZ@kB zF~zOZHoQ9JmdRj!j^T~lvDq92wZ4pm_;I(`Vc3mSU#0xo7s_%kq|!sus8QTnsxe40 zYQxRM0X-EIHmfLmNMjyG#Dm$V3DfGnt1vdvk)#i(HGjvzZgDVchkdr~FM;iOHe!7@ z)uGCuxuKRuX|t96z@GYzqZ|GW!O4&@+!4d-8Ok? z7L~%Pbca(A$tMdRV7u5YZ=W`de5w8gmH?~;WRr!IDij;6GpV6MF?*2pfFzGd@{A8z z#}P>$j8IoZRf{xyj<_rinH|6+tMfj9OmFTRB}#g1U?4$`>XeA*=*^KSgqEzM#B=Os zF?76^lSY}dZF!hGgbwErx=-KtNNN0V3K+&lQc+w#_nkRZF)ESfCc<6e+me1-ye~-7 z!Yv`O^=9KktfKl7OadyJM;JwIqs#-{R@K>|X>CD6rN4wcJ+ zV}mecktvs(Kn)d7gSJFnbTVmcp`t&oH_|oVu@#5LO6Axee(^L65BhGxEUA|#oWad- zm{ZQc7<2hPdzTuEjK-KvSdWEAhl+ipQ)>bygUa;B|j2FGzO)IP^{Vo;y<7E%qHU&!$R;zKXNzg zdS8Rdwmo8Q1z?eJYDx!}nf7;CPt6;6_i!dt$)aSl6Tm|L5YK~%&$M{&Eg%Q_ctXE2 zfW8*!z7`Rloj}{TV$9kE;0_gbRWfkk%CSa2{tIG5ORRK2l-}EhXFlwMjY$$dew*E}r5KuA_|F*MOiM>=rIqlEwv`_;~cN7gO% z`~;cy^9ch#+_(jt!7;0E6jq;D!8tf0h~GWPqPGS|cZ~-u$OKwcEg&A{Bo!n&n$ArY z`7$)1q+0rho5_mKHT_{64c+U|aI)Wt=;@>mr+gLIlMATHR}T3^RX$}+PDDqOd{)_r#`=!$JB~!L zl6)B3T12seV@Q@)PJ@&Ob)!=F6R%nCVCbR8e3~gFEI$qLIYS*C$_GZjYD03j*}IqK zcb8%N&!}z+I%(ikzCc{HzaR5@8y-@^t2*^zK87Qu)nNLZg# z4Kht6U;kEW8#_tD^k*c2wxip27Cnj>*kHr?iei7#3&pP5Nn`L;&H%~5{0a%2msagx zPhE%FvF6gKHX*AVnc$Y61j!}4+1J*igB^}EK7?_i@lXsgAEbm5AU<(9toVGtocK2S z+cvBZm3o$>?ts3Wbb0+l5Ruwd{GTZ8EvwL=2-$=*m(R~pnyV}fIDMFgn2RZ{o}DA$ zF&7PZcYNC^Y1>K`F}j5o(-XGR5fZ*LpWY>HkLcDQ&$#!dI6jAT5C)A2^&cz2ZEs=M zGd;5fjMMcnr2nb|fc1t}6XiLaz`MArydm7&6AkiA+lnH66wW5Jv1)}N7=AQ9a+;Q# zNVy4GZW86t7lo2pZ_!1k$bTs&RnjrIBae#ElIoGlFRMjxOY`LOPUbG@L6@&Vy~X%- zEK(j{3u5f}rLAZsRJ_C$wB79#4rfql z{LgOV{KfX+_;26&)%at9Oxa4c^|^>EkdFrr7!pF;&Y~1LO%WPBjE^?K+BXMT{-E-w zU|CRy4t786^ngAg4>uyt58Ex#=Weqh@zkk9YjOG%xdzq0OsSu*NM}TD5Q`Lg!)7{e zqcs?hVI!qUghcnC8d}d4I8Z-k5LTj&p_LlJOvVY-Fd9z)C|yX}gyGTAHt7O!6?3FT zMb5x!wq-<@ojqTl0K3cJ+8dGfz_4|DI&BvFnZSIf8XdS`vKO^=i~54HoOMmV+DWg0hrOL z_(&K#)ki{tHZE)!!@Z}{v^-?JZQH*PQw(b~-_iMsh>a1ue?2{d7j$@iD?fx+IjvU% zWBhR(><{H?V?c)CSDxgT1%7zsb2^Qqg$}b;`QjtzzIU&6-uwl&`Pjn`py!yEZ~g$F zbSJq!J-|p6JAkN^`bFt|QR;1j3%*)Mlg<~hm!9nCr_FK+JaZWfM$9S%+3!W-6n(l zdQM09COp3V9^qpJ4}tXI91;Qe`hj*FIG@J~ey%bi&;2%}?Hv&~i=-B!?B)`Yt;Gz# z=9JuDG(5)Bi!f@?q98y2DxQ3+w+G-LT1VB4qqmdRqnb|`Ah(}_f-bmOYLIAhh)^_^R9LHli=CL$$vX}e9@ z*Xx9W9a6!brO=oGy|6tD37J}0iozohl=eqF$%>c-a`Y@v28`sf7=U6V0x(j=O@xqM z#>pBM5{b4>XOW9V=?VE>8mG4S6tRMVuB8&gcqvIkIr3};x$Fdz5k`RwN6RIIi5cdm z(~ad=5cTDv>nHfo8@lGeN9Jj{k=ntCkTf(RZ~c)*aGjatt&%Pks-$p9mGs8poPi@4 zAHMX@x7FI_+32Z9No8r`QA|PRnDKPA)FVpU9a3+Van^fc`$v&wq&%l%@@ry;52h-; zBX(SEZW5(W9Hh_6Sj(9X=?j~2%Y>Qe?^VlaXr8Q+en+NOgAP=+y_>z}M6vDhY%z8X zj?eGvqIi3T=THs_)kTT(;*8PC`7!;9*}L>-FxxJDE_A-L#8zj!%(m#uKAphh1LKxL zF%e(AFZz)H+PO}p0+<6Ol@8_fctM+dmO^P?%E0Ny$s<9TB%F;hqHOQ6Hht<+2 zcIkCddP%v2DX1nW&b!9LNcHqSo=Cc@x-d>-`%Y zp*nvF<_){WRiDr+>2N9Ls9Hsgtv0X45du}I7Ur&6<@;16_8>1ri@9R#tOsx^*+#3S zd@66obcEQBMXwwfR2rQyT@K#u zabx?*WOERp9ztPdFVXY-1)p&_9I$6A)((!tg9Q2a)c^JboNA0c&Zq{GhdNIS4YAh~VgQn>0m-(Ve1_Vo8OtxBg*`;Z=b_CP$pH8AU zNP9~6Ve>O=TXR&iHDM}&e)u!9VSGqh0t!=>&edzE`+TM-OJ^M+q?c&jY!Tb{MCQvY z@nRc`=Jb?BbMcb2MKe)EW}CWben6O*VNN>TA30WAG`)PVt~Zy%oNQZRL0CNH)2XqP zmGkZwDZkDvf(UyWEueqbs>#n+wEh*6;TO@GX{nN4s-owq!5U z1NU>6C_PX0u*T)dC!!B@nzOdYMagFt`C1`j1#}w4PONhWxwoVl2KR6ILw>Z3*@We@ zvUCqOSotT^*FoN$buQ>I1r5KyP8}$iGvY{m5rowW9xS6!axPfM+VC!JEj)i(# zhnQ#UaE{_$1J3;LAoT(krg0iVM~Jij%j1u3gKF_uU{AK>7$vNF&+GS8jqKErSqjo0 z@%Tn|(t{o}JqnA7;+x{`BHb(jYK`8U&e;}?G-*s!&K`fnJA`wCt=gXCO!r|G&a{)Z=!^T$OBgHS@ZciOfqZ>V z7K>O1@jLW@x(N?T-hwZsetDU8c@&I4Xu9&tf9MvG!_h3wIyR$kBtB~k2NUN2{ zgEuOOkdNgcMd z^$6(Q;x5A@C^2y2hdHs(VYq)VG5VC)}C}(2r zF!+$5_m||oW5*ctTRvT#-~3HNTYSC-$fsb+u87sCsI4M;Ei@H5$XPh;F%o>Vg?i{& zGUTI;nwPASJV8pwpZqmbj32HLV1Ts`@Ar7(JV!gRA*`7*6}MKHX(41ox3+qHsJ zx$+gcN>sV9kLSr35>xDgq!==_JD!E9t=dVN!|kNhlIv4SzJ}pFEDLr2jL`mhwYi9& z9Oj9!yUlCq$;+z!K|T_ODXkx?Kea9{N+o*G|-mrlj+{M!Xt7Gu8htER+OGenBKsfSy6hC3}h+rWg7lTj_)V@ zMXC4)fQREx__Jv{7M0t+d`AY|1YUm!HQm*TzO^PyRrm41JexOnHLBBy#HgP%RG&Sg z9Q8;MIO-MRs8>`aT_sd2N50E;(E1@#OIB(F{Ji7Zi-u$-z-q^kZ+Znx#(HYyDX=lUB){nL$Q;*EE@7Sd$+CI%P zUR#4);tB4yH`>mb;H-}6oyPW=K*nYzY!5Gjk{j*k)Y_eq+{Vg|LYwrgwEg4mwgW}R zYmWhu^n@6*9V1rIF~ay=12A27hjR(@LIp_G`q?534N?nTteGYVW*Bmd-0WKf>&s9M z=&ojS2{t*IouF?PJCk6rj9CaqrYiUq4(4Eu9d^gnG!LC}Il1b5Xrm`2OsApeG*yqH zsX7}^Ux~z|l1Mvxn_!TKHRo>}0rxY>KM!K_!7BOY)c}frUQZY@5_+{q7E@1_QqB)- zv`)m7vmcRIh=hDvvM_oO0-QiN#n0x)I@wh~b{uVnpZ?Ke#$wJ9v{usDPo{6_pr{5# zPx2x?skdG(Q}EN3*6|cdv0&6n6+n8DTNt-v`9nB|rF*c3-`FX2_GKxn7w-xt%hP+Y zXu!L_nYy-WC-wR7^6rNYryUX&&6|sdiu8zNz8LeFd+9j=Urs&}V^<_9JMh@!okn}d zG*Nn5jLmzyT6(QAHV3Z?H{mTa?G3BF+4L-=@)}W^*CI;Qe~~wgB>fmyJ5fN0t#m=F z@f^&za|zR6n~BozPos2pr}Bo**nSeS#)q8aCckILJGvY(yW57xEz&EMSb9z|p12w! z!QH?qYE-Laf5JSYKa?+hG5NrZ$P+>+H?hMuWXW#t^SGF zN0BhLZ>ORA*#W4u!*Dm*4T*RUkh=_bAgk-kg+cv@3a~EXO$m0)gz15ws)VaSD8{Ov z;l~k&xg6^bt?qa>Q2i<;XoJFoO9B0DNto<+DH^ztYDv{NX@BJCh(07rI=n+ln2J$c zVf*1UXyj;>!V#;+vsuG4i}-#(bXMH3{~Tvk5|bXvf)6OF@z@2;+UfBNS~WiO96>Zo zHLMBK6Kainlp0+aGNswpZs;#zx(ns2!EvQh{tyna#??NaAr6HJ(;AgSsYVf-SI65# z;|u748W!cs0Qf#ejUq3g>yoty_n%eX1*mC!sB*!K9nsNJbzsIbExFm%kIncbbS(Oy zNJ9;s$Qz3OtalHMY-JsFbRQ*OOqk~4>8K;7|0A-rKhjV*ffD&vWL%AhI;4+>_-H^K zv;j$DL}^wLq6&jGBJ0_BvAMa6f@S;}3BQ#k?`5%kntz4~el$)Hq~_wh?&!yfS@ ze&M`aY~YL_lPKvigXpaW*y2&MwUFM!qfV2E>$X&4O*ROdL)N&(nr$}nYk!fGlbE=S zi?Bd0ix-MFQ~i>GH*>rmB6>5Iy!4I+k(ZmH5@_R4Z?saibEN6UMs2+oXB61*)#hlS z*x6aw_;F_<5!LMwJNFd!mOVb4|B)O(x&(6Tk7=er&V*?lk_poZh#wxIXK}tB?gU~u;brQIa~!-6ZQW|v+^Ef3(Of{77g z?9dAu63cLbUPGc{d_E+6YbPJ6@`Kpzk&X<`qb2-160%-lIA|hh^G8)z!Hry9dFZf( zE`~vx)6fmsz&9;&o;nO;NI%dQ?$mL8-A4VC44)F{Ff5CbKE91u(a{A+DLR^`rnGL8 zj;evfgtdqr<8;XGnuoUb@8CTjB<|*2(jK@hV^EP_n5&ZX zaj`@HL?4bL1#PwH)t%eF7ULO4=i2;QL5J>Eh?+26{6kXHYMv9N)&oG&LMGA{t-LS6 zIW1wDPGo$6gQl#5?*=ZUB7Qfpo>Ex8REEe14)oeeT@`6{chXYv*R|l*wsXaoogTx; ze+#kFnj4UxpFhzTWiYIKFsvkc)_0bwUBgy^Ll(ZLLL4BdcI|OCoiEC%E}0YW5bs*k z@Lj{cMK@j1HGb`JJh=5`;oq7s-N8h08MK@zKAFcwJkICw=U|#BewW8D^7siJ>u(_Z zN1R6H@yk5k%i~9RyqU)vczh#|ujBCw9$(JmMLfQc$5tLsWpVIqz{0fijQ}Ca2%ojXf!|_-0*vI3=Ja+PU7LUt#d@_&M@LKsit?+r5 zV|sYJkHGhud-rbErCZqH@@wFaq|yw|<338FxDKKWGq*CRj0Q3q$Y>y= zfs6(+8pvoMqk)VDG8)KeAfthd1~MARXdt73j0V0Q4Gg@mN%RcIF{Qlta@;r^jwXZ4 zXdt73j0Q3q$Y>y=fs6(+8pvoMqk)VDG8)KeAfthQR}EO_;YOi=-%2oUsTSmY>k^5z zxTPc{uOz3J|0<=p%s_NN5OzLeXHv8}Mu8vt8kc5D5t3 zW|z+gipa{KM`&LSEMr zpGSy>J#Jx%r!f%n2wuN8;&u7FSGrOKN#pAZ1)_epPzRa7N8|5t4+ydTr%L}f|4e~- zKUbhdg+Uc=QX$tFsuN5NNY;I{oa^M`_yZ9k7zzYEA>T?N>{<@px*9?>ST3P4 z>Te*uVi0}4se(}31i|n>8jb?75)>g%IO>ZKKO!NCQ); z=bUfAP18Y>Yb6xx^9eM%E-0=66BEr{fpPOjR?>J;RvA6w5Wqxk_Fjp;Hh|Ap)TcHA zY4bVFLmBL(-@?+GiaJ0qFFZ2zsw(K@e4Ikj9arunBC;T zx>gwq1wv{3Ygm-|Sp+}%*vvdkV6#~hU;|r*bR`SnUjSh$E5MJV3Tz%|U2F;SaoPyV z1m;HFFbe|bVk?oaVYT2QuxikR@z2GUB6XzGSdnK6cnl}e9B}iZr6^<~X-{IsXkTDc z5Q@>((2u5vIbNT~?`rmF6dJxd;ErOwy-+KHzNXX;C~S_)>x*IyKB?F(Oc9C)T2RJC z-5+35eh;iSsw!Pu#FRoC;)2fr^h7>8clU?fW3M`v_dUesn~gPfx=u&wl`!g zAjG+7Am5J3JzbcIEdS)&_?EzzA%C=a3AQYnnA#-Lm`@i}dJW{y#Y{=T=G)wEh!&oX znW@nb{F?fc%95vx!}u3OxYCV?g8EOTv<+-L(94(KNa#mS>E})9hfV3{OzEdg>1Ryo zCrs(*OX;Ue>1RvnCrjxwA2wYB`@ayDSp~{UmBtP#H!RYp$~73cFf+Wc&t_QX6xPC9 zor3vAv&sVu#Y=$=V-AKef2M%bnTRQn1P9~oLdkMSPuxq{v>}u=o~0KBJ^l+kD=Swl zfKbSPJL(CoobSTksGzv0z|V%;;sGJg&t(^}Iq2g8W5B}IxY3}!jibs-Vm<+ z3SLm*kn(?!JVV+!45Cn#&!R%B3Y{vfSK(pU98vNATq*E%oPL;&R^)Z~SKU`XPBb8)684YAKkkP=uuLf%7+UHh{J9p#XI&Ir9k|Zyit_LpUBMLo)a|GtM!i2v1671pDGK{ec3$8NcCvE zh~J28HbOU!Wd+rCG+hklJ1U!v(ml!y8l9#C{5h)pvK*E_Er*xr2Iq-x61AhYtMS+J zhl5Ay*ij_!LE!ik4XmK7gB9qmV-1%%=?Fcrm4C$J} zAW>^N9?jKacMJPB*GQzbCIdCk|lYeW;Ve*e=f!jC72L$*^Vsok>X|80zzS+dF+*8Ct1rc0?m;O3Ka~bx zFmAjF^WcUo3-PxqWQsgAj#?g2ciaeeobG65>?!CT86OeMtIxIMI2D5NXN_d$H|H{Q zq=uQ@-)81ACo}6VWG0joU;48_^ijs|IgG>8$?>DV_QT7@XR%zJ#ObZ-m~uNH{S@g~ z(JV!tZ>|Ok$1ye&Vg3D#1p)6v*o<@>@C}4bNcRJ_m>4Vh73ct8hM&0= zcnf^S9SCm{4PY_+Ju7Hh0bf8UN4g*ISUgO!AZ-C`MDQVPJ&v(25UwWt1jaTZM3C+V z%sU=`EemM@@LLGi6FuNOgd34=1$-P~9nw93A0jv(fR0bVpHf3;qV$Q3jYe3Av;cS) zLOs$wfU^YrNfOkp2aF+<0KXpaHwXgK-GFQ&+C;h#uoyu^+5-4vgd(Ij1HOV_LAoE% zFbVx7dccbj4uF3UFan=65BNCX1@K89Aw1x%2>nQJ2K);G0}Wnzv+p3>4g7k*K7H^M~ zg8E3;1Kx^I1e(o&A0h}yTX2bB1wskc1^fh|5NY8I#ugy-pl&PR76bJyT`*mNfPj=BWf5!NH^oCY%}Wz2zes?SCK*a5_(EyawU7 zsJj+$UOC#NG~izm9z?qE9LCN<*o(9k@J};gx2W4w0ed(XV}x`epzl1!Ms0!ofd4%U z{uuC<*%(thbcJ*);2aU-j9=+^?SIUo8!x(DzJ1PjuI7vOKLBDj&R2b|_W zUyu$0wjtP&UJH17HDhH&0~ojv^Bn0o;I}WrSrO@0z-dm#77@Lhu^SN9Lx#UWGTQ@GceZRH3;~sb8qVFI2w$D(q3=(<zbn;z zlL~89Sgyj8RhXy3{c61zRrvo~*)?w~5|pcOj;falYX0-Ll=4?pxLbvrRJc}!|LA_a zEGsQMp~8DrxIu+CsqlL$Y*pdqDqN&Oy9!HGI7)@@sQv9$;iD?ttip{dyg`N6s_<$R zzN7N_N9*BW{CB@OP;xnBTKF2)**^{7J|g*E2kwmlTse((&pm;+W7j?nfa#Z z@?U+v<*~ZD*>&Ndr@`CkZK%U-VK=VjlWSaux7_YJx}RU?^*09U+@5eG6j)j3^M>Jz z9Eb9TXoxOb*LhYnc$7>26Nbaq;U;&)gFl=&V%WCo`~igl?zh#|EpG@#>i)|UQSOz} zty8*Mx`3TAq)gFkori7DstbFX>KeU16xPvGjxCJ3 z*XUh}Tds9}7w!kQ)VV@Smos*SQj>r4AX((`FZYH5{${8RXMi*c+grBF56QA@PDrtD7)D)%%*BOa|tsk9xkKzq1`2S%(@%hg>G^)@U+6(HG0V3pJb z2I`>K4{~<80b|<`Tv-=}C(P5X2&J2#TUdcNfKE0y2mE!*!?=j?-Z+AfCAn=vM?g_Po9(;+yRXMlg!ARcrkN;T(a$vS@IQ`W=T#eIpgN4l)KfZkXp+CX~BUn<5aBI?Apw%=JVLTKqEa zTf~JXf>oG&3)uDGuWBR^n&WYiq*^7zuaibWKR zy=G7q!-p8>HXTu_L%_Cb^y+PBoMi};KH}^bhFZ-sRo*zuSJqru=_sAX4T#NTxa|$w z`ug^>45y3+{uvq=SD1ePU~t|$sN8v&{9u{0Yts1-F3;q@NgBXAK8S4lCltna2`eU@In^>r@c8i^HhihA zV$!_YIaA6f3E>FbNtX|h>1p75me&MnBF=?aHE%}eklMlkS)D<(xl{^{X{CJ(-X zH>KH2-+&A>My9|un(hiWPhEcIBz&RI?`?#mJU_KHuo8rskx(=oq0RgVxs^`h^-wbm zUoV8O;lZC0pmE284w;i749-rW&xMGqkT;*RLSmp^$ z5~5yP19@2$lNw#VuxHY_GtWr!POqHgpF%OD^_gd+$vX3lWT#Pm<{6qk@r*X}$!Op| zQUhz@^P=OMH*MV%-?V#E_ol6P#_!yHXZM{i-q~{}3f3#-@`nBm3vUnJzT)# literal 0 HcmV?d00001 diff --git a/Calculator_main/plugins/lg.cpp b/Calculator_main/plugins/lg.cpp new file mode 100644 index 0000000..03d786d --- /dev/null +++ b/Calculator_main/plugins/lg.cpp @@ -0,0 +1,11 @@ +#include +#include +extern "C" __declspec(dllexport) + +double func(double number) { + if (number <= 0) + { + std::cout << "The logarithm of a non-positive number does not exist" << std::endl; + } + return std::log10(number); +} \ No newline at end of file diff --git a/Calculator_main/plugins/lg.dll b/Calculator_main/plugins/lg.dll new file mode 100644 index 0000000000000000000000000000000000000000..3282edbc7355b356fd1c140ec7837950f79982d7 GIT binary patch literal 59904 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 E0oni}d;kCd literal 0 HcmV?d00001 From 188293ecb404bbb893fb9a81d76276176b37cd2c Mon Sep 17 00:00:00 2001 From: Lo-Lap Date: Sat, 7 Oct 2023 22:09:25 +0300 Subject: [PATCH 4/5] New non-standard functions have been added. Exception processing has been added. Complete folder paths have been replaced with absolute ones, without fully specifying root folders. --- .../Calculator_main_v.final/CMakeLists.txt | 25 ++ .../Calculator_main.cpp | 33 +++ .../Calculator_main_v.final/Calculator_main.h | 8 + .../Calculator_main_v.final/calcul.cpp | 248 ++++++++++++++++++ .../Calculator_main_v.final/calcul.h | 40 +++ .../Calculator_main_v.final/dll_read.cpp | 36 +++ .../Calculator_main_v.final/dll_read.h | 26 ++ .../Calculator_main_v.final/plugins/abs.cpp | 7 + .../Calculator_main_v.final/plugins/abs.dll | Bin 0 -> 109568 bytes .../Calculator_main_v.final/plugins/cos.cpp | 15 ++ .../Calculator_main_v.final/plugins/cos.dll | Bin 0 -> 110080 bytes .../Calculator_main_v.final/plugins/ctg.cpp | 17 ++ .../Calculator_main_v.final/plugins/ctg.dll | Bin 0 -> 115712 bytes .../plugins/cubsqrt.cpp | 8 + .../plugins/cubsqrt.dll | Bin 0 -> 110592 bytes .../Calculator_main_v.final/plugins/lg.cpp | 13 + .../Calculator_main_v.final/plugins/lg.dll | Bin 0 -> 115200 bytes .../Calculator_main_v.final/plugins/ln.cpp | 13 + .../Calculator_main_v.final/plugins/ln.dll | Bin 0 -> 115200 bytes .../Calculator_main_v.final/plugins/round.cpp | 7 + .../Calculator_main_v.final/plugins/round.dll | Bin 0 -> 109568 bytes .../Calculator_main_v.final/plugins/sin.cpp | 14 + .../Calculator_main_v.final/plugins/sin.dll | Bin 0 -> 110080 bytes .../Calculator_main_v.final/plugins/sqrt.cpp | 13 + .../Calculator_main_v.final/plugins/sqrt.dll | Bin 0 -> 115200 bytes .../Calculator_main_v.final/plugins/tg.cpp | 21 ++ .../Calculator_main_v.final/plugins/tg.dll | Bin 0 -> 115712 bytes 27 files changed, 544 insertions(+) create mode 100644 Calculator_main_v.final/Calculator_main_v.final/CMakeLists.txt create mode 100644 Calculator_main_v.final/Calculator_main_v.final/Calculator_main.cpp create mode 100644 Calculator_main_v.final/Calculator_main_v.final/Calculator_main.h create mode 100644 Calculator_main_v.final/Calculator_main_v.final/calcul.cpp create mode 100644 Calculator_main_v.final/Calculator_main_v.final/calcul.h create mode 100644 Calculator_main_v.final/Calculator_main_v.final/dll_read.cpp create mode 100644 Calculator_main_v.final/Calculator_main_v.final/dll_read.h create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/abs.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/abs.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cos.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cos.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ctg.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ctg.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cubsqrt.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cubsqrt.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/lg.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/lg.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ln.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ln.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/round.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/round.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/sin.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/sin.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/sqrt.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/sqrt.dll create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/tg.cpp create mode 100644 Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/tg.dll diff --git a/Calculator_main_v.final/Calculator_main_v.final/CMakeLists.txt b/Calculator_main_v.final/Calculator_main_v.final/CMakeLists.txt new file mode 100644 index 0000000..f84baeb --- /dev/null +++ b/Calculator_main_v.final/Calculator_main_v.final/CMakeLists.txt @@ -0,0 +1,25 @@ +п»ї# CMakeList.txt : CMake project for Calculator_main_v.final, include source and define +# project specific logic here. +# +cmake_minimum_required (VERSION 3.8) + +project( Calculator_main ) +set(CMAKE_CXX_STANDARD 20) +# Add source to this project's executable. + +set(PROJECT_HEADERS Calculator_main.h, calcul.h) +add_executable(Calculator_main ${PROJECT_SOURCE_DIR}/ Calculator_main.cpp calcul.cpp "dll_read.cpp" "dll_read.h") + +add_library(cos SHARED ./plugins/cos.cpp "plugins/cos.cpp" "dll_read.cpp" "dll_read.h") +add_library(lg SHARED ./plugins/lg.cpp "plugins/lg.cpp" "dll_read.cpp" "dll_read.h") +add_library(sin SHARED ./plugins/sin.cpp "plugins/sin.cpp" "dll_read.cpp" "dll_read.h") +add_library(tg SHARED ./plugins/tg.cpp "plugins/tg.cpp" "dll_read.cpp" "dll_read.h") +add_library(ctg SHARED ./plugins/ctg.cpp "plugins/ctg.cpp" "dll_read.cpp" "dll_read.h") +add_library(ln SHARED ./plugins/ln.cpp "plugins/ln.cpp" "dll_read.cpp" "dll_read.h") +add_library(sqrt SHARED ./plugins/sqrt.cpp "plugins/sqrt.cpp" "dll_read.cpp" "dll_read.h") +add_library(cubsqrt SHARED ./plugins/cubsqrt.cpp "plugins/cubsqrt.cpp" "dll_read.cpp" "dll_read.h") +add_library(abs SHARED ./plugins/abs.cpp "plugins/abs.cpp" "dll_read.cpp" "dll_read.h") +add_library(round SHARED ./plugins/round.cpp "plugins/round.cpp" "dll_read.cpp" "dll_read.h") + +target_link_libraries(Calculator_main cos lg sin tg ctg ln sqrt cubsqrt abs round) + diff --git a/Calculator_main_v.final/Calculator_main_v.final/Calculator_main.cpp b/Calculator_main_v.final/Calculator_main_v.final/Calculator_main.cpp new file mode 100644 index 0000000..297ec11 --- /dev/null +++ b/Calculator_main_v.final/Calculator_main_v.final/Calculator_main.cpp @@ -0,0 +1,33 @@ +п»ї// Calculator_main.cpp : Defines the entry point for the application. +// + +#include "Calculator_main.h" +#include +#include "calcul.h" + +void main() +{ + std::cout << "This is a calculator" << std::endl; + std::cout << "Standart operations: +, -, *, /, ^, ()" << std::endl; + std::cout << "Non-standart mathematical operations: cos lg sin tg ctg ln sqrt cubsqrt abs round" << std::endl; + std::cout << "cubsqrt - counts the cubic root" << std::endl; + std::cout << "round - rounds to the largest integer, but not more than this number" << std::endl; + std::cout << "To complete the work enter #" << std::endl << std::endl; + + calcul cal; + if (cal.validation()) + { + std::cout << "Enter the expression: "; + char c; + while (c = std::cin.peek()) + { + if (c == '#') break;//interrupting the recording cycle + cal.readthread(); + cal.maths(); + std::cin.ignore();//extracting a scanned character for a common expression from a stream + std::cout << std::endl << "Enter the expression: "; + } + } + + +} diff --git a/Calculator_main_v.final/Calculator_main_v.final/Calculator_main.h b/Calculator_main_v.final/Calculator_main_v.final/Calculator_main.h new file mode 100644 index 0000000..c3dcd3b --- /dev/null +++ b/Calculator_main_v.final/Calculator_main_v.final/Calculator_main.h @@ -0,0 +1,8 @@ +п»ї// Calculator_main_v.final.h : Include file for standard system include files, +// or project specific include files. + +#pragma once + +#include + +// TODO: Reference additional headers your program requires here. diff --git a/Calculator_main_v.final/Calculator_main_v.final/calcul.cpp b/Calculator_main_v.final/Calculator_main_v.final/calcul.cpp new file mode 100644 index 0000000..7fba5c3 --- /dev/null +++ b/Calculator_main_v.final/Calculator_main_v.final/calcul.cpp @@ -0,0 +1,248 @@ +#include "calcul.h" + +template //template, because we have two stacks of different types +void calcul::clearStack(std::stack & s) +{ + while (s.size() != 0) { + s.pop(); + } + return; +} + +calcul::calcul() +{ + oper_priority = { + {"+",1}, + {"-",1}, + {"*",2}, + {"/",2}, + {"^",3} + }; + function.insert( + { "+", + [&](double a,double b) {double c = a + b; number.push(c); }//put the result into the stack of numbers + } + ); + function.insert( + { "-", + [&](double a,double b) + {double c = b - a;//change order because the stack order is different from the initial order in the console + number.push(c); + }//put the result into the stack of numbers + } + ); + function.insert( + { "*", + [&](double a,double b) {double c = a * b; number.push(c); }//put the result into the stack of numbers + } + ); + function.insert( + { "/", + [&](double a,double b) { + if (a == 0) + { + std::cout << "Error. You can't divide by zero" << std::endl; + //In order not to continue processing operations, we clear stacks of numbers and operations + deleteStacksEr(); + return; + } + double c = b / a;//change order because the stack order is different from the initial order in the console + number.push(c);//put the result into the stack of numbers + } + } + ); + function.insert( + { + "^", + [&](double a,double b) {double c = pow(b,a);//change order because the stack order is different from the initial order in the console + number.push(c); } + }); +} + +bool calcul::validation() +{ + //exception handling + try + { + dll.read_files(); + } + catch (std::exception) + { + std::cout << "Error in dll" << std::endl; + return false; + } + return true; +} + +void calcul::readthread() +{ + char c; + while (c = std::cin.peek()) + { + std::string s; + std::stringstream ss; + ss << c; + ss >> s; + if (c == '\n') break; + if (c == ' ') + { + std::cin.ignore(); + continue; + }; + if (((c >= '0') && (c <= '9')) || check_neg(s))//number 0 to 9 + negative number check + { + double value; + std::cin >> value;//extracting a number from the stream + number.push(value); + continue; + } + if ((c == '+') || (c == '-') || (c == '/') || (c == '*') || (c == '(') || (c == '^')) + { + processing_oper(s); + if ((number.size()!=0)||(operation.size()!=0)) std::cin.ignore();//extracting the viewed symbol from the stream + continue; + } + if ((c == 'c') || (c == 'l') || (c=='s') || (c=='t') || (c=='r') ||(c=='a')) + { + std::string nstand; + while (c != '(') { + nstand.push_back(c); + std::cin.ignore(); + c = std::cin.peek(); + if ((c == ')')||(c=='\n')) break;//the expression was entered incorrectly + } + if ((c == ')') || (c == '\n')) + { + deleteStacksEr(); + break; + } + operation.push(nstand); + continue; + } + if (c == ')') + { + while (operation.top() != "(")//we perform operations in parentheses + { + oper(); + } + operation.pop();//remove the opening bracket + std::cin.ignore();//extracting the viewed symbol from the stream + if (operation.size() != 0) + { + if (nonstandart() == -1)//checking that a non-standard function is valid + { + deleteStacksEr(); + break; + } + } + continue; + } + //caught an incorrect character + deleteStacksEr(); + break; + } +} + +void calcul::deleteStacksEr() +{ + std::string s; + std::getline(std::cin, s, '\n'); + clearStack(operation); + clearStack(number); + std::cout << "Expression entered incorrectly" << std::endl; + std::cout << "To continue, press Enter" << std::endl; +} + +void calcul::processing_oper(std::string c)//processing of the received options +{ + if ((operation.size() == 0) || (c == "("))//in any case, the opening bracket is either at the beginning of the stack, or we put it on the stack on top of other operations + { + operation.push(c); + return; + } + + if (oper_priority[c] <= oper_priority[operation.top()]) + //if the operation in question has a priority less than or equal to the operation already lying on the stack, then first we will count the operation that is on the stack, and then we will add a new one + { + oper(); + if (number.size()!=0) operation.push(c);//check if the stack is not cleared after dividing by 0 + return; + } + //the stack with operations is not empty and the priority of the operation in question is not less than the one already placed on the stack + operation.push(c); + return; +} + +bool calcul::check_neg(std::string c)//processing negative numbers if it is the first number in the expression or comes after the opening parenthesis +{ + if (c == "-") + { + if (number.size() == 0) + return true; + if (operation.size() != 0) + { + if ((operation.top() == "(") && (operation.size() > number.size()))//when '-' is immediately after the parentheses, the number of operations exceeds the number of numbers read + return true; + } + return false;//c='-' but none of the conditions are met + } + return false; +} + +void calcul::maths()//to process all raw operations with numbers +{ + while (operation.size() != 0) + { + if (function.find(operation.top()) != function.end()) + { + oper(); + continue; + } + //there is no processing of functions from plugins as we consider them as soon as we met, + //so that complex expressions using non-standard functions can be correctly calculated + std::cout << "Expression entered incorrectly" << std::endl; + clearStack(operation); + clearStack(number); + break; + } + if (number.size() != 0) + { + std::cout << "Result=" << number.top() << std::endl; + number.pop();//deleting the last number in the stack (result) + } +} + +int calcul::nonstandart() +{ + if (dll.is_plugin(operation.top())) + { + double a = number.top(); + number.pop(); + if (!dll.calculation(operation.top(), a)) return -1; + number.push(a); + operation.pop(); + return 1; + } + return 0; +} + +void calcul::oper()//handles only one standard operation with numbers +{ + double a, b; + a = number.top();//took the top number from the stack + number.pop();//removed the taken number from the stack + b = number.top();//took the top number from the stack + number.pop();//removed the taken number from the stack + + //taking an operation from the stack with operations + function[operation.top()](a, b); + if (operation.size() != 0) operation.pop();//we remove the operation from the stack, provided that it is not empty, after an attempt to divide by 0 +} + +calcul::~calcul() +{ + clearStack(operation);//clearing the stack with operations + clearStack(number);//clearing the stack with numbers + function.clear();//clearing the map with operations + oper_priority.clear();//clearing the map with priorities +} \ No newline at end of file diff --git a/Calculator_main_v.final/Calculator_main_v.final/calcul.h b/Calculator_main_v.final/Calculator_main_v.final/calcul.h new file mode 100644 index 0000000..984c4df --- /dev/null +++ b/Calculator_main_v.final/Calculator_main_v.final/calcul.h @@ -0,0 +1,40 @@ +#pragma once +#ifndef calcul_h +#define calcul_h + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dll_read.h" + + +class calcul +{ +private: + std::stack number; + std::stack operation; + std::map oper_priority;//mathematical operations priorities + std::map > function;//correlation of a mathematical operation and what it does + dll_read dll; + bool check_neg(std::string c); + void oper(); + int nonstandart(); + void deleteStacksEr(); + void processing_oper(std::string c); + template + void clearStack(std::stack & s); + +public: + calcul(); + bool validation(); + void readthread(); + void maths(); + ~calcul(); +}; +#endif \ No newline at end of file diff --git a/Calculator_main_v.final/Calculator_main_v.final/dll_read.cpp b/Calculator_main_v.final/Calculator_main_v.final/dll_read.cpp new file mode 100644 index 0000000..dd6af54 --- /dev/null +++ b/Calculator_main_v.final/Calculator_main_v.final/dll_read.cpp @@ -0,0 +1,36 @@ +#include "dll_read.h" + + +void dll_read::read_files() { + WIN32_FIND_DATAA detect; + HANDLE det = FindFirstFileA((p + std::string("*.dll")).c_str(), &detect); + + if (det == INVALID_HANDLE_VALUE) { + throw std::exception();//the library does not exist + return; + } + do { + std::string func_name(detect.cFileName); + HMODULE hm = LoadLibraryA((p + func_name).c_str()); + if (!hm) throw std::exception();//the problem is loading the library + + std::string funct = func_name.substr(0, func_name.find(".dll")); + + auto func = (bool (*) (double&))GetProcAddress(hm, "func"); + + if (func) { + function.insert(std::pair(funct, func)); + continue; + } + throw std::exception();//error in extracting the function address + } while (FindNextFileA(det, &detect) != NULL); +} + + +bool dll_read::calculation(std::string s, double& num) { + return(function[s](num)); +} + +bool dll_read::is_plugin(std::string str) { + return(function.find(str) != function.end()); +} \ No newline at end of file diff --git a/Calculator_main_v.final/Calculator_main_v.final/dll_read.h b/Calculator_main_v.final/Calculator_main_v.final/dll_read.h new file mode 100644 index 0000000..7482301 --- /dev/null +++ b/Calculator_main_v.final/Calculator_main_v.final/dll_read.h @@ -0,0 +1,26 @@ +#pragma once +#ifndef dll_read_h +#define dll_read_h + +#include +#include +#include +#include +#include + + +class dll_read +{ +private: + std::map > function; + std::string p = ".\\plugins\\"; + +public: + dll_read() {}; + void read_files(); + bool is_plugin(std::string s); + bool calculation(std::string s, double& number); + ~dll_read() { function.clear(); }; +}; + +#endif \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/abs.cpp b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/abs.cpp new file mode 100644 index 0000000..9d5325e --- /dev/null +++ b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/abs.cpp @@ -0,0 +1,7 @@ +#include +extern "C" __declspec(dllexport) + +bool func(double& number) { + number = std::abs(number); + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/abs.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/abs.dll new file mode 100644 index 0000000000000000000000000000000000000000..6175093e6806359ec629f39f64e515c6fd807c2f GIT binary patch literal 109568 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 A8UO$Q literal 0 HcmV?d00001 diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cos.cpp b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cos.cpp new file mode 100644 index 0000000..4fb6b6b --- /dev/null +++ b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cos.cpp @@ -0,0 +1,15 @@ +#include +#define _USE_MATH_DEFINES +#define pi 3.14159265358979323846 +extern "C" __declspec(dllexport) + +bool func(double& number) { + double d=number; + number=std::cos(number*pi/180); + if (abs(sin(d * pi / 180)) == 1) + { + number=0;// angle= pi/2, 3*pi/2.. + } + + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cos.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cos.dll new file mode 100644 index 0000000000000000000000000000000000000000..272c03ebf74d2d4d25bf15117c65148e6ad136a3 GIT binary patch literal 110080 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­RhLk|ml0O~I@4PUbn?AK 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 Y6|qKa5qrcDaYtlx@H6Ove^d|rFEV|$TmS$7 literal 0 HcmV?d00001 diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ctg.cpp b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ctg.cpp new file mode 100644 index 0000000..9774097 --- /dev/null +++ b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ctg.cpp @@ -0,0 +1,17 @@ +#include +#include +#define _USE_MATH_DEFINES +#define pi 3.14159265358979323846 +extern "C" __declspec(dllexport) + +bool func(double& number) { + if (abs(cos(number * pi / 180)) == 1)//in this case sin=0 + { + std::cout << "The cotangent from 0 does not exist" << std::endl; + return false; + } + double d=number; + number = std::cos(number * pi / 180) / std::sin(number * pi / 180); + if (abs(sin(d * pi / 180)) == 1) number=0; + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ctg.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ctg.dll new file mode 100644 index 0000000000000000000000000000000000000000..952813e1e4c51deef90a9d89277b504a78d63fcb GIT binary patch literal 115712 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

Y;^ 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 +#include +extern "C" __declspec(dllexport) + +bool func(double& number) { + number=std::cbrt(number); + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cubsqrt.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/cubsqrt.dll new file mode 100644 index 0000000000000000000000000000000000000000..8de893ed513b4ee67c56553462b127c40807cba1 GIT binary patch literal 110592 zcmeFa31C#!**<P7Rfn2Z#R1d?5S>V{7fo~o#8godLNJk##AJp=tp)>? zbQnd8OIx>AYi-qvT@aKtcbSN+A1z>ZyMU7wrV%$|2*$G_s*TkWOMm`?e|ZV zbI9^lu^CVP1tsh|*oWe=M?5yx_|eE`kKF7lefG$C zHMPxVV^hN=O_j^cs>=HMhOoJ)+H8u{o3-_3$vJb)Wetm~C+6gg@@v$uJhNx#o%dgN zr}OWKUC}$PMf!+cU%BHJdB*OzO`g}^@ijc7?bqM&bv*C9|N1+3|s*>~QnN~UN>wHEC(6?^$87o3E)x})Q9A|&8&FOGg?qrYPi$0xCmw`y@M;v`d3g`G;KW)5 z_xOG&2QS9{c;1)>E)b|%a*1I?ShNQL#AV!*2Ck{OsR~6RW5`xS#m$ZAI|5g<#AI1i$(zf;p`5;Fl0|&POopMg(_UjbJ3~ zy6eR=5WF@M!8BHzKzxl1rjxXjFGBF}`3R0X6G6v02o@3U-$efsF(1HouR0CE)Gs3# zM+v=lEP`o=BB;I>!G@&>4*3&;d*L>_-o6>Zm{J74IuF4+WeEP%jG&0E-A$xt=Ofs0 zErNSCA$X01|N1fn`RfpDdJ)0WRS1@BMesa@bK717f0&0L<30orE<#{^0m0GZ5nRj~ zUnF|}r3fCn2EjkjQ@hsQhQOo-ulO;7-@|ouee);;4-n}J3ik9`1T&69U=ho^k0ba# zwKbj+ns+LK24XpwTt3axJ(TW+WZ{>M2%aaAR}$`8TF#S%`=1#I3Rvy#QUn*Hmv_C4 zF5b0~@;hNYf`3rrH&H$2SOoVI!GUDvT-w?K8p9=LAvhg9zU$wQAlQul*mXc9f+r}5 zEtKDy=MltDMDRxXdhlAy|DKf(K}39hBth)Yh_75Y&*gHyOL?cm!QEki~5B zgk1>Eq>27+3xf7T5WGUU+`I&V(09t=h#f<%PG;jVDsSCS5VVrqv&s2q$!`gf9OQy)XHnE1}gMevW4 z5v--U^C-0_W4|YT=jJ0g<#PzmXWl!PA-KI5fxQ926!LrO{s_hsID9*TJBtup&Vuv4 zf}rte1f!|d<@+Jnj|}dmm7GtGj-snNo|tcCY#1gET_4_$;Il;V7A+#a0Kw%n%%>^I zJwHa!{Q!bru1D}TB{}9|1P9GWus`{oQG?*Vix9j?9bNo1f-b7;ujK8VhY>tO`E62 zGZgU+(-72A)3?x@En;bmIjz{F#lnJ%+%~#;+%q?-9#M4G7w)sAFd%Sh632%Bv96 zg%Nzd8o`aUoZIIh*xZcZXtHoB+nq{R^;crP{+kHCLRTgi=fD3gpP`fc8Jm1o>o#-YQ>isoTGdaKT5a?Ed7jMF zbZJ|OzaTZ!gId$GdT+}x!?0pk`pqpb8Q9h&$h-Gj(e?ffEQn?u(f}H#Y_r69e@% zZe6w@o9ACZ*q2C21h5+{km!;dTO%b_RLJG#rTyo36{{glE}wSWpOHyQ-@RQ?nhj9m zl`0c8ZOk+xM>5|gs(EQAnih> jcINlLgFg;e(pRy2Xl-Xr?Y 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�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%0DG~ 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 +#include +extern "C" __declspec(dllexport) + +bool func(double& number) { + if (number <= 0) + { + std::cout << "The logarithm of a non-positive number does not exist" << std::endl; + return false; + } + number=std::log10(number); + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/lg.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/lg.dll new file mode 100644 index 0000000000000000000000000000000000000000..57355a4dda4fcbdb0fea980ad43c2f09b725bed2 GIT binary patch literal 115200 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

C-9K4+YaZ;@w|%- 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 +#include +extern "C" __declspec(dllexport) + +bool func(double& number) { + if (number <= 0) + { + std::cout << "The logarithm of a non-positive number does not exist" << std::endl; + return false; + } + number = std::log(number); + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ln.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/ln.dll new file mode 100644 index 0000000000000000000000000000000000000000..167909c362f117ca5c9b6a9df79646c03d479c0e GIT binary patch literal 115200 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 KMBoD%f&T+L0Jv@d literal 0 HcmV?d00001 diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/round.cpp b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/round.cpp new file mode 100644 index 0000000..627f8c3 --- /dev/null +++ b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/round.cpp @@ -0,0 +1,7 @@ +#include +extern "C" __declspec(dllexport) + +bool func(double& number) { + number=std::floor(number); + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/round.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/round.dll new file mode 100644 index 0000000000000000000000000000000000000000..aeffa8a9ac9269959f9905d4af14955d0c9b6c7d GIT binary patch literal 109568 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 +#define _USE_MATH_DEFINES +#define pi 3.14159265358979323846 +extern "C" __declspec(dllexport) + +bool func(double& number) { + double d=number; + number=std::sin(number*pi/180); + if (abs(cos(d * pi / 180)) == 1) + { + number=0;// angle=0,pi; 2*pi.. + } + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/sin.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/sin.dll new file mode 100644 index 0000000000000000000000000000000000000000..264f3a6ae6c5b0a1fa4f5ddb8aefbd72a26a5af4 GIT binary patch literal 110080 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 +#include +extern "C" __declspec(dllexport) + +bool func(double& number) { + if (number<0) + { + std::cout<<"there is no square root of a negative number"<UZR|P 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

HD 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 D&;`1s literal 0 HcmV?d00001 diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/tg.cpp b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/tg.cpp new file mode 100644 index 0000000..31b9bfb --- /dev/null +++ b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/tg.cpp @@ -0,0 +1,21 @@ +#include +#include +#define _USE_MATH_DEFINES +#define pi 3.14159265358979323846 +extern "C" __declspec(dllexport) + +bool func(double& number) { + + if (abs(sin(number * pi / 180)) == 1)//in this case cos=0 + { + std::cout << "The tangent from 90 does not exist" << std::endl; + return false; + } + double d=number; + number = std::sin(number * pi / 180) / std::cos(number * pi / 180); + if (abs(cos(d * pi / 180)) == 1) + { + number = 0; + } + return true; +} \ No newline at end of file diff --git a/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/tg.dll b/Calculator_main_v.final/out/build/x64-debug/Calculator_main_v.final/plugins/tg.dll new file mode 100644 index 0000000000000000000000000000000000000000..74bff8353c018aa18c7c347f630157388aaf6a51 GIT binary patch literal 115712 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
  • ?*=G`u5P7?~Cg1Me#kw_3Xcp1w`b2e2jN3M^LG5v7rof8hA1Z zdht~}e2Q>l3p4aG=Q;i(M*Wk`1CNl{5_TT5^98lL2fw{w!`3P@Y z$(UqQ9qP4OPjULYX(E8+jS&dM#ihSzWs3MaU`u7v2x60iAqd_Grk7%xWvYSwaMwg8 zS->L>XW2*&w3s*G@~{viCBWi-fsl1r<0jS+dFU?_a@p?wDvUSan&pfOL<+>W)S)t8> z#IPziB)V^mPQMwpFoA$E-o2_w7lbR&KAsu;Uq~&5h-7}4xB3mxtiSXOj?um!B>FHFv&(vzW+v7;iLQqU7}is8 zu;gtNPMS`qLVqxjp|KCiXD;@SUuZEuU9HCcSi})3z1a7AzkW=3Qv?D(i2|odX{o9y zW>$b{jTv`^>98nMos3d6bCRAKn5!y%^6&KzkOy7s_xa4Gm28{g>~18c#OrW3+iAwg8%Jt1BEcpXU{mUUXt_I%`{eoLx0);+d;fPS!+!>g=l0i6r{W zRi_mvsV+V{Hg{rlTu}3udYhH{jS&vSTo!HJB zhi~T{UTRsZrV?HBkX2WXmdK}8T{%V~!&hDTX-0TDjGdfPc+J=|>afe`K&OvdwQ`J5 zmRf2_=|$Ozr<^q}M(>237A?FevmS~1!~CHu{NEXtI!sN(=-U-gH5GU~l$jup zG97W-D|!Gn0Dd@qKb?(2_T9Phuh+yZ1%BBg;Upt`rujE&V$NF1pTh`Y%xKRhhq6>c zZ;_X?c=9wwimfw&X8&3eSy@>u?^OD|3& zQYuM8%Ny#Xw zk3N7&Ojn+Iyh_Ic`e-C$zvwO*os%3zX(jAt8X0sxY*PC!j0u){3oY>_G>|ejt94rF zFCZ{7V)HOO)JBwT4;+gu>Q_B*k-H`v(p9e3z@*f@3lQW340|5uUIhijb5H#|K<7?n zXTl|opeoR;pv@s&M*wWtN&(x0PXMT+0k%Ex7~amr)lyE?#u_o?N+qO$BzsbO*JsrP zbVG_7gM-)^u7Kc$70!QehHdB#!4q|vo|eM=sZ3OnFAbGHz$V0YSx}rPxE4p)u|VA) zutn3}7FdL*E8+p0a8C+I%jc__&_r?Tw6|XdF;|nb6|ulBBoZBMfmiT^V=EM4Uj%-s zm)2?b{2AhLRg#Nr^+!lY9YOh@2EVsGuoe*f(mAe$t3+=JEg0Fsh%640h(;CRa-k?4|q z42_;{;8FhERR?g>K^7&$QXNv}y1Ty-=qd-Q4(-P#jGAs~_wHmF{FzvsaVymYS*X%}bV z)tHG!MLt~D{kvCO6b<@PIevHqi(#&zu+kLn_~SkmG(kHHi&k|%Tv-c$&mr%IcCc68 z%kY#LU$KX82=KxEA5T7l9E?Ni!v165u_H8Z{skrT@gr(`VfxTaHb1^HX)C|lwG%n9 zY5OB%Mr@CsM&q(w-fH|bsD-I%^uW^inc1=5;x`7qh)$qh#p%H=_WH8e*`u7e{$8%r zc5C4tz|U;mRp`V&gO$-EPF!!qsUOMR{j&g@`*k4T$k_;FBfgG!s{***wqZWLts6L- z`SILk0DWK|l7M_j*lmaF<#_JJ1`$^Jxs`~Qa`sHf5FtB3op@i&3a=DM2o3S8CB6V! zqfM#>7osm3@RCj0s1*CH6MI5g;LwR_h8*l&Q9#b59jdt;X0d83C0KIF!b>jhMV)>0 zp1zA)-_KrloKy8M1XWUspZAGvSXHz>%bFEiwvzJfbmVJU%vMqZUeP&U~!jg+i77TPjisRJ0`|`1U zwEF4jJKXtrrYyFn6p|?_*_^=Ntl0K4r1+ihwx1T>1vHy?{hMc1 z#|*(BP}SkAdXH1G=1CkabQLF#4f_!mtbaReq3@b1@4!bn@t;Z|XO>R<+98-$cRp zfSYgo97UT00Tmz$p1mkr(&zkB=qQ6dhu}LT4>N6b5)=wV*yMoj>2pXAnWv*63aQ4; zq%bxhcil&mLNQ(xU0v7+D`q0dFN}xT)(Co{__V8m!$^Y6PkP$0|94D|P3>Ey_L_F7 zPh>3^9Xu3yrGJoiCp}$eIB^9#Z7SuZ6|hmzVHQJLS$|DCDF+i10EA_~W;w6)shP2D zr7`Txmc(`>3bq`sPbIUkk)svLE=v1g7d?HBI87Q5EcFuF>cWdZ=FNcg&igT>F&<-v z@z|uNG57^Guibx1C{eIJ0c(*ym(o?FHQA5yxz0PEB>U1+wCnsKGh#2$Z!Y65*nG7D z6FWG~DL$up)b%M&^STK%Tfft6WllV>Zz|jp$#tFPF`}$>g~c$Zl1;E6I8Svv8}oV2 z@0`!{t%VLf>8h=CpdZO=!brY>FWh*7p*(Wv53xxXDI6oeCo(hk!c1<%bE8h(G>eWw zKFRV_8D=(+_BJQ>8`gu*%Tc$Fr@R&vhSs#x`#It}xSJKubGE?m^>N@J^F7(L;HrnS zv~paM5Cc||=Th*gD-bxhH{jfo^kZ%0Pq)68y)4hE+5%@X93z$!%ii+Hq;?N{$0iQE z$t1c$;2Ws#wB>${kL`i4;=w-ygYq_AevK|~NG)f31!xb-uEmEpN@Am0O4>%Z#I`&l z$3VW8w6SyU!v!AR4uUU&(9IsX z!~4)3+esAEA(|+dkMM!v*;YF?N)rVk7Wb?Q;}6Y-!{!5Fj){V7)WL?zFuBR{#4+eb zQ=Y;Y{kBZCsg$|;a|Q**Xb58rW3D0G1pqLXr5S62JKP>9N2nQ_jTjljdLCD2 z^Y#9w>^V8emF#_&jsR**anY;T2&TPlfr+T+7s0VeLjf*?>mKdc2p| zd<65*JM6?39B9Q0-uM+qY0TJW#&IjFaQ z)I`Ax?@&yb`61=RT3|u20}#zGJ?r@A+3Sh(G`;e}+AA&)-zaG-vQ@%-? z0}k*_T8yAYiGt_;0YcFjx-rC>D0mWSeuNH2m2~yUe<))i{mX`LrvutW6W|_`~>{IowYUeDe`(=Hqp`z}FCQ-t9!c zUW-`Q4E4$f@GIoo@xdb*&2u(QauGSk}N-{@1f8-io5ljU8 ze+AgKJbVpw!{w@ob>dse-S{*o?L*C}7J7L#d{Uy|-8Y3IKeQ>IfpT@}5#5UM_FA9> zWnQ!AmuuncwgB zstXSQ!>xu;%sxJwyHQh!_<)PHed$do)q2~q8y14Ur=J30zCR{EE6AY9=@%SJuV2lHWmi{ z9Q80P2-_qiuuN6L7%*|oaX^izL!1%(V{SVJGzgUQfjv&%kM<*kO}=d_@+tCcQ~E_w zer_VWYwJYH-tjEir6Bbw@;y`9j|@|rX5e7^Q|j;2Nsn+hO#Qngk?5I4*2gJgA%OIu z5}D{lB+}k9AwTqiY6IHWwTG*bi1&g*>aPcV>eY;NCD$)09Y-w$G(xsKgMi1OC>0gji*;z<;;4`p^;GW!~2cP-z^OEZ>8wH-v)89yl zg$l<(5-q0l=FkxUBSxhDE=kv#?Fuyk#)J-ob4^}y3$))o)-fI`-w$diF4`{Gi7`=QcD9S!li!(c>w-usZb+ zwh_g6#aSZC?JoROIv$V&dN0!_@-tK1+KuPNfJE&*IIT*Nu2SSy!P>1)*D0!Y=_>|( zj-gNcLJh(E`M^m zEPaNIcE3xEskI4;d&N%Enq;?d=p}CeQ&$Y zDzK~&qN|a|wJT|Nv8_isQE)uk;Hy5orxVimbV9gffdp=5lz5myVTC6eBx<;DxmU4m zj3kMIdk{r-DcCNxqWcp;32b1W$vVUipG&RQ zAgPx~Sl!(67g^oZ={>rUdG}+}j{4Ash{GU@SvJTgmOjas@v`7l@Y|Yk4&~p=CHa6a zrYuK+3>t;*Yq;Eiv1Jt+bYjR$nex?3mOE9plaoHUSom4rRIgMrFk>E*oZZQ=Q`EYN z7P0R#I@814%?at=MXe8JtwouhdFqKz4_!H<^vORw!Kh-4dIi_L1_n~)(2ajH0f4`e zLBR-tT(2swYF@H4+9>?CE+3N}#blHD%WXUGm4k5fWm03A`m~!mf+=}1nUGfK=B(&= zH47bq-pe+7(jjj~s)|h!rlmRR2_yzI$CvX5&M#~ye&~VMp_TZwVraNgl) zbSVAXK8b=M0nEKxAIU*U(=MJka9`Z+%b-&5ze~jNX=65I!hZ)22R{scI7pw{bp7)f z5vRQVfCWYj|5~?>@xi&ucj0Ax532i4O0)d5a_q2i{KOGns#&<`@P3~eu&J$}x=q6m z+gySOwkNyQ5_lh7Y4tDG_2sK2L6wJ88VVnLVEs@?5Y)kV0;?G(35m|M8Xl<^v`qHh;UoZ27A3Y=x+XY)$VdkYGC1?y%!IC zavVZV%e3ns1jf8IpGFhg0;`e8Qr9Am9+9_(HUm;#z5>&v{qrR=5_Rt*Y$yzJK7<{g zH_^kO{EOU@xgamTPKwnXXar?vU`2{K1AaBi8V+PTP(xby4jNAs{2NzPTlZcNJ%|V5 zp&tpPy32(@|H55*&~X?p*a87YXBE?h(a$Cd+D+w)-R3o6SSx-;(^cvg_~{y<>EbtP zNEgoGbJQtB8e3OL!N~oeiBQ3+t&|*2WBn!DeI==u{mG=vd3OYk1ebrt$jzU5PW=0Y z>uKq$b~lP90`VV^a9j&mQvuD1%r0FaGRuL?F4&js$>o_+Df@b|Y-+L$8wN{W7JcNc z;jB_7ySYt(o%FQY--C->jl+qR$aP{*B??BOhJ!awpz6zzA93^F`aSdaF#kM%{)@=R z#U19K$~l^&-+s_@p?JXpss9L@-o6FAwIm8Q|62^{RB0}P=BSZ4`J}2&IZ|XeY0uJEwl2oYDVS)pr4ZY|eVMYtQYK~pKZoK&Hq5r*bJFxSG@U4zfi|UL z?0MWtNfewcX|VebkiX`|yfw?=MmhP-%3FhX3ls3Rp?4leq5_Fuzg`-9y!HJddDr05 zQX=uVT)SCZGWpZtS@G;}-Wn_y6Y(<>B@ZlskQbLuo?9A@3|l;-Ex#o8>)6BZcDC*v zlXuO50K$*U#7hozrtun3-WLPN*i+Di(=pl+I6Ln3j8 z?)HaVxT2qkuhti@021VCi+50HVZ6vF%Uk5>doprNrj|ff5akkFy*Oo=WyQn8=_`46 zOO@-Q*(e$*McEW@g$n8XDYVxL2X_^<1*4XqfY`6Z!o-eM7OG5o3_g6rme`iAA=-Nh zE9fl4C%|docFs*?ZPixt+}DJ3fWnvGH=H*Imx6i4alR9;E8GR?V(fuCdB=%=E-|AG z*A`!2T-r7fH!q#|yuZwfy)q+y7M5n6FMuk(0AGvcd1-9M)p${DnG>7!cl9M0HVeWi zV8$kHh%cUu{w5zMsVX@QrPoemDPFvj&F{Q5MAV=vEu z>p9wee~-7IMzzFBA1|D`r)fm&gX8v2jXZ8Q4NE*yGWGeUR}kc_{vA}5c%-!WVHSz>zF~UyPFSjzqzW&l|wi z0CeKBo|5ZBxcULVL+_6Lf?0oHgaZ^N$2Ry~mMHk?UM&Ir!SY$SDfdoUTl9V>hRX#Q zM{hv!w36#5LLvtcZ*106W${_KTOG(l!@xwi5Z(}}GkAEZ8c=|kg=>>&7BApQt9kc7 z!zY?$jZmUsim7pruCW~|)6KSYLaB*@gHgU3x>=#i@5d#yyw!D*Acp)z!CpC=&s#mo zg^15vC~czg3wXB%PI*QH@cxpGB5jl4&={Okq9$?YqGsOxGcK6=NOa%WtcIyiEgLp; z)-R{N*M!d(%+l1bq3fif=q?Y>{nBt zS(+Q$GWE1=P5UIaOntoRt=POr;w5-DWm`6wy$mgE9|t#Xm9%9S&Wb&%r9fqab0hYa zoxqeRcm$``tJ_QSX1tXs_~mmPGq+JHAbT@X9@~JtSbD?e4g{Du zh=+%S@H`0*K8yLpo0^a1-9hJTm$X5r<=G|pY-~wec$D1w=STlyrP(%6jCM1!m~ry| zRo6#1!-ZSU<&O=Gm5s7jy-{0VJ#*w1H*<*2tdCUJjoiYGH8eSjCMMfd7?;r>u;(^v zZFXTQ=8|Zn#zkTnN{jx&i625s;@EUV>>WMF30tk#q7NMvJ2Vcum4&+7?E%?U9ry)D-uek8<`F!)8T!FS`j;$u3$Pp znQlZnnimUf`5`7L9a(LGO^CRX8R`neXk%2+Eg9mLh+5i8NAb0+(Zg0Q*fb2p_r-aZ zTYHGsauTng8)v~2W2^yL#|l|Pa2E}c?SYZs)Z4S$0|CSU<&nyY!Eu(AFT)+~1q1r` zcW9Vc;6=n*JF?pXPb1>;;8wA6D12Nt>Ryu1k{@f1vO1kDuiDPYPP}VCONt?B30K+F&`fzwbD5a1~SY_|nYOa}%} zLp!H2;IRjr9k&xzoM{ZB2W=0$`wfe`^JwvH#9BK-ZGqj0&<*3@fHVCvcup*S!~gl0 zygx>#C0)?BO9JmS2Jc#Kgrp)p>^-Dx+a<=m{tPmoO~hnG&8P;b9WyOE^Tr ze_-59jC)PO=Ouhx!UrY%frJ|+93k)NoaeD_?wl^U0ndGU75PTX`Yxi{+pxh)@yGnpv(Hr^gx zkN0+4M#`1oqV!gh63*D(tdLs1xBv9T<1L_1t$oLB?F-5o0;tpag1U)N zbCN>L)M6}t7o?%~yxl8Zv03Hni6lr;G#@IKk&ao7>e(Jz$P6D;=e*|;okB-u_^^r$ z2!BYu_>cbMkI$-6j}3qx!rwdq_}HwVdT2oK75GL{|LKp-s!*E-1Rqjs2LdlWQq9X$ zC6m75aeh%mEzQ)$Li6O?8L`*%?we(+_ul;=u^xB&ZO==jmcQUD_e#{MzT6b!K|-K{ z@>>bB@CyG7{Il=_VKeZ1i8G30vrdvXDEV3)eg(q1fu9PWQ4yP0j`yj;>PZkxYJwg$ z>DUc^oA_f{lO9`D%rCghtClHTBuML-l}(pLmjIZ#1NsAJ3J)Bk{+N&2e@XG%|g6N%9{bR7&UEcKJuD@i`Z>^>@|Y;BIGpyej+~d zIuZXZu%;uu1ph_RUM*l&Aa6c$7g%#q(tx@e{~VKhqIHrr!J35s7@mla%1*Q<1Dc#v z0h(=8BfVUBSON@9z?u5@3Cg#wp{la3I<>h^Jhkw=%TwBLkjlruJyWuHNnpT#UY)7^ zslVq8w}CO^OXvP`?C_AAmS@Z2)HE`CvipA9OWp9;$QoJDL)I#8mjyrsSv!7rYwY6*7vi1Pwm4yk*ji z{x|=*{wDY_@l!ZQMDB^?B*ZAcmgyhO{?_-i{=$+v%)=Hgsa&o}@bp#s(b~`NXZ?k< zDw{8_rq!gj-_pKkJiJ|DVTy zKkK8<)8xE9Fa99e-L0EY#{QdsmX=2iW?2m=AZo`>4SVuW_{Nu z_9UO+|E0>O$fRBQ*d|R}|4DzYd_o_RzJ;@^o1=ARvI@p%zqF5#^U?ZGxS#dY+jskK zdq3-^>%#3no&BtzZV$_Wko_ez^CR-#&-&^9!{fi7^?T&M=lThDczcoNZ|Q+n3uX31 zzJ9v+=G9+b->|G6TR2tKjgi`hdQ)(hsn;+%bG_nfjrYM%WiG$8l6yc+l`HJ}>ScCa zb^T=#x+L$fr}eT6@CmNpQud47_R^pK3+v-_o_b67cb~$=F>~&W*(Gz&n{AiPoHN&+ ze%|ca^TKmyl#X@FkFaK9w`+zq+bY5HJUngu=+R8&Ted|#V>g@*;SSG+?JLkEW@s}FU92fa=T$MwyW#M zUs2uEV4Jm+i{l9FwMK!P`?`&2pDk;8Z0x~SB2|xE?g1xDZKNBJQ;C11s{xRgBhKAo zTj1-h@zxc>72%qJm8tI3yHq6i5sm#fHZ<4zymAum6SUW8q_z%Q@5#0@#r`|(H7Yj5 zlL79^59H4suf&IlN71#r`^_roU)w8B6|^mP*LZNT9zUNq3hucx&8F` zI>S8sqPgARo!bX|aE@+2G*>@wnx~)b=4s8>>0O~V=`gxw@2R+)ZZMHA1rq7QyS1+=c)kbO> zq7jo-i?g6woGV@7!{B1d{M7jCqSfs5Gvrg4UN@Jbt~-V%B5(hlBZD3@DQ?T zi}??nM_t_n+n!qkg7ANohf@Hrw3}oGO?(6)rM_B=s;lZMn+)N0Lw&UeRMk+wls^pw z)MUzE$@N#Ml`HK#C>NcJ7GbRW+6H;Py1TsMbEp z4lY0ItYfC;j+kD9!$+AB5O2exYS7}+wE}{L_osF%A-F2A382qGZ*XJegh{PEVralT zcL_~N@O(&lx(d+tucwr$rk<*&5{MPbOxirfDFVN=dT~P&*ohbkdzPMpAf+AC-4;TP zK-ycgmOHQs?lF(G&MCerQn|}r9N=y1$hqIjM1?UB`W|k8#BAy4U4mFwVKU_8f7m{@M(>H5v;O4oV1+BCKVd#!Gw zhq`oywsX%xp)Y#vb@K(xI2{d)C`Ip`VxNYj{Ea9PTM;)@A6;@Ox<5On+lgG{Q)~n8 zK1R$zPx0lBC|R@!q%}`L&vaq<{FwOhqm=l#X8hNPe^)F*z<=gH16h*nQIN~P2avTF z>T&Ka^W15k)@RK4XPz!$norkp8$BeK&DM0|WnCXD?v<{Up2zQ5U4-VT@fzKCM{8mG z)9*b}Jcm0tVr}EC-(B>sUSxcBP0TYN7s|3^z3!PvGCz2OmP4m`x+RyQ|M6#Wd2fP0 zgUg@5<Xv`J|G@R$x#-a|0Xf6KlmcoIdNR+Xd;8;Bp%%00 zCFtGbt!2{sc=#uJrE26bybQU`m~ruT#CTvl5h4GPlAhYALGlf0lo^gN`c=!Dbn?l zn$qcXUAowN$`6;GNjX6*wU{?l%U-O%g;17@;p2UdS+DK08`hmV-!{)~<)08e-P-9R zBj3;$G|!NEhRw6WJo`Y?uj0BJ#>!G1R}ZYU_&2vE%bL4D3&JfMh5XU@_Y%rpGG#~( z{tZfCPy&Mz7?i+&s094OnYup93NOmy*-xL;5~9Wjx7-(JW#V%G_|w9ShwzX1GyVB< zH=*wHfWui*CeV~Tj!Aoba5>dkRyr-LK%6c%KRs+G)1N=L1$AqH7iU+QKvVLDBGux9 zy9@E2X!2KN8{~z5e)`yMZ+|S^8$@J&X?L^%@fWuy8CeV~TLgZYQgd5|F6Og#vKR+GBKlscF0CIRiQ(SF6)As zK%jvJIz~Ps3!TZwgpA~4oSB5sN;_J#YGpg6tWCSx4hRTXG`ec3r8a(b(Ta^qeX=dK zX*YFk7i+e4E!_v({k`{|6DC7Y)OMeJ*5rBq_y68=-}9dLyyu*IZ|0tR&#et#Tl^8S z@N9u!>SV6IuhW{F?~B-T^L1(~|I4mfP}kDX(ISu5n3NQ3^L5T@3bxg?tl>x7HT50A zmc}(*mzB+I4Agg=UN^dKR;aPwal3Tc5E{ifisW5vuBT-*O0n@=9b1Z$0G2- zi$GPu$nlf9|G|sMSdHH<0**|F$_()=c)UZ6Pv$&_%Cq*JYJAOEAxE}TW#?yx921>t zV*dD$!^!=z9GCQPW@y?)X)51wo@FEPx>COh$$i_L6HxlK4mBC5%v|*$hbnP9ozC&aIZKj=VILH$Nvd-fMe)%D$9YqkX9vADX83rQCoN*ZL>GQ-$5Y0Fsh4mKex~wpK5f_7GxiN@J62!ZYWKwnQR$0k zvn>S9T+ei?FYb0;!SH?bMTF z%EVms9?*JQ=@SyeFnYRf!+qvL`b=2&At_th3j0#G`>nDc9xmHD7PgNawvN3pe9ZVh zVr-XEzVXMf?h6jn7fn5e`;zX1y6uMhoal+4lD|gxMX_(}osN_3=QD=HuCTFZ{7PkA z{Ty~$=);kj()vpE|@=Ob!o`oB6e zf04B^voO6-otOD3RkD18L#+lS^=vkSZB)Zg&zbXDM(t|o=@{1STWS|M>X@iq1h zn|!jLul=ckWqj8#z6~2a6KAtO*{LR%P8`1GPI9NIa~x+|_d3!)c5k%KXZJx50cUOx z!QxC7a5|q(Q|CFq#0zQ3eM@|{Z4?aK__b~0chDa!8w0~O#)*wfN3k*7FN~k2|CoKL zZYGV7e7bz* z_)PkijHy{^YU(dc%M(|rQICmXimOoYyGs;J9Z}Wb!4)Jb#pO%=o%A zO%*z(sHxls$e$y19Gm`W?CQ3)>PVlGc9^tD>UcKWlscL`hRroTweIG)VG~cY|8{kk zbFJ31+K+n!@oAU%RB|ud2gR>kFGH8>MUC^@r~Z#%^;bDZn(_?G7_H$PQ{Yqu;VJex ziT-hlp7Brk0b*@pmdz=LxDNMw6LX_)$~heyJ!xYZ-+Dhe_FFz9vERy8$KK>IHYKmb z$o%gi$4f_^U!J#YymZor$(w3R=QVx|$6;conz%emO)NW0Z2P4j&B$=7jA*9nyO%Hg zgPhOer=)|_G{;$K>a6)`A-Vp^-;A7emGefr%D`sqKBYbns!e{e+c?fj+fMqL5&6+eEz6P4jWA)I!6uzo^qUg2>LHO}yS z_H!L7SGd5T3T}WY*D=ANCXhBsj*<4#>vsC~2e}n`NGbPucI;49`hL?pDT`aSdRx~? zdfCHt1K`!V7a`vWt{Ek-vEj&fsC;Z#JYO^W<0SotlYaasb_T!2w*jyvEPs}b8mHIf zo%Z1jHKFVl?lEt&?lE&F^W1>zqx?-PK1<~{enI7z-O4@RP1Zf%h~pp5BwxA897qqP z`JG-lHlV9KBg?6>%C1oA5#A*Q)z{kxW{BaGG{=-IHKj3IO<6upO({dJkzYRWRpLs$ zrb(Mn&!alNWsfPf1PoCxVN2J(pZ8krw}ZTr2cFh4UbQs-$T8XRk|Sp*dmyVXvlnl@ z(r3lrc&^T$mm$A-3}yFa^=A6*v>DU0)bzo0H8naxO<10zGRm@*`@2f51qC-aETtK2 zQ`4-zgTIy!Hze_7euxp@qz}n)=?lV>9BNX%)|36@zV{2gZ&;3-J}PyV-y5XeO?oQV zr`WsUzj%c9|FFYiso-#*lQJc*@!4>WgKr;@o}H$$AI}VB_$3$n z=Qz|k^{{Tc_srs>*w=l*!5!QyCuRmF~FYAVO2ulk)@&lnfFIf5>GmfXyPqsSU zV#8x;>2{HNntjbkCx;1Pb;k-wgs&1kguWh?V%`ba+xT(_KhTy$ivjQp8- z8wJP<80*P@dF;rXANfnxOP^#Vjo6sEO38W`oijqk+Ie2*Z63uhDJj+8@w%Sfqv*@2 z?d|G#YUyJsCIY6NoL{i#5=ra@$8UA06F`xEH~nE8tQ3<)h%~+Fk`*uveeq#OEyJk(_p%D#vWkTj z%RKx_KlW!LFj`#8i+zjavz_&Ik$}gJSxW1f+@rUP$sgq9WnWvn{dS!vsR7=`=4k%N zyMn%8TT^>-2RiA(nDhaTK*GhhV`p$rE%RfFl=7OKe()r6FMJ5ZvDpW|3=+r#@N1wOc?foLt=WT|2VV?& zkUj8Xa0uB8-vWA(6Yx*K0puZ=kG-fKp1bD3L%_o`RbI|i8$c8}F`N2ka4x!Tn{{g)58SGrbOaYL?(~c1Qr81?C@bqK=p2{1D9-d&i;cjpYJH7C4 zfI{X)Om(pUJ07?Ogecb!?*#`)?}gt2Zk~ST{S9S-DN+_(!w0;!VJ8l62gT_3z<&gT zq`UrBsSfZe`f>Ov5R-br)tB?m1vW$QbD)g8LvYpKQ7(1#!%KK`y9YTASI(ncbYk!z z@M1^t6XjyCjXL__2EJH*GiCL_KLLYc6YiT&o1!1*1<{WzB0k7{@YNq)A2jD9f^GHMN!~X@!BGhY%QZqp_cHHpiK`&(`;NJs3`gtE$>hC}yHofo# zyaIe2*$;09bHpFG8@SLw_ucWPMUq8GN+$R3Rz2HgY zK6r8sF(j`Wo(G1IJ@BKTQ2GX3vx2@v`VhQ&rBaO&TlhZEg4_%L?JA{eDc29LtEFDZ zJ@B5@d^Zo-{rAKSRHN^O*8(>__~BM?2XYAB1RfMW;Vqzxa^vuw;5y=*fcJx1(tF_V zf)k|o!iT{TsTce**o-^?zXp25fA}r1lXPAJRuh1q^gMVvh)O?%XM&^n>4xWlDs(*X zQqYa;h1Y_MX5d1}uKtBN=1e?+C zgTL0m_n2wlJ~*S1c0$Jm&jeZ0Uhq8d26jB~QqYW!7hVg}Da#MHf@4w^ya^mcj=@_% zI?rL^@SUKMaue`=P>I|Fe-{)Y_rixk4EufX%b-~L9{d_Oip~)H7FZ*7=tD3PRv4yt)g?=2qAM|nF>xHv}^d&jxz>7g2zWL!VgMQ=${4{tKc>tb# z4dWfz1+M^Ilof*S0S8F$g)`UFH$(@X2{vQj4L=2TG7)VE{#*-nC%p&$WGnrg^f>%0 z(1Of|57e;`=N;spYnA#T$P*vn--5<4I$_QspbQ_pa1az@GX&oP29e|NUa%Sc9{4D@ z4tWSJjc`sw_QIXuAaV?T6ci%&!C6t-4%r3Qf@%82@t`-@7 z3>+1Gxbg;krjCC2-@yse^FGJ<5G*I2A^29%LV6s2Lm)bvIi-MO$T9f)pqn@kz~8u$ z>nw5~JnkmyiO(*033yh@f_H$U5?lCBAjbw_mx2Lo`r%FBRpdClA5@{!3m*rA602M3lR(j4Zup!n+((Ihc=A6m28n|k zUJs5_#~57uMby!W!>@os?5ns^p8(fU-w^yQ@F02n;B&sj_!T>FJ-Cf>L+~@;o5%z3 z$G39NAnEWkU<&#J@V|YTYo+Af#`9=UE$t3(28E=@;r0JWd*DwGd<0}smjQUv?etH4 zbHR0B8}?)HAb1d2eTDxKz)s{iJlM_HLErOL>H-qf#SecTtPve}56F_T;F7P=j>N$->4sMUH`f9`ob`3;i;f4r z1uRESz`p}6$a&vT>Piqr4#8VME#)TQ=fE1$2jFE1;zN1}c5J5~lkSE;3)awA6R>v& z?LvAC{+qivpW{ymF5XE!#UFUP$fWnezXOfvt6iMi!5q@#@Cgv2EZ1(vFSr@m3*QB* zkbB{YdnpgO2YwhF;oQ;-KL?H?55TX3JH-AzrSgFb`!2WvxRGPJOEF7l0GbU;N_qN*$;09QRF!MjO-&1!2M4#mXTfG$7gU5IRwxD7y27= z4E{2>133ZDJ;az29r&|P;{$RZT=xtIf2_!%z4Xa6sfAVjt{5_Q2189%R+WIT_4Bj=}pu7jiHB zG6*3L!LH|tHL@FC2)dEI@I#;(xexv$h#}{_K>WeYq7QEbRmgF8+l!o|kO$!PM;L>W z4u21Lko(|?Kcan+UGSaY1oi5L$G^mQlyvwi@CNB|xTv2#CU)STgI;9yuS(^Deq=ZN z66llkA1ie>7?5=M8E_nV2rm7JqOqwLycOgj_rgB~F61FN>nP(6IS-x*s*pW!1Mnip z;N74Wxd-kC9^@hT?_Va)q62>qG$Z%HQ-4aFk-cy?=tAy+r~Qm`7qSQ50Nlt4_{0GI zBl~|&9S7-e$i46rzogF~=exLS$iii=hNrSl%uuLl%~I z3!0II?+3Rb%N*ayg*@y0G;Inm0JU7ZW$tJM9F+gv;JZMabeU5AB6yPPkxUIwo6bC} zPvHlA2}oc^-Un&`#r$s~@A!NftU;FdcAfy+kmXgIH^B*HdE@2+ki&IB=KU=JU7XWo zUZ2e6dk|ST1`Z<2oV~AarV-fhXMj-14_PF|x<_k5? z)g1bfef*P}Ycwy?e3|AV&3T&t`-q+Ir<$MCe6Qwi&7aX+uX&l~%QY8jR+^8!Xxn{3 z^P`&gXx^$hrn$xJYrp=i!FwOZe)>bZ9tSmlO><0hqvjILgU{Le3C-1-b2Yzk*goE^ zd6wow&)VtN>Gr%s^Fhr=HUClbYRw*!Rmv|1Z>>qxsD~JN+fi4{QFq z=53m9)g0A4OY>^Y^EJ=W?AP{-_5S;E{yk*Q{R@{{qsK#`=J}d4H6MS$j_ZKtCpF)s zxkdA8&80eDsouXpbAjd@%}Vo|I=;Ww+^_kN=5K1=srl=guh97~(BMx2)iQ>9`5)|GPNpf^wd*nNf1W;>)`jo!C%E4{bTaKW(h`qzPnM+jN$Na= z-e`Yg=kL*?@|RB=JAa>9jK|L3XBMY3)fzj0pJ}Ato!$+OMZvblMZs_+DxdPN;1?$= zWm%w0Cme8oED&X7)CT>fdVV`gt8TArtPa+P>%tq!@$rQ<%NAB&QfjXs{nr`gOaiOx zSl1l&4bQZT*i-GUuBfVAtq!M^uWN5_^aR@@_FOS*me`dG=QGoe!>T>4ys4#bU1Ssm z$*vY@D?puPw!qXkEsPHZEEnyJtTI)NS zJe4cTi)G0SUo>17j7B__w&(Wt%7qmbRh2Rm@K?5lw)bMex5T?}ex>DzI*gq_G!o?- z-@~Se%R9SKTji4}iTN4j(crtvI={lZuwtdDc)MNm)0S82k%)gWy*%6~(J|T1z{Qc} zymNr%97 zewm5P8Ruk9=}Px(nck=+O`g@#zk=!IbkKM2j~JO7AA3A?cu!8s>;jV)#CSjN3Dz+ z$@>-2z$ssQlP}CNHi1(#wuy#JCpPPF_!?N-Wmt_;mR_}Tfp>P9yHYQD@AEC_>RQAn zIs;X8ZH=tvQ$~+s_D5?&Xd_QpMQUyD3@}X$i4iMrLi;#vG@d-i`5M|qx9F7g#sIy) zeWP+HDP(zbxP8OIlgmS1Zk5s;W{#I7wTAdb6&nkDkx-x^*u>e1wR*%Qo-mJ^&Rkjh zM61r%We?AM_35&GEx`yrpUd%vj<76+bkc8CI9e*TVR53aC?65>`8pfIQ6HB9dsP>? zP{_hAtC)b8dd!aAD%Oe6N0KfTvb@8}1vM*{EnmEJA+h((wxge%W~aLW_IGFa_Hbvl^K+bQcI_(FBkP^?VH@At$s9IdQhR}%=ehodTEIUa;j0TpsuL?E>SfVPdCS@9NdHe8j^`rEfXv>1SP?U%+(EaqNq*b@KukQ%S zEOc4BWno)1%!vFqIkGYsjw3STzp&K)x&!J`AMmqKLT})B&y#@>Qx(Q|5jOAsUji+QzUi1qcRwgPGT$TTeSuB{Rnqgi_HQz zfvc+NJyn=fKelW|>j+Y4F;nJOsp}=h9`I&Rt7{~!nk9Lx1+REookr%6wG@(CVabcE z#W^1pJzaUx;5k}`ZUC#|Jfn1orgrSz-Lj5pk44~pM__Ksy3MKk_f8u5{njP#u%GJC z?$<}=Pdz@i|9>e0JgdeX5F6>0{Z$_KDCy(Uc~*~d=sz9m_R)W$9BJwUzW4ffzBjkL ztCa;C1K|jl=6OZ4XSs`90Tz*Naoi~oe%8tYi1Ixw$jV<1vge#M0B zxpk39ptYVwLov`6nOD>iZo53v&>UdN%bBe~S#h+zDLRu|vCHcst+P637qNh5Td;}S z?v=@8lLu;25S^3Br;eIO25}10QlyKnM4oV3$dc(m^F23smk>P{M zhZkD6VpO|2&>3i9`F6JRis~YZ+dA9V2f{_Jj$lQD+)2zUYN~6A1d6Vh`_Wj}BLw>~lYA;(5gfyi<-<|AQL=H}i|Aebzly_Z-^azyHGp8h=rdu#W0@9p1Puy4*j&%UaCp?zKZ zV*BFzy7wjaDX&9SQcfSX2e!YueQ5jf?P^EK4)+c(<@hNnw4-ZB?Oy-h=Dnf4U3(>G z!G8DtIruw($3yt6{LC4`hU*^pJ^p(`_o}#kEsJeGfW?9xp1Wdq^)c^OKFBo%Qi;5T VE8$Lf68?njj{S{A;DZ=}{{aLua54Y@ literal 0 HcmV?d00001 From 35fbc9b5b04d3086ebb00b53c0da349a9555aec0 Mon Sep 17 00:00:00 2001 From: Lo-Lap Date: Sun, 8 Oct 2023 13:38:26 +0300 Subject: [PATCH 5/5] adjustments have been made with the processing of the input of an incorrect expression --- .../Calculator_main_v.final/calcul.cpp | 48 +++++++++++-------- .../Calculator_main_v.final/calcul.h | 17 +++---- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/Calculator_main_v.final/Calculator_main_v.final/calcul.cpp b/Calculator_main_v.final/Calculator_main_v.final/calcul.cpp index 7fba5c3..5fcc09f 100644 --- a/Calculator_main_v.final/Calculator_main_v.final/calcul.cpp +++ b/Calculator_main_v.final/Calculator_main_v.final/calcul.cpp @@ -1,14 +1,5 @@ #include "calcul.h" -template //template, because we have two stacks of different types -void calcul::clearStack(std::stack & s) -{ - while (s.size() != 0) { - s.pop(); - } - return; -} - calcul::calcul() { oper_priority = { @@ -74,6 +65,15 @@ bool calcul::validation() return true; } +template //template, because we have two stacks of different types +void calcul::clearStack(std::stack & s) +{ + while (s.size() != 0) { + s.pop(); + } + return; +} + void calcul::readthread() { char c; @@ -123,12 +123,19 @@ void calcul::readthread() { while (operation.top() != "(")//we perform operations in parentheses { - oper(); + if (function.find(operation.top()) != function.end()) + { + oper(); + if (operation.size() == 0) break;//if there was a division by 0, then the stacks became empty and it is necessary to stop the cycle + continue; + } + expr_incor(); + break; } - operation.pop();//remove the opening bracket - std::cin.ignore();//extracting the viewed symbol from the stream + if (number.size()!=0) std::cin.ignore();//extracting the scanned symbol from the stream, provided that there was no stack clearing due to an incorrect expression if (operation.size() != 0) { + operation.pop();//if there was no division by zero, then the opening bracket remains in the stack and it must be removed from the stack if (nonstandart() == -1)//checking that a non-standard function is valid { deleteStacksEr(); @@ -143,19 +150,24 @@ void calcul::readthread() } } +void calcul::expr_incor() +{ + std::cout << "Expression entered incorrectly" << std::endl; + clearStack(operation); + clearStack(number); +} + void calcul::deleteStacksEr() { std::string s; std::getline(std::cin, s, '\n'); - clearStack(operation); - clearStack(number); - std::cout << "Expression entered incorrectly" << std::endl; + expr_incor(); std::cout << "To continue, press Enter" << std::endl; } void calcul::processing_oper(std::string c)//processing of the received options { - if ((operation.size() == 0) || (c == "("))//in any case, the opening bracket is either at the beginning of the stack, or we put it on the stack on top of other operations + if ((operation.empty()) || (c == "("))//in any case, the opening bracket is either at the beginning of the stack, or we put it on the stack on top of other operations { operation.push(c); return; @@ -200,9 +212,7 @@ void calcul::maths()//to process all raw operations with numbers } //there is no processing of functions from plugins as we consider them as soon as we met, //so that complex expressions using non-standard functions can be correctly calculated - std::cout << "Expression entered incorrectly" << std::endl; - clearStack(operation); - clearStack(number); + expr_incor(); break; } if (number.size() != 0) diff --git a/Calculator_main_v.final/Calculator_main_v.final/calcul.h b/Calculator_main_v.final/Calculator_main_v.final/calcul.h index 984c4df..0780045 100644 --- a/Calculator_main_v.final/Calculator_main_v.final/calcul.h +++ b/Calculator_main_v.final/Calculator_main_v.final/calcul.h @@ -22,19 +22,20 @@ class calcul std::map oper_priority;//mathematical operations priorities std::map > function;//correlation of a mathematical operation and what it does dll_read dll; - bool check_neg(std::string c); - void oper(); - int nonstandart(); - void deleteStacksEr(); - void processing_oper(std::string c); + bool check_neg(std::string c);//checking whether the number is negative + void oper();//processing of a single mathematical operation + int nonstandart();//working with non-standard functions + void deleteStacksEr();//clearing stacks if an error occurred when evaluating an expression (exception handling) + void processing_oper(std::string c);//processing of mathematical operations, namely checking for the emptiness of the stack and the priority of the mathematical operation + void expr_incor();//clearing stacks when an expression is entered incorrectly template void clearStack(std::stack & s); public: calcul(); - bool validation(); - void readthread(); - void maths(); + bool validation();//checking exceptions from dynamic libraries + void readthread();//reading an expression from a stream + void maths();//perform mathematical operations and is responsible for the output of the result to the console ~calcul(); }; #endif \ No newline at end of file