IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

structure de données


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut structure de données
    salut,

    l'enoncé de mon probleme est le suivant :

    Les rationnels peuvent être vus comme des couples d’entiers, la fraction 2/5 par exemple est
    représentée par le couple (2,5).
    Pour manipuler les rationnels il faut définir le type Rationnel, et implanter leur arithmétique
    (addition, multiplication, ..).
    1- Définir le type Rationnel.
    2- Ecrire une fonction void PrintRat (Rationnel R) qui permet d’afficher un rationnel.
    3- Ecrire une fonction void SetRat (Rationnel *R) qui permet de saisir un rationnel.
    4- Ecrire une fonction Rationnel AddRat(Rationnel R1 , Rationnel R2) qui additionne deux
    rationnels
    5- Ecrire une fonction Rationnel ProdRat(Rationnel R1, Rationnel R2) qui calcule le produit de
    deux rationnels
    6- Ecrire une fonction Rationnel QuotRat(Rationnel R1, Rationnel R2) qui calcule le quotient de
    deux rationnels
    7- Ecrire une fonction Rationnel RedtRat(Rationnel R) qui permet la réduction, sous forme
    irréductible, d’un rationnel exemple 6/8 3/4 :
    8- Ecrire une fonction AddTabRat(Rationnel tab[], int n) qui permet d’additionner un tableau de n rationnels.




    ma solution est :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    #include<stdio.h>
    #include<conio.h>
    typedef struct
    {
     int n1;
     int n2;
     }Rationnel;
     
     
     void PrintRat (Rationnel  R)
     {printf("l'entier 1 est %d",R.n1);
     printf("l'entier 2	est %d",R.n2);
     }
     
     
     void SetRat (Rationnel *R)
     {
     printf(" donner le premier entier :");
     scanf("%d",&R->n1);
     printf("donner le deuxiemme entier :");
     scanf("%d",&R->n2);
     }
     
     Rationnel AddRat(Rationnel R1,Rationnel R2)
     {Rationnel R3;
     R3.n1=R1.n1+R2.n1;
     R3.n2=R1.n2+R2.n2;
     return R3;
     }
     
     Rationnel ProdRat(Rationnel R1,Rationnel R2)
     {
     Rationnel R3;
     R3.n1=R1.n1*R2.n1;
     R3.n2=R1.n2*R2.n2;
     return R3;
     }
     
     Rationnel QuotRat(Rationnel R1,Rationnel R2)
     { Rationnel R3;
     if(R2.n1!=0)
     R3.n1=R1.n1/R2.n1;
     else
     printf("ereur");
     if(R2.n2!=0)
     R3.n2=R1.n2/R2.n2;
     else
     printf("ereur");
     return R3;
     }
     
     void main()
     {
      Rationnel K,K1,K2;
      SetRat(&K);
      PrintRat(K);
      K=AddRat(K1,K2);
      printf("oui");
      K=ProdRat(K1,K2);
      K=QuotRat(K1,K2);
      getch();
      }
    je n'arrive pas a compliter 7 et 8

    pouriez vous m'aidez a le compliter

    et coriger ce code

    merci d'avance

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Que veut tu dire par "compliter" ?

    L'addition me semble fausse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Rationnel AddRat(Rationnel R1,Rationnel R2)
    {
        Rationnel R3;
     
        R3.n1=R1.n1+R2.n1;
        R3.n2=R1.n2+R2.n2;
     
        return R3;
    }
    Donc, 3/4 + 5/6 == 8/10 ???

    Je te suggere de te renseigner sur le pgcd afin d'avoir des fraction irreductible et donc de gagner en clarté.


    Sinon, decris mieux l'erreur s'il te plait.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    Je suppose que la solution est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Rationnel AddRat(Rationnel R1,Rationnel R2)
    {Rationnel R3;
    R3.n1=(R1.n1*R2.n2)+(R2.n1*R1.n2);
    R3.n2=R1.n2*R2.n2;
    return R3;
    }

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Oui, ca devrait mieux marcher et retourner un resultat coherent.

    Maintenant, tu peux tenter une amelioration via le pgcd.

    si le pgcd de n1 et n2 est differnet de 1, alors en divisant n1 par pgcd et n2 par pgcd, tu obtient une fraction irreductible


    par exemple :
    3/6 -> pgcd(3,6) = 3

    3/pgcd(6,3) = 3/3 = 1
    6/pgcd(6,3) = 6/3 = 2

    3/6 == 1/2

Discussions similaires

  1. Comment créer une structure de donnée dynamiquement ?
    Par Beaunico dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2006, 09h34
  2. Aide pour diagramme de structure des données
    Par DeezerD dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/12/2004, 19h10
  3. Méta-Programmation - [ structures de données ]
    Par Dam)rpgheaven dans le forum C++
    Réponses: 3
    Dernier message: 03/12/2004, 19h38
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  5. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 17h10

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