Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 32

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

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

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

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

Надеюсь на вашу помощь!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2013, 23:57
Ответы с готовыми решениями:

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

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

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

6
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
15.01.2013, 00:25
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
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 32
15.01.2013, 00:29  [ТС]
Wolkodav, Спасибо большое!
А ты не мог бы ещё пояснить, что ты здесь делаешь, а то я что-то не всё понимаю! Небольшие коменты написать какие нибудь.
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
15.01.2013, 00:36
Ну 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
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 32
15.01.2013, 00:52  [ТС]
В общем, у меня такая ошибка выходит:
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
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
15.01.2013, 00:54
А вместо lst-> polinom впаяйте. Эмм и top в структуру добавлять не надо. Это функция для листа!
0
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 32
15.01.2013, 00:59  [ТС]
Извиняюсь, что-то я немного подлагиваю. Что надо сделать поподробнее, если возможно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.01.2013, 00:59
Помогаю со студенческими работами здесь

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

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

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

Рекурсивная обработка списков
Напишите предикат, находящий минимальный и максимальный элементы списка.

Рекурсивная обработка папок
Всем привет!!! Подскажите как сделать перебор папок for /r C:\test %%i in (*) do ( echo Name files %%i copy...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru