( 14 octobre, 2008 )

Entrées au clavier

Entrées au clavier

Abordons la manière d’entrer quelque-chose au clavier

INPUT X

X peut être une variable numérique ou alphanumérique ($)

INPUT a

Permet d’entrer un chiffre ou un nombre.

Si vous y entrez une ou plusieures lettres, cela provoquera une erreur

INPUT a$

Permet dentrer des chiffres et/ou des lettres

Je vous conseillerai donc le deuxième exemple avec variable alphanumérique.

Si toutefois vous avez besoin d’un variable numérique, voici comment transformer une variable alphnumérique en variable numérique.

CLS
INPUT a$
a=VAL(a$)
PRINT a

L’inverse est possible aussi

CLS
INPUT a
a$=STR$(a)
PRINT a$

Un petit programme reprenant les INPUT

CLS
PRINT « Quel est ton nom : »;
INPUT nom$
PRINT
PRINT « Quel est ton age : »;
INPUT age$
age=VAL(age$)
cls
PRINT « Tu t’appelle « ;nom$; » et tu as »;age; » ans
PRINT
PRINT « Clique à la souris pour terminer »
WHILE MOUSEK=0
WEND

( 13 octobre, 2008 )

Les autre boucles

Les autre boucles

DO / EXIT IF / LOOP

REPEAT / UNTIL

WHILE / WEND

 

DO
__PRINT « Hello – « ;

Quitte la boucle si pression sur le bouton gauche de la souris
__EXIT IF MOUSEK=1
LOOP

 

REPEAT
__PRINT « Hello – « ;

Quitte la boucle si pression sur le bouton gauche de la souris
UNTIL MOUSEK=1

Répète la boucle tant que MOUSEK n’est pas égal à 1
WHILE MOUSEK<>1
__PRINT « Hello – « ;
WEND

Le résultat est le même pour les 3 exemples.

Il s’affiche le texte « Hello –  » jusqu’à ce qu’on presse le bouton gauche de la souris (MOUSEK)

( 12 octobre, 2008 )

Gestion de la SOURIS

Gestion de la SOURIS

On va aborder ici la gestion de la SOURIS ce qui nous permettra de voir la sortie de boucles plus complexes par la suite.

Les mots clef :

MOUSEX = position X de la souris

MOUSEY = position Y de la souris

MOUSEK = état des BOUTONS de la souris

MOUSE x,y,k = position X, Y de la souris et état des boutons le tout donné par les variables X – Y et K.

 

 En basse résolution MOUSEX ou la variable X peut avoir une valeur comprise entre 0 et 319

En moyenne et en haute résolution MOUSEX ou la variable X peut avoir une valeur comprise entre 0 et 639

En basse et en moyenne résolution MOUSEY ou la variable Y peut avoir une valeur comprise entre 0 et 199

 En haute résolution MOUSEY ou la variable Y peut avoir une valeur comprise entre 0 et 399

MOUSEK ou la variable K peuvent avoir les valeurs suivantes.

     – 0 = aucun bouton de la souris enfoncé

     – 1 = bouton gauche de la souris enfoncé

     – 2 = bouton droit de la souris enfoncé

     – 3 = les deux boutons de la souris enfoncés

Réalisons un petit programme qui teste la souris en utilisant MOUSE x,y,k qui reprend en une fois tout les paramètres de cette souris (je vous expliquerai la boucle plus loin).

CLS
DO
__MOUSE x,y,k
__PRINT AT(1,1); »Position X – « ;x; »   »
__PRINT AT(1,3); »Position Y – « ;y; »   »
__PRINT AT(1,5); »Boutons    – « ;k; »   »
LOOP

steem0011.jpg

Déplacez la souris et cliquez sur les boutons pour voir les paramètres s’afficher en temps réel.

Pour sortir du programme pressez simultanément  les touches « Shift », »Ctrl » et « Alt »

( 11 octobre, 2008 )

Boucles FOR NEXT

Boucle FOR NEXT

On utilisera ici une variable numérique « i » qui pourait être « atari » ou tout autre mot mais pas un mot clef du GFA

Ces variables ont uniquement des valeurs numériques .

 

Ces boucles permettent de répéter X fois une commande ou une série de commandes.

Elle se présente sous la forme :

FOR i=1 TO 100
__( Commandes )
NEXT i

Dans ce cas, les commandes seront répétées 100 fois.

Le première fois, la variable numérique i sera égale à 1, la deuxième elle sera égale à 2, etc jusque 100.

On peut aussi y mettre un pas d’incrémentation « STEP » suivit d’une valeur

FOR i= 1 TO 12 STEP 3
NEXT i

Appliquons la à l’exemple précédent :

CLS
t$=”Hello”
FOR i= 1 TO 12 STEP 3
__PRINT AT(i,i);t$
NEXT i
~INP(2)

 On remarque directement le gain en lignes de code, cela se répercutera aussi dans la taille du programme.

Le STEP doit être de valeur négative si le FOR est inversé

FOR i= 12 TO 1 STEP -3
NEXT i

 

On peut coder :

FOR i= 1 TO 12
NEXT i

Par contre celui-ci ne fonctionnera pas

FOR i= 12 TO 1
NEXT i

Il faut coder :

FOR i= 12 TO 1 STEP -1
NEXT i

 

En décrémentation, le STEP est obligatoire.

( 11 octobre, 2008 )

Les variables alphanumériques

Les variables alphanumériques

 

Remplaçons le texte par une variable alphanumérique, cela peut simplifier le code.

La variable alphanumérique se présente sous la forme « texte/chiffres »suivi de « $ ».

Faites toutefois attention à ne pas utiliser des mots clef du GFA Basic, c’est pourquoi nous utiliserons ici t$ 

 

Exemple précédent

CLS
PRINT AT(1,1); »Hello »
PRINT AT(3,3); »Hello »
PRINT AT(6,6); »Hello »
PRINT AT(9,9); »Hello »
PRINT AT(12,12); »Hello »
VOID INP(2) ‘ ou ~INP(2)

 

Remplacé par :

CLS
t$= »Hello »
PRINT AT(1,1);t$
PRINT AT(3,3);t$
PRINT AT(6,6);t$
PRINT AT(9,9);t$
PRINT AT(12,12);t$
~INP(2)

On aurait pu mettre t$= »Coucou c’est moi », ce qui aurait donné :

steem001.jpg

( 11 octobre, 2008 )

Les débuts en GFA

Début de programmation:

 

Quelques instruction de base que vous retrouverez fréquement:

CLS

Permet d’effacer l’écran

 

PRINT

Permet d’écrire des caractères alphanumériques à l’écran

 

PRINT AT(x,y);

Permet aussi d’écrire des caractères alphanumériques à l’écran mais à un endroit définit par le programmeur.

X = position horizontale et Y = position verticale en partant du coin supérieur droit.

 

VOID INP(2)

Attend la pression d’une touche pour continuer le programme.

Peut aussi s’écrire ~ INP(2)

Petit exercice avec ces instructions et leur résultat à l’écran.

EX 1

CLS
PRINT « Hello »
PRINT « Hello »
PRINT « Hello »
PRINT « Hello »
PRINT « Hello »
VOID INP(2)

steem002.jpg

 

Ex 2 en ajoutant un point/virgule à la fin des 4 premiers PRINT
CLS
PRINT « Hello »;
PRINT « Hello »;
PRINT « Hello »;
PRINT « Hello »;
PRINT « Hello »
VOID INP(2)

steem003.jpg

 

Ex 3, comme le 2 mais en ajoutant  » –  » à afficher

CLS
PRINT « Hello – « ;
PRINT « Hello – « ;
PRINT « Hello – « ;
PRINT « Hello – « ;
PRINT « Hello »
VOID INP(2)

steem004.jpg

 

Ex 4 avec PRINT AT

CLS
PRINT AT(1,1); »Hello »
PRINT AT(3,3); »Hello »
PRINT AT(6,6); »Hello »
PRINT AT(9,9); »Hello »
PRINT AT(12,12); »Hello »
VOID INP(2)

steem005.jpg

 

|