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

Seriy1994

New Member
15.01.2013
0
0
#1
Помогите пожалуйста!! Дано задание :

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

И код к нему:
C++:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"

struct ololo{
int A;
int stepenX;
ololo* next;
};
ololo* head=NULL;
ololo* AddNew(int a,int stepenx, ololo* head)
{
ololo* Nhead=NULL;
if(head==NULL){
head=new ololo;
head->A=a;
head->stepenX=stepenx;
head->next=NULL;
Nhead=head;
}else{
Nhead=new ololo;
Nhead->A=a;
Nhead->stepenX=stepenx;
Nhead->next=head;	
}
return Nhead;
}
void PrintOch(ololo* head)
{
ololo* cpyh=head;
bool Frst=false;
while(cpyh!=NULL){
if(cpyh->A>0 && Frst==true)printf("+");
printf("%d",cpyh->A);
printf("*X(%d)",cpyh->stepenX);
cpyh=cpyh->next;
Frst=true;
}
printf("\n");
}
ololo* dif(ololo* headP)
{
ololo* cpyh=headP;
ololo* cpyq=NULL;
int znm=0;
int d=0,f=0;
do{
d=cpyh->stepenX;
znm=cpyh->A;
znm=znm*d;
f=cpyh->stepenX-1;
cpyq=AddNew(znm,f,cpyq);
cpyh=cpyh->next;
}while(cpyh!=NULL);
return cpyq;
}
int _tmain(int argc, _TCHAR* argv[])
{
int z=0;
printf("Введите длину многочлена ");
scanf("%d",&z);
printf("Введите %d коэффиценты:\n",z);
int* massA=new int [z];
for(int i=0;i<z;i++){
printf("A %d = ",i+1);
scanf("%d",&massA[i]);
} 
for(int i=0;i<z;i++){
if(massA[i]!=0){
head=AddNew(massA[i],i+1,head);
}
}	
delete[] massA;
PrintOch(head);
ololo* headQ=NULL;
headQ=dif(head);
PrintOch(headQ);
getch();
return 0;
}
Нужно переделать на такое задание:

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

rrrFer

Гость
#2
5. Ну а те, кто не хочет что-то делать самостоятельно, должны понимать, что работа людей стоит денег. Даже самая мелкая. А потому, если вы готовы платить за решение своей проблемы, то так же указывайте это в своей теме. Что-то в духе: Нужно решить такую-то задачу. Оплата.