Donc nous avons vu plus haut l'intérêt de remplacer des flottants par des quotients :
viewtopic.php?f=49&t=21853&start=10#p235441Mais pourquoi de dénominateur 93 ?
Cela vient du code de participation, où l'état de chaque potentiomètre de 0 à 1 est décrit par un caractère.
Et cela découle donc du nombre de caractères pouvant être affichés de façon identifiable, unique, et recopiable; puisque le candidat doit pouvoir conserver au pire la possibilité de lire et recopier son code de participation.
Testons :
- Code: Tout sélectionner
from math import *
def pchars(start,stop,w):
n=stop-start+1
h=ceil(n/w)
ts=[""]*h
for k in range(n):
ts[int(k/w)]+=chr(start+k)
tc=chr(start+k)
if(k%w==w-1):
print(ts[int(k/w)])
Sur NumWorks, les caractères de codes 0 à 31 sont clairement à exclure, tout comme ceux de codes 151 et plus.
Excluons de plus l'espace de code 32 qui risque d'être générateur d'erreurs de recopie si jamais des potentiomètres successifs ont cet état.
Il reste les caractères de codes 33 à 151.
Le Micropython de la Casio Graph 90+E a pour sa part un comportement différent :
Ici il nous faut exclure les caractères de codes 127 et plus.
La Casio Graph 90+E est donc le facteur limitant, qui nous fait réduire l'éventail utilisable aux caractères de codes 33 à 126, soit 126-33+1=94 caractères.
On prend donc :
- le caractère de code 33 pour la valeur 0 (0/93)
- et il reste bien 93 caractères pour coder les valeurs de 1/93 (code 34) à 93/93=1 (code 126)
En passant, petit aperçu avec Khicas qui à la différence accepte d'aller au-delà de 255, mais semble boucler :