module décimaux sixième

Les informations utiles aux développeurs de Pyromaths.

Modérateur : Développeurs

tala
Messages : 6
Inscription : 13 déc. 2008, 17:40

module décimaux sixième

Message par tala » 19 janv. 2009, 16:26

Je jette actuellement un coup d'œil au module décimaux de sixième. Je dois avouer que j'ai des difficultés à comprendre la fonction nombreATrouver().
Elle génère des nombres décimaux dont certains ont une partie décimale composée de nombreux zéros.
La fonction sepmilliers() du module outils, d'après les commentaires :
# Insère les espaces fines pour séparer les milliers et remplace le point
# décimal par une virgule
Mais, pour "rattraper" le pb", cette fonction tronque les parties décimales au 3° chiffre après la virgule.
Exemples de sorties obtenues avec ces deux fonctions :

99.900000000000006 ---> '99,9'

8070.0200000000004 ---> '8\\,070,02'
Ne serait-il pas plus cohérent de corriger nombreATrouver à la base pour qu'elle produise directement des nombres utilisables par les élèves ?
Bon, je crois avoir trouvé mon souci : les expressions :

Code : Tout sélectionner

10 **(-random.randrange(1, 4))
et

Code : Tout sélectionner

10 **(-random.randrange(4, 7))
sont mal évaluées par l'interpréteur qui renvoie des résultats très proches mais pas rigoureusement exacts.
Nous pourrions arrondir les résultats de cette fonction à un certain rang.
En cherchant des renseignements sur la toile, j'ai constaté que les pbs d'arrondis étaient fréquents avec python. D'autres parmi vous ont-ils constaté des résultats bizarres ?
Dernière modification par tala le 19 janv. 2009, 18:19, modifié 2 fois.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1143
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: module décimaux sixième

Message par Jérôme » 19 janv. 2009, 18:16

Le problème est que les réels sous Python sont des nombres à virgule flottante et que je ne vois pas comment rendre ces nombres "propres". La solution serait peut-être de n'utiliser que des rationnels avec numérateur et dénominateur entiers. Il faudrait alors créer une classe pour l'affichage de ces nombres. A creuser.
Mais peut-être que je me fourvoie totalement... :?: Dites-moi.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

tala
Messages : 6
Inscription : 13 déc. 2008, 17:40

Re: module décimaux sixième

Message par tala » 19 janv. 2009, 18:49

Je me figure mal le travail nécessaire pour changer les décimaux dans l'ensemble de pyromaths. C'est sans doute loin d'être une urgence. Pour alimenter éventuellement les réflexions de chacun, j'ai appris l'existence d'un module decimal, interne à python, qui gère de manière plus propre les décimaux. La syntaxe parait assez lourde. Peut-être est-il plus efficace de repartir des rationnels ou même de ne rien changer si les erreurs restent invisibles des fiches d'exercices. A bientôt.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1143
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: module décimaux sixième

Message par Jérôme » 19 janv. 2009, 19:21

Je crois qu'elles sont effectivement invisibles. Mais ça peut valoir le coup d'y jeter un oeil.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Répondre