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

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

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

Дано арифметическое выражение длиной до 30 символов, заканчивающееся знаком равенства. Выражение содержит знаки операции +, -, *, / и однозначные целые числа и представлено в обратной польской записи. Вычислить значение выражения, используя стек операндов. Язык программирования С++. Помогите пожалуйста
Пример: 345+2*63/-+ = 19
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2013, 10:50
Ответы с готовыми решениями:

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

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

Вычислить выражения используя односвязные (стек) и двусвязные (очередь) информационные структуры
Помогите пожалуйста. Даны x,y,z. Вычислить a,b, если: a=\frac{3+e^{y-1}}{1+x^2|y -tgz|},...

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

4
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
03.05.2013, 11:01 2
http://ru.wikiversity.org/wiki... реализации
0
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
2818 / 1628 / 252
Регистрация: 03.12.2007
Сообщений: 4,223
04.05.2013, 21:55 4
Числа все по условию однозначные, а Chislo делает число из нескольких символов. В 45-й и 46-й строчках сложение вместо вычитания и умножения.
0
Заблокирован
11.09.2014, 17:09 5
а что такое opd и opc?
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2014, 17:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычислить значение выражения, используя циклы
Ответ не совпадает, думаю проблема в степени числа а. Можете указать на ошибку и как её исправить?...

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

Используя формулу вычислить значение выражения
Для заданных действительных а b (а&gt; 0, b&gt; 0) используя формулу,(скрин к формуле) для нахождения...

Вычислить значение выражения используя функции
Здравствуйте, здесь я пытался сделать программу, которая подсчитывала бы значение T = \frac{max(a,...

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

Вычислить значение выражения используя цикл for
Помогите решить. Из циклов можно использовать только for


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

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

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