TI-Basic

TI-Basic

TI-Basic est le nom non officiel du langage de programmation des calculatrices graphiques Texas Instruments. Ce terme n'est jamais utilisé par Texas Instruments dans les documentations officielles. Par sa philosophie et ses capacités, ce langage se rapproche du BASIC, d'où son nom. Cependant, sa syntaxe est substantiellement différente de celle du BASIC. Le TI-Basic des calculatrices basées sur le Motorola 68000 (« 68 K ») n'est pas le même que celui des calculatrices basées sur le Z80. Chaque modèle de calculatrice dispose de fonctionnalités particulières exploitables par les programmes, mais le cœur du langage est commun.

Le TI-Basic est un langage impératif interprété. Selon les modèles de calculatrices, les instructions peuvent être soit choisies dans des menus, soit tapées en toutes lettres sur un clavier alphanumérique. Dans le premier cas, aucune phase de lexémisation n'est nécessaire, et le programme est directement stocké sous une forme de bytecode. Dans le second cas, une lexémisation est effectuée lors de la première exécution qui suit une modification. Dans tous les cas, l'interprète proprement dit travaille sur le bytecode.

Sommaire

Description succincte du langage

Types de données

Les variables utilisables sont celles accessibles depuis les écrans de calcul. Par exemple, dans le cas de la TI-82 :

  • les nombres à virgule flottante ;
  • les matrices ;
  • les listes (statistiques) ;
  • les fonctions de graphes ;
  • les variables système;
  • les tableaux de données.

La TI-82 ne permet pas le stockage et la manipulation d'autres types de données, comme les chaînes de caractères. Il est uniquement possible d'afficher des chaînes. Il s'agit d'un langage à typage fort, en considérant qu'il n'est pas possible de modifier ou de choisir le type de valeurs des variables. Les variables sont globales et n'ont pas besoin d'être déclarées avant d'être utilisées dans une expression.

D'autres types de données (par exemple, chaînes de caractères) sont disponibles sur d'autres modèles.

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 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.

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).

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 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 ;
  • Input permet également de récupérer les coordonnées du curseur affiché à l'écran;
  • 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 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

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 (coordonnées en pixels pour les TI-89 ou supérieurs, en ligne/colonnes de caractères pour les plus anciennes) :

Output(Y,X,"HELLO WORLD")

Remarque : les programmes en Ti-Basic n'effectuant qu'une instruction par ligne, les deux exemples précédents sont simplifiables respectivement en :

Disp "HELLO, WORLD !
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.

Jeu du pile ou face

Ce programme est un jeu qui simule plusieurs fois le lancer d'une pièce. Elle retombe soit sur le côté pile, soit sur le côté face. Vous y apprendrez comment utiliser la fonction de génération d'entier aléatoire, autrement dit randInt(. Notez que ce programme est la racine du jeu, et qu'il est possible d'y ajouter des fonctionnalités ensuite.

:Lbl D                                                      Étiquette du Début du programme.
:0->N                                                       Initialisation de la variable N (Touche STO-> Pour ->)
:Menu("PILE OU FACE","PILE",A1,"FACE",A2,"QUITTER",Q)       Menu préprogrammé. S'il n'est pas dans vos fonctions, suivez l'aide ***
:LblA1                                                      Étiquette du choix PILE
:1->J                                                       La variable J prend la valeur 1. Le joueur a choisi PILE
:Goto B                                                     Aller à l'étiquette B
:Lbl A2                                                     Étiquette du choix FACE
:0->J                                                       La variable J prend la valeur 0. Le joueur a choisi FACE
:Lbl B                                                      Étiquette B
:randInt(0,1)->N                                            La variable N prend la valeur d'un entier (0,1,2,3,4,5...) entre 0 et 1.
:if N=J                                                     Si le nombre aléatoire est égal au nombre choisi par le joueur.
:Then                                                       Alors...
:Disp "GAGNE !                                              Afficher GAGNE !
:else                                                       Sinon...
:Disp "PERDU !                                              Afficher PERDU !
:End                                                        Fin Boucle Si
:Pause                                                      Maintenir le resultat afficher
:Goto D                                                     Aller à l'étiquette du Début du programme.
:Lbl Q                                                      Étiquette Quitter le jeu.
:output(1,1,"                                               Retire le done lors de l'arrêt du programme.


***Le menu est une fonctionnalité qui aide beaucoup, seulement si votre OS ne l'a pas vous pouvez utiliser :

:Disp "0. PILE
:Disp "1. Face
:Input "VOTRE CHOIX",J

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            Suppression 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

NB : Il est inutile de tester tous les nombres de 1 à N, on peut se contenter d'aller jusque N/2 , ou mieux \sqrt{N}, (Il ne faut alors pas oublier de mettre N, qui est un diviseur, dans la liste)

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.

:Lbl 1                      A ne mettre que si l'on écrit la boucle entrer/ annul (voir fin programme)
:EffEcr                     On efface l'écran
:Disp "FORME AX²+BX+C"      On indique à l'utilisateur à quoi correspondent les lettres A, B et C demandées plus tard 
:Prompt A                   Pareil que :Input "A=", A  mais moins gourmand en caractères donc en mémoire
:Prompt B                   Demande   de B
:Prompt C                     //   de C
:B²-4AC→D                   Calcul de delta le discriminant
:Disp "DELTA=",D            On informe l'utilisateur de ce que vaut le discriminant
:If D<0                     Si D inférieur à 0, alors...  
:Disp "PAS DE RACINES"      écrit...
: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
Pas obligatoire (en italique) : l'appui sur "annul" permet de quitter le programme, sur "entrer" de le recommencer  
:Repeat K = 105             tant que l'utilisateur n'appuie pas sur entrer...
:codetouche → K             La variable K est assimilée au codeTouche  
:If K = 45 : Goto 2         L'appui sur la touche annul envoi à Lbl 2
:End                        Fin de boucle
:Goto 1                     Retour au départ
:Lbl 2                      Après avoir appuyer sur "Annul"
:EffEcr                     Efface l'écran
:Output(1,1,""              Évite l'inscription de "Fait" à l'écran

Sources

  • Manuel d'utilisation de la TI-82.

Voir aussi

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article TI-Basic de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Basic (langage) — BASIC Pour les articles homonymes, voir Basic. {{{image}}}   Sigles d une seule lettre   Sigles de deux lettres   Sigles de trois lettres …   Wikipédia en Français

  • BASIC — Información general Paradigma estructurado imperativo Apareció en 1964 Diseñado por John George Kemeny; Thomas Eugene Kurtz …   Wikipedia Español

  • Basic English — Basic English, also known as Simple English, is an English based controlled language created (in essence as a simplified subset of English) by linguist and philosopher Charles Kay Ogden as an international auxiliary language, and as an aid for… …   Wikipedia

  • BASIC — Класс языка: алгоритмическое, процедурное, объектное программирование Появился в: 1963 г. Расширение файлов: .bas Типизация данных: нестрогая Бейсик (от BASIC, сокращение от англ.  …   Википедия

  • BASIC-256 — с …   Википедия

  • Basic AG — Rechtsform Aktiengesellschaft Gründung 1997 Sitz Mü …   Deutsch Wikipedia

  • Basic writing — Basic writing, or developmental writing, is a discipline of composition studies which focuses on the writing of students sometimes otherwise called remedial or underprepared , usually freshman college students. Contents 1 Defining Basic Writing 2 …   Wikipedia

  • Basic-Englisch — Basic English ist eine vereinfachte Form des Englischen, in der lediglich die wichtigsten Wörter der englischen Sprache vorkommen. Die von Charles Kay Ogden im Jahr 1930 geschaffene Englischvariante wird manchmal auch als Plansprache bezeichnet,… …   Deutsch Wikipedia

  • Basic Englisch — Basic English ist eine vereinfachte Form des Englischen, in der lediglich die wichtigsten Wörter der englischen Sprache vorkommen. Die von Charles Kay Ogden im Jahr 1930 geschaffene Englischvariante wird manchmal auch als Plansprache bezeichnet,… …   Deutsch Wikipedia

  • Basic Channel — Moritz von Oswald Mark Ernestus en 2007 au festival MUTEK Surnom Maurizio …   Wikipédia en Français

  • Basic Channel (label) — Basic Channel Basic Channel Moritz von Oswald Mark Ernestus en 2007 au festival MUTEK Alias Maurizio …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”