Polynomes creux [Résolu]

Messages postés
4
Date d'inscription
mercredi 2 août 2006
Dernière intervention
14 avril 2008
- - Dernière réponse : jolianomath1
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Dernière intervention
14 avril 2008
- 14 avril 2008 à 00:02
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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
1
Date d'inscription
vendredi 28 mars 2008
Dernière intervention
1 avril 2008
2
Merci
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

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de sasuke23
Messages postés
36
Date d'inscription
mercredi 27 décembre 2006
Dernière intervention
25 novembre 2010
0
Merci
faire travailler Google
Commenter la réponse de caiman125
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Dernière intervention
22 mars 2009
0
Merci
Apprend à écrire !!!!!!! et vice google !!!
Commenter la réponse de cs_omnia
Messages postés
36
Date d'inscription
mercredi 27 décembre 2006
Dernière intervention
25 novembre 2010
0
Merci
merci ,bonne remarque
Commenter la réponse de caiman125
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Dernière intervention
14 avril 2008
0
Merci
jolianomath





Répondre rien que pour répondre
Les réponses inutiles
Commenter la réponse de jolianomath1
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Dernière intervention
14 avril 2008
0
Merci
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
Commenter la réponse de jolianomath1
Messages postés
4
Date d'inscription
mercredi 2 août 2006
Dernière intervention
14 avril 2008
0
Merci
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  
Commenter la réponse de jolianomath1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.