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

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

Восстановить пароль Регистрация
 
StelSvip
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 24
18.03.2014, 10:26     Калькулятор выражений #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);
        }
ну и соответственно это в цикл. Но не выходит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 10:26     Калькулятор выражений
Посмотрите здесь:

Вычисление выражений C++
C++ вычисление выражений в си++
Написать калькулятор логических выражений на С C++
C++ Вычисление выражений
Вычисления выражений C++
Калькулятор с парсингом арифметических выражений C++
Калькулятор для расчета сложных выражений C++
C++ Калькулятор выражений(строковый) через бинарное дерево

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
18.03.2014, 12:13     Калькулятор выражений #2
C++
1
2
3
4
5
while (is_digit(symbol))
{
    // копировать часть выражения (с числом) в другую строку
}
// перевести полученную строку в число
Yandex
Объявления
18.03.2014, 12:13     Калькулятор выражений
Ответ Создать тему
Опции темы

Текущее время: 09:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru