Base pour programmer

Les fonctions



Définition

Les fonctions, ou méthodes, sont des petits programmes qui peuvent être appelé à n'importe quel moment par le programmeur.

Les méthodes demandent généralement à ce qu'on leur fournissent des paramètres d'un type précis à mettre dans les parenthèses. Si la méthode ne nécessite pas de paramètre, il suffi de laisser l'intérieur des parenthèses vide.

Il se peut également que la méthode fournisse une valeur de retour dont le type est indiqué juste avant le nom de la méthode (le type "void" signifiant que la méthode ne retourne pas de valeur). Dans ce cas, lors de l'appel de la méthode, il est nécessaire de stocker cette valeur dans une variable de type correspondant. Syntaxe : type_methode ma_methode (type_parametre un_parametre);

Exemple :

1 void eteindre_tout()	//methode sans valeur de retour ni paramètre




allumer_led(x,y)

Allume la LED située en (x, y) avec pour convention que la première LED se situe aux coordonnées (0, 0).

Paramètre : int x, int y

Valeur de retour : aucune


Exemple avec "allumer_led(4, 6)" :





eteindre_led(x,y)

De manière similaire à la fonction précédente, éteint la LED située en (x, y).

Paramètre : int x, int y

Valeur de retour : aucune



afficher_ligne(y,Led10, Led9, Led8, ... , Led0)

Allume toutes les LED de la ligne "y" ayant comme valeur donnée en paramètre 1 et éteint celle ayant comme valeur 0. A bien noter que dans les paramètres de la méthode, l'ordre des LED est donné à l'envers : de la dernière à la première, et que les LEDs sont numérotée de 0 à 10 pour l'axe x et de 0 à 9 pour l'axe y.

Paramètre : int n_ligne, int Led10, int Led9, int Led8, int Led7, int Led6, int Led5, int Led4, int Led3, int Led2, int Led1, int Led0

Valeur de retour : aucune


Exemple :

afficher_ligne(3, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1);





afficher_colonne(x, Led9, Led8, Led7, ... , Led0)

Allume toutes les LED de la colonne x ayant comme valeur donnée en paramètre 1 et éteint celle ayant comme valeur 0. A bien noter que dans les paramètres de la méthode, l'ordre des LED est donné à l'envers : de la dernière à la première.

Paramètre :int n_ligne, int Led10, int Led9, int Led8, int Led7, int Led6, int Led5, int Led4, int Led3, int Led2, int Led1, int Led0

Valeur de retour : aucune


Exemple :

afficher_colonne(5, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1)





allumer_tout()

Allume toutes les LEDs

Paramètre : aucun

Valeur de retour : aucune



eteindre_tout()

Eteint toutes les LEDs.

Paramètre : aucun

Valeur de retour : aucune



delai(milliseconde)

Crée un temps d'attente avant la prochaine instruction. Instruction nécessaire quasiment à chaque fois que l'on manipule des LEDs dans des boucles, car comme le microprocesseur effectue toutes les instructions à grande vitesse, si on n'impose pas un délai de quelque dixième de seconde, on a à peine le temps de voir la ou les LED s'allumer et s'éteindre. Ou par exemple dans le cas d'un jeu de pong, les éléments bougeront si vite qu'il sera impossible de jouer.

Paramètre : int milliseconde

Valeur de retour : aucune


Exemple pour un délai de 1 seconde :

delai(1000);



penche_gauche(), penche_droite(), penche_avant(), penche_arriere()

Retourne la valeur "1" si la carte est penchée dans la direction indiquée par le nom de la méthode (par exemple si on penche la carte à gauche avec la méthode penche_gauche() ) et retourne la valeur "0" si la carte est à plat ou penchée dans une autre direction.

Paramètre : aucun

Valeur de retour : 0 ou 1 (int)


Exemple :

 1 //Allume la LED dans le coin en haut à droite si on penche la carte de ce côté
 2 if((penche_droite() == 1 ) && (penche_avant() == 1)) {
 3	allumer_led(10, 9);
 4 }
 5 //Allume la LED dans le coin en haut à gauche si on penche la carte de ce côté
 6 if((penche_gauche() == 1 ) && (penche_avant() == 1)) {
 7	allumer_led(0, 9);
 8 }
 9 //Allume la LED dans le coin en bas à gauche si on penche la carte de ce côté
10 if((penche_gauche() == 1 ) && (penche_arriere() == 1)) {
11	allumer_led(0, 0);
12 }
13 //Allume la LED dans le coin en bas à droite si on penche la carte de ce côté
14 if((penche_droite() == 1 ) && (penche_arriere() == 1)) {
15	allumer_led(10, 0);
16 }




bouton_touche(touche)

Retourne la valeur "1" si la touche tactile indiquée est pressée, retourne "0" sinon.

On a pour les touches la convention suivante :



Paramètre :int touche

Valeur de retour : 0 ou 1 (int)


Exemple :

1 //Si les deux touches du bas son pressés, lance la méthode pong
2 if((bouton_touche(1) == 1) && (bouton_touche(3) ==1=){
3	pong();
4 }

Qui sommes nous ?

La Haute École du paysage, d'ingénierie et d'architecture de Genève (HEPIA) est l'un des six établissements genevois rattachés aux hautes écoles spécialisées de Suisse occidentale (HES-SO). hepia est née de la fusion entre l'École d'ingénieurs de Lullier et l'École d'ingénieurs de Genève en 2008.

Liens Utiles :

Nous contacter