Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 02-01-2010 16:08:12
- stormin
- Membre
- Inscription : 03-12-2009
- Messages : 124
[C++] opérations sur une fraction
Bonsoir
j'ai travaller sur un prgramme qui fait des opérations sur une fraction mais il y a un défauts dans ce dernier que je trouve pas
merci de m aider
/* on utilise la notion de structure et fonction pour faire des opérations sur une fraction*/
# include <iostream>
# include <cmath>
using namespace std;
struct fract
{
double N,D;};
void saisie_fract (fract &F)
{
cout<< "donnez la valeur de nominateur de la fraction "<<endl;
cin>>F.N;
cout<< "donnez la valeur de dénominateur de la fraction "<<endl;
cin>>F.D;
cout<<endl;
}
void affichage_fract (fract F)
{
cout<<" votre fraction finale est "<<F.N<<"/"<<F.D<<endl;
cout<<endl;
}
double add_fract (fract A,fract B)
{
fract C;
C.N=A.N*B.D+B.N*A.D;
C.D=A.D*B.D;
return(C.N,C.D);
}
double diff_fract (fract A,fract B)
{
fract C;
C.N=((A.N*B.D)-(B.N*A.D));
C.D=A.D*B.D;
return(C.N,C.D);
}
double pro_fract (fract A,fract B)
{
fract C;
C.N=A.N*B.N;
C.D=A.D*B.D;
return(C.N,C.D);
}
double rapp_fract (fract A,fract B)
{
fract C;
C.N=A.N*B.D;
C.D=A.D*B.N;
return(C.N,C.D);
}
int main()
{
fract a,b;
fract plus,mois,fois,sur;
cout<<" saisie de la fraction F1 "<<endl;
saisie_fract (a);
cout<<" saisie de la fraction F2 "<<endl;
saisie_fract (b);
plus = add_fract (a,b);
moins = diff_fract (a,b);
fois = pro_fract (a,b);
sur = rapp_fract (a,b);
cout<<"votre fraction addition vaut "<<"="<<endl;
affichage_fract (plus);
cout<< " FIN "<<endl;
cout<<"votre fraction difference vaut "<<"="<<endl;
affichage_fract (moins);
cout<< " FIN "<<endl;
cout<<"votre fraction produit vaut "<<"="<<endl;
affichage_fract (fois);
cout<< " FIN "<<endl;
cout<<"votre fraction rapport vaut "<<"="<<endl;
affichage_fract (sur);
cout<< " FIN "<<endl;
system("PAUSE");
return 0;
}
Hors ligne
#2 03-01-2010 06:23:50
- Thibault
- Invité
Re : [C++] opérations sur une fraction
Ton problème viens du fait que tes fonctions de somme, différence, produit, quotient sont définies comme retournant des doubles alors qu'elles doivent retourner des frac!
De plus, ta structure frac est définie comme un couple de double. Pourquoi pas des int?
Un problème un peu plus mesquin vient de ta fonction "saisie de fraction". Qu'est ce qui se passe si l'utilisateur lambda te donne 0 comme dénominateur?
Pour finir un détail: Tu as déclaré une variable "mois" au lieu du "moins" que tu utilises plus tard.
Selon moi tu as toutes les clés en main pour corriger ton code, mais je ne suis de loin pas un expert en programmation.
Salutations,
Pages : 1







