Utilisation d'un éditeur Nous allons utiliser le logiciel libre Gedit afin d'écrire nos programmes. Si vous êtes sous Debian ( ou debian-like ) et qu'il n'est pas installé, IL suffit de l'installer via cette commande : sudo apt-get install



Yüklə 0,51 Mb.
səhifə24/43
tarix04.01.2022
ölçüsü0,51 Mb.
#61490
1   ...   20   21   22   23   24   25   26   27   ...   43
    Bu səhifədəki naviqasiya:
  • define
Définition de macros

Il ya encore une autre façon de donner un nom à de petits morceaux de code. Vous pouvez définir des macros en NXC (à ne pas confondre avec les macros dans BricxCC). Nous l'avons vu précédemment, il est possible de définir des constantes, en utilisant #define et en leur donnant un nom. Mais en réalité, on peut définir de cette manière n'importe quel morceau de code. Voici le même programme mais en utilisant une macro pour tourner.

#define turn_around \

OnRev(OUT_B, 75); Wait(3400);OnFwd(OUT_AB, 75);

task main()

{

OnFwd(OUT_AB, 75);



Wait(1000);

turn_around;

Wait(2000);

turn_around;

Wait(1000);

turn_around;

Off(OUT_AB);

}

Après l'instruction #define le mot turn_around désigne le texte qui le suit. Maintenant, partout où vous mettrez turn_around, il sera remplacé par le texte de la définition. Notez que le texte doit être sur une seule ligne. (En fait, il existe des moyens de mettre un déclaration #define sur plusieurs lignes, mais ce n'est pas recommandé.)



Les déclarations #define sont en réalité beaucoup plus puissant. Ils peuvent aussi avoir des arguments. Par exemple, nous pouvons mettre le temps à tourner comme argument de la déclaration. Voici un exemple dans lequel nous définissons quatre macros : pour aller de l'avant, se déplacer vers l'arrière, tourner à gauche et à droite. Chacun possède deux arguments : la vitesse et la durée.

#define turn_right(s,t) \

OnFwd(OUT_A, s);OnRev(OUT_B, s);Wait(t);

#define turn_left(s,t) \

OnRev(OUT_A, s);OnFwd(OUT_B, s);Wait(t);

#define forwards(s,t) OnFwd(OUT_AB, s);Wait(t);

#define backwards(s,t) OnRev(OUT_AB, s);Wait(t);

task main()

{

backwards(50,10000);



forwards(50,10000);

turn_left(75,750);

forwards(75,1000);

backwards(75,2000);

forwards(75,1000);

turn_right(75,750);

forwards(30,2000);

Off(OUT_AB);

}

C'est vraiment très utile de définir de telles macros. Cela rend votre code plus compacte et plus lisible. Vous pouvez aussi plus facilement modifier votre code, pour changer la connexion d'un moteur par exemple.




Yüklə 0,51 Mb.

Dostları ilə paylaş:
1   ...   20   21   22   23   24   25   26   27   ...   43




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin