Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
#1

Вычислить значение выражения, используя стек операндов

03.05.2013, 10:50. Просмотров 1056. Ответов 4
Метки нет (Все метки)

Дано арифметическое выражение длиной до 30 символов, заканчивающееся знаком равенства. Выражение содержит знаки операции +, -, *, / и однозначные целые числа и представлено в обратной польской записи. Вычислить значение выражения, используя стек операндов. Язык программирования С++. Помогите пожалуйста
Пример: 345+2*63/-+ = 19
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2013, 10:50
Ответы с готовыми решениями:

Вычислить значение выражения используя стек
Помогите с заданием пожалуйста... В текстовом файле записано без ошибок...

Используя стек, вычислить следующую сумму выражения:
-cos(x) + ((cos(2 * x)) / 4) - ((cos(3 * x)) / 9) вот код стека. Но не могу...

Вычислить выражения используя односвязные (стек) и двусвязные (очередь) информационные структуры
Помогите пожалуйста. Даны x,y,z. Вычислить a,b, если:...

Вычислить значение выражения, используя классы
Помогите написать код по классам в с ++

Вычислить значение выражения, используя функции
Дважды вычислить значение выражения, используя функции возвращающие void и не...

4
Issues
430 / 365 / 149
Регистрация: 06.08.2012
Сообщений: 961
03.05.2013, 11:01 #2
http://ru.wikiversity.org/wiki/Обрат...еры_реализации
0
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
04.05.2013, 18:23  [ТС] #3
Здравствуйте. Помогите с прогой пожалуйста.

Дано арифметическое выражение длиной до 30 символов, заканчивающееся знаком равенства. Выражение содержит знаки операции +, -, *, / и однозначные целые числа и представлено в обратной польской записи. Вычислить значение выражения, используя стек операндов. Язык программирования С++. Помогите пожалуйста

Пример: 345+2*63/-+ = 19

Прогу сделал, но почему-то выводит не тот результат.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <stdio.h>
#include <iostream>
using namespace std;
 
int Chislo ( char text [], int *i )
{
    int c = 0;
    while ( text [*i] >= '0' && text [*i] <= '9' )
    {
        c = c * 10 + ( text [*i] - '0' );
        (*i)++;
    }
    return c;
}
 
int main()
{
    char text [80];
    int i;
    float opd [3];
    char opc [3];
    int pr [3];
    int j = -1;
    cout << "Vvedite verazenie: ";
    gets ( text );
    i = -1;
    do
    {
        i++;
        opd [++j] = Chislo ( text, &i );
        opc [j] = text [i];
        switch ( text [i] )
        {
            case '+':
            case '-': pr [j] = 1; break;
            case '*':
            case '/': pr [j] = 2; break;
            case ' ': pr [j] = 0;
        }
        while ( j > 0 && pr [j] <= pr [j-1])
        {
            switch ( opc [j-1])
            {
                case '+': opd [j-1] = opd [j-1] + opd [j]; break;
                case '-': opd [j-1] = opd [j-1] + opd [j]; break;
                case '*': opd [j-1] = opd [j-1] + opd [j]; break;
                case '/': opd [j-1] = opd [j-1] / opd [j];
            }
            opd [j-1] = opc [j];
            pr [j-1] = pr [j];
            j = j-1;
        }
    }
    while ( text [i] != ' ');
    cout << "Rezultat: " << opd [0] << endl;
 
    system ( "pause" );
    return 0;
}
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,212
Завершенные тесты: 3
04.05.2013, 21:55 #4
Числа все по условию однозначные, а Chislo делает число из нескольких символов. В 45-й и 46-й строчках сложение вместо вычитания и умножения.
0
tyreu
Заблокирован
11.09.2014, 17:09 #5
а что такое opd и opc?
1
11.09.2014, 17:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2014, 17:09

Вычислить значение выражения используя функции
Здравствуйте, здесь я пытался сделать программу, которая подсчитывала бы...

Используя цикл for вычислить значение выражения
С клавиатуры вводится натуральное число N. Написать программу, вычисляющую...

Вычислить значение выражения используя функцию
Здравствуйте!Помогите написать программу. Вот условие: Используя...


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

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

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