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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
StelSvip
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 24
#1

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

18.03.2014, 10:26. Просмотров 488. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 10:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Калькулятор выражений (C++):

Калькулятор с парсингом арифметических выражений - C++
Народ интересует вопрос возможно ли сделать калькулятор в console приложении на C++ так что бы я ввожу строку например 3+4*2 он берет всю...

Написать калькулятор логических выражений на С - C++
Здравствуйте. Помогите, пожалуйста, написать программу. Реализовать калькулятор – программу которая вычисляет логическое выражение...

Калькулятор для расчета сложных выражений - C++
в общем вот что у меня есть Добавлено через 3 минуты #include &lt;iostream&gt; #define PI 3.14159265 using namespace std; void...

Калькулятор выражений(строковый) через бинарное дерево - C++
Создал калькулятор выражений, но он считает только целые числа. Не могу доработать чтобы работал на вещественных. Так же во время тестов...

Написать парсер математических выражений с функцией упрощения этих выражений - C++
Люди, здравствуйте. Есть такая задача: написать упроститель выражений. На вход подается строка вида &quot;a*b+a*c&quot;, являющаяся корректным...

Запись выражений, ввод–вывод информацииЗапись выражений, ввод–вывод информации - C++
Задача 2.1. Пользуясь только операцией умножения, вычислить (A в 7-ой степени) за четыре операции. Задача 2.2. Очистить экран,...

1
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
18.03.2014, 12:13 #2
C++
1
2
3
4
5
while (is_digit(symbol))
{
    // копировать часть выражения (с числом) в другую строку
}
// перевести полученную строку в число
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 12:13
Привет! Вот еще темы с ответами:

Простой калькулятор и калькулятор с парсингом - C++
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

Вычисление выражений - C++
Помогите пожалуйста разобраться с следующей задачей. Написать это нужно на языке Си (Linux). Необходимо выполнить вычисление трех...

Разбор выражений - C++
Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом: &lt;выражение&gt; ::= &lt;терм&gt;...

Интерпретация выражений на си - C++
Нужна помощь! Пусть имеется такое описание: struct { int x; char *y; } *p; Интерпретируйте следующие выражения в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru