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

сложение двух полиномов, представленных в виде стеков - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
dl07
1 / 1 / 0
Регистрация: 12.06.2010
Сообщений: 14
12.06.2010, 20:12     сложение двух полиномов, представленных в виде стеков #1
Помогите написать программу сложения двух полиномов, представленных в виде стеков
a4*x^4 + a3*x^3+ a2*X^2 + a1*x
a*x^2 + b*x + c
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2010, 20:12     сложение двух полиномов, представленных в виде стеков
Посмотрите здесь:

Динамически струтуры данных. Даны указатели P1 и P2 на вершины двух непустых стеков... C++
Статические методы (сложение полиномов) C++
Обмен первыми половинами двух стеков C++
C++ Сложение двоичных чисел, представленных в bitset
Реализую класс очередь с использованием двух стеков.ошибка итератор dequee is not dereferanceble C++
Степени и коэффициенты двух полиномов C++
C++ Нужны советы как реализовать сложение, вычитание, умножение полиномов/многочленов и деление на число
C++ Организовать проект в виде двух заголовочных и двух программных файлов. Выполнить многофайловую компиляцию

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
12.06.2010, 23:57     сложение двух полиномов, представленных в виде стеков #2
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//Написать программу сложения двух полиномов, представленных в виде стеков.
#include <iostream>
#include <stack>
#include <string>
#include <sstream>
 
typedef double              T_coef;
typedef std::stack<T_coef>  T_coefs;
typedef std::string         T_str;
 
class T_polinom
{
    T_coefs  coefs_;
public:
    bool input()
    {
        int n;
            std::cout << "Введите степень полинома: ";            
            std::cin >> n; 
            if(n < 0) return false;
 
        std::cout << "Введите коэффициенты полинома: "
                  << std::endl;
        for(int i = n; i >= 0; --i)
        {
            T_coef  cur_coef;
            std::cout << "x^"
                      << i
                      << ": ";
            std::cin >> cur_coef; 
            coefs_.push(cur_coef);
        }
        return true;
     }//void input()
 
    T_polinom operator+ (T_polinom p)
    {
        T_polinom res_p;
        while(!coefs_.empty() || !p.coefs_.empty())
        {
            T_coef  cur_coef = 0;
            if(!coefs_.empty())
            {
                cur_coef += coefs_.top();
                coefs_.pop();
            }
            if(!p.coefs_.empty())
            {
                cur_coef += p.coefs_.top();
                p.coefs_.pop();
            }
            res_p.coefs_.push(cur_coef);
        }//while(!coefs_.empty() || !p.coefs_.empty())
        return res_p;
    }
 
    void print()
    {
        T_str  res_str;
        
        for( ; !coefs_.empty(); coefs_.pop())
        {
            std::ostringstream  out_potok;
            out_potok << coefs_.top();            
            out_potok << "*x^"                                            
                      << coefs_.size() - 1                      
                      << (coefs_.size() == 1 ? ";" : " + ");
            res_str = res_str + out_potok.str();
        }        
        std::cout << res_str;
    }   
};
 
int main()
{
    std::locale::global(std::locale(""));
 
    for(;;)
    {     
        std::cout << std::endl
                  << std::endl
                  << std::endl
                  << std::endl
                  << std::endl
                  << "Полином 1: "
                  << std::endl;
        T_polinom  p1;
        if(!p1.input()) break;        
        std::cout << std::endl
                  << "Полином 2: "                                    
                  << std::endl;
        T_polinom  p2;
        if(!p2.input()) break;
        
        T_polinom  p_sum = p1 + p2;
        std::cout << std::endl
                  << "Сумма заданных полиномов: "
                  << std::endl;
        p_sum.print();
    }
    return 0;
}
dl07
1 / 1 / 0
Регистрация: 12.06.2010
Сообщений: 14
13.06.2010, 09:00  [ТС]     сложение двух полиномов, представленных в виде стеков #3
Огромное спасибо Mr.X
Yandex
Объявления
13.06.2010, 09:00     сложение двух полиномов, представленных в виде стеков
Ответ Создать тему
Опции темы

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