Formations à l'informatique et à l'électronique

Auteur : SD
Modifié le : 24-09-2015
Créé le : 24-02-2015

Les structures algorithmiques de base

Cet article propose la traduction des structures algorithmiques de base en langage C. Chaque structure algorithmique de base est représentée à la fois sous forme d'algorithme et sous forme d'organigramme.

Sommaire

Les tests

Exécution conditionnelle (Structure algorithmique "Si Alors Sinon")

Algorithme Organigramme
Algorithme d'un test, structure algorithmique Si Alors Sinon

Code C équivalent :

if (A>B) {
// Action si condition vraie
}
else {
// Action si condition fausse
}

Remarques :

- Le bloc "Sinon" est facultatif :

if (A>B) {
// Action si condition vraie
}

- Il est possible d'utiliser dans l'expression évaluée entre parenthèses, (A>B) dans l'exemple ci-dessus, les opérateurs ci-dessous :

A == B A est égal à B
A != B A est différent de B
A < B A est inférieur à B
A > B A est supérieur à B
A <= B A est inférieur ou égal à B
A >= B A est supérieur ou égal à B

Les choix multiples (Switch Case)

L'ensemble des tests porte sur la même variable.

Algorithme Organigramme
Algorithme d'un test Switch Case

Code C équivalent :

switch (a) {
case 10:
// Action si a=10
break;
case 20:
// Action si a=20
break;
case 30:
// Action si a=30
break;
default :
// Action par défaut
}

Remarque : L'action par défaut est facultative, si elle est omise et que la valeur de la variable ne correspond à aucun des cas, aucune action ne sera faite.

Les boucles

Structure algorithmique "Pour" (boucle For)

La boucle for est utilisée lorsque le nombre d'itérations (nombre de fois que la boucle sera exécutée) est connu à l'avance (Parcourir une plage de valeurs ou un tableau par exemple).

Algorithme Organigramme
Algorithme d'une boucle For (Structure algorithmique Pour)

Code C équivalent :

// Action avant la boucle
for (i=0 ; i<=10 ; i++) {
// Action répétée dans la boucle
}
// Action après la boucle

Structure algorithmique "Tant que ... Faire" ( boucle While)

Le nombre d'itération n'est pas connu à l'avance (attente d'un évènement par exemple : tant que l'utilisateur n'appuie pas sur une touche, tant que l'utilisateur ne clique pas sur un bouton,...). La boucle peut ne jamais être exécutée (nombre d'itération = 0).

Algorithme Organigramme
Algorithme d'une boucle While (Structure algorithmique Tant Que)

Code C équivalent :

// Action avant la boucle
while (condition) {
// Action répétée dans la boucle
}
// Action après la boucle

Remarque : Il faut bien s'assurer que la condition sera vraie à un moment donné, sinon on se retrouve dans une boucle infinie...

Structure algorithmique "Répéter tant que" (boucle Do While)

Comme pour la boucle While, le nombre d'itération n'est pas connu à l'avance. La boucle est exécuté au moins une fois.

Algorithme Organigramme
Algorithme d'une boucle Do While (Struture algorithmique Répéter Tant Que)

Code C équivalent :

// Action avant la boucle
do {
// Action répétée dans la boucle
} while (condition);
// Action après la boucle

Exemples de programmes en C avec leur structure algorithmique

Pour faire ses premières armes en C, je vous conseil d'utiliser le compilateur TCC (Tout petit Compilateur C), qui comme son nom l'indique est très léger et on ne peut plus simple à utiliser. Pour taper le code des programmes utiliser Notepad++.

Exemple avec la structure algorithmique "Si Alors Sinon"

Demander à l’utilisateur de saisir un nombre réel. Afficher sa valeur absolue.

Algorithme Organigramme
Algorithme d'un test, structure algorithmique Si Alors Sinon

Code C équivalent :

#include <stdio.h>

int main()
{
int i,va;

printf("Entrez un nombre entier (positif ou negatif) : ");..
scanf("%d",&i);

if (i<0) {
va = -i;
}
else {
va = i;
}

printf("La valeur absolue de %d est : %d\n",i,va);

return 0;
}

La capture d'écran ci-dessous montre le test du programme avec le compilateur "tcc" :

Capture d'écran compilation d'un programme C tcc

Exemple avec la structure algorithmique "Pour"

Demander à l’utilisateur de saisir un nombre et afficher sa table de multiplication.

Algorithme Organigramme
Exemple Algorithme d'une boucle For (Structure algorithmique Pour)

Code C équivalent :

#include <stdio.h>

int main()
{
int nb,i,res;

printf("Entrez le nombre a multiplier : ");..
scanf("%d",&nb);

for (i=0;i<=10;i++) {
res = nb * i;
printf("%d x %d font %d\n",nb,i,res);

}

return 0;
}

La capture d'écran ci-dessous montre le test du programme avec le compilateur "tcc" :

Capture d'écran compilation d'un programme C tcc

Exemple avec la structure algorithmique "Répéter...Tant que"

Demander à l’utilisateur de saisir des notes (entre 0 et 20) et lui expliquer qu’une valeur hors de cet intervalle arrêtera la saisie. Compter les notes saisies et faire leur somme. Une fois la saisie terminée, afficher le nombre de notes saisies et la moyenne.

Algorithme Organigramme
Exemple Algorithme d'une boucle Do While (Structure algorithmique Répéter...Tant que)

Code C équivalent :

#include <stdio.h>

int main()
{
int nbNotes;
float note,sommeDesNotes;

printf("Entrez des notes (entre 0 et 20)\nPour stopper, saisir une note hors de cet intervalle. ");..

nbNotes = 0;
sommeDesNotes = 0;

do {
scanf("%f",&note);

if ((note >= 0) && (note <= 20)) {
nbNotes++;
sommeDesNotes = sommeDesNotes + note;
}
} while ((note >= 0) && (note <= 20));

printf("\nVous avez saisie %d note(s)",nbNotes);
printf("\nLa moyenne des notes est : %.2f",sommeDesNotes / nbNotes);

return 0;
}

La capture d'écran ci-dessous montre le test du programme avec le compilateur "tcc" :

Capture d'écran compilation d'un programme C tcc

Articles connexes


Vous avez apprécié cet article ? Partagez le !

Article connexe : Premiers pas avec Processing