
|
|
Auteur
|
Message
|
1
|
Manque d'energie ?!
|
|
|
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.
|
|
Vendeur de larmes
|
|
|
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,
|
|
Manque d'energie ?!
|
|
|
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.
|
|
Vendeur de larmes
|
|
|
|
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,
|
|
ex-deus
|
|
|
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.
|
|
Manque d'energie ?!
|
|
|
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:
|
|
2008, ...
|
|
|
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]
|
|
Manque d'energie ?!
|
|
|
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
|
|

|






|