p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    septembre 2004
    Messages
    394
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2004
    Messages : 394
    Points : 288
    Points
    288

    Par défaut PGCD et simplification de fraction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int PGCD(int a, int b){
        while(b!=0){
            int c=a%b;
            a=b;
            b=c;
        }
        return a;
    }
    On retourne le plus grand diviseur commun, au pire on auras 1 .


    Simplification de fraction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void Fraction::simplification(){
        int r;
        r=PGCD(numerateur,denominateur);
        numerateur=numerateur/r;
        denominateur=denominateur/r;
        //pas de - au dénominateur
        if(denominateur<0){
            numerateur=-numerateur;
            denominateur=-denominateur;
            }
    }
    Ps : merci a Romuald Perrot pour son article Calcul du PGCD par la méthode d'Euclide

  2. #2
    Expert Confirmé Sénior

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : janvier 2006
    Messages : 3 656
    Points : 8 176
    Points
    8 176

    Par défaut

    void Fraction::simplification() ? C'est une source C++ alors ...

  3. #3
    boli_971
    Invité(e)

    Par défaut

    Salut,

    Je propose la version récursive de cette fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    int pgcd(int a , int b )
    {
        int r = 0;
        // il faut a > b
        if(a < b)
        {
            int temp = a;
            a = b;
            b = temp;
        }
        /*
        En C++:
        if(a <b)
            std::swap(a, b);
        */
     
        if((r = a%b) == 0) 
            return b;
        else 
            return pgcd(b, r);
    }

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/01/2013, 23h55
  2. [Symbolic Math Toolbox] simplification de fraction
    Par protos dans le forum MATLAB
    Réponses: 4
    Dernier message: 16/04/2007, 17h50
  3. Simplification d'une requête UNION
    Par eautret dans le forum Langage SQL
    Réponses: 6
    Dernier message: 18/01/2005, 14h51
  4. PGCD de plusieurs nombres
    Par barthelv dans le forum Mathématiques
    Réponses: 7
    Dernier message: 06/03/2004, 16h39
  5. [Kylix] Simplifications de l'écriture Kylix/Pascal"
    Par Mr Vincent KLEIN dans le forum Kylix
    Réponses: 1
    Dernier message: 11/03/2003, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo