Polynomes
Résolu/Fermé
scoutantho
Messages postés
50
Date d'inscription
jeudi 10 avril 2014
Statut
Membre
Dernière intervention
25 juillet 2016
-
10 janv. 2016 à 13:58
jamesleblond - 11 janv. 2016 à 14:27
jamesleblond - 11 janv. 2016 à 14:27
A voir également:
- Structure polynome langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Pascal langage - Télécharger - Édition & Programmation
- Que veut dire le rectangle en langage sms - Forum Nokia
1 réponse
paly2
Messages postés
254
Date d'inscription
vendredi 29 août 2014
Statut
Membre
Dernière intervention
15 février 2018
25
Modifié par paly2 le 10/01/2016 à 17:58
Modifié par paly2 le 10/01/2016 à 17:58
Dans ta fonction saisiePolynome, l'indentation est un peu catastrophique...
De plus, il y a visiblement quelques erreurs.
Lignes 44-56: Oublie la variable i dont je n'ai pas du tout compris l'utilité. Je pense que le code qui irait pour remplacer ces lignes serait quelque chose comme :
Et à la fin de la boucle (APRÈS la condition de fin), ne pas oublier de faire :
Vu que on modifie la valeur du pointeur saisie, au début de la fonction (par exemple juste après la ligne 32) il faut faire
Et comme selon les boucles de la fonction AffichagePolynome, le champ suivant du dernier monome doit contenir NULL, sur la condition de fin ligne 80 il faut faire :
Les lignes 63-79, ça ne va pas : il faut plutôt faire une boucle, style:
Pourquoi faire un getchar() ligne 89 ?
Et dernière chose sur cette fonction : plutôt que de demander d'entrer le degré du monôme, tu peux simplement l'incrémenter à chaque tour de boucle et juste demander le coefficient.
Pour ta fonction AffichagePolynome, je te propose ceci :
Pour détruire les ponlynômes, ta fonction ne va pas. Il faut faire free sur tous le polynômes un par un en partant du dernier (désolé, je suis un peu fatigué pour te faire la fonction...).
Quant à ta fonction InserePolynome, vu qu'elle est commentée "à modifier", je te laisse le soin de le faire (il faut en effet la changer) :p
paly2
La curiosité est une excellente qualité !
De plus, il y a visiblement quelques erreurs.
Lignes 44-56: Oublie la variable i dont je n'ai pas du tout compris l'utilité. Je pense que le code qui irait pour remplacer ces lignes serait quelque chose comme :
saisie->coef = A; saisie->degre = B;
Et à la fin de la boucle (APRÈS la condition de fin), ne pas oublier de faire :
saisie->suivant = malloc(sizeof(monome)); saisie = saisie->suivant;(je crois que c'est ça que tu voulais mettre à la place de "saisie->suivant = saisie;")
Vu que on modifie la valeur du pointeur saisie, au début de la fonction (par exemple juste après la ligne 32) il faut faire
Polynome.premier = saisie;et donc ne PAS le faire ligne 82.
Et comme selon les boucles de la fonction AffichagePolynome, le champ suivant du dernier monome doit contenir NULL, sur la condition de fin ligne 80 il faut faire :
if (fin) { saisie->suivant = NULL; return Polynome; }
Les lignes 63-79, ça ne va pas : il faut plutôt faire une boucle, style:
do { printf("veuillez entrer 0 ou 1 \n"); printf("0 : continuer \n"); //continuer à ajouter des monomes printf("1 : quitter \n"); // ou non scanf("%d", &fin); } while (fin != 0 && fin != 1); // Note : l'opérateur de comparaison est && (& est un opérateur bit à bit, c'est pour ça qu'ici le programme fonctionnait quand même).
Pourquoi faire un getchar() ligne 89 ?
Et dernière chose sur cette fonction : plutôt que de demander d'entrer le degré du monôme, tu peux simplement l'incrémenter à chaque tour de boucle et juste demander le coefficient.
Pour ta fonction AffichagePolynome, je te propose ceci :
void AffichagePolynome(polynome P) { monome *Monome = P.premier; while (Monome != NULL) { printf("%lf", Monome->coef); printf("x^"); printf("%d", Monome->degre); printf("+"); Monome = Monome->suivant; } printf("\b\n"); // On supprime le dernier + et on ajoute un retour à la ligne. }
Pour détruire les ponlynômes, ta fonction ne va pas. Il faut faire free sur tous le polynômes un par un en partant du dernier (désolé, je suis un peu fatigué pour te faire la fonction...).
Quant à ta fonction InserePolynome, vu qu'elle est commentée "à modifier", je te laisse le soin de le faire (il faut en effet la changer) :p
paly2
La curiosité est une excellente qualité !
10 janv. 2016 à 17:48
Pour allouer dynamiquement le tableau "monomes" de la structure polynome, il faut utiliser les fonctions malloc (ou calloc), realloc et free, que tu connais sans doute déjà (sinon une petite recherche sur ton moteur de recherche préféré te donnera des explications).
10 janv. 2016 à 18:54
11 janv. 2016 à 14:27
void DetruitPolynome(polynome* p_P);
cdt...