Polynomes creux [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Statut
Membre
Dernière intervention
14 avril 2008
-
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Statut
Membre
Dernière intervention
14 avril 2008
-
BONJOUR TOUT LE monde c'est mon premier question soyez gentilset généreux

jolianomath
 Besoin d'aide à propos des polynomes  creux
 avec les listes doublements chainées   demande des exercices corrigé cours détaillé
tout ce qui concerne ce domaine et MERCI infiniment

logiciel utilisé est Microsoft Visual C++ 2005 .NET

7 réponses

Messages postés
1
Date d'inscription
vendredi 28 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
1
slt, je croit pouvoir t'aider avec ce programme. c l'un des tp que j'ai fait l'année dernier:
                     

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "poly.h"

// cree liste
   liste cree_liste()
      {   elem *pg=NULL;
          elem *pd=NULL;
               }
 
//monome crée_monome(monome m)
  {    short rep;
      monome m;
      m=malloc(sizeof(monome));
       do
        {       printf("le coefficient :\n");
                scanf("%d",m->coefficient);
                printf("le degré :\n");
                scanf("%d",m->degre);
                m->suiv=NULL;
                printf("continuez?(oui/1 et non/0) ");
                scanf("%d",&rep);    }
                while(rep==1);
                                             }
//inserer monome dans l'ordre deccoissant des puissances de x
     monome inserer(monome m,int d,int c)// m est le polynome=l
{               monome pc,pp,px;
               px=(monome)malloc(sizeof(monome)); //px le monome qu'on va inserer
                    if(px==NULL)
                          {printf("pas assez de memoire"); exit(0);}
                               px->degre=d;
                               px->coefficient=c;
                               px->suiv=NULL;
                               px->prec=NULL;
                               pc=m; //ponteur sur les coef dansla liste
                               pp=NULL;//pointeur sur les puissance
                     while(pc && pc->degre<d)
                        {     pp=pc;
                              pc=pc->suiv;
                                               }
                             px->suiv=pc;
                             px->prec=pc;
                      if(pc)
                         pc->prec=px;
                      if(pp)
                         pp->suiv=px;
                     if(!pp)
                         m=px;
                       return m;
                                                       }
//affichage du polynome dans l'ordre croissant des puissances de x
    void afficher_croi(monome m)
            {  monome p=m;
                 while(p)
                   {   printf("%dX^%d+",p->degre,p->coefficient);
                       p=p->suiv;     }
                                               }
//affichage du poly dans l'ordre decroissant des puissances de x
    void afficher_decroi(monome m)
            {   monome p=m;
                  while(p)
                    {    p=p->suiv;}
                        while(p)
                          {    printf("%dX^%d+",p->degre,p->coefficient);p=p->prec;}
                                                   }
       
//destruction d'unpolynome
  void destruction(liste l)
        {   monome px; 
        px=extraire_en_tete(m)
        while(px!=NULL)
        {free(px);
          px=extraire_en_tete(m)
          free(m);} 
         
         
                  
                 systeme("PAUSE");                                  }
                                              
                                            
                  
si tu as d'autre question sur les polynomex creux ,laisse un message.
et bonne chance
Messages postés
36
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
25 novembre 2010

faire travailler Google
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009

Apprend à écrire !!!!!!! et vice google !!!
Messages postés
36
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
25 novembre 2010

merci ,bonne remarque
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Statut
Membre
Dernière intervention
14 avril 2008

jolianomath





Répondre rien que pour répondre
Les réponses inutiles
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Statut
Membre
Dernière intervention
14 avril 2008

jolianomath





Voici le code et je ne trouve pas la reponse ou l erreur

typedef int Coef;
typedef int Deg; 
char affich[1000]="";
typedef struct polycreu *poly;
typedef struct polycreu {
  Coef coef;
  Deg deg;
  poly suiv;
  poly preced;
}*Poly;
const Poly zero = (Poly) 0;


Coef c;
Deg k;
Poly p=(Poly) malloc (sizeof(polycreu));


Poly init (Poly p){
p->coef=0;
p->deg=0;
p->suiv=NULL;
p->preced=NULL;
return p;
}


Poly creation (Coef c, Deg k,Poly p){
  Poly q = (Poly) malloc (sizeof(polycreu));
  q->coef = c;
  q->deg = k;
  q->preced=p;
  p->suiv=q;
  q->suiv = NULL;
  return q;
}


 void imprime (Poly p)
{
 Poly courant;
 char c1[1000] ;
 char k1[1000] ; 
 for(courant=p;courant!=NULL;courant=courant->suiv){
 _itoa_s(courant->coef, c1, 65, 10);
 _itoa_s(courant->deg, k1, 65, 10);
  if((courant->deg)==0) strcat_s(affich,c1);
  else {
   if((courant->deg==1)&&(courant->coef==1)) {strcat_s(affich,"+");
   strcat_s(affich,"X");}
  else if(courant->deg==1){
   strcat_s(affich,"+");
   strcat_s(affich,c1); 
   strcat_s(affich,"X");}
  else if(courant->coef==1) {
   strcat_s(affich,"+");
   strcat_s(affich,"X^");
   strcat_s(affich,k1);}
  else {
   
   strcat_s(affich,"+");
   strcat_s(affich,c1);
   strcat_s(affich,"X^");
   strcat_s(affich,k1);}
  }  
 }
  } 




Poly ajouter (Coef c, Deg k, Poly p)        
{
 
 if (c == 0 || k < 0) return p;
  else {
    if (k > p->deg) return creation (c, k, p);
    else if (k == p->deg) return creation (c + p->coef, k, p->suiv);
    else return creation (p->coef, p->deg, ajouter (c, k, p->suiv));
  }
 
}


void multiscal (int c,Poly p) {
  Poly q;
  q=p;
 if(c==0) this.imprime (init(q));
else if (c==1) this.imprime (q);
else {
 while(q!=NULL){
  q->coef=q->coef*c;
  q=q->preced;
  
 }
 
 this.imprime(p);


}
}
.
.
.
.
.private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) {


    c=Convert::ToInt32(textBox7->Text);
    k=Convert::ToInt32(textBox8->Text);
    p=ajouter(c,k,p);
    imprime(p);
    String ^affichage = gcnew String(affich);
    label10->Text+=affichage;
    
   }

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
    int c;
    c=Convert::ToInt32(textBox4->Text);
    multiscal(c,p);
    String ^affichage1 = gcnew String(affich);
    label5->Text=affichage1;


   }
j'éspére ke vous trouvriez l'erreur
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Statut
Membre
Dernière intervention
14 avril 2008

jolianomath





merci cher collegue de la FSR  mais il y a une remarque simple g voulu le cree en Visual C++ 2005
 c la ou il ya  beaucoup de modification et merci infiniment pour ton interet