Accueil > Forum > > > > problème classe polynome
problème classe polynome
vendredi 24 décembre 2004 à 15:14:39 |
problème classe polynome

cricri nature
|
Bonjour, j'ai réussi à finir ma classe monome et doit maintenant créer une classe polynome. Seulement il y a 2 erreurs que je ne comprend pas. Pouvez-vous m'aider? //poly(cricri.h)
# include <iostream> # include <cmath> using namespace std;
class monome{ float c; int n;//nombre d'indeterminee int* tab;
public: monome(); //constructeur du monome nul monome(float coefficient,int MAX_IND); //constructeur float coeff(); //coefficient du monome int nb_ind(); //nombre d'indeterminees int deg_max(); //degre maximum parmi les indeterminees du monome int deg_hom(); //degre homogene (present dans le tableau tab) int deg_ind(); //degre de la ieme indeterminee void ind_pres(); //indeterminees effectivement presentes float evalm(); //evalue un monome a partir des valeurs //attribuees aux indeterminees void affichage(); //affichage du monome };
class polynome{ int nbm; //nombre de monomes int nbi; //nombre d'indeterminees monome* poly;
public : polynome(); //constructeur du monome nul polynome(int i, int n); //constructeur polynome operator+(polynome p); }
|
//poly(cricri.cpp)
#include "cricri.h" # include <iostream> # include <cmath> using namespace std;
monome::monome() {c=0; n=0;}
monome::monome(float coefficient,int MAX_IND) {c=coefficient; n=MAX_IND; tab=new int[MAX_IND]; }
float monome::coeff() {return c;}
int monome::nb_ind() {return n;}
int monome::deg_max() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<endl; cin>>tab[j];} int max=tab[0]; for(int i=1;i<n;i++) {if(tab[i]>max) max=tab[i];} return max; }
int monome::deg_hom() {int somme=0; for(int i=0;i<n;i++) {cout<<"Le "<<i+1<<"ieme degre est :"<<endl; cin>>tab[i]; somme=somme+tab[i];} return somme; }
int monome::deg_ind() {int i; cout<<"Indeterminee numero :"<<endl; cin>>i; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<endl; cin>>tab[j];} if(i>0 && i<=n) {cout<<"Le degre de l'indeterminee "<<i<<" est : "<<endl; return tab[i-1];} else return -1; }
void monome::ind_pres() {for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<endl; cin>>tab[j];} for(int i=0;i<n;i++) {if(tab[i]!=0) cout<<"L'indeterminee "<<i+1<<" est presente. "<<endl; } return ; }
float monome::evalm() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; float* val=new float[n]; for(int j=0;j<n;j++) {cout<<j+1<<"eme indeterminee ? \n"; cin>>val[j];} for(int i=0;i<n;i++) {cout<<"Le "<<i+1<<"ieme degre est :"<<endl; cin>>tab[i];} cout<<"Le coefficient est : "<<c<<endl; float f=1; for(int h=0;h<n;h++) {f=f*pow(val[h],tab[h]);} f=f*c; return f; cout<<"La valeur du monome est : "<<f<<endl; }
void monome::affichage() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; char* ind=new char[n]; for(int j=0;j<n;j++) {cout<<j+1<<"eme indeterminee ? \n"; cin>>ind[j];} for(int i=0;i<n;i++) {cout<<"Le "<<i+1<<"ieme degre est :"<<endl; cin>>tab[i];} cout<<"Le coefficient est : "<<c<<endl; for (int k=0;k<n;k++) {cout<<"Le monome est : "<<ind[k]<<" ^ "<<tab[k]<<endl;} }
polynome::polynome() {nbm=0; nbi=0;}
polynome::polynome(int i, int o) {nbm=o; nbi=i; poly=new monome[o]; }
polynome polynome::operator+(polynome p) {polynome s;}
|
//poly(test.cpp)
# include "cricri.h" # include <iostream> using namespace std;
void main() { monome m; m=monome(6,3); int choix=-1; while (choix!=0) {cout<<"Faites un choix:\n"; cout<<"1. Le coefficient\n"; cout<<"2. Nombre d'indeterminees \n"; cout<<"3. Afficher le degre maximum \n"; cout<<"4. Afficher le degre homogene \n"; cout<<"5. Afficher le degre d'une indeterminee \n"; cout<<"6. Indique les indeterminees presentes \n"; cout<<"7. Evaluer m a partir de valeurs attribuees aux indeterminees\n"; cout<<"8. Afficher le monome\n"; cout<<"0. Quitter \n"; cin>>choix; switch(choix) {case 1 : cout<<"Le coefficient est : "<<m.coeff()<<endl; break; case 2 : cout<<"Le nombre d'indeterminees est : "<<m.nb_ind()<<endl; break; case 3 : cout<<"Le degre max est : "<<m.deg_max()<<endl; break; case 4 : cout<<"Le degre homogene est : "<<m.deg_hom()<<endl; break; case 5 : cout<<m.deg_ind()<<endl; break; case 6 : m.ind_pres();cout<<endl; break; case 7 : cout<<"La valeur de l'indeterminee est : "<<m.evalm()<<endl; break; case 8 : m.affichage();cout<<endl; break; default : cout<<"Pas le bon cas."<<endl; break; } }
}
|
Mes erreurs : --------------------Configuration: poly - Win32 Debug-------------------- Compiling... cricri.cpp c:\mes documents\école\math\dauphin2poly\poly\cricri.cpp(6) : error C2143: syntax error : missing ';' before 'PCH creation point' test.cpp c:\mes documents\école\math\dauphin2poly\poly\test.cpp(5) : error C2143: syntax error : missing ';' before 'PCH creation point' Error executing cl.exe. poly.exe - 2 error(s), 0 warning(s) Pouvez-vous aussi me dire comment je peux utiliser la classe monome pour la classe polynome.
|
|
vendredi 24 décembre 2004 à 15:57:26 |
Re : problème classe polynome

plus_plus_fab
|
indiques nous les endroits ou apparaissent les erreurs, ce sera plus simple ...
monome m; m=monome(6,3);
C'est pas bon tout ça, monome m(6,3); // ça doit suffire
Sinon, appelle un plombier pour les fuites mémoires que ton programme engendre !
|
|
samedi 25 décembre 2004 à 00:38:54 |
Re : problème classe polynome

luhtor
|
Des fuites de mémoires ? J'ai pas vu d'allocation dynamique, donc comment pourrait-il y en avoir ? Autant pour moi, je viens de voir en essayer de compiler. En effet, il faut le plombier :)
Bon pour la deuxième erreur, plus_plus_fab t'a répondu.
Pour la deuxième erreur. TOn constructeur remplace le par ca: monome::monome() { this->c=0; this->n=0; }
ca pareil, mais c'est plus clair a mon gout.
En fait l'erreur est dit a l'oublie du ";" a la fin de ta classe polynome.
ET la ca compile sans problème. Prend du temps pour comprendre les destructeurs cependant, sinon ton programme n'est pas exploitable.
++
|
|
samedi 25 décembre 2004 à 09:07:17 |
Re : problème classe polynome

cricri nature
|
Bonjour j'ai de nouveau deux erreurs : //poly(cricri.h)
# include <iostream> # include <cmath> using namespace std;
class monome{ float c; int n;//nombre d'indeterminee int* tab;
public: monome(); //constructeur du monome nul monome(float coefficient,int MAX_IND); //constructeur float coeff(); //coefficient du monome int nb_ind(); //nombre d'indeterminees int deg_max(); //degre maximum parmi les indeterminees du monome int deg_hom(); //degre homogene (present dans le tableau tab) int deg_ind(); //degre de la ieme indeterminee void ind_pres(); //indeterminees effectivement presentes float evalm(); //evalue un monome a partir des valeurs //attribuees aux indeterminees void affichage(); //affichage du monome };
class polynome{ int nbm; //nombre de monomes int nbi; //nombre d'indeterminees monome* poly;
public :
polynome(); //constructeur du monome nul polynome(int i, int n); //constructeur int nb_m(); int nb_i(); monome ieme_mono(); };
|
//poly(cricri.cpp)
#include "cricri.h" # include <iostream> # include <cmath> using namespace std;
monome::monome() {c=0; n=0;}
monome::monome(float coefficient,int MAX_IND) {c=coefficient; n=MAX_IND; tab=new int[MAX_IND]; }
float monome::coeff() {return c;}
int monome::nb_ind() {return n;}
int monome::deg_max() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<endl; cin>>tab[j];} int max=tab[0]; for(int i=1;i<n;i++) {if(tab[i]>max) max=tab[i];} return max; }
int monome::deg_hom() {int somme=0; for(int i=0;i<n;i++) {cout<<"Le "<<i+1<<"ieme degre est :"<<endl; cin>>tab[i]; somme=somme+tab[i];} return somme; }
int monome::deg_ind() {int i; cout<<"Indeterminee numero :"<<endl; cin>>i; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<endl; cin>>tab[j];} if(i>0 && i<=n) {cout<<"Le degre de l'indeterminee "<<i<<" est : "<<endl; return tab[i-1];} else return -1; }
void monome::ind_pres() {for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<endl; cin>>tab[j];} for(int i=0;i<n;i++) {if(tab[i]!=0) cout<<"L'indeterminee "<<i+1<<" est presente. "<<endl; } return ; }
float monome::evalm() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; float* val=new float[n]; for(int j=0;j<n;j++) {cout<<j+1<<"eme indeterminee ? \n"; cin>>val[j];} for(int i=0;i<n;i++) {cout<<"Le "<<i+1<<"ieme degre est :"<<endl; cin>>tab[i];} cout<<"Le coefficient est : "<<c<<endl; float f=1; for(int h=0;h<n;h++) {f=f*pow(val[h],tab[h]);} f=f*c; return f; cout<<"La valeur du monome est : "<<f<<endl; }
void monome::affichage() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; char* ind=new char[n]; for(int j=0;j<n;j++) {cout<<j+1<<"eme indeterminee ? \n"; cin>>ind[j];} for(int i=0;i<n;i++) {cout<<"Le "<<i+1<<"ieme degre est :"<<endl; cin>>tab[i];} cout<<"Le coefficient est : "<<c<<endl; for (int k=0;k<n;k++) {cout<<"Le monome est : "<<ind[k]<<" ^ "<<tab[k]<<endl;} }
polynome::polynome() {nbm=0; nbi=0;}
polynome::polynome(int i, int o) {nbm=o; nbi=i; poly=new monome[o];}
int polynome::nb_m() {return nbm;}
int polynome::nb_i() {return nbi;}
monome polynome::ieme_mono() {int i; monome m; monome* poly=new monome[nbm]; cout<<"monome numero :"<<endl; ---------->ici : cin>>i; for(int j=0;j<nbm;j++) {cout<<"Le "<<j+1<<"ieme monome est :"<<endl; cin>>poly[j];} if(i>0 && i<=nbm) {cout<<"Le monome "<<i<<" est : "<<endl; return poly[i-1];} else return m=monome(0,0); }
|
//poly(test.cpp)
# include "cricri.h" # include <iostream> using namespace std;
void main() { monome m; polynome p; m=monome(6,3); p=polynome(2,5); int choix=-1; while (choix!=0) {cout<<"Faites un choix:\n"; cout<<"1. Le coefficient\n"; cout<<"2. Nombre d'indeterminees du monome \n"; cout<<"3. Afficher le degre maximum \n"; cout<<"4. Afficher le degre homogene \n"; cout<<"5. Afficher le degre d'une indeterminee \n"; cout<<"6. Indique les indeterminees presentes \n"; cout<<"7. Evaluer m a partir de valeurs attribuees aux indeterminees\n"; cout<<"8. Afficher le monome\n"; cout<<"10. Nombre d'indeterminees du polynome \n"; cout<<"11. Nombre de monomes du polynome \n"; cout<<"12. Ieme monome du polynome \n"; cout<<"0. Quitter \n"; cin>>choix; switch(choix) {case 1 : cout<<"Le coefficient est : "<<m.coeff()<<endl; break; case 2 : cout<<"Le nombre d'indeterminees du monome est : "<<m.nb_ind()<<endl; break; case 3 : cout<<"Le degre max est : "<<m.deg_max()<<endl; break; case 4 : cout<<"Le degre homogene est : "<<m.deg_hom()<<endl; break; case 5 : cout<<m.deg_ind()<<endl; break; case 6 : m.ind_pres();cout<<endl; break; case 7 : cout<<"La valeur de l'indeterminee est : "<<m.evalm()<<endl; break; case 8 : m.affichage();cout<<endl; break; case 10 : cout<<"Le nombre d'indeterminees du polynome est : "<<p.nb_i()<<endl; break; case 11 : cout<<"Le nombre de monomes du polynome est : "<<p.nb_m()<<endl; break; --------------->ici : case 12 : cout<<"Le ieme monome du polynome est : "<<p.ieme_mono()<<endl; break; default : cout<<"Pas le bon cas."<<endl; break; } }
}
|
Mes erreurs : --------------------Configuration: poly - Win32 Debug-------------------- Compiling... cricri.cpp c:\mes documents\école\math\dauphin2poly\poly\cricri.cpp(125) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class monome' (or there is no acceptable conversion) test.cpp c:\mes documents\école\math\dauphin2poly\poly\test.cpp(42) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class monome' (or there is no acceptable conversion) Error executing cl.exe. poly.exe - 2 error(s), 0 warning(s)
|
|
samedi 25 décembre 2004 à 13:11:15 |
Re : problème classe polynome

luhtor
|
Deja, deuxième fois, enlève ca: monome m; polynome p; m=monome(6,3); p=polynome(2,5);
et met : monome m(6,3); polynome p(2,5);
Ensuite, pourquoi postes du des erreurs aussi évidentes. Le message d'erreur est explicite... Franchement: cout<<"Le ieme monome du polynome est : "<<p.ieme_mono()<<endl;
Tu veux faire quoi la ? p.ieme_mono() retourne un monome. Tu demandes d'afficher un monome ??????? ca veut dire quoi ?????
Pour la première erreur: cout<<"monome numero :"<<endl; ---------->ici : cin>>i; for(int j=0;j<nbm;j++) {cout<<"Le "<<j+1<<"ieme monome est :"<<endl; cin>>poly[j];}
L'erreur est pas ou tu l'indiques, il n'y a pas d'erreur mais qu'est ce que tu veux faire avec ca: cin>>poly[j]; ??????? Il faut surchager l'opérateur << ou >> si tu veux pouvoir écrire ce genre de chose.
C'est pas plutot cout << poly[j].coeff();
Et la ca devrait marcher. Franchement c'est pas dur de comprendre ces erreurs de "mrd". Je dois que ca m'énerve ces postes la.
Sur ce ++
|
|
samedi 25 décembre 2004 à 16:21:24 |
Re : problème classe polynome

cricri nature
|
Premièrement lorsque je modifie m et p ça ne marche plus du tout donc je laisse ce que j'ai fait!
Ensuite, lorsque j'ecrit : cout<<"Le ieme monome du polynome est : "<<p.ieme_mono()<<endl; p.ieme_mono() je veux retourner un monome c'est-à-dire une partie du polynome que j'ai stocké dans le tableau poly.
Je veux saisir les cases du tableau poly lorque j'écrit : cin>>poly[j]; et non cout << poly[j].coeff();
Je suis désolé. Je sais bien que ce sont des erreurs de "mrd" mais je ne suis pas très douée en c++ et je ne comprend pas où sont les erreurs lorsque j'écris : '<<' et '>>'.
A ++
|
|
samedi 25 décembre 2004 à 18:31:12 |
Re : problème classe polynome

luhtor
|
C'est vrai, je me suis un peu embalé. dsl J'avais mal compris le problème en fait:
Tu dois juste rajouter ces quelques lignes, et ca devrait etre bon. Rajoutes ceci dans la partie public de ta classe monome:
inline friend ostream & operator << (ostream & chaine, const monome & which); inline friend istream & operator >> (istream & chaine, monome & which);
et l'implémentation ou tu veux :
inline ostream & operator << (ostream & chaine, const monome & which) { return chaine << which.c; }
inline istream & operator >> (istream & chaine, monome & which) { chaine >> which.c; return chaine; }
Le programme s'éxécute sans problème chez moi, mais dis moi si c'est bien ce que tu voulais.
++
|
|
samedi 25 décembre 2004 à 22:16:55 |
Re : problème classe polynome

cricri nature
|
En fait, je veux créer une fonction qui me permet de saisir tous mes monomes et les met dans le tableau poly(une case pour un monome). Ensuite ieme_mono doit me permettre d'accéder à un monome i. Ensuite deg_i_ind doit me permettre d'accéder au tableau tab qui contient les degrés du monome i .
Pour deg_glob() je veux saisir mes monomes puis regarder quel monome a le degré homogène le plus élevé c'est-à-dire que je veux regarder chaque monome et les valeurs des degrés stockées dans tab pour ce monome pour en faire la somme et retourner le maximum.
Peux-tu m'expliquer à quoi sert ici ostream et que représente c?
Chez moi, c est le coefficient du monome.
++
|
|
samedi 25 décembre 2004 à 23:36:32 |
Re : problème classe polynome

luhtor
|
Et bien fait, le "c" c'est le "c" de ta classe monome. Avec ces deux fonctions, quand tu fais cin >> TON_MONOME, la valeur que tu entres au clavier, c'est le coefficient du monome.
De meme, quand tu fais cout << UN_MONOME, ca affiche le coefficient du monome.
Ostream ici, c'est simplement un flux de caractère que cout affichera, ou en tout cas, c'est comme ca que je le comprend :)
Juste une question, le degré homogène, c'est quoi ? le degré je vois tres bien, mais j'ai jamais entendu parlé d'homogonéité d'un degré :)
aller ++
|
|
dimanche 26 décembre 2004 à 11:28:25 |
Re : problème classe polynome

cricri nature
|
Mais je veux que ça affiche le monome en entier et non le coefficient.
Le degré homogène d'un monome est la somme des degrés. a++
|
|
Cette discussion est classée dans : int, tab, cout, ind, monome
Répondre à ce message
Sujets en rapport avec ce message
compilation c++ [ par cricri nature ]
J'ai de gros soucis avec ma compilation et je ne sais pas quoi faire? Pouvez-vous m'aider?Il compile seulement il m'indique :-------------------Config
Allocation statique ou dynamique [ par luhtor ]
Bon alors, j'ai un exemple de programme. Mais je me pose la question de sa validité sachant que ce que vous allez voir. C'est correct dans certain lan
deplacement avec fleche directionnelle [ par dami13014 ]
bonjours tout le monde voila je débute en programmation et j'ai fait un petit sudoku il et pa trés complex mais j'aimerai bien pouvoir me déplacer ave
convertir du cpp en VB.net ou VB [ par Taur33 ]
bonsoir à tous, j'aurais besoin de convertir le code suivant en vb je précise que j'ai déjà essayé des logiciels qui soit disant le faisait mais cela
Debut Programmation C++ [ par patrickthierry ]
Bonjour, Je debute en C++, alors je suis les exos du bouquin, mais j'ai beau chercher mon erreur, je ne trouve rien. Le programme se deroule correcte
Présentation par l'exemple de quelques instructions du langage C++ [ par kml404 ]
Boujour tout le monde! Voici que je suis occupé mais c’est dire ce qu’il a de 1 a échoué (Int i) il faut vas ce faire copier de programme en langage
jeux mode console en c [ par fifiprog ]
Bonsoir a tous je dois creer un jeux sur un damier 10x10 ou tout d'abord deux joueurs pourrons s'affronter c'est le jeux des loups et agneau le but es
DATE MACHINE en C++ [ par eishtein ]
bonjour tout la monde; pouvez vous m'aidez à optimiser la classe suivante de telle sorte à ce qu'elle nous donne la date courante: [code=cpp] class d
anagrammes récursifs [ par sumakotra ]
/* Bonjour a tous ... voila j'voulais faire un programme sortant tout les anagrammes d'un mot en permutant les différentes lettres et en affichant a c
projet d'un debutant (classement) [ par emilienheude ]
bonjour à tous, je suis debutant dans la programmation en c et mes enseignents on eu la bonne idée de nous faire travailler sur un projet de sondage.
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|