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

Калькулятор выражений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Правило использования функции, которая возвращает массив http://www.cyberforum.ru/cpp-beginners/thread1122575.html
Необходимо задать функцию которая возвращает массив. Вот пример программы которую я написал: const int N=100; const double A0=1, h=0.01; double *Progonka(double *A, double *B, double *C,...
C++ Запрограмировать математические суммы Вычислить суммы \sum_{k=1}^{N} \frac{1}{\sqrt{k}} и \sum_{k=N}^{1} \frac{1}{\sqrt{k}} , составить таблицу результатов для N=10 в степени i, где i=3,4,5,6. Сравнить результати для разных типов... http://www.cyberforum.ru/cpp-beginners/thread1122572.html
C++ Сгенерировать последовательность 10 000 случайных чисел. Найти сумму этих чисел, проводя суммирование возрастающем порядке
Сгенерировать последовательность 10 000 случайных чисел на промежутке [0,1) типа float. Найти: a. сумму этих чисел, проводя суммирование в последовательном порядке; b. возрастающем порядке;...
C++ Могут ли два приложения пользоваться одной и той же выделенной памятью?
День добрый! С помощью FileMapping, в ActiveX компоненте, создана область в памяти куда копируются объекты (текстуры и файлы STL). Эти объекты содержат указатели на элементы созданные в выделяемой...
C++ Должны ли все изображения (негативы и позитивы) быть в серой шкале, а не цветными http://www.cyberforum.ru/cpp-beginners/thread1122520.html
Обучаю каскад утилитой opencv_traincascade - должны ли все изображения(негативы и позитивы) быть в серой шкале, а не цветными ?
C++ Структуры. Выбрать и вывести пассажиров указанного рейса. Выдать ближайший к заданному времени вылет 1. Задать структуру для хранения данных и написать подпрограммы, выполняющую заданные действия над структурой данных 2. Создать массив для хранения переменных (объектов) заданной структуры.... подробнее

Показать сообщение отдельно
StelSvip
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 24

Калькулятор выражений - C++

18.03.2014, 10:26. Просмотров 465. Ответов 1
Метки (Все метки)

Здравствуйте. Есть функция в калькуляторе принимающая значения. Не могу додумать как заставить ее работать с двухзначными и более числами. Нужна помощь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int parse(char* expression)
{
    TStackElem* operands = NULL, *operations = NULL;
    for(unsigned int i = 0; i < strlen(expression); i++)
    {
        char symb = expression[i];
        if (symb >= '0' && symb <= '9')
        {
            push(symb - '0', operands);
        }
        else if (isOperation(symb))
        {
            int operationCode = getOperationCode(symb);
            while(!isEmpty(operations) && getPriority(peek(operations)) >= getPriority(operationCode))
            {
                doOperation(pop(operations), operands);
            }
            push(operationCode, operations);
        }
    }
    while(!isEmpty(operations))
    {
        doOperation(pop(operations), operands);
    }
    return pop(operands);
}
Добавлено через 5 минут
Была идея:
C++
1
2
3
4
5
6
char symb = expression[i];
        if (symb >= '0' && symb <= '9')
        {
            if(expression[i+1] >= '0' && expression[i+1] <= '9')
            push(expression[i]*10.0 + expression[i+1] - '0', operands);
        }
ну и соответственно это в цикл. Но не выходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru