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

Тема в разделе "MS Visual C++", создана пользователем Seriy1994, 15 янв 2013.

  1. Seriy1994

    Seriy1994 New Member

    Регистрация:
    15 янв 2013
    Сообщения:
    0
    Симпатии:
    0
    Помогите пожалуйста!! Дано задание :

    Многочлен 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.
     
Загрузка...
Похожие Темы - Рекурсивная Обработка
  1. Seriy1994
    Ответов:
    1
    Просмотров:
    1.145
  2. Seriy1994
    Ответов:
    1
    Просмотров:
    1.221
  3. Seriy1994
    Ответов:
    0
    Просмотров:
    1.123
  4. Seriy1994
    Ответов:
    1
    Просмотров:
    1.017
  5. Firiat
    Ответов:
    6
    Просмотров:
    3.285

Поделиться этой страницей