Programmation. Texas Instruments TI-NSPIRE CAS
Advertisement
Advertisement
Programmation
Vous pouvez créer des fonctions ou des programmes définis par l'utilisateur en saisissant les instructions de définition dans la ligne de saisie de l'application Calculs ou en faisant appel à l'Éditeur de programmes. L'Éditeur de programmes offre plusieurs avantages, qui sont abordés dans cette section. Pour plus d'informations concernant la définition de programmes et de fonctions dans l'application Calculs, reportez-vous au chapitre consacré à cette application.
Présentation de l'Éditeur de programmes
L'Éditeur de programmes TI-Nspire™ vous permet de définir, modifier et gérer les fonctions et programmes définis par l'utilisateur.
• Il intègre des modèles de programmation et des boîtes de dialogue qui vous aident à définir des fonctions et des programmes en utilisant la syntaxe appropriée.
• Il vous permet de saisir des instructions de programmation réparties sur plusieurs lignes sans avoir à utiliser de séquence de touches particulière pour ajouter chacune des lignes.
• Vous pouvez créer aisément des objets de bibliothèque privée et publique (variables, fonctions et programmes). Pour plus d'informations à ce sujet, consultez le chapitre consacré aux bibliothèques.
• Il est accessible via le menu
Outils (Tools) > Insertion (Insert)
, ainsi qu'à partir du menu
Fonctions et programmes (Functions &
Programs)
de l'application Calculs.
Programmation 369
À
Â
Á
À
Menu de l'Éditeur de programmes : ce menu est accessible à tout moment dans l'espace de travail Éditeur de programmes. Appuyez sur b
pour l'afficher.
Á
Espace de travail Éditeur de programmes
Â
La barre d'état affiche des informations sur le numéro de ligne et le nom de la fonction ou du programme en cours de modification. Un astérisque (*) indique que la fonction a été modifiée depuis la dernière vérification de sa syntaxe et qu'elle a été stockée.
370 Programmation
Menu de l'Éditeur de programmes
Nom du menu
Option du menu Fonction
Actions
Nouveau (New)
Ouvrir (Open)
Importer (Import)
Affichage (View)
Créer une copie
(Create Copy)
Renommer (Rename)
Changer l'accès à la bibliothèque (Change
Library Access)
Insérer un commentaire
(Insert Comment)
Rechercher (Find)
Affiche une boîte de dialogue vous permettant de définir une nouvelle fonction ou un nouveau programme.
Permet d'ouvrir une fonction ou un programme de bibliothèque existant en vue de sa modification.
Importe un programme ou une fonction d'une autre bibliothèque.
Permet d'afficher (et, facultativement, de modifier) une fonction ou un programme de bibliothèque existant.
Permet de copier la fonction ou le programme courant.
Permet de renommer la fonction ou le programme courant.
Permet de changer le niveau d'accès d'un objet de bibliothèque en privé (LibPriv), public (LibPub) ou sans accès.
Insère un commentaire (
©
) à l'emplacement du curseur.
Affiche une boîte de dialogue permettant de lancer une recherche de texte.
Programmation 371
Nom du menu
Option du menu
Rechercher et remplacer
Aller à la ligne
Retour
Fermer (Close)
Fonction
Permet de trouver et, le cas
échéant, de remplacer les occurrences du texte spécifié.
Place le curseur sur le numéro de ligne spécifié.
Permet de quitter aisément l'Éditeur de programmes et de revenir à l'application Calculs ou Éditeur mathématique en cas d'erreur d'exécution.
Ferme la fonction ou le programme courant.
Vérifier la syntaxe et enregistrer (Check Syntax & Store)
Vérifier la syntaxe et enregistrer (Check Syntax
& Store)
Vérifier la syntaxe (Check
Syntax)
Recherche les erreurs de syntaxe et place le curseur au niveau de la première erreur détectée. En l'absence d'erreur, cette fonction enregistre la fonction ou le programme courant.
Recherche les erreurs de syntaxe et place le curseur au niveau de la première erreur détectée.
Définir les variables (Define
Variables)
Local
Define
Suppression variable
(Delete Variable)
Func...EndFunc
Insère la commande
Local
.
Insère la commande
Define
.
Insère la commande
DelVar
.
Insère le modèle
Func...EndFunc
.
372 Programmation
Nom du menu
Option du menu
Prgm...EndPrgm
Verrouiller
Contrôle (Control)
If
If...Then...EndIf
If...Then...Else...EndIf
ElseIf...Then
For...EndFor
While...EndWhile
Loop...EndLoop
Try...Else...EndTry
ClrErr
PassErr
Transfert (Transfer)
Return
Cycle
Exit
Lbl
Go to Lbl
Fonction
Insère le modèle
Prgm...EndPrgm
.
Insère la commande
Lock
,
unLock
ou
getLockInfo()
.
Insère l'instruction
If
.
Insère le modèle
If...Then...EndIf
.
Insère le modèle
If...Then...Else...EndIf
.
Insère le modèle
ElseIf...Then
.
Insère le modèle
For...EndFor
.
.
Insère le modèle
While...EndWhile
.
Insère le modèle
Loop...EndLoop
Insère le modèle
Try...Else...EndTry
.
Insère la commande
ClrErr
.
Insère la commande
PassErr
.
Insère la commande
Insère la commande
Insère la commande
Insère la commande
Insère la commande
return()
Cycle
Exit
Lbl
.
.
Goto
.
.
.
Programmation 373
Nom du menu
Option du menu
Stop
Fonction
Insère la commande
Stop
.
Entrée/Sortie (Input/Output)
Disp Insère la commande
Disp
.
Mode
Afficher chiffres (Display
Digits)
Angle
Format Exponentiel
(Exponential Format)
Réel ou Complexe (Real or
Complex)
Automatique ou
Approché (Auto or
Approximate)
Permet de sélectionner différents réglages d'affichage en virgule flottante (Float) et fixe (Fix).
Permet de spécifier l'unité de mesure d'angle en degrés, radians ou grades.
Permet de sélectionner la notation normale, scientifique ou ingénieur.
Permet de sélectionner le mode
Réel (Real), Rectangulaire
(Rectangular) ou Polaire (Polar).
Permet de sélectionner l'affichage Automatique ou
Approché (Auto or
Approximate) des résultats.
Format Vecteur (Vector
Format)
Base
Système d'unités (Unit
System)
Permet de sélectionner le format rectangulaire
(Rectangular), cylindrique
(Cylindrical) ou sphérique
(Spherical).
Permet de sélectionner la base décimale (Decimal), hexadécimale (Hex) ou binaire
(Binary).
Permet de sélectionner le système SI ou Ang/US (Eng/US).
374 Programmation
Nom du menu
Option du menu Fonction
GetMode
Afficher les informations sur la langue
Astuces
Insère la commande
getMode()
.
Insère la fonction
getLangInfo()
.
Affiche des informations concernant l'utilisation de l'Éditeur de programmes.
Définition d'un programme ou d'une fonction
Démarrage de l'Éditeur de programmes
1.
Si vous n'êtes pas dans une page Calculs, appuyez sur
/ c
, puis sélectionnez
Insertion (Insert) > Éditeur de programmes >
Nouveau (New)
.
- ou -
Si une page Calculs est déjà affichée, appuyez sur b
pour afficher le menu de l'Éditeur de programmes, puis sélectionnez
Fonctions et programmes (Functions & Programs) > Éditeur de programmes >
Nouveau (New)
.
2.
Entrez le nom de la fonction ou du programme que vous souhaitez définir.
3.
Sélectionnez le
Type
(
Programme (Program)
ou
Fonction
(Function)
).
Programmation 375
4.
Définissez l'
Accès à la bibliothèque (Library Access)
:
– Si vous ne souhaitez utiliser la fonction ou le programme qu'à partir du classeur et de l'activité courante, sélectionnez
Aucun
(None)
.
– Pour pouvoir accéder à la fonction ou au programme depuis n'importe quel classeur, sans l'afficher dans le Catalogue
(Catalog), sélectionnez
LibPriv
.
– Si vous souhaitez pouvoir accéder à la fonction ou au programme depuis n'importe quel classeur et l'afficher dans le
Catalogue (Catalog), sélectionnez
LibPub (Afficher dans le catalogue) (LibPub Show in Catalog)
. Pour plus d'informations
à ce sujet, consultez le chapitre consacré aux bibliothèques.
5.
Cliquez sur
OK
.
Une nouvelle session de l'Éditeur de programmes s'ouvre, avec le modèle correspondant aux sélections effectuées.
Saisie de lignes dans une fonction ou un programme
L'Éditeur de programmes n'est pas conçu pour exécuter ou évaluer les expressions au moment de leur saisie. Leur exécution intervient uniquement lorsque vous évaluez la fonction ou exécutez le programme.
1.
Si votre fonction ou programme exige la saisie d'arguments par l'utilisateur, spécifiez les noms de paramètres entre les parenthèses qui suivent son nom. Séparez les paramètres par des virgules.
376 Programmation
2.
Entre les lignes Func et EndFunc (ou Prgm et EndPrgm), saisissez les lignes d'instructions qui constituent votre fonction ou programme.
– Vous pouvez saisir le nom des fonctions et des commandes ou les insérer directement à partir du Catalogue (Catalog).
– La longueur d'une ligne peut excéder la largeur de l'écran, mais dans ce cas, vous devez faire défiler son contenu pour afficher l'instruction complète.
– À la fin de chaque ligne, appuyez sur
·
pour insérer une nouvelle ligne et ainsi poursuivre votre saisie.
– Utilisez les touches fléchées
¡
,
¢
,
£
et
¤
pour faire défiler les lignes de la fonction ou du programme afin de saisir ou de modifier des commandes.
Insertion de commentaires
Un symbole de commentaire (©) vous permet d'insérer une remarque.
Les commentaires peuvent s'avérer utiles pour toutes les personnes voulant lire ou modifier le contenu du programme. Les commentaires ne s'affichent pas lors de l'exécution du programme et ils n'en n'affectent en aucune façon le déroulement.
Define LibPub volcyl(ht,r) =
Prgm
©volcyl(ht,r) => volume du cylindre
Disp "Volume =", approx(
EndPrgm p ¦
r
2
©Ceci est un autre commentaire.
¦
ht)
À
Programmation 377
À
Commentaire indiquant la syntaxe à utiliser. S'agissant d'un objet de bibliothèque public et ce commentaire correspondant à la première ligne d'un bloc Func ou Prgm, il s'affiche dans le Catalogue (Catalog) en guise d'aide. Pour plus d'informations à ce sujet, consultez le chapitre consacré aux bibliothèques.
Pour insérer un commentaire :
1.
Placez le curseur à l'extrémité de la ligne où vous souhaitez insérer un commentaire.
2.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
3.
Sélectionnez
Actions
, puis
Insérer un commentaire (Insert
Comment)
.
4.
Tapez le texte du commentaire à la suite du symbole ©.
Vérification de la syntaxe
L'Éditeur de programmes vous permet de vérifier la syntaxe de vos fonctions et programmes.
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Vérifier la syntaxe et enregistrer
(Check Syntax & Store)
, puis choisissez
Vérifier la syntaxe (Check
Syntax)
.
Si des erreurs de syntaxe sont détectées, un message d'erreur s'affiche et le curseur est placé, dans la mesure du possible, au niveau de la première erreur pour vous permettre de la corriger.
378 Programmation
Stockage d'une fonction ou d'un programme
Vous devez stocker votre fonction ou programme pour la/le rendre accessible. L'Éditeur de programmes vérifie automatiquement la syntaxe de l'objet avant de procéder à son stockage.
Un astérisque (*) s'affiche dans l'angle supérieur gauche de l'Éditeur de programmes pour indiquer que la fonction ou le programme n'a pas encore été stocké.
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Vérifier la syntaxe et enregistrer (Check
Syntax & Store)
, puis choisissez
Vérifier la syntaxe et enregistrer
(Check Syntax & Store)
.
– Si des erreurs de syntaxe sont détectées, un message d'erreur s'affiche et le curseur est placé, dans la mesure du possible, au niveau de la première erreur.
– En l'absence d'erreur de syntaxe, le message “Enregistrement effectué“ s'affiche dans la ligne d'état qui se trouve dans la partie supérieure de la fenêtre de l'Éditeur de programmes.
Remarque : si la fonction ou le programme a été défini comme objet de bibliothèque, vous devez également enregistrer le classeur dans le dossier de bibliothèque spécifié et rafraîchir les bibliothèques pour rendre l'objet accessible aux autres classeurs. Pour plus d'informations à ce sujet, consultez le chapitre consacré aux bibliothèques.
Affichage d'un programme ou d'une fonction existante
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Affichage (View)
.
La boîte de dialogue Affichage (View) apparaît.
3.
Si la fonction ou le programme est un objet de bibliothèque, sélectionnez celle-ci dans la liste
Emplacement (Location)
.
Programmation 379
4.
Sélectionnez le nom de la fonction ou du programme dans la liste
Nom (Name)
.
La fonction ou le programme sélectionné s'affiche dans une visionneuse.
5.
Utilisez les touches fléchées pour parcourir la fonction ou le programme.
6.
Après avoir parcouru la fonction ou le programme, sélectionnez
Modifier (Edit)
(appuyez sur e
pour mettre en surbrillance l'option
Modifier (Edit)
et appuyez sur
·
) pour l'ouvrir dans l'Éditeur de programmes ou appuyez sur d
pour fermer la visionneuse.
Remarque : l'option
Modifier (Edit)
est uniquement disponible pour les fonctions et les programmes définis dans l'activité courante.
Pour modifier un objet de bibliothèque, vous devez préalablement ouvrir le classeur de bibliothèque associé.
Ouverture d'une fonction ou d'un programme existant
L'ouverture d'une fonction ou d'un programme n'est possible qu'à partir de l'activité courante.
Remarque : vous ne pouvez pas modifier une fonction ou un programme verrouillé. Pour déverrouiller l'objet, affichez une page
Calculs et utilisez la commande
unLock
.
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Ouvrir (Open)
.
380 Programmation
La liste des fonctions et programmes disponibles s'affiche.
3.
Sélectionnez l'élément à ouvrir.
Importation d'un programme à partir d'une bibliothèque
Vous pouvez importer dans l'activité courante une fonction ou un programme défini comme objet de bibliothèque dans l'Éditeur de programmes. La copie importée n'est pas verrouillée, même si l'élément d'origine l'est.
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Importer (Import)
.
La boîte de dialogue Importer (Import) apparaît.
3.
Sélectionnez le
nom de la bibliothèque (Library Name)
.
4.
Sélectionnez le
nom (Name)
de l'objet.
5.
Pour importer l'objet sous un autre nom, saisissez celui-ci dans le champ
Importer en tant que (Import As)
.
Création d'une copie d'une fonction ou d'un programme
Lors de la création d'une fonction ou d'un programme, il peut être plus simple de démarrer en utilisant la copie d'une fonction ou d'un programme existant. La copie créée n'est pas verrouillée, même si l'élément d'origine l'est.
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Créer une copie (Create Copy)
.
Programmation 381
La boîte de dialogue Créer une copie (Create Copy) apparaît.
3.
Saisissez un nouveau nom ou cliquez sur
OK
pour accepter le nom suggéré.
4.
Si vous souhaitez modifier le niveau d'accès, sélectionnez
Accès à la bibliothèque (Library Access)
, puis choisissez le nouveau niveau d'accès.
Changement de nom d'un programme ou d'une fonction
Vous pouvez renommer la fonction ou le programme courant et
(facultativement) en modifier le niveau d'accès.
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Renommer (Rename)
.
Une boîte de dialogue s'affiche et vous suggère un nouveau nom.
3.
Saisissez un nouveau nom ou cliquez sur
OK
pour accepter le nom suggéré.
4.
Si vous souhaitez modifier le niveau d'accès, sélectionnez
Accès à la bibliothèque (Library Access)
, puis choisissez le nouveau niveau d'accès.
Modification du niveau d'accès à la bibliothèque
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Changer l'accès à la bibliothèque
(Change Library Access)
.
382 Programmation
3.
Sélectionnez le niveau d'
Accès à la bibliothèque (Library Access)
:
– Si vous ne souhaitez utiliser la fonction ou le programme qu'à partir de l'activité courante, sélectionnez
Aucun (None)
.
– Pour pouvoir accéder à la fonction ou au programme depuis n'importe quel classeur, sans l'afficher dans le Catalogue
(Catalog), sélectionnez
LibPriv
.
– Si vous souhaitez pouvoir accéder à la fonction ou au programme depuis n'importe quel classeur et l'afficher dans le
Catalogue (Catalog), sélectionnez
LibPub
.
Recherche de texte
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Rechercher (Find)
.
3.
Saisissez le texte à rechercher, puis cliquez sur
OK
.
– Si une occurrence du texte est trouvée, elle est mise en surbrillance dans le programme.
– Si aucune occurrence du texte n'est trouvée, un message de notification vous en informe.
Recherche et remplacement de texte
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Rechercher et remplacer
.
Programmation 383
3.
Saisissez le texte à rechercher.
4.
Entrez le texte de remplacement.
5.
Cliquez sur
Remplacer
pour remplacer la première occurrence du texte après le curseur ou cliquez sur
Tout remplacer
pour remplacer toutes les occurrences trouvées.
Remarque : si une occurrence du texte est trouvée dans un modèle mathématique, un message s'affiche pour vous indiquer que le texte de remplacement sera utilisé à la place de l'intégralité du modèle et pas simplement du texte trouvé.
Fermeture de la fonction ou du programme courant
1.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
2.
Sélectionnez
Actions
, puis
Fermer (Close)
.
3.
Si des modifications ont été apportées à la fonction ou au programme et n'ont pas été enregistrées, vous êtes invité à vérifier la syntaxe de l'objet et à l'enregistrer avant de le fermer.
Exécution de programmes et évaluation de fonctions
Après avoir défini et enregistré une fonction ou un programme, vous pouvez l'utiliser dans une application. Toutes les applications TI-Nspire™ permettent d'évaluer des fonctions, mais seule l'application Calculs est capable d'exécuter des programmes.
Les instructions de programme sont exécutées en ordre séquentiel
(même si certaines commandes modifient le déroulement de l'exécution du programme). Le résultat, le cas échéant, est affiché dans l'espace de travail de l'application.
384 Programmation
• L'exécution d'un programme se poursuit jusqu'à ce que la dernière instruction ou qu'une commande
Stop
soit atteinte.
• L'exécution d'une fonction se poursuit jusqu'à ce qu'une commande
Return
soit atteinte.
• Pour arrêter manuellement un programme ou une fonction, maintenez enfoncée la touche w
pendant plusieurs secondes.
Utilisation des noms abrégés et des noms complets
À tout moment, dans une même activité où un objet est défini, il est possible d'accéder à celui-ci en saisissant son nom abrégé (celui donné dans la ligne de commande
Define
de l'objet). Cela s'applique à tous les objets définis, y compris les objets privés, publics et les objets qui n'appartiennent à aucune bibliothèque.
Vous pouvez accéder à un objet de bibliothèque depuis n'importe quel classeur en saisissant son nom complet. Le nom complet d'un objet est composé du nom du classeur de bibliothèque, suivi d'une barre oblique inverse (\) et du nom de l'objet. Par exemple, le nom complet de l'objet défini comme
fonc1
dans le classeur de bibliothèque
bib1
est
bib1\fonc1
. Pour saisir le caractère « \ » sur l'unité nomade, appuyez sur g p
.
Remarque : si vous avez oublié le nom exact ou l'ordre des arguments requis pour un objet de bibliothèque privée, vous pouvez ouvrir le classeur de bibliothèque ou utiliser l'Éditeur de programmes pour afficher l'objet en question. Vous pouvez également utiliser la commande
getVarInfo
afin d'obtenir la liste des objets d'une bibliothèque.
Utilisation d'une fonction ou d'un programme de bibliothèque publique
1.
Assurez-vous d'avoir défini l'objet dans la première activité du classeur, de l'avoir enregistré, d'avoir enregistré le classeur de bibliothèque dans le dossier Ma bibliothèque (MyLib) et d'avoir rafraîchi les bibliothèques.
2.
Ouvrez l'application TI-Nspire™ dans laquelle vous souhaitez utiliser la fonction ou le programme.
Remarque : toutes les applications TI-Nspire™ permettent d'évaluer des fonctions, mais seule l'application Calculs est capable d'exécuter des programmes.
Programmation 385
3.
Ouvrez le Catalogue (Catalog) et utilisez l'onglet des bibliothèques
pour rechercher et insérer l'objet voulu.
- ou -
Saisissez le nom de l'objet. Dans le cas d'une fonction ou d'un programme, faites toujours suivre le nom de parenthèses. libs2\func1()
4.
Si votre fonction ou programme exige la saisie d'un ou plusieurs arguments, spécifiez les valeurs ou les noms de variables dans les parenthèses qui suivent son nom.
libs2\func1(34,puissance)
5.
Appuyez sur
·
.
Utilisation d'une fonction ou d'un programme de bibliothèque privée
Pour utiliser un objet de bibliothèque privée, vous devez connaître son nom complet. Par exemple, le nom complet de l'objet défini comme
func1
dans le classeur de bibliothèque
lib1
est
lib1\func1
.
Remarque : si vous avez oublié le nom exact ou l'ordre des arguments requis pour un objet de bibliothèque privée, vous pouvez ouvrir le classeur de bibliothèque ou utiliser l'Éditeur de programmes pour afficher l'objet en question.
1.
Assurez-vous d'avoir défini l'objet dans la première activité du classeur, de l'avoir enregistré, d'avoir enregistré le classeur de bibliothèque dans le dossier Ma bibliothèque (MyLib) et d'avoir rafraîchi les bibliothèques.
2.
Ouvrez l'application TI-Nspire™ dans laquelle vous souhaitez utiliser la fonction ou le programme.
Remarque : toutes les applications TI-Nspire™ permettent d'évaluer des fonctions, mais seule l'application Calculs est capable d'exécuter des programmes.
3.
Saisissez le nom de l'objet. Dans le cas d'une fonction ou d'un programme, faites toujours suivre le nom de parenthèses.
libs2\func1()
386 Programmation
4.
Si l'objet exige la saisie d'un ou plusieurs arguments, spécifiez les valeurs ou les noms de variables dans les parenthèses qui suivent son nom.
libs2\func1(34,puissance)
5.
Appuyez sur
·
.
Exécution d'un programme ou d'une fonction non rattaché
à une bibliothèque
1.
Vérifiez que vous vous trouvez dans l'activité où la fonction ou le programme a été défini.
2.
Saisissez le nom de la fonction ou du programme dans la ligne de saisie ou appuyez sur h pour sélectionnez son nom dans une liste.
Vous devez toujours faire suivre le nom de l'objet de parenthèses.
prog1()
Si votre fonction ou programme exige la saisie d'un ou plusieurs arguments, spécifiez les valeurs ou les noms de variables dans les parenthèses qui suivent son nom.
prog1(34,puissance)
3.
Appuyez sur
·
.
Interruption de l'exécution d'un programme
Lors de l'exécution d'une fonction ou d'un programme, le pointeur en forme d'horloge
}
signalant que le système est occupé s'affiche.
f Maintenez enfoncée la touche w
pendant plusieurs secondes pour arrêter l'exécution du programme.
Un message s'affiche.
– Pour modifier la fonction ou le programme dans l'Éditeur de programmes, sélectionnez
Aller à
. Le curseur apparaît au niveau de la commande où s'est produit l'arrêt.
– Pour fermer la fenêtre du message, appuyez sur d
.
Saisie de valeurs dans un programme
Pour saisir des valeurs dans un programme, vous pouvez :
Programmation 387
• Demander au préalable aux utilisateurs de stocker des valeurs dans certaines variables. L'objet peut alors se référer aux variables en question.
Define calculatearea()=
Prgm
area:=wt*ht
EndPrgm wt:=3:ht:=23 calculatearea():area
• Intégrer directement les valeurs à l'objet proprement dit.
Define calculatearea()=
Prgm
wt:=3
ht:=23
area:=wt*ht
EndPrgm calculatearea():area
• Utiliser des paramètres dans la définition de l'objet. Cela permet aux utilisateurs de transmettre une ou plusieurs valeurs sous la forme d'arguments à l'objet lorsqu'ils l'utilisent.
Define calculatearea(wt,ht)=
Prgm
area:=wt*ht
EndPrgm calculatearea(3,23):area
Exemple de transmission de valeurs à un programme
Le programme suivant,
volcyl
, permet de calculer le volume d'un cylindre. Deux valeurs doivent être transmises au programme : tout d'abord, la hauteur, puis le rayon du cylindre.
Lorsque vous définissez le programme dans l'Éditeur de programmes, vous spécifiez dans les parenthèses les paramètres qui seront utilisés pour stocker les valeurs transmises. Les paramètres sont des marques substitutives, par conséquent, leur ordre a de d'importance. Les noms de paramètres que vous choisissez doivent décrire le type d'information à fournir.
1.
Définissez le programme
volcyl
.
388 Programmation
Define volcyl(hauteur,rayon
2
) =
Prgm
Disp "Volume =", approx(
p ¦
rayon
2
¦
hauteur)
EndPrgm
2.
Exécutez ce programme pour afficher le volume d'un cylindre ayant une hauteur de 34 mm et un rayon de 5 mm.
volcyl(34,5) Volume = 534.071
Remarque : il n'est pas nécessaire d'utiliser les noms des paramètres lorsque vous exécutez le programme
volcyl
, mais vous devez spécifier deux arguments (sous la forme de valeurs, variables ou expressions). Le premier correspond à la hauteur et le deuxième au rayon.
Affichage d'informations
L'exécution d'un programme ou d'une fonction ne permet pas d'afficher les calculs intermédiaires, à moins de spécifier la commande
Disp
. Il s'agit d'une différence importante entre un calcul effectué au niveau de la ligne de saisie et un calcul effectué dans le cadre d'une fonction ou d'un programme.
Ces calculs n'affichent pas de résultat dans une fonction ou un programme (alors qu'ils en affichent un dans la ligne de saisie).
12
¦
6 cos( p
/4)
Disp
affiche le résultat ou le texte d'un calcul dans une fonction ou un programme.
Disp 12
¦
6
Disp "Result:",cos( p
/4)
L'affichage du résultat ne signifie pas que celui est stocké. Si vous envisagez de réutiliser ultérieurement un résultat calculé dans un programme, stockez-le dans une variable globale.
cos( p
/4)
& maximum
Disp maximum
Programmation 389
Utilisation des variables locales
Une variable locale est une variable temporaire qui n'existe que pendant la durée d'évaluation d'une fonction définie par l'utilisateur ou d'exécution d'un programme défini par l'utilisateur.
Exemple de variable locale
L'extrait de programme suivant montre une
boucle For...EndFor
(décrite plus loin dans ce chapitre). La variable
i
correspond au compteur de boucles. Dans la plupart des cas, la variable
i
n'est utilisée que pendant l'exécution du programme.
Local i
Disp i
EndFor
Disp i
À
For i,0,5,1
À
Déclare la variable
i
comme variable locale.
Remarque : Dans la mesure du possible, déclarez comme variable locale toutes les variables qui ne sont utilisées qu'à l'intérieur du programme et dont la disponibilité n'est pas nécessaire une fois l'exécution de celui-ci terminée.
Quelle est l'origine de l'affichage du message d'erreur relatif à une variable indéfinie ?
Un message d'erreur relatif à une variable
indéfinie
s'affiche lorsque vous évaluez une fonction définie par l'utilisateur ou exécutez un programme défini par l'utilisateur qui fait référence à une variable qui n'a pas été initialisée (c'est-à-dire, à laquelle aucune valeur n'a été assignée).
Par exemple :
Define fact(n)=Func
Local m
EndWhile
Return m
EndFunc
À
While n>1 n
† m
& m: n–1
& n
À
Aucune valeur initiale n'a été assignée à la variable locale
m
.
390 Programmation
Vous devez initialisez les variables locales.
Toutes les valeurs locales doivent se voir assigner une valeur initiales avant de pouvoir être référencées.
Define fact(n)=Func
Local m: 1
& m
EndWhile
Return m
EndFunc
À
While n>1 n
† m
& m: n–1
& n
À
1 est stocké comme valeur initiale de la variable
m
.
Remarque : les fonctions et les programmes ne peuvent pas utiliser une variable locale pour effectuer des calculs symboliques.
Exécution de calculs symboliques
Pour qu'une fonction ou un programme exécute des calculs symboliques, vous devez utiliser une variable globale et non locale. Il convient néanmoins de s'assurer que la variable globale n'existe pas déjà indépendamment du programme. À cet effet, les méthodes suivantes peuvent vous aider.
• Utilisez un nom de variable globale, généralement de deux caractères ou plus, qui a peu de chances d'exister indépendamment de la fonction ou du programme.
• Insérez la commande
DelVar
dans votre programme afin de supprimer la variable globale, si elle existe, avant d'y faire référence.
(
DelVar
ne permet pas de supprimer les variables verrouillées ou liées.)
Différences entre les fonctions et les programmes
Une fonction définie via l'Éditeur de programmes présente de nombreuses similitudes avec les fonctions intégrées à l'unité TI-Nspire™
CAS.
• Les fonctions doivent donner un résultat, lequel peut être représenté graphiquement ou saisi dans un tableau. Les programmes ne donnent aucun résultat.
• Vous pouvez utiliser une fonction (mais pas un programme) dans une expression. Par exemple :
3
¦
func1(3)
est valide, mais pas
3
¦
prog1(3)
.
• Les programmes peuvent uniquement être exécutés dans l'application Calculs. Au contraire, les fonctions peuvent être
Programmation 391
évaluées dans les applications Calculs, Éditeur mathématique,
Tableur & listes, Graphiques & géométrie et Données & statistiques.
• Une fonction peut faire référence à n'importe quelle variable, mais ne peut stocker de valeur que dans une variable locale. Les programmes permettent de stocker des valeurs dans les variables locales et globales.
Remarque : les arguments utilisés pour transmettre les valeurs à une fonction sont considérés automatiquement comme des variables locales. Pour les stocker dans d'autres types de variables, vous devez déclarer celles-ci comme variables locales (
Local
) depuis la fonction.
• Une fonction ne permet pas d'appeler un programme comme sousroutine mais peut, en revanche, appeler une autre fonction définie par l'utilisateur.
• Il est impossible de définir un programme à l'intérieur d'une fonction.
• Une fonction ne peut pas définir une fonction globale, mais peut définir une fonction locale.
Appel d'un programme depuis un autre programme
Un programme peut appeler un autre programme et l'exécuter comme sous-routine. Cette sous-routine peut être externe (programme distinct) ou interne (programme intégré au programme principal). L'utilisation de sous-routines est utile lorsqu'un programme doit répéter le même groupe de commandes à plusieurs emplacements différents.
Appel d'un programme distinct
Pour appeler un programme distinct, utilisez la même syntaxe que pour exécuter le programme à partir de la ligne de saisie.
Define subtest1()=
Prgm
For i,1,4,1 subtest2(i,i
¦
1000)
EndFor
EndPrgm
Define subtest2(x,y)=
Prgm
Disp x,y
EndPrgm
392 Programmation
Définition et appel d'une sous-routine interne
Pour définir une sous-routine interne, utilisez la commande
Define
et le bloc
Prgm...EndPrgm
. Dans la mesure où une sous-routine doit être définie avant de pouvoir être appelée, il est judicieux de définir les sousroutines au début du programme principal.
L'appel et l'exécution d'une sous-routine s'effectuent de la même façon que pour un programme distinct.
Define subtest1()=
Prgm local subtest2 À
Define subtest2(x,y)=
Prgm
Disp x,y
EndPrgm
Â
Á
©Début du programme principal
For i,1,4,1 subtest2(i,I*1000)
EndFor
À
Déclare la sous-routine comme variable locale.
Á
Définit la sous-routine.
Â
Appelle la sous-routine.
Remarque : Utilisez le menu
Var
de l'Éditeur de programmes pour insérer les commandes
Define
et
Prgm...EndPrgm
.
Remarques relatives à l'utilisation des sous-routines
À la fin d'une sous-routine, le processus d'exécution revient au programme qui l'a appelée. Pour quitter une sous-routine à tout autre moment, utilisez la commande
Return
sans spécifier d'argument.
Une sous-routine n'a pas accès aux variables locales déclarées dans le programme qui l'a appelée. De la même façon, le programme qui appelle la sous-routine n'a pas accès aux variables locales déclarées dans celle-ci.
Les commandes Lbl
sont considérées locales par rapport aux programmes dans lesquels elles se trouvent. Par conséquent, une commande
Goto
présente dans le programme appelant ne peut pas accéder à une étiquette située dans une sous-routine et inversement.
Programmation 393
Élimination des erreurs de définition circulaire
Lors de l'évaluation d'une fonction définie par l'utilisateur ou de l'exécution d'un programme, vous pouvez spécifier un argument qui inclut la même variable que celle utilisée pour définir la fonction ou créer le programme. Cependant, pour éliminer tout risque d'erreur de définition circulaire, vous devez assigner une valeur aux variables qui sont utilisées dans le cadre de l'évaluation de la fonction ou de l'exécution du programme. Par exemple : x+1
& x À
– ou –
For i,i,10,1
Disp i
EndFor
À
À
Génère un message d'erreur de
définition circulaire
si aucune valeur n'est assignée à x ou i. Aucune erreur ne se produit si une valeur a été assignée à x ou i.
Contrôle du déroulement d'une fonction ou d'un programme
Lorsque vous exécutez un programme ou évaluez une fonction, leurs lignes sont exécutées en ordre séquentiel. Toutefois, certaines commandes peuvent affecter le déroulement d'un programme. Par exemple :
• Les structures de contrôle telles que
If...EndIf
effectuent un test conditionnel pour déterminer la partie du programme à exécuter.
• Les commandes de boucle comme
For...EndFor
répètent un groupe de commandes.
Utilisation des commandes If, Lbl et Goto pour contrôler l'exécution des programmes
La commande
If
et plusieurs structures
If...EndIf
vous permettent de procéder à l'exécution conditionnelle d'une instruction ou un bloc d'instructions, autrement dit, en fonction du résultat d'un test (par exemple, x>5).
Les commandes Lbl
et
Goto
vous permettent d'effectuer des enchaînements ou des sauts d'un point à un autre d'une fonction ou d'un programme.
La commande
If
et plusieurs structures
If...EndIf
sont accessibles via le menu
Contrôle (Control)
de l'Éditeur de programmes.
394 Programmation
Lorsque vous insérez une structure de type
If...Then...EndIf
, un modèle est inséré à l'emplacement du curseur. Celui-ci est placé de sorte à vous permettre de saisir un test conditionnel.
Commande If
Pour exécuter une seule commande lorsqu'un test conditionnel est vrai, utilisez le format général suivant :
If x>5
Disp "x est supérieur à 5"
Disp x Á
À
À
La commande est exécutée uniquement si x>5, sinon elle est ignorée.
Á
Affiche toujours la valeur de x.
Dans cet exemple, vous devez stocker une valeur dans la variable x avant de pouvoir exécuter la commande
If
.
Structures If...Then...EndIf
Pour exécuter un group de commandes lorsqu'un test conditionnel est vrai, utilisez la structure suivante :
If x>5 Then
Disp "x est supérieur à 5"
2
† x
& x
EndIf
Disp x
À
Á
À
À
La commande est exécutée uniquement si x>5.
Á
Affiche la valeur de :
2x if x>5 x if x {5
Remarque :
EndIf
marque la fin du bloc
Then
qui est exécuté si la condition est vraie.
Structures If...Then...Else... EndIf
Pour exécuter un groupe de commandes si un test conditionnel est vrai et un autre groupe de commandes si la condition est fausse, utilisez la structure suivante :
Programmation 395
If x>5 Then
Disp "x est supérieur à 5"
À
À
2
† x
& x
Else
Disp "x est inférieur ou égal à 5"
5
† x
& x
EndIf
Disp x
Á
Â
Á
À
La commande est exécutée uniquement si x>5.
Á
La commande est exécutée uniquement si x
{5.
Â
Affiche la valeur de :
2x if x>5
5x if x
{5
Structures If...Then...ElseIf... EndIf
Une forme plus complexe de la commande If vous permet de tester plusieurs conditions. Par exemple, vous souhaitez qu'un programme teste un argument spécifié par l'utilisateur qui correspond à une des quatre options possibles.
Pour tester chaque option (If Choix=1, If Choix=2, et ainsi de suite.), utilisez la structure
If...Then...ElseIf...EndIf
.
Commandes Lbl et Goto
Vous pouvez également contrôler l'exécution d'un programme à l'aide des commandes
Lbl
et
Goto
. Ces commandes sont accessibles via le menu
Transfert (Transfer)
de l'Éditeur de programmes.
Utilisez la commande
Lbl
pour marquer d'une étiquette (assigner un nom
à) un emplacement spécifique d'une fonction ou d'un programme.
Lbl
nomÉtiquette
nom à assigner à l'emplacement (utilisez les conventions de dénomination applicables aux noms de variables)
Vous pouvez ensuite utiliser la commande
Goto
en tout point de la fonction ou du programme pour créer un enchaînement avec l'emplacement qui correspond à l'étiquette spécifiée.
Goto
nomÉtiquette
spécifie la commande
Lbl
avec laquelle créer l'enchaînement
396 Programmation
La commande
Goto
étant inconditionnelle (elle exécute toujours l'enchaînement avec l'étiquette spécifiée), elle est souvent utilisée avec une commande
If
de façon à pouvoir spécifier un test conditionnel. Par exemple :
If x>5
Goto GT5
Disp x
--------
Á
À
--------
Lbl GT5
Disp "Le nombre était > 5"
À
Si x>5, on passe directement à l'étiquette GT5.
Á
Pour cet exemple, le programme doit inclure des commandes
(comme
Stop
) qui empêchent l'exécution de la commande
Lbl
GT5 si x {5.
Utilisation des boucles pour répéter un groupe de commandes
Pour répéter le même groupe de commandes à plusieurs reprises, utilisez l'une des structures de boucle suivantes. Vous disposez de plusieurs types de boucles. Chaque type de boucle propose une méthode de sortie de la boucle différente, basée sur un test conditionnel.
Les commandes de boucle et autres commandes associées sont accessibles via les menus
Contrôle (Control)
et
Transfert (Transfer)
de l'Éditeur de programmes.
Lorsque vous utilisez l'une des structures de boucle, le modèle correspondant est inséré à l'emplacement du curseur. Vous pouvez alors commencer à saisir les commandes à exécuter à l'intérieur de la boucle.
Boucles For...EndFor
Une boucle
For...EndFor
utilise un compteur pour contrôler le nombre d'exécution de la boucle. La syntaxe de la commande
For
est la suivante :
Remarque : La valeur de fin peut être inférieure à la valeur de départ, à condition que l'incrément soit négatif.
For
variable, début, fin [, incrément]
À Á Â Ã
À
Variable utilisée comme compteur
Programmation 397
Á
Valeur du compteur utilisée lors de la première exécution de la boucle
For
Â
Quitte la boucle lorsque la
variable excède cette valeur.
Ã
Ajouté au compteur à chaque nouvelle exécution de la boucle
For
(si cette valeur facultative n'est pas utilisée, la valeur de l'
incrément est
1.)
Lors de l'exécution de la boucle
For
, la valeur de la
variable est comparée
à la valeur de
fin. Si la variable n'excède pas la valeur de fin, la boucle est exécutée. Dans le cas contraire, l'exécution du programme se poursuit en effectuant un saut jusqu'à la commande située après
EndFor
.
i > 5 i
{
5
For i,0,5,1
--------
--------
EndFor
--------
Remarque : la commande
For
incrémente automatiquement la variable du compteur de sorte que la fonction ou le programme puisse sortir de la boucle après un certain nombre d'exécutions de celle-ci.
À la fin de la boucle (
EndFor
), le programme revient au niveau de la commande
For
, incrémente la variable et la compare à la valeur de
fin
.
Par exemple :
For i,0,5,1
Disp i
EndFor
Disp i
À
Á
À
Affiche 0, 1, 2, 3, 4 et 5.
Á
Affiche 6. Lorsque la
variable atteint 6, la boucle n'est pas exécutée.
Remarque : Vous pouvez déclarer la variable du compteur comme variable locale si elle ne doit pas être enregistrée après l'arrêt de la fonction ou du programme.
Boucles While...EndWhile
Une boucle
While...EndWhile
répète un bloc de commandes tant qu'une condition spécifiée est vraie. La syntaxe de la commande
While
est la suivante :
While
condition
398 Programmation
Lorsque la commande
While
est exécutée, la
condition est évaluée. Si la
condition est vraie, la boucle est exécutée. Dans le cas contraire, l'exécution du programme se poursuit en effectuant un saut jusqu'à la commande située après
EndWhile
.
x
|
5 x < 5
While x<5
--------
--------
EndWhile
--------
Remarque : la commande
While
ne change pas automatiquement la condition. Vous devez ajouter des commands qui permettent à la fonction ou au programme de sortir de la boucle.
À la fin de la boucle (
EndWhile
), l'exécution du programme se poursuit de nouveau au niveau de la commande
While
, où la condition est réévaluée.
Pour exécuter la boucle la première fois, la condition doit être vrai.
• Toutes les variables référencées dans la condition doivent être définies avant l'exécution de la commande
While
. (Vous pouvez définir les valeurs dans une fonction ou un programme ou encore demander à l'utilisateur de les saisir.)
• La boucle doit contenir les commandes qui modifient les valeurs de la condition, et éventuellement font qu'elle soit fausse. Sinon, la condition est toujours vraie et la fonction ou le programme ne peut pas sortir de la boucle (laquelle devient une boucle infinie).
Par exemple :
0
& x À
While x<5
Disp x x+1
& x
EndWhile
Disp x
Á
Â
Ã
À
Définit la variable x.
Á
Affiche 0, 1, 2, 3 et 4.
Â
Incrémente la variable x.
Ã
Affiche 5. Lorsque x atteint 5, la boucle n'est pas exécutée.
Programmation 399
Boucles Loop...EndLoop
Loop...EndLoop
crée une boucle infinie, qui se répète indéfiniment. La commande
Loop
n'a pas d'argument.
Loop
--------
--------
EndLoop
--------
En général, vous insérez dans une boucle les commandes permettant au programme de sortir de celle-ci. Les commandes souvent utilisées à cet effet sont les suivantes :
If
,
Exit
,
Goto
et
Lbl
. Par exemple :
0
& x
Loop
Disp x x+1
& x
If x>5
Exit
EndLoop
Disp x
À
Á
À
Une commande
If
vérifie la condition.
Á
Sort de la boucle et revient à cet emplacement lorsque
x
atteint 6.
Remarque : la commande
Exit
permet de sortir de la boucle active.
Dans cet exemple, la commande
If
peut se trouver en tout point de la boucle.
Si la commande If se trouve : La boucle est :
Au début de la boucle Exécutée sous réserve que la condition soit vraie.
À la fin de la boucle Exécutée au moins une fois, puis répétée seulement si la condition est vraie.
La commande
If
peut être utilisée conjointement à une commande
Goto
pour que l'exécution du programme passe sous le contrôle d'une commande
Lbl
spécifiée.
400 Programmation
Répétition immédiate d'une boucle
La commande
Cycle
permet de transférer immédiatement le contrôle de l'exécution d'un programme à l'itération suivante d'une boucle (avant la fin de l'exécution de l'itération en cours). Cette commande s'utilise avec les blocs
For...EndFor
,
While...EndWhile
et
Loop...EndLoop
.
Boucles Lbl et Goto
Bien que les commandes
Lbl
et
Goto
ne soient pas des commandes de boucle à proprement parler, elles peuvent être utilisées pour créer une boucle infinie. Par exemple :
Lbl DÉBUT
--------
--------
Goto DÉBUT
--------
Comme dans le cas du bloc
Loop...EndLoop
, la boucle doit contenir des commandes permettant à la fonction ou au programme de sortir de celle-ci.
Changement des réglages de mode
Les fonctions et les programmes peuvent utiliser la fonction
setMode()
pour définir temporairement des modes de calcul ou d'affichage des résultats spécifiques. Le menu
Mode
de l'Éditeur de programmes permet d'utiliser la syntaxe correcte sans qu'il soit nécessaire de mémoriser des codes numériques.
Remarque : les changements de mode effectués dans une définition de fonction ou de programme ne sont pas conservés une fois la fonction ou le programme exécuté.
Réglage d'un mode
1.
Placez le curseur à l'emplacement où insérer la fonction
setMode
.
2.
Appuyez sur b
pour afficher le menu de l'Éditeur de programmes.
3.
Dans le menu
Mode
, sélectionnez le mode voulu pour afficher les réglages autorisés associés.
4.
Sélectionnez un réglage.
La syntaxe appropriée est insérée à l'emplacement du curseur. Par exemple :
Programmation 401
Débogage des programmes et gestion des erreurs
Après avoir écrit une fonction ou un programme, vous pouvez utiliser différentes techniques pour rechercher et corriger les erreurs. Vous pouvez également créer une commande de gestion des erreurs à l'intérieur d'une fonction ou d'un programme.
Si votre fonction ou programme permet à l'utilisateur d'effectuer un choix parmi plusieurs options, veillez à l'exécuter et à tester chacune des options.
Techniques de débogage
Les messages d'erreur d'exécution peuvent localiser les erreurs de syntaxe, mais pas celles liées à la logique du programme. Les techniques suivantes peuvent vous être utiles.
• Insérez temporairement des commandes
Disp
pour afficher les valeurs des variables importantes.
• Pour vérifier qu'une boucle a été exécutée le nombre de fois voulu, utilisez la commande
Disp
pour afficher la variable du compteur ou les valeurs du test conditionnel.
• Pour confirmer l'exécution d'une sous-routine, utilisez la commande
Disp
pour afficher des messages comme « Début sous-routine » et «
Sortie sous-routine » au début et à la fin de la sous-routine.
• Pour arrêter manuellement un programme ou une fonction, maintenez enfoncée la touche w
pendant plusieurs secondes.
Commandes de gestion des erreurs
Commande Description
Try...EndTry
Définit un bloc qui permet à une fonction ou un programme d'exécuter une commande et, si nécessaire, d'assurer la reprise de l'exécution après une erreur générée par cette commande.
ClrErr
PassErr
Supprime l'état d'erreur et règle sur 0 (zéro) le nombre d'erreurs dans la variable système Errornum.
Passe une erreur au niveau suivant du bloc
Try...EndTry
.
402 Programmation
Download
Advertisement