Une bouffée d'air frais dans la robotique

Telecom Robotics

L'Ada

Tutoriaux

Nos Robots

Connexion utilisateur

Telecom Robotics / Areabot

Une bouffée d'air dans la robotique

4 - Les structures de contrôle

Les conditions

Les conditions doivent être des booléens, on ne peut pas comme en C tester si un entier est différent de 0 juste en mettant "if mon_entier", il faut explicitement dire que l'on veut vérifier que cet entier est différent de 0. Les opérateurs de comparaison sont les suivants :

  •  
= : égalité (== en C)
  •  
/= : différent (!= en C)
  •  
< : inférieur strict
  •  
> : supérieur strict
  •  
<= : inférieur ou égal
  •  
>= : supérieur ou égal
  •  
in : appartenance à un intervalle (noté borne_inf..borne_sup)
  •  
not in : non appartenance à un intervalle

On peut ensuite combiner les résultats obtenus avec les opérateurs suivant :

  •  
not : négation
  •  
and : "et" (attention, les deux conditions sont évaluées ! Différent du && du C)
  •  
or : "ou" (attention, les deux conditions sont évaluées ! Différent du || du C)
  •  
xor : "ou exclusif" (équivalent du ^^ en C)
  •  
and then : "et", évalue la 1ère expression (celle de gauche) puis si elle est vrai la seconde et renvoie true si les 2 sont vraies. (équivalent du && en C)
  •  
or else : "ou", évalue la 1ère expression (celle de gauche) puis si elle est fausse la seconde et renvoie true si l'une ou l'autre est vrai (équivalent du || en C)

Le if then else

if condition then liste d’instructions [elsif condition liste d'instructions] [...] [else liste d'instructions] end if;

Le switch

case expression is when valeur_1 => liste d'instructions [when valeur_2|valeur_3|valeur_4 => listes d'instructions] [...] [when others => listes d'instructions end case; Comme en C, un break est contenu implicitement à la fin des différents cas.

Les boucles

La boucle de base, la boucle infinie (cela peut sembler absurde, mais c'est très utile, surtout en robotique) se présente comme ceci : loop liste d'instructions end loop; Maintenant, si on veut faire une boucle mais en sortir à un moment donné, on peur utiliser l'instruction : exit when condition;

Le for

for indice in [reverse] intervalle loop liste d'instructions end loop; L'intervalle est de la forme début..fin avec début inférieur à fin. Si on veut faire une boucle avec un indice décroissant, il faut utiliser le mot clef reverse, un intervalle du style 5..1 est vide et donc la boucle ne sera jamais exécutée. NOTE: indice n'est pas une vraie variable, il ne faut pas le déclarer en même temps que les autres variables et on ne peut pas le modifier.

Le while

while condition loop liste d'instructions end loop;

Nos soutiens

Images aléatoires

Untitled image DSC07229.JPG 

Événements à venir

  • pas grand chose...

Contenu populaire

Parcourir les archives

« Mai 2008  
Lu Ma Me Je Ve Sa Di
      1 2 3 4
5 6 7 8 9 10 11
12 14 15 16 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Syndication

Syndiquer le contenu