lundi 22 octobre 2012

La CASIO FX-7000G, première calculatrice graphique au monde.

La HP-25 fut une petite révolution en 1975, en devenant la première calculatrice programmable de poche réellement abordable pour de nombreux scientifiques et ingénieurs. Dix ans plus tard, à la fin de l'année 1985, c'est CASIO qui créé l'événement, quelques mois après la FX-4000P, avec la FX-7000G : rien de moins que la première calculatrice graphique au monde !

Avec le recul, force est de constater que le constructeur japonais a été visionnaire avec ce modèle. Et même si certains considéraient la fonction graphique comme un gadget au début, c'est bien ce format de calculatrice qui trustera le marché. Les américains emboiteront le pas à CASIO à partir des années 90, avec la série des HP-48 et des TI-81. Et même en 2012, les exceptions à cette disposition écran-clavier "verticale" sont rares sur le segment. CASIO reste le numéro 1 du marché de la calculatrice scientifique.

Pour en revenir à la FX-7000G de 1985, celle-ci possède un écran d'une résolution physique de 96x64 pixels, sans indicateurs annexes comme sur la FX-4000P. Cependant, pour une raison qui m'échappe, le premier pixel à gauche sur chaque ligne horizontale n'est pas exploité. Dans le même style, la première ligne de pixels en haut n'est utilisée que par le bord supérieur des caractères alphanumériques, mais pas dans les tracés graphiques. On peut donc considérer que la résolution graphique exploitable est de 95x63.

La FX-7000G coûtait la modique somme de 1250 francs à sa sortie ; mais ce prix a baissé au fil du temps. L'exemplaire que je possède (photo ci-dessous) a été acheté tardivement, en 1989, pour 795 francs. Ce tarif peut paraître assez élevé si on compare la FX-7000G à la FX-4000P. En effet, ces deux machines sont très proches en termes de "puissance logique". De plus, leur clavier est disposé de la même façon (plus mou sur la 7000), et leur langage de programmation est le même. Jusqu'à quel point sont-elles vraiment identiques ?

Le premier détail qui frappe, c'est que la FX-7000G a besoin d'une troisième pile CR2032, pour un total de 9 volts. Sa consommation est de 0,07W (contre 0,01W pour la FX-4000P). La règle qui dit que la machine qui bouffe le plus les piles est la plus rapide se vérifie-t-elle encore une fois ?


Écran confortable de 8 lignes sur la FX-7000G

La réponse est "oui". La CASIO FX-7000G, armée de son chipset Nec-Toshiba, expédie le test sur le nombre premier 524 287 en 14 secondes !

Mon petit programme, strictement identique à celui que j'avais développé pour la FX-4000P, rentre presque en totalité sur la fenêtre d'affichage de 8 lignes.

Lbl 0:"N":?->N:Int (\/N)->J:2->I:Frac (N/2)=0=>Goto 1:3->I:
Lbl 3:I>J=>Goto 2:Frac (N/I)=0=>Goto 1:I+2->I:Goto 3:
Lbl 1:I&Goto 0:
Lbl 2:1&Goto 0

Caractères spéciaux :

- '->' correspond à l'affectation d'une variable (au dessus de H sur le clavier)
- '\/' correspond à la racine carrée
- '=>' est l'implication ([shift] [7])
- '&' est le triangle orange ([shift] [:])

On trouve des tonnes d'infos sur les calculatrices CASIO (photos, manuels, articles de presse d'époque, liens, etc.) sur le site http://casio.ledudu.com.

jeudi 4 octobre 2012

La CASIO FX-4000P met tout le monde d'accord

En 1985, le haut de gamme est dominé par des machines très chères : HP-41CX, HP-71B, Sharp PC-1500A, CASIO PB-700, etc. À cette époque, j'entrevois même dans la cours de mon lycée un Canon X-07 ! En fait, ce petit ordinateur "de poche" n'est pas vraiment une calculatrice. Dans les années 80, tout ce qui est programmable en langage Basic est à la mode. Je connais aussi un enseignant qui possède le PC-1500A ; néanmoins, toutes ces machines de rêve resteront inaccessibles à jamais pour le commun des mortels.

C'est alors que débarque dans les cartables la fameuse FX-4000P. C'est un joli coup de la part de CASIO : voici une remplaçante de la FX-602P, sans périphérique, et située dans la même gamme de prix que la TI-66. Cette dernière ne s'en remettra pas.

Dans ma classe, quelques élèves douées possédaient cette FX-4000P, et c'est aussi une des raisons de mon intérêt pour ce petit objet élégant de 84 grammes. On pourrait reprocher à CASIO, la relative mollesse du clavier, et peut-être un manque de lisibilité de la sérigraphie ? L'écran est truffé de 19 petits indicateurs, mais ils sont bien utiles pour comprendre les changements de mode. Ceux-ci entraînent une redéfinition du clavier. En dehors de ces quelques détails, la FX-4000P est tout simplement excellente ! Son langage de programmation spécialisé est très clair. Il est facile à apprendre. La ligne d'entrée, pour les calculs, ou bien en mode programme, est éditable simplement (insertion/remplacement/suppression/ré-édition). On fait défiler cette longue ligne virtuelle sur l'écran. Celui-ci est constitué physiquement de 12 caractères alphanumériques, de 5x7 pixels chacun. À l'époque, ce mode d'édition très efficace n'est disponible que sur les machines bien plus chères citées ci-dessus.


CASIO FX-4000P, les valeurs affichées m'étonnent (MODE . EXE).

Le portage de mon programme de test donne ceci (tout sur la même ligne) :

Lbl 0:"N":?->N:Int (\/N)->J:2->I:Frac (N/2)=0=>Goto 1:3->I:
Lbl 3:I>J=>Goto 2:Frac (N/I)=0=>Goto 1:I+2->I:Goto 3:
Lbl 1:I&Goto 0:
Lbl 2:1&Goto 0

Caractères spéciaux :

- '->' correspond à l'affectation d'une variable (au dessus de H sur le clavier)
- '\/' correspond à la racine carrée
- '=>' est l'implication ([shift] [7])
- '&' est le triangle orange ([shift] [:])

Sans aucune optimisation, le même programme consomme déjà 84 pas. Mais la FX-4000P n'a pas besoin d'optimisation pour écraser en vitesse pure les trois calculatrices plus anciennes que j'ai testées précédemment : le test sur le nombre 524 287 est abattu en 38 secondes. Ce chipset Hitachi HD61747B34 est vraiment d'une génération plus moderne !

mercredi 3 octobre 2012

Et la TI-66 avec un programme optimisé ?

En général, plus les CPU consomment de l'énergie, plus ils sont puissants. Et je constate que la TI-66, qui est ma calculatrice programmable qui possède l'autonomie la plus longue (750 heures juste avec deux piles LR-44 !), est aussi la plus lente de toutes, en calcul programmé. Mais à l'usage, en mode manuel, cette lenteur ne se ressent pas.

L'algorithme que je testais jusqu'ici se contentait d'essayer la division de n par tous les nombres impairs entre 2 et racine de n. Dès que le résultat de la division est entier (reste = 0), on arrête : n n'est pas premier.

L'idée, pour optimiser un peu le programme sur la TI-66, qui possède plus de mémoire que la HP-25, était d'éliminer rapidement tous les multiples de 3, entre 5 et racine de n. On compte donc de 2 en 2 jusquà 7. Puis on va ajouter 4 pour tester 11, puis on alterne entre +2 (on teste 13) et +4 (on teste directement 17).

Avec le programme ci-dessous qui contient cette optimisation, la TI-66 répond que 524 287 est premier en moins de 8 minutes. Et on pourrait certainement l'optimiser encore, pour battre la HP-25... mais cela ne démontrerait pas grand chose !

"Ce nombre est-il premier ?" (version 2) pour TI-66 partie 1/2

Je n'avais pas trop d'idée sur comment publier rapidement mes programmes, sans erreur, et de façon lisible (tableau), alors je fais des copies d'écran de Gnumeric.

 Deuxième partie du programme optimisé pour TI-66 :

"Ce nombre est-il premier ?" (version 2) pour TI-66 partie 2/2