Le langage C/C++ utilisé pour la programmation des microcontrôleurs Atmel est le langage choisi par Arduino pour la programmation de ses cartes électroniques. Dans ce cours nous donnons les principaux mots-clés du langage permettant de reproduire les structures de bases vues en algorithmique : structures linéaires, alternatives et répétitives.

1. Les opérateurs de comparaison

Le tableau suivant liste les opérateurs utilisés en C/C++ pour définir des conditions :

Opérateurs  
== Egalité
!= Différence
< Inférieur
> Supérieur
<= Inférieur ou égal
>= Supérieur ou égal

2. Les opérateurs logiques

Le tableau suivant liste les opérateurs logiques utilisés en C/C++ pour définir des conditions :

Opérateurs  
&& Et logique
| | Ou logique
! Non

3. Les conditions

3.1 Si Alors : if()

La condition Si Alors permet de réaliser une ou plusieurs actions si seulement la condition énoncée est vrai, si ce n’est pas le cas le programme saute la condition et poursuit son exécution. La structure de cette condition est donnée ci-dessous :

Nous donnons ci-dessous un code exemple utilisant cette fonction.

int a = 0; //Déclaration d'un entier "a", initialisé à 0

if(a<10) //Condition pour entrer dans le si : "a" doit être strictement inférieur à 10
{
	a=a+1; // Si "a" est inférieur à 10 alors on rajoute 1 à "a".
}

3.2 Si Alors Sinon : if() else

La condition Si Alors Sinon permet de réaliser une ou plusieurs actions si seulement la condition énoncée est vrai, si ce n’est pas le cas le programme aiguille l’exécution vers le Sinon. La structure de cette condition est donnée ci-dessous :

Nous donnons ci-dessous un code exemple utilisant cette fonction.

int a = 0; //Déclaration d'un entier "a", initialisé à 0

if(a<10) //Condition pour entrer dans le si : "a" doit être strictement inférieur à 10
{
	a=a+1; // Si "a" est inférieur à 10 alors on rajoute 1 à "a"
}
else
{
	a=a-1; // Sinon on enlève 1 à "a"
}

3.3 Le choix multiple : switch() case

Le choix multiple permet pour une variable de notre choix, d’aiguiller le programme suivant la valeur que cette variable va prendre. La structure de cette condition est donnée ci-dessous :

Nous donnons ci-dessous un code exemple utilisant cette fonction.

int var_choix = 0; //Déclaration d'un entier "var_choix", initialisé à 0

switch(var_choix) //Mise en place d'un choix multiple pour la variable var_choix
{
	case 1: //Actions à exécuter dans le cas où var_choix = 1
			 break; //Indication de fin d'instructions pour ce case

	case 2: //Actions à exécuter dans le cas où var_choix = 2
	 		 break; //Indication de fin d'instructions pour ce case

	default: //Actions à exécuter dans le cas où var_choix est différent de tous les cases précédents
	 		 break; //Indication de fin d'instructions pour ce case
}

4. Les boucles

4.1 Tant que : while()

La boucle Tant que permet de répéter une suite d’instructions tant que le condition énoncée au début est vraie. La structure de cette boucle est donnée ci-dessous.

Nous donnons ci-dessous un code exemple utilisant cette fonction.

while(1) //Permet de réaliser une boucle infinie équivaut à écrire while(1=1)
{
	//Suite d'instructions à réaliser dans la boucle
}

4.2 Faire Tant que : do while()

La boucle Faire Tant que permet de répéter une suite d’instructions tant que le condition énoncée à la fin est vraie, la suite d’instructions sera réalisée au moins une fois car le test de la condition ne se fait qu’à la fin. La structure de cette boucle est donnée ci-dessous.

Nous donnons ci-dessous un code exemple utilisant cette fonction.

do
{
	//Suite d'instructions à réaliser dans la boucle
}while(1); //Permet de réaliser une boucle infinie équivaut à écrire while(1=1)

4.3 Pour : for()

La boucle Pour permet de répéter une suite d’instructions selon une évolution définie au début. La structure de cette boucle est donnée ci-dessous.

Paramétrage de la boucle for:

  • Initialisation de la variable de comptage : Exceptionnellement et que dans ce cas bien précis nous autorisons la déclaration de variable au cours du programme. La variable de comptage ici cpt est la variable qui s’incrémentera ou se décrémentera à chaque passage dans la boucle suivant le pas de comptage choisi, celle-ci est ici initialisée à 0.

  • Condition de comptage : Nous définissons ici la condition d’exécution de la boucle, dans notre cas nous tournerons dans le boucle tant que la variable de comptage cpt est inférieure à 10.

  • Pas de comptage : Ici nous définissons l’évolution de la variable de comptage cpt lors de chaque passage dans la boucle. Dans notre cas nous incrémentons de 1 à chaque passage dans la boucle, cpt++ revient à coder cpt=cpt+1. Nous aurions pu également décrémenter de 1 : cpt--, ou bien choisir un pas différent de 1 : cpt=cpt+3.

Nous donnons ci-dessous un code exemple utilisant cette fonction.

for(int cpt=0;cpt<10;cpt++) //Boucle en initialisant cpt à 0 tant que cpt<10 et incrémente de 1 à chaque passage
{
	//Suite d'instructions à réaliser dans la boucle
}