Académique Documents
Professionnel Documents
Culture Documents
Algorithmique et Programmation
Safa.hachani@enib.ucar.tn / elleuchislam@gmail.com
2023-2024
CHAPITRE 2
De l’algorithmique à
la programmation
en Langage C
Les structures de contrôle
Les structures de contrôle
4
Les structures conditionnelles
Les structures conditionnelles « if... else »
En algorithmigue En langage C
Remarques :
➢ Si on a une seule opération dans le bloc d’instruction, on peut ne pas mettre les
accolades { }
6
Les structures conditionnelles « if... else »
Exercice :
Programme equation.c
#include <stdio.h>
void main() {
float a, b ;
printf ("Donner la valeur de a :") ;
scanf ("%f", &a) ;
printf ("Donner la valeur de b :") ;
scanf ("%f", &b);
if (a !=0)
printf ("La solution est : %f", (-b/a)) ;
}
8
Structures de choix « Switch »
Cette forme est utilisée lorsque l'on a plusieurs conditions qui expriment une égalité stricte (pas de
notion d’intervalles). Dans ce cas, on a recours à une structure qui traite les conditions une par une.
En algorithmigue En langage C
Selon <sélecteur> faire switch (sélecteur)
<val1>: liste 1 d'instructions {
<val2>: liste 2 d'instructions case<val1>:<instructions1> ; break;
Syntaxe <val3>: liste 3 d'instructions case<val2>:<instructions2> ; break;
… case<val3>:<instructions3> ; break;
Sinon …
Autre liste d'instructions default : <autres instructions> ;
FinSelon }
En langage C, le mot clé break est très important après chaque cas. Si on l’oublie, après
l’exécution des instructions du cas sélectionné, les instructions de tous les cas suivants sont
aussi exécutées ! Ceci semble être une défaillance mais au contraire, elle peut être utilisée à
profit (voir l'exemple suivant).
9
Structures de choix « Switch »
➢ L’instruction Default permet de traiter le cas qui n’est pas présent dans les
compartiment case.
10
Application sur l'instruction « break »
main ()
{
int i;
for (i=0; i<5; i++)
{
printf (“i=%d\n",i) ;
if (i==3)
break;
}
printf (“valeur de i à la sortie de la boucle=%d\n",i);
}
i=0
Imprime
i=1
i=2
à l’écran
i=3
Valeur de i à la sortir de la boucle=3
11
L'instruction « continue »
directement au tour de boucle suivant, sans exécuter les autres instructions de la boucle.
12
Application sur l'instruction « continue »
main ()
{
int i;
for (i=0; i<5; i++)
{
if (i==3)
continue;
printf (“i=%d\n",i) ;
}
printf (“valeur de i à la sortie de la boucle=%d\n",i);
}
i=0
Imprime
i=1
i=2
à l’écran
i=4
Valeur de i à la sortir de la boucle=5
13
Application : Structure de choix
Exercice :
/**En langage C */
#include <stdio.h>
void main()
{
int mois ;
printf ("Entrer le mois en chiffre :") ;
scanf ("%i", &mois) ;
switch (mois) {
case 1, case 3, case 5, case 7, case 8, case 10, case 12:
printf("31 jours") ; break ;
case 2 : printf ("28 ou 29 jours") ; break ;
case 4, case 6, case 9, case 11 : printf{"30 jours") : break;
default : printf ("le numéro du mois est erroné") ;
}
}
14
Les structures itératives
Les structures itératives
➢ Les structures itératives (ou les boucles) permettent de répéter une série
d’instructions.
16
Boucle « while» (Tant que .. Faire)
Syntaxe
Tant que (condition d’itération) faire
<Liste d’instructions>
En algorithmique FinTQ
Remarque :
17
Boucle « do … while» (Répéter....tant que)
Syntaxe
Répéter
<Liste d’instructions>
En algorithmique Jusqu’à (condition d’itération)
do
En langage C {
<Liste d’instructions>
}
while (condition d’itération);
Remarques :
➢ Dans ce cas, l’instruction sera exécutée tant que l’expression est vérifiée (Vrai),
18
Boucle « for »
Exemple :
En algorithmique En langage C
Pour i de 1 à 5 faire for (i=1 ; i<=5; i++)
Ecrire(i*10) printf("%d " , i*10);
FinPour
Cette boucle affiche respectivement les nombres 10, 20, 30, 40 et 50.
19
À RETENIR
20
Application : Les structures répétitives
Exercice :
Programme Facto.c
#include <stdio.h>
void main ()
{
int n, i, f;
printf ("Entrer un entier positif: ") ;
scanf ("%d", &n) ;
boucle for
f=1;
for (i=2 ; i<=n ; i++)
f*=i;
printf ("%d ! = %d" , n, f) ;
}
21
Application : Les structures répétitives
Exercice :
Programme Facto.c
#include <stdio.h>
void main ()
{
int n, i, f;
do {
printf ("Entrer un entier positif: ") ;
scanf ("%d", &n) ; boucle while
} while (n<0);
i=2;
f=1;
while(i<=n)
{
f*=i;
i++;
}
printf ("%d ! = %d" , n, f) ;
}
22
Application : Les structures répétitives
Exercice :
Programme Facto.c
#include <stdio.h>
void main ()
{
int n, i, f;
do {
printf ("Entrer un entier positif: ") ;
scanf ("%d", &n) ; boucle do .. while
} while (n<0);
i=1;
f=1;
do{
f*=i;
i++;
} while(i<=n)
printf ("%d ! = %d \n" , n, f) ;
}
23