Home   Archives    Hardware   Programmation   Challenges   Forum   Le Mag    Faq   La Communauté   L'Equipe
 
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

Les raccourcis
 

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


 


Copyright © Ti-Fr v2.0 1999-2002