begin process at 2012 05 27 16:29:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FRACTIONS EGYPTIENNES

FRACTIONS EGYPTIENNES


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :fraction, egyptienne, ppcm Niveau :Débutant Date de création :11/11/2009 Vu :2 696

Auteur : lptm974

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Programme qui saisit le numérateur et le dénominateur (entiers) d'un nombre fractionnaire et fournit en sortie sa décomposition sous forme égyptienne.

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • int ppcm( int X,int Y){
  • int inf,sup,ksup;
  • if (X<Y){
  • inf=X;
  • sup=Y;
  • } else {
  • inf=Y;
  • sup=X;
  • }
  • ksup=sup;
  • while (ksup%inf!=0){
  • ksup=ksup+sup;
  • }
  • return (ksup);
  • }
  • int main (){
  • int tab[100],i=0,j=2,cpt,P,Nn,Nd,Mn,Md;
  • printf("Numerateur ");
  • scanf("%d",&Nn);
  • printf("Denominateur ");
  • scanf("%d",&Nd);
  • Mn=Nn;
  • Md=Nd;
  • while (Mn!=0){
  • P=ppcm(Md,j);
  • if (Mn*P/Md-(P/j)>=0){
  • tab[i]=j;
  • Mn=Mn*P/Md-(P/j);
  • Md=P;
  • i=i+1;
  • j=j+1;
  • } else {
  • j=j+1;
  • }
  • }
  • tab[i]=P;
  • cpt=i;
  • i=0;
  • printf("\n %d/%d se decompose en fractions egyptiennes de la maniere suivante\n %d/%d = 1/%d ",Nn,Nd,Nn,Nd,tab[i]);
  • i=i+1;
  • while (i<cpt){
  • printf("+ 1/%d ",tab[i]);
  • i=i+1;
  • }
  • system("pause");
  • return(0);
  • }
#include <stdio.h>
#include <stdlib.h>

int ppcm( int X,int Y){
     int inf,sup,ksup;
     if (X<Y){
        inf=X;
        sup=Y;
        } else {
        inf=Y;
        sup=X;
        }
     ksup=sup;
     while (ksup%inf!=0){
        ksup=ksup+sup;
      }
      return (ksup);
} 

int main (){
    int tab[100],i=0,j=2,cpt,P,Nn,Nd,Mn,Md;
    printf("Numerateur ");
    scanf("%d",&Nn);
    printf("Denominateur ");
    scanf("%d",&Nd);
    Mn=Nn;
    Md=Nd;
    while (Mn!=0){
          P=ppcm(Md,j);
          if (Mn*P/Md-(P/j)>=0){
             tab[i]=j;
             Mn=Mn*P/Md-(P/j);
             Md=P;
             i=i+1;
             j=j+1;
             } else {
             j=j+1;
             }
    }
    tab[i]=P;
    cpt=i;
    i=0;
    printf("\n %d/%d se decompose en fractions egyptiennes de la maniere suivante\n %d/%d = 1/%d ",Nn,Nd,Nn,Nd,tab[i]);
    i=i+1;
    while (i<cpt){
          printf("+ 1/%d ",tab[i]);
          i=i+1;
          }
    system("pause");
    return(0);
}



 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

 Sources en rapport avec celle ci

PROGRAMME QUI CALCUL LE PPCM ET LE PGCD par AnoSantino
Source avec Zip POLYNOMES DU 2EME DEGRÉ, RÉPONSE SOUS FORME DE FRACTION ! par zut69

Commentaires et avis

Commentaire de valneandre le 16/11/2009 09:49:58

Sympa, voilà qui m'a rafraîchi un peu la bosse des maths !
Code aisé à adapter. Je l'ai testé, en fait, en PHP.

Commentaire de pgl10 le 16/11/2009 11:16:40

La conversion d'une fraction ordinaire en fraction égyptienne n'est pas unique.  
Il y a de nombreuses et même une infinité de façons de faire cette transcription.
                                                                                
Mais ici, après un temps de calcul important, on trouve :                        
                                                                                
17/19 = 1/2 + 1/3 + 1/17 + 1/388 + 1/5713 + 1/5714 + 1/5716 + 1/5717 + 1/5718 +  
        1/5719 + 1/5720 + 1/5722 + 1/5725 + 1/5726 + 1/5730 + 1/5735 + 1/5737 +  
        1/5740 + 1/5745 + 1/5746 + 1/5749 + 1/5750 + 1/5752 + 1/5753 + 1/5755 +  
        1/5756 + 1/5759 + 1/5760                                                
                                                                                
             17   1   1   1     1      1                                        
Cependant :  -- = - + - + -- + --- + ------                                      
             19   2   3   17   388   375972                                      
                                                                                
Alors, pourquoi pas ? Mais, une formulation plus commode serait la bienvenue.    

Commentaire de pgl10 le 16/11/2009 11:21:32

Je veux dire :
17/19 = 1/2 + 1/3 + 1/17 + 1/388 + 1/375972            
Merci. pgl10

Commentaire de pgl10 le 16/11/2009 13:40:51

Sauf erreur de ma part, la conversion de 17/19 est donc erronée avec cette version du logiciel présenté, même si pour d'autres exemples la conversion est exacte. Désolé, pgl10

Commentaire de lptm974 le 16/11/2009 17:56:33

Ah mince, je vais essayer de trouver l'erreur et je corigerai.
Merci de me l'avoir signaler

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

simplifier une fraction ( débutant ) !!! [ par myogtha ] #include &lt;iostream.h&gt;int main (){int denominateur,mulfac1,mulfac2,facmul1,facmul2,facmulfinal;int a,b,c,d;cout&lt;&lt;"entrer un nombre"&lt;&lt; URGENT :simplifier une fraction [ par imad_lol ] comment faire pour simplifier une fraction ???merci pour votre aide PROBLEME AVEC STRING [ par tekila_bandita ] Bonjour,J'ai un probleme lorsque je retourne un string avec une methode membre de ma classe Fraction...Voici l'implementation :string Fraction::Displa les class [debutant] [ par yanne1985 ] salut tout le monde je viens de commencer avec la poo et je trouve plusieur problemes j'ai une class la suivant class fraction{ public: int x; int y; gestion du temps en fraction de seconde dans C [ par mouloudh ] Bonjour la communauté,j'essaie de faire un programme qui simule le dértoulement d'un tapis roulant, avec vitesse et detecteurs de début et de fin. J'a problem de surcharge des () [ par walidoss1 ] salut :) je travaille sous xp avec code::blocks mon probleme est le suivant l'utilisateur doit donner une expression , exemp : (1/7)+(2/3)+(4/3) je su besoin d'aiiiide mes freres [ par devamos ] bonjour,si c'est possible j'ai besoin de votre aide j'ai un devoir à rendre ,,,de faire un prog qui accepte un nombre de type fraction,,,lui faire red PPCM de deux float [ par wassimb ] Bonjour, Comment calculer le[color=red] PPCM de deux float [/color](PPCM = Plus Petit Commun Multiple) ? Un bout de code sera la bienvenue. Merci d Fraction en C++ [ par nomadstorm ] 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 ai programmation modulaie en c++ [ par nomadstorm ] bonjour tout le monde j'ai besoin d'aide de la part des experts en programmation car je veux utiliser 4 modules pour un programme de point et fraction


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,248 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales