dheroux
Messages postés52Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention11 juin 2014
-
17 juin 2013 à 16:11
cs_alpha5
Messages postés74Date d'inscriptionjeudi 10 août 2006StatutMembreDernière intervention24 mars 2013
-
20 juin 2013 à 13:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_alpha5
Messages postés74Date d'inscriptionjeudi 10 août 2006StatutMembreDernière intervention24 mars 2013 20 juin 2013 à 13:30
Bonjour
Merci de vos commentaires
mai c'est un code pour rire
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 19 juin 2013 à 17:53
Bonjour Dheroux
on peut améliorer l'algo
l'algo doit verifier la périodicité du nombre après le
séparateur décimal
si il y a répetition on applique l'algo du dessus
si non
on multiplie le nombre décimal par 10^(nombre de chiffre après le point) et ensuite on esaie de simplifier
ex 0.3 donne 3/10
0.33 donne 1/3
je laisse le travail pour alpha5
dheroux
Messages postés52Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention11 juin 2014 19 juin 2013 à 08:35
Bonjour SHAYW,
Sauf erreur de ma part, l'algo que tu mentionnes dans ton commentaire ne s'applique qu'aux nombres rationnels (périodicité trouvée dans le quotient).
Ne s'applique plus par exemple à ce nombre 0.50864736 dont on ignore par avance s'il est le quotient d'une rationalité (puisqu'il peut y avoir d'autres décimales inconnues apès le ....736)
Bonne journée
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 17 juin 2013 à 21:29
Salut
1 le séparateur décimal de mon pc est un . et non une ,
pour savoir le séparateur décimal
Dim decimalSeparator As String = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
2 ton option strict est à OFF et non à ON
3 l'algo n'est pas efficace
ta fonction pgcd exécute parfois une boucle infinie
ex d'un algo sur ce site
http://www.webmath.com/dec2fract.html c'est en anglais
ex 0.428571428571
tu recherches s'il y a une répétition de chiffres
dans cette ex à partir du 6 iem chiffre après le .
donc on multiplie 0.428571428571 par 10^6
ce qui donne 428571.428571
on nomme x le nombre original x = 0.428571428571
x*10^6 = 428571.428571
x = 0.428571428571
on soustrait
x*10^6 -x = 428571
999999* x = 428571
x = 428571
------
999999
en simplifiant on obtient 3/7
allez essai cette fois ci de faire un effort
dheroux
Messages postés52Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention11 juin 2014 17 juin 2013 à 16:11
Bonjour,
Petits problèmes:
Exemple: 3,14159 donne 314159/100000
Exemple: 0,036251 donne 36251/1000000
Evidemment ces fractions sont exactes mais non satisfaisantes.
D'autre part, donnez un nom plus parlant aux TextBox ... exemple TxtNombreDecimal.text plutôt que textbox1.text
Donnez aussi un nom plus parlant à vos variables.
Et puis un peu plus de soin au niveau de l'interface graphique, c'est aussi important.
20 juin 2013 à 13:30
Merci de vos commentaires
mai c'est un code pour rire
19 juin 2013 à 17:53
on peut améliorer l'algo
l'algo doit verifier la périodicité du nombre après le
séparateur décimal
si il y a répetition on applique l'algo du dessus
si non
on multiplie le nombre décimal par 10^(nombre de chiffre après le point) et ensuite on esaie de simplifier
ex 0.3 donne 3/10
0.33 donne 1/3
je laisse le travail pour alpha5
19 juin 2013 à 08:35
Sauf erreur de ma part, l'algo que tu mentionnes dans ton commentaire ne s'applique qu'aux nombres rationnels (périodicité trouvée dans le quotient).
Ne s'applique plus par exemple à ce nombre 0.50864736 dont on ignore par avance s'il est le quotient d'une rationalité (puisqu'il peut y avoir d'autres décimales inconnues apès le ....736)
Bonne journée
17 juin 2013 à 21:29
1 le séparateur décimal de mon pc est un . et non une ,
pour savoir le séparateur décimal
Dim decimalSeparator As String = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
2 ton option strict est à OFF et non à ON
3 l'algo n'est pas efficace
ta fonction pgcd exécute parfois une boucle infinie
ex d'un algo sur ce site
http://www.webmath.com/dec2fract.html
c'est en anglais
ex 0.428571428571
tu recherches s'il y a une répétition de chiffres
dans cette ex à partir du 6 iem chiffre après le .
donc on multiplie 0.428571428571 par 10^6
ce qui donne 428571.428571
on nomme x le nombre original x = 0.428571428571
x*10^6 = 428571.428571
x = 0.428571428571
on soustrait
x*10^6 -x = 428571
999999* x = 428571
x = 428571
------
999999
en simplifiant on obtient 3/7
allez essai cette fois ci de faire un effort
17 juin 2013 à 16:11
Petits problèmes:
Exemple: 3,14159 donne 314159/100000
Exemple: 0,036251 donne 36251/1000000
Evidemment ces fractions sont exactes mais non satisfaisantes.
D'autre part, donnez un nom plus parlant aux TextBox ... exemple TxtNombreDecimal.text plutôt que textbox1.text
Donnez aussi un nom plus parlant à vos variables.
Et puis un peu plus de soin au niveau de l'interface graphique, c'est aussi important.
Juste un petit effort, et ce sera parfait. Merci