Pogrammation c
Fermé
mb42
Messages postés
432
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
14 janvier 2014
-
2 déc. 2009 à 18:48
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 3 déc. 2009 à 00:00
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 3 déc. 2009 à 00:00
3 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
2 déc. 2009 à 22:15
2 déc. 2009 à 22:15
Je ne vois pas, dans ce code, ce qui pourrait empêcher la compilation si ce n'est:
- le 'main' qui est de type 'int' et qui doit donc retourner un entier.
Par contre, l'addition et la division ne sont pas arithmétiquement correctes... à moins que les règles aient récemment changées ;-)
Bonne continuation.
NB: Dommage de traiter ce sujet en C, le plus-plus serait le bienvenu.
- le 'main' qui est de type 'int' et qui doit donc retourner un entier.
Par contre, l'addition et la division ne sont pas arithmétiquement correctes... à moins que les règles aient récemment changées ;-)
Bonne continuation.
NB: Dommage de traiter ce sujet en C, le plus-plus serait le bienvenu.
mb42
Messages postés
432
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
14 janvier 2014
7
2 déc. 2009 à 22:21
2 déc. 2009 à 22:21
justement pouriez m'aidez a faire l'addition
3/5 + 2/3 n'est pas egale 5/8
le resultat doit etre 19/15
3/5 + 2/3 n'est pas egale 5/8
le resultat doit etre 19/15
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
2 déc. 2009 à 22:30
2 déc. 2009 à 22:30
Ce n'est pas difficile, il faut simplement réduire au même dénominateur, soit:
Avec 'R1 = a/b' et 'R2 = c/d', le résultat vaut: 'R = R1 + R2 = (a*d + c*b) / (b*d)'.
L'idéal, suite à chaque calcul, serait de réduire, si nécessaire, le relationnel, c'est-à-dire de trouver la fraction la plus simple possible.
Bonne continuation.
Avec 'R1 = a/b' et 'R2 = c/d', le résultat vaut: 'R = R1 + R2 = (a*d + c*b) / (b*d)'.
L'idéal, suite à chaque calcul, serait de réduire, si nécessaire, le relationnel, c'est-à-dire de trouver la fraction la plus simple possible.
Bonne continuation.
mb42
Messages postés
432
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
14 janvier 2014
7
2 déc. 2009 à 22:43
2 déc. 2009 à 22:43
je suppose que la solution est
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;
}
mais y'a t-il une relation avec le PGCD
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;
}
mais y'a t-il une relation avec le PGCD
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
3 déc. 2009 à 00:00
3 déc. 2009 à 00:00
mais y'a t-il une relation avec le PGCD
Pour réduire le rationnel, on peut effectivement faire:
Bonne continuation.
Pour réduire le rationnel, on peut effectivement faire:
tant que existe PGCD(R1, R2) diviser R1 et R2 par PGCDJe ne sais pas si cet algorithme est efficace en terme d'occupation de l'unité de calcul.
Bonne continuation.