Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 13.05.2013
Сообщений: 30

Очередь: Напишите программу сложения и умножения многочленов, представленных описанным образом

20.05.2013, 11:42. Показов 6660. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Здрасти

Многочлены вида , где можно представить в виде очереди, где каждый элемент имеет три поля: одно – для коэффициента ci, второе – для показателя степени ei, третье – для указателя на следующую ячейку. Напишите программу сложения и умножения многочленов, представленных описанным образом (реализация 6).

Реализация 6. Разработайте класс, реализующий очередь с помощью указателей. Методы класса: добавление элемента в очередь, удаление элемента из очереди, получение значения из очереди, проверка заполнения очереди, проверка пустоты очереди.


вот написал саму реализацию своей программы.

Вопрос , как создать этот многочлен? Ну, эмм я не знаю как написать 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
#include <process.h>
#include <conio.h>
#include <math.h>
 
 
using namespace std;
 
class Element
{
    public:
        float e, c;
        Element *Next;
        Element()
        {
            Next = NULL;
            c = 0;
            e = 0;
        }
};
class Queue
{
    public:
        Element *Head, *Tail;
        Queue()
        {
            Head = Tail = NULL;
        }
        ~Queue()
        {
            Element *Vsp;
            while(Head)
            {
                Vsp = Head;
                Head = Head->Next;
                delete Vsp;
            }
        }
 
    int EmptyQueue(void)
    {
        if(Head)
        {
            cout<<"\n\n\t\tEmpty it's full\n\n\n";
            return 0;
        }
        else
        {
            cout << "\n\n\t\t\tQueue is empty!!!"<< endl;
            return 1;
        }
    }
 
    void HeadQueue(void)
    {
        cout << endl << "\t\tHEAD QUEUE:"<<endl<<endl;
        if(!EmptyQueue())
            cout << "\n\nHead = "<<"C\t\tX\t\tE\n"<<"\t"<< Head->c << "\t\t" <<Head->e<<endl<<endl<<endl;
    }
    
    void ShowQueue(void)
    {
        Element *Vsp;
        cout << endl << "\t\tShow QUEUE:" << endl;
            if(!EmptyQueue())
            {
                while(Head)
                {
                    cout<<Head->c<<"*x^"<<Head->e<<"+";
                    Vsp = Head;
                    Head = Head -> Next;
                    delete Vsp;
                }
                Head = Tail = NULL;
            }
    }
    void AddQueue(void)
    {
        Element *Vsp = new Element;
        if(!Vsp) 
            exit(1);
 
        cout << endl << "\t\t\tADD QURUE:" << endl;
 
        if(!Head)
            Head = Vsp;
        else
            Tail -> Next = Vsp;
        Tail = Vsp;
    }
    void DeleteQueue(void)
    {
        Element *Vsp;
        cout<<"\n\n\t\t\Delete Queue:\n\n"<<endl;
        if(!EmptyQueue())
        {
            cout<<"\n\t\tDelete element:\n\n"<<endl;
            if(Head)
                Vsp = Head;
                Head = Head->Next;
                delete Vsp;
        }
    }
    void Menu(void)
    {
        int key = 0;
        do
        {
            cout << "\t\t\tMENU:" << endl << endl << "\t1 - ADD QUEUE" << endl 
            << "\t2 - Golova(Top) QUEUE" << endl << "\t3 - Empty Queue" << endl <<"\t4 - Rezult Mnogochlena "<<endl<<"\t5 - Delete Queue" <<endl
            << "\t6 - Summa"<< endl << "\tEsc - Exit" << endl << endl << "Press any key..." << endl;
            key = getch();
            switch(key)
            {
                case 49: AddQueue(); break;
                case 50: HeadQueue(); break;
                case 51: EmptyQueue(); break;
                case 52: ShowQueue(); break;
                case 53: DeleteQueue(); break;
                //case 54: Summa(); break;
            }
        }while(key!=27);
    }
};
 
int main()
{
    Queue Q;
    Q.Menu();
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.05.2013, 11:42
Ответы с готовыми решениями:

Напишите программу ввода, сложения и умножения двух матриц
Напишите программу ввода, сложения и умножения двух матриц

Подпрограммы сложения и умножения целых чисел, представленных в системах счисления с любым основанием от 2 до 10
1. Определить подпрограммы сложения и умножения целых чисел, представленных в системах счисления с любым основанием от 2 до 10. результаты...

Напишите процедуру сложения двух многочленов
5.17 Напишите процедуру сложения двух многочленов. Представьте каждый многочлен в виде массива коэффициентов, где Ai — коэффициент перед хi.

20
1 / 1 / 0
Регистрация: 13.05.2013
Сообщений: 30
22.05.2013, 19:46  [ТС]
Студворк — интернет-сервис помощи студентам
Привет

Вообщем сделал программу, но оказывается не то нужно было.

Там просто нужно вывести их на экран, в порядке убывания.

Например: 1*x^6+4*x^4+2*x^3 и тд

Вот точно же такую нужно написать, но я не знаю в чем отличие циклического массива от односвязного списка

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include "iostream"
#include <string.h>
#include <process.h>
#include <conio.h>
 
#define N 100
 
using namespace std;
 
struct Vspom
{
    int a;//для коэ-та Сi
    float e;//для показателя степени 
};
 
class Dat
{
    private: 
        Vspom s[N];
        int i,n;
    public:
        Dat()//конструктор
        {
            i=0;
            n=0;
        }
    void Add(Vspom);
    Vspom Del(void);//del
    int Pust(void);//pustoty
    int Poln(void);//polnoty
    Vspom Read(void);//неразруш. чтен
};
 
void Dat::Add(Vspom x)
{
    if(n<N)
    {
        s[i+n]=x;
        n++;
    }
    else cout<<"error!!"<<endl;
}
 
Vspom Dat::Del(void)
{
    if(n!=0)
    {
        i++; n--;
        return s[i-1];
    }
}
 
int Dat::Pust(void)
{
    return n==0;
}
 
int Dat::Poln(void)
{
    return n==N;
}
 
Vspom Dat::Read(void)
{
    return s[i];
}
 
int main()
{
    Dat pol1,pol2,sum;
    Vspom b,q;
    char k;
    do
    {
        //cout«"Menu:\n\n";
        cout<<"1-Enter Pol_1\n2-Enter Pol_2\n3-Rezult\n\n";
        k=getch();
        if(k=='1')
        {
            cout<<"Pop1:\n\n";
            cout<<"a=";
            cin>>b.a;
            cout<<"e=";
            cin>>b.e;
            pol1.Add(b);
        }
        if(k=='2')
        {
            cout<<"Pol2:\n\n";
            cout<<"a=";
            cin>>b.a;
            cout<<"e=";
            cin>>b.e;
            pol2.Add(b);
        }
    }
    while(k!='3');
    cout<<"\n\n";
    cout<<"Summa\n\n";
    while(!pol1.Pust()&&!pol2.Pust())
    {
        b=pol1.Read();
        q=pol2.Read();
        if(b.e==q.e)
        {
            b.a+=q.a;
            sum.Add(b);
            pol1.Del();
            pol2.Del();
        }
        else if(b.e>q.e)
        {
            sum.Add(b);
            pol1.Del();
        }
        else
        {
            sum.Add(q);
            pol2.Del();
        }
 
    }
    while(!pol1.Pust())
    {
        b=pol1.Del();
        sum.Add(b);
    }
    while(!pol2.Pust())
    {
        q=pol2.Del();
        sum.Add(q);
    }
    while(!sum.Pust())
    {
        b=sum.Del();
        cout<<b.a<<"*x^"<<b.e;
        if(!sum.Pust())
        {
            cout<<"+";
        }
 
    }
    getch();
}
Это циклический массив
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2013, 19:46

Составить программу для умножения многочленов
Составить программу для умножения многочленов.

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

Напишите программу, реализующую работу очереди. Напишите функции для добавления/удаления элемента в очередь
Помогите пожалуйста написать программу. Готовый Queue не нужен( Нужно изобрести велосипед заново. Задание: Напишите программу,...

Составить программу для умножения и сложения матриц.
В программе предусмотреть вывод исходных матриц и матрицы - результата. | 5 3 -1 | | 1 4 16 | A= | 2 ...

Будет ли работать описанным образом следующая ссылка?
Требуется создать такую ссылку, что переход по адресу, указанному в атрибуте HREF, происходил не по одинарному клику (событие Click), а по...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru