| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

TI-Basic

Page history last edited by adriweb 16 years, 4 months ago

Le 'TI-Basic' est le langage de programmation des calculatrices graphiques Texas Instruments. Il ressemble au langage BASIC, d'où son nom. Le TI-Basic inclus dans les Calculatrices graphiques Texas Instruments, calculatrices basées sur le processeur Motorola 68000 ou sur le Zilog z80. Chaque modèle de calculatrice dispose de fonctionnalités particulières exploitables par les programmes, excepté les 68k, qui vont par pair(89-92+ et 89T-V200) mais le cœur du langage est commun.

 

Description succincte du langage

Types de données

Les variables utilisables sont celles accessibles depuis les écrans de calcul.

  • nombres à virgule flottante (variables désignées par les lettres de l'alphabet) ;
  • les matrices ;
  • les listes ;
  • les fonctions de graphes ;
  • les variables système;
  • les tableaux de données;
  • images;
  • programmes
  • programmes compilés;
  • Chaînes de caractères (certaines z80 et toutes les 68k)
  • Données graphiques (68k);
  • Données (68k);
  • Fonctions (68k).

 

Les variables peuvent toujours être globales (pour toute la calculatrice) ou sur certains modèles: internes (au programme)

 

Syntaxe

    La syntaxe est très simple et adaptée à tout débutant en programmation. Ces machines constituent à l'instar du Basic un excellent moyen de s'initier à la programmation et de découvrir les mathématiques de façon plus « ludique » qu'un cours magistral.

 

    Revers de la médaille, les possibilités sont assez réduites sur z80 et concentrées uniquement sur les algorithmes mathématiques relativement simples. Certains ont réussi à programmer des programmes plus complexes, par exemple des jeux, mais il est presque impératif dans ce cas d'avoir recours à l'assembleur.

    Les 68k disposes de beaucoup plus de ressources et sont plus rapides (7-8 fois pour certaines)

 

    Sur les calculatrices à base de Z80, pour saisir les instructions dans le programme, il ne faut pas les taper au clavier alphanumérique, vu que les lettres représentent des variables. Elles doivent être sélectionnées à chaque fois dans le menu Prgm. Ainsi, pour terminer une expression, c'est le caractère double-point qui est utilisé, celui-ci étant automatiquement ajouté à chaque début de nouvelle ligne. Il est aussi disponible manuellement pour saisir plusieurs instructions sur une même ligne.

 

    Les commandes de contrôle et de boucle doivent être terminées à l'aide du mot-clef End, qui sert de marqueur de fin de bloc (de la même façon que l'accolade dans les langages de la famille du C (langage)|C).

 

    Les erreurs de syntaxe ou d'overflow sont signalées de la même manière que pour toute autre expression saisie sur la machine, et provoquent l'arrêt du programme avec un message d'erreur.

 

****Contrôles****

Le TI-Basic supporte les concepts fondamentaux de contrôle, à savoir :

*l'affectation avec la flèche orientée à droite (→) : l'expression située à gauche de la flèche est évaluée, et le résultat est rangé dans la variable située à droite ;

*les instructions de branchements conditionnels If, Then, Else, EndIf ;

*les boucle_(informatique)|boucles : While (Z80), Repeat (Z80) ou Loop (68K), For ;

*les branchements, avec l'instruction Goto et les étiquettes désignées par Lbl. De plus, une commande Menu (Z80) ou ToolBar (68K) permet d'afficher un menu d'options, chacune effectuant un branchement vers une étiquette spécifiée.

 

****Entrées/Sorties****

Les instructions d'entrées/sorties sont :

  • Input et Prompt, afin de demander à l'utilisateur de taper une valeur à affecter à une variable ;
  • Output, afin d'afficher une variable ou une chaîne à un emplacement de l'écran, contrairement à la suivante ;
  • Disp, qui ne permet que de sortir une variable dans le flux de l'écran principal ;
  • DispGraph, DispTable, qui affichent le graphe ou la table courante ;
  • ClrHome, ClrTable, qui effacent l'écran principal ou la table courante ;
  • PrintScreen(z80), imprime l'écran courant sur un périphérique externe si connecté ;
  • Get et Send auxquels s'ajoutent GetCalc et SendCalc sur 68K et SendChat pour nouvelles 68K; ils exportent ou importent une variable depuis un dispositif externe (une autre machine) ;
  • getKey permet enfin d'obtenir le code (scancode) correspondant à la dernière touche pressée.

 

****Création de fonctions et programmes****

Dans les calculatrices basées sur le Motorola 68000, une fonction ou un programme peut être créé directement en utilisant la fonction Define, sa syntaxe est:

 

Define ma_fonction(v1,..,vN) Func : fonction... : EndFunc

 

 

Ceci peut être utilisé à l'intérieur d'une autre fonction et implémente ainsi des fonctions et programmes locaux.

 

Dans les calculatrices basées sur le Z80, ceci est impossible. La seule possibilité est d'appeler des autres programmes enregistrés sur la machine, en supposant qu'ils sont bien présents, et ceux-ci ne supportent pas d'arguments.

 

****Divers****

Sont bien entendu disponibles dans les instructions les nombreuses fonctions mathématiques des diverses machines.

 

Il est possible d'échanger des programmes en reliant deux calculatrices par câble, ou encore en reliant la calculatrice à un ordinateur; ceci permettant aussi d'avoir recours à un émulateur sur ordinateur afin de faciliter la frappe et la mise au point d'un programme.

 

Exemples de programmes z80

Hello world

Le mot-clef Disp permet d'afficher le traditionnel Hello world à l'écran :

 

:Disp "HELLO, WORLD !"

 

 

Mais l'on peut aussi utiliser une autre fonction, qui affichera hello world aux coordonnées définies par X et Y :

 

:Output(Y,X,"HELLO WORLD")

 

 

Carré d'un nombre

Pour faire un programme qui affiche le carré d'un nombre, il faut :

*entrer le nombre, avec l'instruction Input qui admet en premier argument le message d'invite et en second le nom de la variable qui va recevoir le nombre :

:'Input' "A ",A

 

*calculer le carré, grâce à la touche ² et assigner ce résultat à une variable (facultatif) avec à la touche :

:A²→R

 

*afficher le nombre, avec l'instruction Disp qui affiche un argument par ligne :

:'Disp' "A² ",R

 

 

Les instructions Input et Disp se trouvent dans le sous-menu I/O en appuyant sur PRGM durant l'édition du programme.

 

Trouver les diviseurs d'un nombre (dans ℕ)

Ce programme permet de trouver les diviseurs d'un nombre. Il montre plusieurs structures essentielles de la programmation TI-Basic. Il stocke ces diviseurs dans une liste L1 qu'il affiche en fin d'exécution.

 

 

:0→P Initialisation de la variable

:Input "N",N Demande le nombre dont on veut trouver les diviseurs

:ClrList L1 Suppresion de la liste L1 (si existante)

:For(I,1,N) Début de la boucle 'For' : Pour I variant de 1 à N

:N/I→A Divise le nombre choisi au départ par le Input par un diviseur possible

:If fPart(A)=0 Si la partie décimale de A est nulle...

:Then ...Alors...

:P+1→P ...On incrémente la variable...

:I→L1(P) ...Et on stocke le diviseur dans L1

:End Fin de la boucle 'If'

:End Fin de la boucle 'For'

:Pause L1 Fin du programme par une pause sur les valeurs de L1 (les diviseurs de N), appuyez sur 'ENTER'

 

Trouver les racines réelles d'une fonction trinôme

Ce programme permet de trouver les racines réelles d'une fonction du second degré. Il effectue le calcul du discriminant, et en fonction de celui-ci il calcule la ou les éventuelles racines.

 

 

:Disp "FORME AX²+BX+C" On indique à l'utilisateur à quoi correspondent les lettres A, B et C demandées plus tard

:Prompt A,B,C Demande des 3 nombres grâce au Prompt

:B²-4AC→D Calcul de delta le discriminant

:Disp "DELTA",D On informe l'utilisateur de ce que vaut le discriminant

:If D<0:Then Si D inférieur à 0, alors...

:Disp "PAS DE RACINES" écrit...

:End fin de la condition

:If D>0:Then Si D supérieur à 0, alors...

:Disp "IL Y A 2 RACINES" écrit...

:((-B+√(D))/(2A)→E calcul et stockage de la première racine

:((-B-√(D))/(2A)→F calcul et stockage de la deuxième racine

:Disp E,F on affiche les deux racines

:End fin de la condition

:If D=0:Then Si D est égal à 0, alors...

:Disp "IL Y A 1 RACINE" écrit...

:(-B)/(2A)→G calcul et stockage de la racine

:Disp G on affiche la racine

:End fin de la condition

 

Sources

Manuel d'utilisation de la TI-82.

Wikipédia

ProgVal

Comments (0)

You don't have permission to comment on this page.