χ\chiCAS pour TI83CE et 83CE Python edition

Bernard.Parisse@univ-grenoble-alpes.fr

2024

Table des matières

1  Introduction

Ce document explique comment prendre en main et utiliser efficacement sur calculatrices TI83 couleur l’application χ\chiCAS, une version allégée du système de calcul formel Xcas. L’application n’est pas seulement un shell de calcul formel c’est une calculatrice CAS bis, avec

J’espère qu’une fois que vous l’aurez essayée vous ne pourrez plus vous en passer!

Il y a quelques années circulait sur tiplanet un poisson d’avril sur le portage de Xcas sur TI83 : le challenge paraissait tellement difficile, avec les ressources de cette calculatrice qui nous vient de loin : son processeur est une évolution du microprocesseur 8 bits z80 créé en 1976 (qui équipait les premiers micro-ordinateurs personnels des jeux de ma jeunesse), et la mémoire disponible pour un programme se compte en kilo-octets. Mais la communauté des utilisateurs experts de la TI83 en France et de la TI84 à l’international a réussi en utilisant et créant des outils de développement libres et à force d’un gigantesque travail de rétro-ingéniérie à rendre la chose envisageable.

Aujourd’hui à l’automne 2024, après plusieurs mois de travail, KhiCAS pour ti83 (et 84) est une réalité, et s’ajoute aux innombrabres programmes développés pour cette calculatrice très populaire dans le monde (en particulier aux Etats-Unis). Il y a quand même un tribut à payer : la 83 est significativement plus lente que d’autres calculatrices sur lesquelles j’ai porté Xcas, il faut souvent attendre plusieurs secondes pour avoir le résultat d’un calcul, et j’ai du enlever certaines fonctionnalités pour tenir dans l’espace disponible en flash pour me concentrer sur l’essentiel. Cela devrait toutefois largement suffire pour un lycéen, et fournir un environnement d’exécution plus stable pour χ\chiCAS que chez les constructeurs concurrents.

N.B. : Ce document est interactif, vous pouvez modifier les commandes et voir le résultat de l’exécution des commandes proposées en exemple en cliquant sur le bouton exe (ou en validant avec la touche Entrée).

Quelques captures d’écran pour illustrer : le shell, saisie d’une expression en 2d, résultat de dxx 41\int\frac{dx}{x^4-1} affiché en 2d

graphe d’une fonction et affichage de la vitesse, d’un vecteur normal pointant vers le centre du cercle osculateur, une courbe en paramétriques,

de l’aide sur une commande et le résultat de l’exécution des exemples de la commande

2  Installation

L’installation de KhiCAS est différente de celle d’une app habituelle car ce n’est pas une application de TI. Elle nécessite actuellement de vider entièrement la mémoire d’archive de la calculatrice, y compris la localisation en français. Après installation, il est possible de remettre la langue en français.

[Avertissement légal] Attention, la procédure d’installation a été testée de nombreuse fois mais l’auteur ne peut garantir un fonctionnement sans erreurs et décline toute responsabilité en cas de problèmes. [Fin de l’avertissement légal].
Il est essentiel de bien respecter la procédure qui suit, sinon la calculatrice peut se retrouver bloquée.
Si votre calculatrice se bloque, pas de panique, vous pourrez toujours réinstaller le système d’exploitation de la calculatrice : pour cela maintenir les touches 2nd et suppr enfoncées, appuyer sur le bouton reset à l’arrière de la calculatrice, relachez tout, puis appuyez sur la touche annul et renvoyez l’OS en vous assurant qu’il s’agit bien de la version de votre calculatrice (cf. le premier item ci-dessous). En effet si vous installez une version supérieure de l’OS, vous ne pourrez plus revenir en arrière et cela augmente en général les contraintes, par exemple le passage en OS version 5.5 ou ultérieure rend l’utilisation de programmes assembleur plus complexe, voire pourrait rendre impossible l’installation ou l’exécution en mode examen de KhiCAS. Ne faites surtout pas de mise à jour depuis le site de TI!
En cas de problèmes persistants, vous pouvez demander de l’aide sur le site tiplanet ou sur le forum de Xcas.

Procédure d’installation de KhiCAS :

Examens :

  1. KhiCAS est conforme à la réglementation du bac en France, circulaire 2015- 178 du 1er octobre 2015, au même titre que les calculatrices CAS des constructeurs (HP Prime, TI Nspire CX/CX2, Casio Classpad). Mais attention, certains autres concours ou examens interdisent l’utilisation de calculatrices formelles. Il est de la responsabilité de l’utilisateur de vérifier que les calculatrices formelles sont autorisées avant d’utiliser χ\chiCAS dans un autre examen ou concours. Les auteurs ne sauraient être tenus pour responsables en cas d’utilisation non autorisée.
  2. Cette version de χ\chiCAS n’est pas compatible avec le lancement du mode examen par la procédure officielle de TI sur les OS récents. Une procédure de lancement du mode examen compatible avec KhiCAS et acceptée par TI est à l’étude. Attention, cette procédure ne sera pas compatible avec la toute dernière version de l’OS de TI, ne faites surtout pas de mise à jour depuis le site de TI. J’invite toutes les personnes qui souhaitent que KhiCAS soit utilisable en mode examen à tester cette procédure dès qu’elle sera rendue publique, et à faire remonter les difficultés rencontrées sur le site tiplanet ou sur le forum de Xcas ou en me contactant par email. S’il y a trop de problèmes remontés, en particulier par des enseignants, cela peut inciter le constructeur à améliorer la visibilité de son approbation de l’utiisation KhiCAS en mode examen.

Mise en garde :
Les mises à jour de Texas Instruments peuvent devenir incompatibles avec l’installation de KhiCAS ou son utilisation en mode examen. Je vous conseille vivement de ne jamais faire de mise à jour de votre TI83 sans vous être bien renseigné auparavant sur la compatibilité.

3  Interface shell: premiers pas

Tapez 2nd app, puis sélectionnez KhiCAS. Ceci ouvre un “shell” dans lequel vous pourrez taper les commandes de calcul formel de Xcas. Pour quitter χ\chiCAS, depuis le shell tapez 2nd quit. Depuis l’éditeur de programmes ou le tableur, il faut faire deux fois 2nd quit.

Par exemple, tapez 1/2+1/6 puis enter, vous devriez voir le résultat 2/3 s’afficher sur la ligne du dessous.

Vous pouvez recopier dans la ligne de commande une commande de l’historique en utilisant le curseur vers le haut ou vers le bas puis enter, puis vous pouvez modifier la commande et l’exécuter. Par exemple, taper sur la touche curseur vers le haut, enter et remplacez 1/6 par 1/3.

Essayez maintenant x+1 entrée. Le résultat de la commande est une expression, elle est alors affichée en 2d, taper sur annul pour quitter l’affichage 2d. Si vous voulez saisir une expression en mode 2d, tapez sur 2nd \int. Par example pour saisir sin(x2)\sin(\frac{x}{2}), tapez 2nd \int, vous devez voir 0 en sélection. Tapez x puis entree, vous devez maintenant voir le 0 en sélection remplacé par un xx sélectionné. Tapez la touche de division, vous devez voir une fraction avec xx au numérateur et 0 sélectionné au dénominateur, tapez 2 entree, cela remplace le 0 sélectionné au dénominateur par un 2 sélectionné, tapez la touche curseur vers le haut, cela sélectionne toute la fraction, tapez la touche trig puis 1 qui va exécuter sin sur la sélection, cela affiche maintenant sin(x2)\sin(\frac{x}{2}) sélectionné, tapez entrée pour recopier en ligne de commande.

On peut définir une variable comme résultat d’une commande si on souhaite la réutiliser. Pour cela, on utilise une des deux instructions d’affectation :

Pour vous aider à saisir les commandes Xcas les plus utiles, χ\chiCAS dispose de menus rapides (par exemple touche f(x) pour des commandes d’algèbre), d’un catalogue d’une centaine de commandes avec une courte description et le plus souvent un exemple d’exécution facile à recopier (touche math) et d’un catalogue de toutes les commandes (2nd catalog).

Par exemple, pour faire une représentation graphique, appuyez sur la touche zoom (menu graphes), tapez entree (commande plot), puis touche trig 1 (saisie de sin) puis touche x,t,..., ceci donne la ligne de commande plot(sin(x, fermez les parenthèses et tapez entree, vous obtenez le graphe de la fonction sinus. Tapez sur les touches curseur droit pour faire afficher la position du curseur sur la courbe, puis sur annul pour quitter l’application graphique.

Pour avoir une liste plus complète de commandes par catégories, appuyez sur la touche math, choisissez une catégorie avec le curseur, par exemple Algebre, tapez enter, puis choisissez une commande avec le curseur, par exemple factor. Un appui sur la touche F5 (aide cmd) vous affiche une courte description de la commande, en général avec un exemple. En tapant sur F2 (ou F3), vous recopiez l’exemple en ligne de commande. Vous pouvez alors valider (enter) ou modifier la commande et valider (enter), par exemple pour factoriser un autre polynôme que celui donné en exemple.

Enfin, le catalogue (2nd catalog) affiche la liste de toutes les commandes par ordre alphabétique, en tapant les lettres du début du nom de commande on se positionne dans la liste à cet endroit.

Vous pouvez effacer l’historique des calculs et les variables pour commencer un nouvel exercice : depuis le menu var sélectionnez restart. Vous pouvez effacer l’historique en tapant annul une ou deux fois de suite, mais cela n’efface pas les variables.

Pour quitter χ\chiCAS, appuyez sur les touches 2nd quit. Lorsque vous lancez une autre application, les variables et l’historique des calculs sont sauvegardés dans l’AppVar session, ils seront restaurés lorsque vous reviendrez dans χ\chiCAS. Il est conseillé de quitter χ\chiCAS pour éteindre la machine pendant une longue période. C’est aussi conseillé lorsque la mémoire non fragmentée restant disponible affichée en tapant sur la touche var s’approche de 0.

Remarques :

4  Commandes usuelles de calcul formel

4.1  Développer et factoriser

Depuis la touche math, sélectionner le sous-menu Algebre (2) ou le menu rapide F2

4.2  Analyse

Depuis la touche math (doc), sélectionner le sous-menu Analyse (4) ou le menu rapide F4

4.3  Résoudre

Depuis la touche math, sélectionner le sous-menu Resoudre (touche resol après math)

4.4  Arithmétique

Lorsque cela est nécessaire, on distingue l’arithmétique des entiers de celle des polynômes par l’existence du préfixe i (comme integer) dans un nom de commande, par exemple ifactor factorise un entier (pas trop grand) alors que factor factorise un polynôme (et cfactor factorise un polynôme sur les complexes). Certaines commandes fonctionnent à la fois pour les entiers et les polynômes, par exemple gcd et lcm.

4.4.1  Entiers

Depuis la touche math, sélectionner le sous-menu Arithmetic, Crypto (5). Menu rapide shift F1.

Les commandes asc et char permettent de convertir une chaine de caractères en liste d’entiers (entre 0 et 255) et réciproquement, ce qui permet de faire facilement de la cryptographie avec des messages sous forme de chaines de caractères.

4.4.2  Polynômes

Depuis la touche math, sélectionner le sous-menu Polynomes (7). La variable est par défaut xx, sinon il faut la spécifier en général en dernier argument, par exemple degree(x^2*y) ou degree(x^2*y,x) renvoient 2, alors que degree(x^2*y,y) renvoie 1

4.4.3  /n\mathbb{Z}/n\mathbb{Z} et corps finis

Pour travailler avec des classes modulo nn, utiliser la notation a mod n, par exemple sqrt(2 mod 7). Ceci s’applique aussi pour travailler sur des corps finis premiers /p\mathbb{Z}/p\mathbb{Z}.

4.5  Algèbre linéaire, vecteurs, matrices

Xcas ne fait pas de différence entre vecteur et liste. Par exemple pour faire le produit scalaire de deux vecteurs, on peut saisir :

v:=[1,2]; w:=[3,4]

onload

Pour saisir une matrice élément par élément, vous pouvez entrer en ligne de commandes une liste de listes de même taille. Par exemple pour définir la matrice A=(1 2 3 4)A=\left(\begin{array}{cc} 1 & 2 \\ 3 & 4 \end{array}\right) on tape

A:=[[1,2],[3,4]]

onload
ou

Il est fortement conseillé de stocker les matrices dans des variables pour éviter de les saisir plusieurs fois.

Pour entrer une matrice dont les coefficients sont donnés par une formule, on peut utiliser la commande matrix, par exemple

renvoie la matrice dont le coefficient ligne jj et colonne kk vaut 1j+k+1\frac{1}{j+k+1} (attention les indices commencent à 0).

La matrice identité de taille nn est renvoyée par la commande idn(n), alors que ranm(n,m) renvoie une matrice à coefficients aléatoires de taille n,mn,m. Par exemple


Pour exécuter une commande sur des matrices, s’il s’agit d’arithmétique de base (+,-,* inverse), on utilise les opérations au clavier. Pour les autres commandes. depuis le catalogue, sélectionner le sous-menu Matrices (math matr) ou le menu rapide matr

5  Tableur, statistiques

En tapant depuis le shell sur la touche stats, on ouvre le tableur, qui permet également d’afficher facilement certains représentations graphiques en particulier statistiques.

Les notations usuelles du tableur sont en vigueur, avec une particularité, les lignes commencent à 0 (comme en programmation).

Pour éditer une cellule, taper un caractère (ceci efface le contenu précédent) ou [trace] 4 (item edit_cell du menu edit), ceci n’efface pas le contenu précédent.

Pour saisir le signe = ou $ vous pouvez utiliser le menu edit (touche trace) ou les mêmes raccourcis que sur le tableur de TI (touche sto et 2nd sto).

Pour faire référence à une cellule lors d’une saisie, vous pouvez l’écrire au clavier (les minuscules sont acceptées comme référence de ligne), ou vous pouvez appuyez sur une des deux touches de déplacement de curseur vers le haut ou le bas, puis déplacez le curseur à la cellule choisie et tapez entrée. Pour faire référence à une plage de cellule, tapez alpha : puis curseur vers le haut ou le bas et déplacement jusqu’au coin opposé de la plage. Il est également possible lorsqu’on a déplacé le curseur vers le premier coin de la plage, de taper stats (ou les touches trace 2, correspondant à select dans le menu edit) et de se déplacer à la cellule marquant le coin opposé de la plage puis de taper entree.

Pour obtenir des statistiques sur une série de données entrée au tableur, se déplacer vers la première cellule des données, taper la touche stats, aller vers la dernière cellule des données sur la même colonne ou sur une colonne adjacente, taper à nouveau sur la touche stats. Ceci affiche soit des stats 1d (si les données sont sur une seule colomne), soit covariance et corrélation (si les données sont sur deux colonnes). Les données sont enregistrées dans le presse-papier, et peuvent être insérées en quittant le tableur (2nd quit) et en tapant 2nd inserer.
On peut aussi afficher dans le tableur une valeur statistique qui est mise à jour si les données sont modifiées, se déplacer vers une cellule inutilisée du tableur, taper la touche sto (ce qui insère un =) puis une commande de statistiques (via le menu rapide F1 stat1d ou via le catalogue), puis saisir une plage de cellules.

Pour copier le contenu d’une plage de cellule, se déplacer vers un coin de la plage, taper la touche stats ou les touche trace 2 (select du menu edit), aller au coin opposé de la plage, taper les touches trace 2. Pour sélectionner une cellule seule, taper stats trace 2. Pour copier la sélection à une autre position du tableur ou dans le shell, utiliser 2nd insérer. Dans le shell, ceci recopie la matrice des valeurs.

Pour réaliser une représentation graphique, se rendre vers une cellule non utilisée du tableur, taper = (touche sto), puis taper une commande graphique d’une des menus, puis réaliser une sélection de plage comme indiqué ci-dessus et fermez la parenthèse de la commande. Ensuite taper 2nd graph stats.

Exemple : nuage de points. Rentrer dans les deux premières colonnes les deux coordonnées de la série statistique. Puis passez dans la troisième colonne, Tapez sur la touche sto, puis la touche fenetre (pour stats2d) puis entree pour scatterplot(, puis curseur vers le bas, vers la gauche deux fois, vers le haut pour atteindre un des coins de la zone où sont entrées les valeurs, puis touche trace (menu edit), 2 (pour select), déplacez ensuite avec le curseur pour sélectionner la plage et tapez entree, fermez la parenthèse et validez. Pour voir le graphe, tapez les touches 2nd f(x) (pour graph stats). Si vous changez une des valeurs de la série statistique et refaites 2nd f(x) le graphe est mis à jour.

Un autre exemple de nuage de points en captures d’écran
on entre les données sur les deux premières colonnes, on se déplace sur une cellule vide, on tape sto puis fenetre (stats2d) puis entree

taper stat et aller à la dernière cellule de la plage, taper entree

2nd graph stat montre les points, taper - pour faire un zoom out pour voir tous les points,

se déplacer vers une autre cellule non utilisée, tapez fenetre (stats2d), sélectionner le 4ième item, entrer la plage (ici au clavier), entree puis 2nd graph stats

Lorsqu’on quitte le tableur, l’équation de la droite de régression et son coefficient r 2r^2 sont affichés dans le shell.

N.B. : Pour les distributions de probabilité, il n’y avait pas assez de place dans KhiCAS, se reporter aux commandes de l’OS de TI utilisable dans le shell de l’OS.

6  Courbes et autres représentations graphiques

Pour tracer une courbe représentative de fonction, une courbe en paramétrique, une courbe en polaire, etc. on tape dans le shell une commande comme expliqué à la section 6.1 on valide et on se retrouve dans l’environnement graphique décrit dans la section 6.2.

6.1  Principales commandes graphiques

Depuis la touche math, sélectionner le sous-menu Courbes ou à partir du menu rapide, touche zoom depuis le shell

On peut tracer simultanément plusieurs graphiques, il suffit de séparer les commandes de tracé par ;

Le menu Options (menu ,) vous permet de spécifier certaines options graphiques :

6.2  Interface de l’environnement graphique

Lorsqu’on lance une commande graphique depuis le shell, l’application graphique de KhiCAS s’ouvre. Les graphiques s’affichent sur l’écran entier sauf la ligne d’état, donc sur 320×\times222 pixels, contre 265×\times165 pixels pour l’application graphique de TI, soit 62% de pixels en plus. Pour les courbes on dispose d’un outil de trace qui est activé par défaut avec visualisation des coordonnées du curseur.

Lorsque la commande plot ou plotparam vient d’être utilisée, les variables x0, x1, x2, y0, y1, y2 contiennent les expressions paramétrique de la position, vitesse et accélération, et peuvent servir à étudier analytiquement dans le shell inflexions, points singuliers, etc. Notez que la commande plotpolar efface ces variables, et stocke uniquement l’affixe du point dans la variable z0.

7  Unités et constantes physiques.

KhiCAS permet de convertir des unités, mais aussi d’effectuer des calculs avec des unités et dispose d’une petite bibliothèque de constantes physiques.


Le menu de constantes physiques (raccourci math puis touche fraction) et unités physiques (raccourci math ^) affiche

Exemples :
60_(km/h) => _(m/s)
mksa(_hbar_)
usimplify(1_W*1_s)
ufactor(1_W,1_J)
Attention, les flottants sont codés en base 2 avec 24 bits de mantisse (avec le compilateur C/C++ pour TI83), soit environ 7 chiffres significatifs, ce qui peut entrainer des erreurs d’arrondi parfois un peu déconcertantes.

8  L’éditeur d’expressions

Lorsqu’un calcul renvoie une expression, elle est affichée en plein écran dans l’éditeur d’expression 2d. Depuis l’historique des calculs, si le niveau sélectionné est une expression, l’appui sur les touches 2nd . .\int_.^. affiche l’expression dans l’éditeur 2d. En ligne de commande, l’appui sur 2nd . .\int_.^. ouvre aussi l’éditeur 2d, soit avec 0 si la ligne de commande était vide, ou avec le contenu de la ligne de commande si celle-ci est syntaxiquement correcte.

Lorsque l’éditeur 2d est ouvert, l’expression est affichée en plein écran et une partie de l’expression est sélectionnée. On peut alors agir sur la sélection en exécutant des commandes saisies via les menus ou le clavier, on peut aussi éditer la sélection (en mode de saisie 1d). Ceci permet de retravailler des sous-expressions ou d’éditer une expression en écriture naturelle.

Vous pouvez annuler la dernière modification effectuée en tapant sur 2nd echanger (undo).

Taper sur la touche enter pour quitter l’éditeur 2d et copier l’expression en ligne de commande, taper esc pour quitter sans recopier l’expression.

Exemple 1 : nous allons saisir lim x0sin(x)x\lim_{x \rightarrow 0} \frac{\sin(x)}{x} Depuis une ligne de commande vide, taper 2nd \int, vous devez voir 0 sélectionné. Tapez sur la touche x et enter, maintenant c’est x qui est en surbrillance. Tapez sur la touche trig 1, c’est sin(x)\sin(x) qui est en surbrillance. Tapez sur la touche de division (/, au-dessus de *), vous devez voir sin(x)0\frac{\sin(x)}{0} avec 0 en surbrillance, tapez x puis enter, vous devez voir sin(x)x\frac{\sin(x)}{x} avec x au dénominateur en surbrillance. Tapez sur le curseur flèche vers le haut pour mettre sin(x)x\frac{\sin(x)}{x} en surbrillance, puis fenetre 4 (pour limit). L’expression est correcte, vous pouvez taper enter pour la recopier en ligne de commande et enter à nouveau pour exécuter le calcul. Si on avait voulu une limite en ++\infty, il aurait fallu déplacer la sélection avec curseur vers la droite, puis taper sur les touches f(x) 7 (oo) enter.

Exemple 2 : nous allons saisir 0 +1x 4+1dx\int_0^{+\infty} \frac{1}{x^4+1} \ dx Depuis une ligne de commande vide, taper 2nd \int, puis fenetre 3 (integrate), vous devez voir 0 10dx\int_0^1 0 \ dx avec xx sélectionné. Il faut donc changer le 1 de la borne supérieure et le 0 à intégrer. Pour modifier le 0, curseur vers la gauche pour le sélectionner puis 1/(x^4+1) enter, puis curseur vers la gauche shift-1 7 enter. Taper sur enter pour recopier vers la ligne de commande puis enter pour effectuer le calcul, le résultat s’affiche dans l’éditeur 2d, enter quitte l’éditeur avec dans l’historique l’intégrale et sa valeur (en syntaxe algébrique 1d).

Exemple 3 : nous allons calculer et simplifier 1x 4+1dx\int \frac{1}{x^4+1} \ dx Depuis une ligne de commande vide, taper 2nd \int, puis fenetre 3 (integrate), vous devez voir 0 10dx\int_0^1 0 \ dx Déplacez le curseur sur le 0 de la borne inférieure de l’intégrale et tapez sur la touche suppr, vous devez voir 0dx\int 0 \ dx avec le tout sélectionné. Utilisez le curseur vers le bas pour sélectionner 0 et tapez 1/(x^4+1) enter puis enter pour recopier en ligne de commande puis enter pour exécuter le calcul, le résultat s’affiche maintenant dans l’éditeur 2d.
On peut alors sélectionner avec les touches du curseur par exemple l’argument d’un des arctangentes et exécuter f(x) enter (simplify) pour effectuer une simplification partielle du résultat, puis recommencer avec l’autre arctangente.
On peut simplifier encore plus, en rassemblant les logarithmes. Pour cela il faut d’abord échanger deux des arguments de la somme. Sélectionnez un des logarithmes avec des déplacements du curseur, puis tapez 2nd-curseur droit ou gauche, cela échange l’argument sélectionné avec son frère de droite ou de gauche. Tapez ensuite alpha curseur vers la droite ou vers la gauche, ceci augmente la sélection en ajoutant le frère de droite ou de gauche. Une fois les deux logarithmes sélectionnés, taper f(x) 2 enter (factor), puis descendez la sélection sur la somme ou différence de logarithmes, allez dans le menu math puis enter (Tout), tapez les lettres l, n, c ce qui déplace à la première commande commençant par lnc, sélectionnez lncollect, validez et tapez enfin sur enter (eval).

9  Sessions de calculs

9.1  Edition de l’historique.

En utilisant la touche curseur vers le haut/bas, on se déplace dans l’historique des calculs, le niveau courant est en surbrillance.

Pour modifier l’ordre des niveaux dans l’historique des calculs, tapez alpha curseur vers le haut ou vers le bas. Pour effacer un niveau, appuyez sur la touche suppr (le niveau est recopié dans le presse-papiers).

Pour modifier un niveau existant, on tape sur la touche curseur vers la droite ou vers la gauche. Taper annul pour annuler les modifications ou enter pour valider.

9.2  Variables

En appuyant sur la touche var vous affichez la liste des variables qui ont une valeur, ainsi que des commandes de gestion de variables. Déplacez le curseur vers une variable puis enter pour la recopier en ligne de commande, La commande restart permet d’effacer toutes les variables. La commande assume permet de faire une hypothèse sur une variable, par exemple assume(x>5) (pour saisir >, utiliser F3 pour afficher la table de caractères).

Notez la valeur numérique affichée en titre, il s’agit de la quantité de RAM non fragmentée disponible pour les calculs. Si cette quantité s’approche de 0, il est conseillé de quitter KhiCAS puis de le relancer pour défragmenter cet espace mémoire.

9.3  Sauvegarde et compatibilité

Vous pouvez sauvegarder une session depuis le menu F5. Vous pouvez ouvrir une session depuis ce même menu. Les sessions sont sauvegardées dans des AppVar. Vous pouvez archiver une session en-dehors de KhiCAS depuis 2nd mem. Attention, une session archivée est en lecture seule.

N.B.: vous pouvez sauvegarder le contenu de l’éditeur de script indépendamment de la session, les scripts ont un nom d’AppVar terminant par _ et sont reconnus comme des AppVar Python.

10  Interaction avec le système TI.

Vous pouvez saisir des expressions en mode 2d en-dehors de KhiCAS depuis la touche f(x) de la 83 et les importer ensuite dans KhiCAS en utilisant le nom de variable correspondant en majuscule ou en minuscule (raccourci clavier 2nd puis une touche entre 1 et 9). KhiCAS utilise la variable Y2 pour sauvegarder le résultat des opérations de calcul, vous pouvez quitter KhiCAS à tout moment (2nd quit depuis le shell de KhiCAS) et afficher un résultat en tapant sur la touche f(x). Vous pouvez aussi exporter une expression vers une variable Y1 à Y9 en tapant la commande suivie de la touche sto puis 2nd et une touche entre 1 et 9. Vous pouvez alors en obtenir une représentation graphique avec l’application de TI si vous la préférez à l’application graphique de KhiCAS.

Pour les matrices, vous pouvez entrer une matrice en-dehors de KhiCAS avec l’éditeur de matrice (touche matr de la calculatrice, choisir une matrice et taper 2 fois sur le curseur vers la droite pour editer la matrice). Pour l’importer dans KhiCAS, saisir son nom sous la forme [A] à [I]. Il n’y a pas de commande d’export de matrice, car la TI83 ne gère ni les matrices complexes, ni les matrices symboliques, ni certaines formes exactes.

11  Programmation

L’environnement de programmation de χ\chicas est assez complet: un éditeur, l’interpréteur de Xcas avec toutes ses commandes (compatibilité partielle avec les modules Python math, cmath, et un sur-ensemble du module kandinsky/casioplot).


La mise au point du source est facilitée par la possibilité d’interpréter le programme sans quitter l’éditeur en cas d’erreur, et une fois le programme syntaxiquement correct, on peut le mettre au point (corriger les erreurs de “runtime”) en l’exécutant en mode pas à pas. Cet outil d’exécution pas à pas peut également servir à des fins pédagogiques pour illustrer le déroulement du programme et l’évolution du contenu des variables.

Vous pouvez programmer en utilisant la compatibilité de syntaxe Python de Xcas. Les programmes très courts (en une ligne) peuvent être saisis directement en ligne de commande. Les programmes plus longs ou que l’on souhaite sauvegarder seront saisis dans l’éditeur de programmes sur la calculatrice, ou bien transférés depuis un PC ou une autre calculatrice.

11.1  Prise en main (programmation)

Un premier exemple en ligne de commande :
une fonction définie par une expression algébrique. On saisit nom_fonction(parametres):=expression Par exemple, pour définir le périmètre d’un cercle de rayon rr, on peut taper
(pour taper :, taper F3 puis sélectionner : dans la liste) puis on peut calculer
.

Autre exemple, pour calculer l’intervalle de confiance de seconde connaissant une fréquence pp et un effectif nn, on tape


puis on teste

Utilisation de l’éditeur
En tapant sur la touche prgm depuis le shell, on entre dans l’éditeur de programme (tapez sur annul pour revenir au shell). Ceci ouvre l’éditeur avec une maquette de fonction def f(x): Remplacez x par n, puis déplacez le curseur en fin de ligne et passez à la ligne (entree). Tapez F2 puis enter (for), placez un j entre for et in range( puis un n entre les parenthèses de range(). À la ligne suivante, tapez F3 7 (print) et validez (enter), puis tapez j,j^2). Vous devriez avoir le texte source suivant :

def f(n):
  for j in range(1,n+1):
    print(j,j^2)
  return x


Remplacez x par n dans return (ou effacez la ligne). N.B.: pour la puissance, on peut utiliser ^ ou ** dans KhiCAS (il faut utiliser ** en Python).

Maintenant, tapez 2nd enter. Si tout va bien, le message Syntaxe OK apparait brièvement dans la ligne d’état. Sinon, le numéro de ligne de la première erreur est indiqué ainsi que le mot qui a provoqué l’erreur. Le curseur est positionné sur la ligne où l’erreur a été détectée (il peut arriver que l’erreur soit située avant mais détectée un peu plus loin seulement). Si vous utilisez la syntaxe en Python, notez que les structures de programmation sont traduites en langage Xcas, les erreurs affichées le sont par rapport à cette traduction (donc des mots-clefs de fin de structure comme end peuvent avoir été ajoutées).

Si le programme est syntaxiquement correct, vous pouvez le sauvegarder depuis le menu F5. Pour l’exécuter, revenez au shell en tapant la touche annul, tapez par exemple f(10), vous devriez voir s’afficher les carrés de 1 à 10.

N.B. : dans l’éditeur de programmes, l’appui sur la touche enter passe à la ligne, tapez 2nd enter pour interpréter le contenu de l’éditeur.

Un exemple de fonction non algébrique : le calcul du PGCD de 2 entiers.
Utiliser enter pour passer à la ligne.

def pgcd(a,b):
  while b!=0:
    a,b=b,irem(a,b)
  return a


Mise au point
La commande debug permet d’exécuter une fonction en mode pas-à-pas, i.e. visualiser l’évolution des variables instruction par instruction, par exemple
debug(pgcd(12345,3425))

11.2  Commandes utilisables

Contrairement aux adaptations de MicroPython proposées par certains constructeurs, la programmation en (simili-)Python dans KhiCAS n’est pas une application indépendante. Vous pouvez donc utiliser tous les types de Xcas (par exemple les rationnels) et appliquer toutes les commandes de Xcas dans vos programmes. Ceci correspond plus ou moins à un environnement Python avec les modules math, cmath, un petit module de graphiques pixelisé (draw_pixel(x,y,c), draw_line(x1,y1,x2,y2,c), draw_polygon([[x1,y1],[x2,y2],...],c), draw_rectangle(x,y,w,h,c), draw_circle(x,y,r,c), la couleur+epaisseur+remplissage c est un paramètre optionnel, draw_arc(x,y,rx,ry,t1,t2,c) permet de tracer un arc d’ellipse). De plus, vous pouvez travailler avec des expressions et faire du calcul formel dessus. Pour la liste complète des commandes et une présentation détaillée, on renvoie à la documentation de Xcas.

12  Raccourcis claviers.

13  Extinction, reset, horloge.

Comme tout logiciel, χ\chiCAS n’est pas exempt de bugs. Si un calcul bloque (mais il faut souvent être patient sur la 83 qui est lente), commencez par essayer de l’interrompre en appuyant sur la touche annul. Si cela ne suffit pas, appuyez sur le bouton RESET à l’arrière de la calculatrice.

Lorsque KhiCAS n’arrive plus à allouer de la mémoire, l’application quitte brutalement et revient au shell de l’OS. Vous pouvez rouvrir KhiCAS et réessayer, dans certains cas le calcul fautif pourra se dérouler normalement à partir d’un état réinitialisé de la mémoire (tas mémoire non fragmenté).

Pour remettre à l’heure l’horloge interne de la calculatrice qui est affichée dans le shell, tapez une commande du type hh,mm=>, par exemple 16,05=>, pour 16h05.

Si vous voulez éteindre la calculatrice pour une courte durée, vous pouvez utiliser 2nd ON, mais cela ne fait que diminer la consommation électrique (absence de rétroéclairage). Pour une longue période, il vaut mieux quitter χ\chiCAS en tapant 2nd quit depuis le shell.

Si la mémoire non fragmentée disponible, affiché en tapant sur la touche var, s’approche de 0, vous pouvez quitter χ\chiCAS (2nd quit) et le relancer (2nd apps 2). Il y a un peu moins de 100K de mémoire non fragmentée disponible lorsqu’on lance χ\chiCAS.

14  Copyright, licences et remerciements

15  Compiler sa propre version de KhiCAS

Pour pouvoir compiler du code natif sur TI83, il faut installer la toolchain de compilation CE, dont voici la documentation. Installez aussi le code source de KhiCAS.

Pour pouvoir bénéficier de plus de mémoire, j’ai modifié la toolchain, de sorte que malloc puisse utiliser la partie supérieure de la RAM LCD et que malloc arrête l’exécution du programme s’il ne peut allouer de mémoire (car Giac ne gère pas le retour d’un pointeur nul).

Cette archive contient l’ensemble des modifications que j’ai faites, à désarchiver dans le source de la toolchain, dans toolchain/src/libc/. Il faut au préalable installer le source de la toolchain. Et il faut ensuite recompiler la toolchain et réinstaller pour que la modification soit effective. Cf. la documentation.

Ensuite, vous pouvez utiliser, après adaptation, l’un des shell scripts mkapp* pour générer l’application en français pour le lycée (mkappfr) ou le supérieur (mkappl2) ou en anglais (mkappen).

Ces shell scripts s’occupent de supprimer les relocations de l’application pour gagner entre 25 et 30% de place en utilisant le programme dont le source est reloc.cc. Cela suppose que l’application est installée en premier (en général, c’est la seule application installée vu la place disponible).

Vous pouvez modifier les composants installés dans KhiCAS en jouant sur les flags de compilation -DWITH_ dans makefile.fr ou makefile.en ou makefile.l2. Par exemple le support des unités physique est inclus par -DWITH_UNITS et occupe environ 40K. Notez que la taille de l’application varie par pages de 64K (une page partiellement occupée est considérée comme utilisée en entier).

Si vous voulez adapter l’interface (shell et éditeur de programmation), comme le temps de compilation de KhiCAS est assez long (6 minutes environ), il vaut mieux travailler avec un clone du shell sans KhiCAS et tester avec l’émulateur. Ce clone se compile avec mkapp en 15 secondes environ, au lieu de 6 minutes.

16  Le mot de la fin

Au printemps 2020, le buzz déclenché par une vidéo malheureuse sur une faille du mode examen sur les 83 a failli tuer le développement de programmes par des tiers sur la plateforme ti83/84, le lecteur intéressé pourra consulter cet article de tiplanet pour en savoir un peu plus. À la même époque, Numworks fermait le développment de son système d’exploitation et rendait l’utilisation d’applications externes très dissuasive. En 2023, Casio décidait de ne pas laisser s’exécuter des applications externes sur son modèle de calculatrices Graph Math+, successeur de la 90. C’est d’ailleurs la raison principale qui m’a poussé à porter KhiCAS sur les ti83 malgré la difficulté technique, puisque KhiCAS pour Casio Graph 90 ne peut pas être porté sur les Math+, la ti83 est mon dernier espoir de démocratiser le calcul formel en France.

La raison invoquée pour empêcher les programmes tiers est toujours la même, la sécurité, et les constructeurs s’assoient sur le travail de la communauté au motif qu’il s’agirait de développements qui risquent de détourner l’attention des élèves de l’apprentissage. Mais qu’en est-il en réalité ? Le mode examen a été introduit parce que certains examens veulent interdire les documents et certaines fonctionnalités, alors qu’on pourrait très bien interdire ou autoriser les calculatrices graphiques selon les épreuves. Les constructeurs ne sont pas à l’origine de la mesure, mais ils en ont tiré parti, cela permet à ceux qui ont plusieurs modèles de calculatrices de segmenter le marché, et de faire payer au prix fort certaines fonctionnalités qui auparavant pouvaient être rajoutées sur les modèles moins onéreux par des programmes développés par des tiers. Il est étonnant qu’en France dont la devise contient pourtant le mot égalité, qui est un principe cité à l’article premier de la constitution, si peu de gens remettent en cause le principe du mode examen qui est très inégalitaire.

Il va être très intéressant de suivre ce que sera l’avenir de ce portage de Xcas sur les TI83. Le constructeur va-t-il accepter une application de calcul formel sur ce modèle milieu de gamme alors que son propre modèle CAS coute environ deux fois plus et signer KhiCAS ce qui permettrait de l’installer comme une application de TI et de l’utiliser en mode examen ? Si la réponse est positive, les autres constructeurs seront certainement amenés à reconsidérer leur position actuelle et le calcul formel pourrait devenir accessible à la majorité des lycéens et non réservé à un très petit pourcentage d’élèves pouvant se payer une TI Nspire CX2 CAS ou une HP Prime en en comprenant l’intérêt.

Si la réponse est négative, le calcul formel risque de rester définitivement réservé aux élèves issus de milieux socio-économiques favorisés. C’est un problème qui a pourtant été signalé il y a longtemps. Voici un court extrait de ce qu’on pouvait lire dans le numéro 15 (avril-mai 1999) de la revue Hypothèses, éditée par TI (scan publié avec l’aimable autorisation de TI France), je cite (page 7)
La question de l’équité
Le problème d’une aggravation des inégalités sociales provoquées par l’arrivée de ces nouvelles calculatrices est soulevé par de nombreux enseignants ... Une calculatrice symbolique performante permet à un élève ne disposant d’aucune aide particulière (parents, cours particuliers...) de vérifier sans difficulté la validité de tous les calculs techniques. Il est même parfaitement envisageable de pouvoir faire tourner sur cette calculatrice des logiciels permettant d’aider un élève en difficulté à trouver une méthode correcte, par exemple lors de la résolution d’une équation ou d’un calcul de primitives.
À terme, l’introduction des outils de calcul symboliques pourrait donc permettre d’atténuer certaines inégalités... Cela dit, il reste vrai qu’il faut trouver des solutions permettant de rendre possible l’accès de ces calculatrices à un plus grand nombre d’élèves. C’est un problème d’égalité des chances, et c’est comme nous l’avons vu un impératif pédagogique si l’on souhaite pouvoir utiliser largement une calculatrice dans le cadre de l’enseignement des mathématiques.

Ce document est 25 ans après toujours d’actualité. En fait, j’ai le sentiment que l’aspect utilisation intelligente de la calculatrice pour faire des maths, dont l’utilisation du calcul formel, a beaucoup reculé en France en 20-25 ans. Anedocte allant en ce sens : j’ai demandé en 2023/24 à une partie des étudiants inscrits en master 1ère année de maths dans mon université combien parmi eux avait déjà utilisé un logiciel de calcul formel, la réponse fut : 0 (!). Cette année 2024/25, sur l’ensemble de la promotion, moins de 1 sur 5.

Enfin, si le constructeur décide d’appliquer des restrictions pour empêcher KhiCAS de fonctionner sur les ti83/84, il risque d’empêcher la programmation native sur cette plateforme, il ne resterait alors plus aucun espace pour les très bon jeunes développeurs sur calculatrices, alors que certains découvrent leur talent en développant sur calculatrices. L’age d’or commencé avec les HP48 dans les années 90, puis sur la plateforme TI83/84 ou Nspire (ndless) et les Casio graphique couleur serait alors définitivement révolu.

Situation au 15 novembre 2024 : on va vers une certaine neutralité du constructeur, officieusement bienveillante. TI ne signerait pas officiellement l’application KhiCAS, raison invoquée cela prendrait trop de ressources pour le tester. Mais TI ne s’y opposerait pas, sous réserve que le développement d’une solution de mise en examen compatible avec KhiCAS ne fonctionne pas avec la dernière version de l’OS. Donc ne faites surtout pas de mise à jour vers la version 5.8.2 sortie ce 15 novembre.

  

Retour à la page principale de Giac/Xcas.
Ce document a été traduit de LATEX par HEVEA