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

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

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

Рекурсивная обработка списков - C++

14.01.2013, 23:57. Просмотров 356. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста!!! Очень надо! Дано задание, я весь интернет излазил 2 час думаю, ничего в голову не приходит! Как писать данную программу может кто строку кода скинуть или хотя бы предложения как это всё осуществить! Очень надо!

Многочлен P(x)=anxn+an-1xn-1+…+a0 с целыми коэффициентами представьте в виде списка, причем, если ai=0, то соответствующее звено в список не включается. Описать процедуру Absol(P,Q), которая строит многочлен P – из модулей коэффициентов многочлена Q.

Надеюсь на вашу помощь!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 23:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивная обработка списков (C++):

Обработка списков - C++
Помогите защитить учебную практику. Заранее спасибо

Обработка списков - C++
Программа работы со списками написана, для малых списков (малых по объему занимаемой памяти) она работает адекватно: список строится,...

Создание и обработка списков - C++
Даны натуральное число n, действительные числа а1,…, a2n. Получить: a1*a2n+a2*a2n-1+an*an+1. Написать программу на С++

Обработка списков: функции удаления и поиска элемента - C++
Надо написать функцию Void del (int value) , которая удаляет элемент в списке и Elem *searth (int value) , что в списке ищет первый элемент...

Хранение и обработка данных с использованием линейных списков - C++
Люди, помогите пожалуйста!!! Дали задание к курсовой работе. Сделать надо любое из двух (какое легче) но сделать не могу ни 1, ни 2 ...

«Хранение и обработка данных с использованием линейных списков». - C++
Вот мне к курсовой работе дали задание.Я не могу его понять, что от меня требуется. Что за система n на прямой? Чем координата от точки...

6
Wolkodav
607 / 460 / 32
Регистрация: 18.09.2012
Сообщений: 1,686
15.01.2013, 00:25 #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
#include <iostream>
#include <list>
using namespace std;
struct Polinom
{
int An;
int n;
};
 
list<Polinom> Absolv(list<Polinom> P)
{
list<Polinom> Q;
for (list<Polinom>::iterator i=P.begin();i!=P.end();i++)
{
Polinom A;
A.An=abs((*i).An);
A.n=(*i).n;
Q.push_back(A);
}
return Q;
}
 
void main()
{
int n;
cout<<"N=";
cin>>n;
cout<<endl;
list<Polinom> polinom
for (int i=0;i<=n;i++)
{
Polinom An;
cout<<"A"<<i<<"=";
cin>>An.An;
An.n=i;
if (An.An!=0)
lst.push_back(An);
}
 
return;
}
Как-то так. Делал без алгоритмов что б попроще было.

Добавлено через 1 минуту
А тьфу ты нуты, рекурсией надо, щя 5 сек.

Добавлено через 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Absolv(list<Polinom> P,list<Polinom> Q)
{
list<Polinom>::iterator i=P.begin();
if (i!=P.end())
{
Polinom A;
A.An=abs(((*i).top()).An;
A.n=((*i).top()).n;
i++;
Q.push_back(A);
Abslv((*i),Q);
}
return;
}
Наверное как-то так.
1
Serdox
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 32
15.01.2013, 00:29  [ТС] #3
Wolkodav, Спасибо большое!
А ты не мог бы ещё пояснить, что ты здесь делаешь, а то я что-то не всё понимаю! Небольшие коменты написать какие нибудь.
0
Wolkodav
607 / 460 / 32
Регистрация: 18.09.2012
Сообщений: 1,686
15.01.2013, 00:36 #4
Ну include- подключение библиотек
using- подключение пространства имён
Потом объявление структуры полином, ну коэфициент в полиноме
Потом объявление функции, она ничего не возвращает, на вход два списка коэфициентов полиномом. СОздаём итерарот он указывает на начала, проверяем не равен ли конец началу, если нет, до в Q-добавляем новый элемент согласно условию, ну и собственно говоря рекурсия. Иначе нам ничего не надо делать, мы дошли до конца.
Потом сам собственно говоря main()
Читаем наивышую степень N, считываем коэфициенты в список. Вот и всё.

Да и в функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Absolv(list<Polinom> P,list<Polinom> Q)
{
list<Polinom>::iterator i=P.begin();
if (i!=P.end())
{
Polinom A;
A.An=abs(((*i).top()).An;
A.n=((*i).top()).n;
i++;
Q.push_back(A);
return Abslv((*i),Q);
}
return;
}
То ли этот, то ли предыдущий вариант правильный, если честно сообразить не могу. Проверьте, какой-то из них.
0
Serdox
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 32
15.01.2013, 00:52  [ТС] #5
В общем, у меня такая ошибка выходит:
void Absolv(list<Polinom> P,list<Polinom> Q)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
{
list<Polinom>::iterator i=P.begin();
if (i!=P.end())
{
Polinom A;
A.An=abs(((*i).top()).An);//Класс "Polinum" не содержит члена "top" 
A.n=((*i).top()).n;//Класс "Polinum" не содержит члена "top" 
i++;
Q.push_back(A);
return Abslv((*i),Q);//Идентификатор Abslv не определён
}
return;
}
Если добавить top в структуру, то ошибка: Выражение должно иметь тип указателя на функцию!
И тут ещё:
C++
1
2
if (An.An!=0)
lst.push_back(An);// Идентификатор lst не определён
Возможно было list, но тогда отсутствует список аргументов для шаблон класса "std::list"

Помогите пожалуйста. Очень надо!
0
Wolkodav
607 / 460 / 32
Регистрация: 18.09.2012
Сообщений: 1,686
15.01.2013, 00:54 #6
А вместо lst-> polinom впаяйте. Эмм и top в структуру добавлять не надо. Это функция для листа!
0
Serdox
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 32
15.01.2013, 00:59  [ТС] #7
Извиняюсь, что-то я немного подлагиваю. Что надо сделать поподробнее, если возможно!
0
15.01.2013, 00:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2013, 00:59
Привет! Вот еще темы с ответами:

рекурсивная(( - C++
Proc67. Описать рекурсивную функцию MinRec(A,N)1|MaxRec(A,N)2 вещественного типа, которая находит минимальный1|максимальный2 элемент...

рекурсивная функция - C++
Описать рекурсивную функцию Digits(S) целого типа, находящую количество цифр в строке S без использования оператора цикла. С помощью этой...

Рекурсивная функция - C++
Здравствуйте. Хочу попросить вас о помощи, так как я только начинаю изучать язык программирования с++ Задание таке: Написать...

Рекурсивная функция - C++
...помогите пожалуйста сделать задачки... http://cs4734.vkontakte.ru/u26212689/96588963/x_20024bb4.jpg ...


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

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

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