|
L'équipe progG de Ti-Fr
|
Voici les nicks de vos serviteurs ;-)
chickensaver_john
Kevin Kofler
Thibaut
janjan2
TiMad
Iceman89
fréka
Zewoo
Squale92
Verstand
ZdRUbAl
UtOpIaH
et nEUrOne ...
|
|
Une idée ?
|
Une idée pour améliorez cette partie?
ou tout simplement vous souhaitez participer à l'élaborations
des tutos.
Mailez-nous ici
|
| |
Chapitre
V
Ce Chapitre n'est rien d'autre que la suite du
précédent. Il est donc particulièrement important que vous ayez déjà
essayé de comprendre le Chapitre
IV avant de vous "attaquer" à celui-ci.
I:\ Utilité des
Majuscules dans les noms de fonctions :
Vous avez pu remarquer, lorsque vous avez parcouru les
premiers chapitres de ce tutorial, que les noms de fonctions comportent parfois
des lettres en majuscules, alors que les autres sont en minuscules. Ils existe
deux fonctions, dans celles des librairies de TIGCC, qui permettent de bien
illustrer en quoi les majuscules apportent une grande différence.
Pour cela, nous allons repartir de l'exemple du Premier
Chapitre de ce tutorial, le célèbre "Hello World !". Il
comprenait une ligne de code, qui était composée par l'instruction
clrscr();
Lancez le programme plusieurs fois de suite. Faites
attention à l'emplacement ou le texte est écrit. Essayez à présent de
remplacer cette fonction par la suivante :
ClrScr();
Lancez le programme sur VTI (ou sur votre TI !),
plusieurs fois de suite. Ne remarquez vous rien ?
Eh bien oui, avec l'instruction écrite uniquement en
minuscules, le texte est toujours écrit à partir du coin supérieur gauche de
l'écran, alors que, avec l'instruction (qui est à priori la même !) écrite
avec les majuscules, le texte est placé à la suite de là où il était placé
au lancement précédent !!!
Cela est du au fait que clrscr();
efface l'écran et réinitialise la position d'écriture e la position dans le
coin supérieur gauche de l'écran, alors que ClrScr();
ne fait que effacer l'écran ! (Vous pourrez remarquer, comme indice, que la
version avec les majuscules prend moins de mémoire sur la TI que celle qui en
est dépourvue. Cette différence est de l'ordre de quelques octets).
On peut donc dire que les Majuscules et minuscules doivent
TOUJOURS être respectées dans les noms de fonctions. (En fait, il convient
d'écrire les noms de fonctions de la façon dont elles le sont dans la
documentation des librairies de TIGCC !!!). de toute façon, si vous ne
positionnez pas les majuscules de façon correcte, dans la majorité des cas
(sauf celui présenté ici), le compilateur vous donnera un message d'erreur,
car ce que vous aurez écrit correspondra à une fonction n'existant pas !
II:\ Notes diverses
(concernant le programme du chapitre IV) :
Vous avez pu rencontrer dans le programme du Chapitre
précédent des fonctions dont les noms vous étaient inconnus (nous
étudierons ces cas dans la partie suivante), mais aussi des symboles
"bizarres" à vos yeux si vous n'avez jamais programmé en C.
Nous allons ici tenter de tous les répertorier.
- Le symbole == (2 =
à la suite) signifie quand il est utilisé dans une boucle conditionnelle,
par exemple, que la variable var a pour valeur 12 : on note ceci var==12;
- Le symbole = attribue une
valeur à une variable : la commande var=12;
affecte la valeur 12 à la variable var.
- Il existe 3 tailles de polices (Désolé, mais allez voir la partie
suivante pour savoir comment en changer) : elles sont définies comme F_4x6,
F_6x8 et F_8x10
- Attention, le "_" entre
le "F" et les tailles n'est pas le "-", symbole de la
soustraction, mais un "underscore" !
- Ce programme n'est compilé que pour la TI-92plus, car les codes des
touches de déplacement sont différents pour la TI-89 (ainsi que la taille
de l'écran).
III:\ Les fonctions
nouvelles :
Le programme que nous avons écrit au Chapitre
IV contient un grand nombre de fonctions nouvelles, en particulier des
fonctions de boucles conditionnelles, qui sont généralement indispensables au
bon fonctionnement de tout programme ayant une quelconque utilité.
A:
Boucles conditionnelles :
Les boucles conditionnelles font partie des fonctions
qu'il est le plus dur d'expliquer. Pourtant, elles sont remarquablement simple
à utiliser ! (Quel paradoxe !). Je vais donc vous demander de m'excuser pour
les exemples ridicules que je vais employer.
Bien que nous n'ayons pas encore utilisé beaucoup de
sortes de boucles conditionnelles, nous allons ici essayer d'en étudier le plus
possible (dans les limites de mes connaissances actuelles !), afin de ne pas
avoir à revenir sur ce sujet.
- 1er cas : (Si vous vous appelez Toto, je vous
prie d'accepter mes excuses !)
Il est possible d'utiliser dans un programme la
fonction
if(toto==pas_sage)
Printf("Il sera puni !");
Dans ce cas, seule l'instruction placée juste après
la la ligne if(condition)
sera exécutée, si la condition est vérifiée. Dans notre exemple, toto ne
sera puni que s'il n'est pas sage !
On a donc une syntaxe de la forme :
if(condition)
Instruction si condition vraie.
Instructions exécutées dans tous les cas.
Si vous souhaitez exécuter plusieurs instructions dans le
cas où la condition est vrai, il faudra utiliser :
if(toto==pas_sage)
{
printf("Il n'aura
pas de dessert");
printf("il ne verra
pas le dernier Pokémon");
printf("Il ira se
coucher tôt");
}
Dans ce cas, toutes les instructions placées dans les
crochets seront exécutées si la condition est vraie. Dans notre exemple, Toto,
s'il n'est pas sage, n'aura pas de dessert, ne verra pas le dernier Pokémon, et
ira se coucher tôt.
On a donc un syntaxe de la forme :
if(condition)
{
Instructions si condition vraie
}
Instructions dans tous les cas.
Troisième exemple : vous souhaitez exécuter un groupe
d'instructions dans le cas ou la condition est vraie, et un autre groupe
d'instructions si celle-ci est fausse, la syntaxe générale sera de la forme :
if(condition)
{
Instructions si condition vraie
}
else
{
Instructions si condition fausse
}
Instructions dans tous les cas.
- 2ème cas : l'exemple le plus visible de notre programme :
Il existe, en C, une boucle qui permet d'analyser
le contenu d'une variable, et ensuite de faire différentes choses selon la
valeur de celui-ci. la syntaxe générale de cette fonction est :
switch(variable_à_analyser)
{
case
valeur1:
Instructions si la variable_à_analyser a pour valeur valeur1
break;
case
valeur2:
instructions si la variable_à_analyser a pour valeur valeur2
break;
..........et ainsi de suite.........
}
Cependant, et comme c'est le cas dans le programme dont
nous sommes parti, cette instruction est emboîtée dans un autre boucle, qui a
la syntaxe suivante :
do
{
instructions à répéter tant que "condition" est vraie
}while
(condition)
Ainsi, dans notre programme, la boucle 'switch'
est répétée plusieurs fois ainsi que ce qui la suit, tant que l'on a pas
pressé la touche ESC.
B:
Autres fonctions :
- FonsetSys(taille); : Cette
fonction permet de choisir la taille de la police de caractères qui sera
utilisée ensuite. Les tailles de caractères sont : F_4x6,
F_6x8 et F_8x10
- DrawStr(positionX,positionY,chaîne_de_caractères,mode);
: Cette instruction permet d'écrire la chaîne de caractères chaîne_de_caractères
à la position de coordonnées (positionX, positionY).
Il existe plusieurs valeurs pour mode. Les plus utiles sont A_NORMAL
(écriture de façon normale !) et A_REVERSE
(écriture en Blanc sur fond noir.)
La chaîne de caractères est de la forme "Toto
n'est pas content", c'est-à-dire entre guillemets. (Comme en TI-BASIC
!)
Cette fonction est plus ou moins spécifique au mode
nostub. Il est donc préférable d'utiliser son équivalent correspondant au
mode Doors, mais qui convient aussi au mode nostub :
DrawStrXY(positionX,positionY,chaîne_de_caractères,mode);
Comme vous pouvez le voir, son fonctionnement est
identique à celle utilisée dans notre programme. Elle est juste plus
polyvalente. (C'est d'ailleurs celle que nous utiliserons toujours par la
suite !)
- DlgMessage(Titre, Message,
bouton_1,bouton_2); : Cette fonction permet de créer
un boîte de dialogue dont le titre est la chaîne de caractères Titre,
dont le contenu est la chaîne de caractères Message (retour à la
ligne automatique !), et dont les boutons sont définis par bouton_1
et bouton_2. Il existe différents boutons possibles :
BT_NONE
: Pas de bouton
BT_OK
: Bouton "ENTER=OK"
BT_SAVE
: Bouton "ENTER=SAVE"
BT_YES
: Bouton "ENTER=YES"
BT_CANCEL :
Bouton "ESC=CANCEL"
BT_NO
: Bouton "ESC=NO"
BT_GOTO
: Bouton "ESC=GOTO"
Voilà ! A présent, vous en connaissez assez pour commencer à faire vos premier
programmes, simples, mais ayant déjà une utilité. Ce n'est tout de même pas
une raison pour laisser tomber ce tutorial. Vous pouvez donc passer au chapitre
suivant :
Retour au menu général
Chapitre
VI version Ti-92
Chapitre
VI version Ti-89
|
|