01net    Web


Actuellement en ligne : 1131 Utilisateurs dont 42 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > C/C++
> Programme avec des polynomes en C
Auteur
Message
 
<     1       >
skyman
  Manque d'energie ?!
  :-)
      ?   @     Posté le 17/02/2003 21:39:15  
Voter pour ce message
Bon voila je dois faire un programme en C mais je ne vois pas comment le faire, voici le sujet :





On considere des polynomes de la forme : P(x) = AnXexp(e1) + A(n-1)Xexp(e2) + … + A1Xexp(en) avec e1 > e2 > ... > en > 0



a) Trouver une representation adequate d'un polynome par une liste chainée.







Voila apres y'a d'autres questions mais a priori je pense que je sais les faire. Par contre je ne vois pas comment representer un polynome par une liste chainee.
e-deby
  Vendeur de larmes
  Groupe :  Equipe 01net
  :-)
      ?   ^   @     Posté le 17/02/2003 22:56:46  
Voter pour ce message
je dirais que chaque terme est represente dans une cellule, et tu chaines autant de cellules qu'il y a de termes



Maintenant cette representation depend de ce que tu veux faire avec
-------
buy it, use it, break it, fix it, trash it, change it, upgrade it, charge it, pawn it, zoom it, press it, snap it, work it, erase it, write it, get it, paste it, save it, load it, check it, rewrite it, plug it, play it,
skyman
  Manque d'energie ?!
  :-)
      ?   @     Posté le 18/02/2003 12:52:04  
Voter pour ce message
e-deby a écrit :
je dirais que chaque terme est represente dans une cellule, et tu chaines autant de cellules qu'il y a de termes



Maintenant cette representation depend de ce que tu veux faire avec





je veux pouvoir ensuite additionner deux polynomes, faire la derivee d'un polynome, multiplier deux polynomes.
e-deby
  Vendeur de larmes
  Groupe :  Equipe 01net
  :-)
      ?   ^   @     Posté le 18/02/2003 12:59:12  
Voter pour ce message
oui, cette organisation doit pouvoir etre interessante alors
-------
buy it, use it, break it, fix it, trash it, change it, upgrade it, charge it, pawn it, zoom it, press it, snap it, work it, erase it, write it, get it, paste it, save it, load it, check it, rewrite it, plug it, play it,
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 18/02/2003 13:05:03  
Voter pour ce message
tu fait une liste chainée avec comme élément le coefficient des x .

Pour les additionner un parcours qui parcours deux liste et en forme une troisième avec les résultats obtenu.
skyman
  Manque d'energie ?!
  :-)
      ?   @     Posté le 22/02/2003 12:59:19  
Voter pour ce message
Bon j'ai commence a faire le programme mais j'ai des erreurs :



j'ai quatre fichiers :



[code]polynome.h



struct Scoef {

double coef;

struct Scoef *suivant;

}



extern saisi(struct Scoef);

extern void affichage(struct Scoef);[/code]





[code]main.h



struct Scoef {

double coef;

struct Scoef *suivant;

} [/code]



[code]polynome.c



#include <stdio.h>

#include <malloc.h>

#include <stdlib.h>

#include <string.h>



#include "polynome.h"





//---------------------------------------------------------------------------

// Demande les coefs a l'utilisateur

void saisi(struct Scoef **p)

{

char s[20]; //Lifgne pour rentrer le coef

double a;

struct Scoef *P;

char *res;



puts("Rentrez les coefs :");



P = (struct Scoef*)malloc(sizeof(struct Scoef));

P->coef = 0; // init

P->suivant = NULL;



*p = P; // on sauve le premier



// double strtod( const char *nptr, char **endptr );



while ( (a = strtod( gets(s),&res )) || (!strcmp(res,"")) )

{

P->coef = a;

P->suivant = (struct Scoef*)malloc(sizeof(struct Scoef));

P=P->suivant; // on se décale

P->coef = 0; //propreté

P->suivant = NULL;

}

}



//---------------------------------------------------------------------------

// Affiche le polynome

void affichage(struct Scoef *p)

{

int i = 0;

while (p->suivant)

{

if (p->coef != 0) printf("%.1lf X^%d ",p->coef,i);

if ((p->suivant->coef != 0)&&(p->coef!=0)) printf("+ ");

p = p->suivant;

i++;

}

puts("");



}[/code]





[code]main.c



#include <stdio.h>

#include <malloc.h>

#include <stdlib.h>

#include <string.h>



#include "polynome.h"



void saisi(struct Scoef);

void affichage(struct Scoef);



struct Scoef *P;



void main()



{

saisi(P);

}[/code]









Et voici mes erreurs :

C:\Documents and Settings\Administrateur\Bureau\mini_project\main.c(10) : error C2371: 'saisi' : redefinition; different basic types

c:\documents and settings\administrateur\bureau\mini_project\polynome.h(8) : see declaration of 'saisi'

C:\Documents and Settings\Administrateur\Bureau\mini_project\main.c(18) : error C2115: 'function' : incompatible types

C:\Documents and Settings\Administrateur\Bureau\mini_project\main.c(18) : warning C4024: 'saisi' : different types for formal and actual parameter 1

polynome.c

C:\Documents and Settings\Administrateur\Bureau\mini_project\polynome.c(13) : error C2628: 'Scoef' followed by 'void' is illegal (did you forget a ';'?)

C:\Documents and Settings\Administrateur\Bureau\mini_project\polynome.c(14) : error C2371: 'saisi' : redefinition; different basic types

c:\documents and settings\administrateur\bureau\mini_project\polynome.h(8) : see declaration of 'saisi'

C:\Documents and Settings\Administrateur\Bureau\mini_project\polynome.c(43) : warning C4028: formal parameter 1 different from declaration

Error executing cl.exe.



mini_project.exe - 4 error(s), 2 warning(s)







Aidez moi ca fait une heure et demi que je n'avance plus. :cry:
Gautier
  2008, ...
  :-)
      ?   @     Posté le 22/02/2003 14:09:57  
Voter pour ce message
  • il faut des ';' après la déclaration de tes structures



  • [code] extern saisi(struct Scoef); [/code]

    il manque le type de retour



  • Qu'est ce que tu veux lui passer à saisi au juste

    [code]extern saisi(struct Scoef); [/code]

    la c une structure





    [code]struct Scoef *P;



    void main()



    {

    saisi(P);

    }[/code]

    la tu lui passe un pointeur sur une structure



    [code]void saisi(struct Scoef **p)[/code]

    la c un pointeur sur un pointeur de structure



  • Tu n'inclus nul part ton main.h







    PS : tu es obligé de faire ca en C et pas en C++

    parce que ce que tu fais est plus facile en utilisant une classe
    -------
    [Chaque minute qui passe est une occasion de changer le cours de sa vie]
    [Les préjugés sont les ennemis du bon sens]
  • skyman
      Manque d'energie ?!
      :-)
          ?   @     Posté le 22/02/2003 14:32:23  
    Voter pour ce message
    Gautier a écrit :
  • il faut des ';' après la déclaration de tes structures



  • [code] extern saisi(struct Scoef); [/code]

    il manque le type de retour



  • Qu'est ce que tu veux lui passer à saisi au juste

    [code]extern saisi(struct Scoef); [/code]

    la c une structure





    [code]struct Scoef *P;



    void main()



    {

    saisi(P);

    }[/code]

    la tu lui passe un pointeur sur une structure



    [code]void saisi(struct Scoef **p)[/code]

    la c un pointeur sur un pointeur de structure



  • Tu n'inclus nul part ton main.h







    PS : tu es obligé de faire ca en C et pas en C++

    parce que ce que tu fais est plus facile en utilisant une classe





  • Oui je suis oblige de faire ca en C !



    En fait je m'embrouille trop avec les pointeurs, j'y comprend rien ! :cry:
    <     1       >

    01net > Forum de 01net > Programmation et développement > C/C++
    > Programme avec des polynomes en C

    Aller à :

    Page générée en : 1.336s - X2board 2.2

    Nous contacter | Charte de confiance | Voir notice légale

    Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


    Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

    Widget
    Info, Sport et bien plus encore. Tout RMC.fr en un clic sur votre bureau. Téléchargez!
    Jeux
    Nouveauté : Testez votre agilité cérébrale dans 45 activités ludiques dont 15 entièrement nouvelles.