Skip to content

ShuraFairy/Calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Calculator

Пусть задана строка, содержащая простое арифметическое выражение, в котором могут встречаться числа (в том числе с плавающей точкой, десятичный разделитель – символ точка «.»), операторы «+», «-», «», «/», «^» («^» – оператор возведение в степень) и скобки «(», «)». Строка может содержать любое количество пробельных символов и символов табуляции. Необходимо написать класс Calculator, который предоставляет открытый метод double calc(const char str); производящий расчет выражения, переданного в виде строки через аргумент str и возвращающий результат типа double. В случае возникновения ошибок при расчете выражения или обработки строки, метод calc должен возбуждать исключение типа std::runtime_error. В программе допускается использование потоков std::cin, std::cout, класса std::runtime_error из библиотек и , функций malloc, realloc, calloc, free, memcpy, pow из библиотек , и . Использование любых других функций, классов и библиотек запрещено (включая функцию atoi и её аналоги – функции преобразования строки в число необходимо разработать самостоятельно).

#include #include #include #include #include

using namespace std;

class Calculator { public: double calc(const char* str); };

Примеры выражений (строк на входе метода calc и возвращаемых методом значений):

Входная строка Результат “10.1” 10.1 “(10.1)” 10.1 “2 ^ 2. ^ 3.0” 256.0 “13.0 / 2.” 6.5 “((4.0 – 1.) / (2.0 – 1))” 3.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages