Problème langage C (fonction polynome)
321iom
-
ydurce Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
ydurce Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis en L2 de mathématique, et j'ai donc j'ai un peu d'informatique tout en restant basique bien sûr =)
Donc j'ai un programme en C a réaliser, voici là ou j'en suis dans mon code :
http://wall.pastebin.org/157340
Tout se passe plutôt bien dans le programme, sauf dans la partie "ajouter un monome", en effet tout marche sauf si je rentre un monôme de degré 0 dans quel cas tout plante =/
Voici l'objectif de cette fonction (ligne 47), il s'agit de parcourir le polynôme pour y ajouter un monôme en partant de la droite du tableau, tout en classant de sorte que p.tab soit un tableau classé par ordre de degrés croissants, et qu'aucun des coeffs ne soit nuls.
Merci beaucoup à ceux qui m'aideront !
je suis en L2 de mathématique, et j'ai donc j'ai un peu d'informatique tout en restant basique bien sûr =)
Donc j'ai un programme en C a réaliser, voici là ou j'en suis dans mon code :
http://wall.pastebin.org/157340
Tout se passe plutôt bien dans le programme, sauf dans la partie "ajouter un monome", en effet tout marche sauf si je rentre un monôme de degré 0 dans quel cas tout plante =/
Voici l'objectif de cette fonction (ligne 47), il s'agit de parcourir le polynôme pour y ajouter un monôme en partant de la droite du tableau, tout en classant de sorte que p.tab soit un tableau classé par ordre de degrés croissants, et qu'aucun des coeffs ne soit nuls.
Merci beaucoup à ceux qui m'aideront !
A voir également:
- Problème langage C (fonction polynome)
- Fonction si et - Guide
- Langage ascii - Guide
- Langage binaire - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
2 réponses
J'ai fais différents tests et tout marche sauve quand je met un 0 en degré, je comprend vraiment pas d'où ça vient =/
bonjour,
l'algo de ajoutermonome n'est pas terrible.
la ligne 52 (nbmonome--) est une erreur, tu n'otes pas de monome, tu modifies son coef.
De même, dans ce do..while, le "if((*p).tab[i].degre>m.degre&&(*p).tab[i].degre>0)" a une influence qui ne peut pas être déterminé puisque le tab[i] n'a jamais été initialisé (à partir de nbmonome>0).
de plus tab[i+1]=.. explose la mémoire si le nombre de monome rentré est le maximum puisque le premier tab[i+1]=.. de la boucle (avant le i--) équivaut à un tab[nbmonome+1]=m et, si nbmonome=nMaxMonome, on est en débordement (+2) du tableau de longueur nMaxMonome.
ensuite,dans la suppression des degrés avec coefs 0, à la ligne 72 "(*p).tab[i]=(*p).tab[i+1];" , il faut "(*p).tab[j]=(*p).tab[j+1];"
A mon avis, il faut revoir complétement l'algo de cette fonction. peut-être balayer de 0 à nbmonome plutôt que l'inverse?
l'algo de ajoutermonome n'est pas terrible.
la ligne 52 (nbmonome--) est une erreur, tu n'otes pas de monome, tu modifies son coef.
De même, dans ce do..while, le "if((*p).tab[i].degre>m.degre&&(*p).tab[i].degre>0)" a une influence qui ne peut pas être déterminé puisque le tab[i] n'a jamais été initialisé (à partir de nbmonome>0).
de plus tab[i+1]=.. explose la mémoire si le nombre de monome rentré est le maximum puisque le premier tab[i+1]=.. de la boucle (avant le i--) équivaut à un tab[nbmonome+1]=m et, si nbmonome=nMaxMonome, on est en débordement (+2) du tableau de longueur nMaxMonome.
ensuite,dans la suppression des degrés avec coefs 0, à la ligne 72 "(*p).tab[i]=(*p).tab[i+1];" , il faut "(*p).tab[j]=(*p).tab[j+1];"
A mon avis, il faut revoir complétement l'algo de cette fonction. peut-être balayer de 0 à nbmonome plutôt que l'inverse?