Форум программистов, компьютерный форум CyberForum.ru

Парсер для математических выражений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
SFML Ввод текста в переменную (sfml) http://www.cyberforum.ru/cpp-beginners/thread1493472.html
Всем привет!Как в sfml осуществить ввод текста в переменную?Заранее спасибо!
C++ Убрать/скрыть окно консоли Всем привет!Я пишу на notepad++,компилирую через командную строку.Как мне убрать консольное окно?Заранее благодарен! http://www.cyberforum.ru/cpp-beginners/thread1493471.html
C++ ReadProcessMemory медленно читает значение адреса
while (true) { if (isRun) { try { ReadProcessMemory(ProcessHandle, (void*)TimeAddress, &Time, sizeof(osuTime), NULL); std::cout << Time << std::endl; } catch (const std::exception&) {} }
ReadProcessMemory медленно читает значение адреса C++
while (true) { if (isRun) { try { ReadProcessMemory(ProcessHandle, (void*)TimeAddress, &Time, sizeof(osuTime), NULL); std::cout << Time << std::endl; } catch (const std::exception&) {} }
C++ Вычислить значения функции на заданном интервале http://www.cyberforum.ru/cpp-beginners/thread1493454.html
Написать программу вычисления функции y на заданном промежутке с шагом 0.2 и построить график функции y, причем y={e}^{-(x+0.8)} при х>3.61 y=1 при x\in \left y=0.5x при x<0
C++ Заполнить квадратную матрицу натуральными числами по спирали Составить программу, которая заполняет квадратную матрицу порядка n натуральными числами 1, 2, 3, …, n2, записывая их в нее «по спирали» против часовой стрелки. подробнее

Показать сообщение отдельно
Renji
1753 / 1180 / 274
Регистрация: 05.06.2014
Сообщений: 3,398
05.07.2015, 19:52     Парсер для математических выражений
Цитата Сообщение от Мизантроп_Лол Посмотреть сообщение
Еще хотел бы попросить, если не сложно, оценить код, может что-то посоветовать, за что-то наругать, за что-то кинуть тапком и т.д. А то мало ли.
1) Осваивать чтение из потока stringstream. У вас явно тот же потоковый ввод, только через велосипед.
2) Нафиг enum, нафиг switch по ним. Каждая элементарная операция описывается объектом function, в этом объекте лежит виртуальная функция calculate, которая эту элементарную операцию и считает.
3) Через древо разбора функцию считать не удобнее будет? По крайней мере, не нужно будет ручками работу со стеком реализовывать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class function
{
public:
    virtual int priority()const=0;//приоритет операции
    virtual double calculate()const=0;//вычисление операции
protected:
    function*left=nullptr;//левый аргумент
    function*right=nullptr;//правый аргумент
};
class sum:public function
{
public:
    int priority()const{return 1;}
    double calculate()const{return left->calculate()+right->calculate();}
};
 
Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru