Pour simplifier les fractions, on utilise l’algorithme d’Euclide, qui, en CoffeeScript, s’écrit
pgcd = (a,b) ->
[x, y] = [a, b]
[x, y] = [y, x%y] until y is 0
x
Ensuite, on le verra, la simplification d’une fraction se fait en divisant son numérateur et son dénominateur par leur pgcd. La traduction en texte se fait par deux dictionnaires, un pour les numérateurs et un pour les dénominateurs :
nums =
1: "le"
2: "les deux"
3: "les trois"
4: "les quatre"
5: "les cinq"
6: "les six"
7: "les sept"
8: "les huit"
9: "les neuf"
10: "les dix"
dens =
1: "unièmes"
2: "demis"
3: "tiers"
4: "quarts"
5: "cinquièmes"
6: "sixièmes"
7: "septièmes"
8: "huitièmes"
9: "neuvièmes"
10: "dixièmes"
Enfin la génération automatique de fractions [1] se fait avec l’algorithme suivant :
- On choisit un dénominateur au hasard entre 2 et 10 ;
- on choisit un numérateur au hasard entre 1 et le dénominateur (exclu pour éviter la fraction 1/1) ;
- on simplifie la fraction en divisant ces deux nombres par leur pgcd
Pour simplifier cela, on simule la fonction randrange
de Python :
alea = (a, b) ->
a + Math.floor Math.random()*(b+1-a)
Alors l’algorithme ci-dessus donne
den = alea 2, 10
num = alea 1, den-1
g = pgcd num, den
den /= g
num /= g
L’affichage des fractions se fait en décomposant celle-ci en deux blocs, dont celui du dessous a une bordure au plafond : Le trait de fraction. C’est uniquement du CSS qui fait cet affichage (y compris un décalage vers le bas).
On peut jouer aux billes fractions avec la liberté de continuer à mettre des billes dans le sac après avoir « terminé » l’exercice, ce qui permet par exemple de voir qu’il y a plusieurs manières d’écrire la fraction 2/3 (2/3=4/6=6/9)...
Placer des billes dans le sac brun, de telle manière que les deux cinquièmes d'entre elles soient rouges
|
La fraction de boules rouges dans le sac est de 0 boules rouges sur un total de 0 boules, donc 00 = 00 ≈ 0; zéro zéroièmes des boules du sac sont rouges.
Il y a 0 boules rouges dans le sac, et 0 boules bleues, donc en tirant une boule au hasard dans le sac, on a 0 chances contre 0 qu'elle soit rouge. Ou 0 chances sur 0 qu'elle soit rouge.
Variante : Sur suggestion d’Alain Pauty, l’exerciciel a été simplifié, en enlevant les dénominateurs, et devient ainsi un simple exercice de comptage. L’enfant (de CP) est alors chargé de mettre des billes dans un sac opaque :
Le nouvel exercice se rapproche de celui-ci dont il peut être considéré comme une activité d’approche.
Commentaires