Vous êtes sur la page 1sur 14

Année Universitaire

2020 - 2021

Atelier programmation I

Filière: MPI

Enseignants: Majdi JRIBI


Amina JARRAYA

1
Les structures conditionnelles
Chapitre 2
et itératives

2
Chapitre 2
1- Les structures conditionnelles
1.1- Branchement conditionnel if … else
1.2- Branchement multiple switch

2- Les structures itératives


2.1- Boucle while
2.2- Boucle do… while
2.3- Boucle for
2.4- Les instructions break et continue

3
1- Les structures conditionnelles
1.1-Branchement conditionnel if---else
 La forme la plus générale est celle-ci :
if (Condition)
{
Suite d’instructions1
}
else{
Suite d’instructions2
}

 Exemple valeur absolue:


void main(){
int x;
printf(" Donner x:");
scanf("%d",&x);
if(x<0)
x=-x;
printf("|x|=%d",x);
} 4
1- Les structures conditionnelles
1.1-Branchement conditionnel if---else
float a, b, c;
float Delta, x1, X2;
printf("Donner a, b et c");
scanf(“%f %f %f“, &a, &b, &c);
if (a==0)
if (b==0)
if (c==0)
printf(“infinité de solutions”); Résolution d’une
else équation du
printf(“Pas de solutions”);
second degré
else{
x1=-c/b;
printf(“la solution : %f”, x1);}
else{
Delta = b *b – 4 * a * c;
if (delta<0)
printf(“Pas de solution\n“);
else{
x1=(-b-sqrt(Delta))/(2*a);
x2=(-b+sqrt(Delta))/(2*a);
printf(“x1=%f et x2=%f\n”, x1, x2);}
}
5
1- Les structures conditionnelles
1.2-Branchement multiple switch

 Sa forme la plus générale est celle-ci :


Switch (variable)
{
case constante_1:
liste d’instructions
break;
case constante_2:
liste d’instructions
break;
case constante_n:
liste d’instructions
break;
default:
liste d’instructions
}

6
1- Les structures conditionnelles
1.2-Branchement multiple switch
int mois;
printf("Donner le mois")
scanf(“%d“, &mois)
switch(mois)
{
case 1:
Le trimestre d’un
case 2:
mois donné
case 3:printf(“Trimestre 1\n“);break;
case 4:
case 5:
case 6:printf(“Trimestre 2\n“);break;
case 7:
case 8:
case 9:printf(“Trimestre 3\n“);break;
case 10:
case 11:
case 12:printf(“Trimestre 4\n“);break;
default : printf(“Mois incorrect\n“);
} 7
2- Les structures itératives
2.1-Boucle while

 Syntaxe:
while (condition)
{
instructions
}
 Tant que expression est vérifiée, instructions est
exécutée.
 Exemple: Convertir un nombre de minutes en heures
et minutes (sans utiliser le division entière et le reste
de la division entière )
320 mn = 5h20mn

8
2- Les structures itératives
2.1-Boucle while

#include<stdio.h>
void main(){
int nb,h,mn;
printf("Donner un nombre")
scanf(“%d“, &nb);
h=0;
mn=nb;
While(nb>=60){
nb-=60;
h+=1;
}
printf("%d mn = %d H %d mn",mn,h,nb);
}

9
2- Les structures itératives
2.2-Boucle do….while
do{
 Syntaxe: instructions
}while(expression);

 instructions est exécutée tant que


expression est vérifiée.
 instructions est exécutée au moins une fois
 Exemple: Saisir au clavier un entier positif
do{
printf("Donner un nombre positif: ")
scanf(“%d“, &x);
}while(x<0);

10
2- Les structures itératives
2.3-Boucle for
for(expr1 ; expr2 ; expr3){
 Syntaxe: instructions
}

 Expr1 : initialisation
 Expr2 : Condition de répétition
 Expr3 : incrémentation
 Une version équivalente plus intuitive
expr1 ;
While(expr2){
instructions
expr3;
}

11
2- Les structures itératives
2.3-Boucle for

 Calcul de factorielle:
int n,i,fact;
for(i=1,fact=1 ; i<=n ; i++){
fact*=i;
}
printf("%d ! = %d \n",n,fact);

 Une version équivalente:


int n,i,fact;
for(i=1,fact=1 ; i<=n ; fact*=i++);
printf("%d ! = %d \n",n,fact);

12
2- Les structures itératives
2.4- Les instructions break et continue
 L’instruction break:
 peut être employée à l’intérieur de n’importe quelle
boucle.
 permet d’interrompre le déroulement de la boucle,
et passe à la première instruction qui suit la boucle.
 En cas de boucles imbriquées, break fait sortir de
la boucle la plus interne.
int i,j;
for(i=0;i<3;i++)
for(j=0;j<5;j++){
if(j==2)
break;
printf(“i=%d, j= %d\n",i,j);
}
13
2- Les structures itératives
2.4- Les instructions break et continue

 L’instruction continue:
 peut être employée à l’intérieur de n’importe quelle
boucle.
 permet d’ignorer le reste des instructions et passer
à l’itération suivante.
for(int i=0;i<5;i++){ Output:
if(i==3) i=0
continue; i=1
printf(“i=%d\n",i); i=2
} i=4

14