Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 02-01-2010 17: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 07: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,

#3 03-01-2010 12:42:32

stormin
Membre
Inscription : 03-12-2009
Messages : 124

Re : [C++] opérations sur une fraction

merci
Thibault

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
zéro plus quatre
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums