La Texas Instruments TI 67 Galaxy est une calculatrice "Scientifique avancée" sortie en 1992. Comme toutes les calculatrices de la série Galaxy elle a un format "paysage". Sa couleur noire, ses touches multi-fonctions et sa touche [ENTER] lui donnent presque un faux air de HP 15C. Contrairement à son ancêtre la TI 66 elle n'a pas de port qui permettrait de la connecter à une imprimante, elle n'a donc pas de port USB, ni d'emplacement pour micro-SD (non je n'ai pas "fumé" je fais de l'humour et en plus c'est vrai).
L'écran LCD permet d'afficher 12 caractères (matrices de 5x7 pixels) sur une fenêtre virtuelle de 69 ou 70 caractères (j'ai la flemme de recompter). Elle dispose d'une mémoire 1.536 pas de programmes et de .... 0 mémoire ! Les mémoires sont créées "à la volée" et chacune coûte 16 pas de programmes (8 pour le nom et 8 pour la valeur). Les noms des variables peuvent contenir jusqu'à 6 caractères et doivent obligatoirement commencer par une lettre ou bien par un point ou les lettres grecques α, β et θ. On peut donc avoir ..5 comme nom de variable ou bien α.5. Bien que la machine puisse afficher des lettres, les mémoires ne peuvent contenir que des valeurs numériques. Une fois définie, une mémoire ne peut être supprimée qu'en passant par le menu de suppression des variables (touche [CLV]). Comme toute bonne scientifique qui se respecte, elle a toutes les fonctions habituelles et même plus car elle gère les nombres complexes, les probabilités et les statistiques, permet de calculer les intégrales, les dérivées et la recherche des racines. Je ne m'étendrai pas plus car ce qui m'intéresse ce sont ses capacités en programmation.
Il s'agit d'une machine programmable dans un langage qui ressemble plus au LMS des Casio ou bien à un sous-ensemble du Basic qu'au LMS des TI 62 Galaxy, TI 66 ou TI 95 PROCALC. Schématiquement il y a deux façons de programmer la machine; les formules et la programmation que je qualifierai de standard. Dans les deux cas, il faut passer en mode [FMLA] (la touche [EXIT]) permet d'en sortir).
Je vais faire une petite digression pour parler tout de suite de ce qui m'horripile le plus sur cette machine, de ce que je considère comme un gros raté. IL N'Y A PAS DE MODE CALCULATRICE ET DE MODE PROGRAMMATION !!! (voilà ça fait du bien). La TI 67 peut avoir plusieurs formules ou plusieurs programmes en mémoire. Chaque formule (ou programme) commence par un nom suivi du signe = (formule) ou : (programme). Quand on passe en mode formule on est aussi bien en mode "exécution" qu'en mode "programmation", la machine affiche "Name ?" et attend la saisie d'une lettre. Si on saisit une lettre et qu'on presse ensuite les "flèches haut ou bas" la machine nous positionne sur l'entrée dont le nom précède ou suit la lettre saisie. Si on appuie sur la touche [ENTER] alors la machine crée une formule ayant pour nom la lettre saisie et il faut ensuite aller dans le menu "Clear Formula" (touche [CLF]) pour la supprimer. Je me suis fait avoir plusieurs fois et c'est assez énervant. Mais il y a pire. Si sur une formule on appuie malencontreusement sur la touche [ON/C] et bien cela efface le programme ! Monsieur TI aurait pu garder le mode [LRN] de ses autres machines. Tout cela est très dommage car l'édition des formules est plutôt bien faite avec la possibilité de se déplacer de 1 caractère vers la droite ou vers la gauche (avec répétition automatique), d'aller directement au début ou à la fin du code. Cerise sur le gâteau, le mode insertion permet d'insérer autant de caractères que voulus sans avoir à repasser en mode insertion.
Donc. Si on met un = après le nom de l'entrée alors cela sera une formule et si on met : ce sera un programme. Si on appuie sur [ENTER] la machine ajoute automatiquement un =. La différence entre une formule et un programme est qu'une formule ne comporte que les instructions de la formule et que le nom de la formule devient aussi celui d'une variable. Le programme quant à lui peut contenir plusieurs instructions séparées entre elle par : (comme en Basic ou en LMS Casio). Une formule ou un programme est donc sur une seule ligne.
- Exemple de formule : MLA = 2*X + 4*Y
- Exemple de programme : FACT:input N:1->X:lbl 0:N*X->X:N-1->N:if N > 0:goto 0:disp X
Les formules :
Une formule est une expression mathématique qui peut être évaluée. A l'exécution, la machine demande d'entrer les valeurs des variables utilisées dans la partie droite de l'expression. Avec la formule MLA = 2*X + 4*Y, la machine demande d'abord si on veut évaluer la fonction "Eval YN?". On peut soit appuyer sur [ENTER] pour répondre Yes ou bien sur [(-)] pour répondre No (la TI 67 a une forte tendance à poser plein de question auxquelles il faut répondre Yes ou No). Si on répond Yes alors elle demande de saisir la valeur de X puis celle de Y et demande ensuite si on veut revoir les valeurs saisies (Review YN?). Si on répond Yes alors la machine repropose les valeurs saisies (on peut les modifier ou pas) et redemande (encore et encore) si on veut revoir les valeurs saisies. Si on répond No on obtient (enfin) la réponse.
Les formules ne peuvent contenir des instructions de programmation mais elles peuvent appeler d'autres formules ou même des programmes voire affecter une valeur à une variable. On peut considérer cette fonctionnalité comme des sous-programmes. La machine accepte jusqu'à 15 niveaux d'imbrication. Pas mal !!!
Exemples :
En évaluant Z2, la machine demande de saisir X (saisie de 4) puis elle affiche Z1 = 12 (l'indicateur "busy" reste allumé); il faut alors appuyer sur [ENTER] pour avoir le résultat final Z2 = 48.
- FACT:input N:1->X:lbl 0:N*X->X:N-1->N:if N > 0:goto 0:X->FACT
- A1=5*{FACT}
En évaluant Z2, la machine demande de saisir N (saisie de 6) puis elle affiche A1 = 3600.
En évaluant D, la machine demande de saisir N (saisie de 7) puis elle affiche D = 5040 et Y contient la même valeur.
Les suites :
Je n'ai pas mentionné la fonctionnalité de gestion des suites numériques car elle se rapproche de celle des formules. La machine ne gère qu'une seule suite. Pour saisir une suite il faut se mettre en mode "suite" en appuyant sur la touche [SEQU]. La machine affiche Un=. On entre la formule de la suite; par exemple Un=6*n (n est une pseudo variable accessible en appuyant sur Alpha puis flèche haute). La suite est exécutée en appuyant sur [ENTER]. La machine demande si on veut une numérotation automatique (Auto YN?) de la suite ou bien si on veut saisir une valeur de n. Si on répond Yes la machine affiche le résultat de la formule avec n=1. L'appui sur la touche [ENTER] passe la valeur de n à 2, affiche le résultat et ainsi de suite. On peut "switcher" entre la valeur courante de la suite et celle de n avec les touches flèche haute ou basse. Si on répond No, la machine demande d'entrer une valeur pour n et donne le résultat. Il est aussi possible de traiter des suites "récursives" du genre Un=Un-1 * n. Dans ce contexte, au moment de l'exécution, la machine demande de saisir la valeur de Uo. Si on répond 1 alors on a une belle fonction factorielle.
Les programmes :
Comme je l'écrivais plus haut, le modèle de programmation se rapproche du langage des Casio FX-4000P et consœurs. Néanmoins ici point de Dsz ni d'adressage indirect ou de tableaux mais les fonctionnalités principales sont présentes; tests, branchements, sous-programmes, saisie de valeur, affichage de valeur et même les commentaires. L'affectation de valeurs aux variables peut se faire de deux manières différentes; 123 -> A (-> correspond à la touche [STO >]) ou bien A = 123. Le langage fait une différence entre le = d'affectation et le = de comparaison.
A gauche le = d'affectation
Tous les tests sont présents (>, <, >=, <=, =, ≠). On les obtient en les sélectionnant à partir du menu [TEST]. Les opérandes à droite et à gauche peuvent être des variables ou des valeurs. Si le test est vérifié alors la machine exécute l'instruction suivante et poursuit l'exécution sinon elle la saute et poursuit l'exécution.
Tout comme les tests, les ordres de programmation sont accessibles à partir du menu [CTRL].
Les branchements (goto) se font exclusivement vers des étiquettes (lbl). Ceci est tout à fait normal car il n'y a pas de notion de lignes comme sur les autres TI Galaxy. Une étiquette (label) est composé d'une suite de caractères (exemple : lbl toto:1+X->X:goto toto).
Les sous-programmes sont obligatoirement d'autres programmes ou des formules et sont utilisés entre { et } (exemple : {FACT}). Un sous-programme peut être considéré comme une fonction car son résultat peut être affecté à une variable : {FACT} -> Y. Mais pour que cela fonctionne, il faut affecter le résultat final à une variable du même nom que celui du programme.
Les entrées et les sorties se font grâce aux commandes input et disp.
Les commentaires sont saisis entre deux ".
Au final, je dois dire que cette machine est assez déroutante. Déroutante par son mode de programmation qui est totalement différent des autres productions de Texas Instruments. Déroutante par son goût d'inachevé; aucune possibilité alphanumérique, pas de séparation entre le mode programmation et le mode calculatrice, la touche ON/C qui efface le programme, le listage des variables qui se fait uniquement en passant par le menu de suppression des variables !?!?! Déroutante enfin par le nombre de questions auxquelles il faut répondre. Elles sont censées aider mais elle déroutent plus qu'autre chose. Il y a quand même de bons côtés (qui de mon point de vue ne l'emportent pas sur les défauts). Pas mal de mémoire (si on compare à une TI 66), des noms de variables parlants, un langage simple et suffisant (même s'il manque l'adressage indirect) une pléthore de fonctions/fonctionnalités mathématiques, 16 niveaux de parenthèses, 15 niveaux de sous-programmes, des sous-programmes qui peuvent retourner des valeurs (des fonctions donc) et un éditeur simple, fonctionnel et puissant.
Cette machine a dû avoir une diffusion assez importante car j'en ai trouvées ou vues pas mal dans les vides-greniers que j'ai faits. Elle est tout de même assez fragile au niveau de l'écran qui a tendance à perdre des pixels ainsi qu'au niveau du haut de la coque qui perd assez rapidement sa couleur argent.
J'allais oublier le test de rapidité !!! Le programme LOOP:0->X:lbl 0:1+X->X:goto 0 donne X égal à 340 au bout d'une minute. Ce n'est pas un foudre de guerre.
La documentation de la machine :
Ci-dessous je me consacre à l'art de la Photographie
|