4/7/2023
1 2
If - Else / Si - Sinon
if (condition)
Si (condition) Alors {
bloc d'instructions bloc d'instructions
FinSi }
if (condition)
{
Si (condition) Alors bloc d'instructions n°1
bloc d'instructions n°1 }
else
Sinon {
bloc d'instructions n°2 bloc d'instructions n°2
FinSi }
1 2
If - Else / Si - Sinon
Exercice n°1 : Écrire un algorithme qui affiche si un nombre entier saisi au clavier est pair ou impair
#include <stdio.h>
void main ()
ALGORITHME Pair_Impair { int A ;
Variables A : entier printf("Donner un nombre ") ;
DEBUT scanf("%d", &A) ;
if (A % 2 == 0)
ECRIRE("Donner un nombre ")
LIRE(A) { printf("%d est pair ", A) ;
SI (A MOD 2 == 0) ALORS }
ECRIRE(A, " est pair ") else
SINON { printf("%d est impair ", A) ;
ECRIRE(A, " est impair ") }
FINSI }
FIN
1
4/7/2023
Exercice n°2 : Ecrire un algorithme qui #include <stdio.h>
demande deux nombres à l’utilisateur et void main ()
l’informe ensuite si le produit est négatif ou { int a,b ;
positif (on inclut le traitement du cas où le printf ("Saisir deux nombres") ;
produit peut être nul). scanf ("%d %d", &a, &b) ;
if (a ==0 || b == 0)
Algorithme Signe_produit {
Variables a, b : entiers printf("produit nul") ;
Début }
Ecrire ("Saisir deux nombres") else
Lire (a, b) {
Si (a =0 ou b = 0) Alors if((a <0 && b < 0) || (a > 0 && b>0))
Ecrire("produit nul") {
Sinon printf("produit positif") ;
Si ((a <0 ET b < 0) OU (a > 0 et b>0)) Alors }
Ecrire("produit positif") else
Sinon {
Ecrire("produit négatif") printf("produit négatif") ;
FinSi }
FinSi }
Fin }
1 2
If - Else / Si - Sinon Switch / Selon
switch (expression)
Selon sélecteur faire {
Val1 : Bloc d'instruction n°1 case val1 : Bloc d'instruction n°1
Val2 : Bloc d'instruction n°2 case val2 : Bloc d'instruction n°2
Val3 : Bloc d'instruction n°3 case val2 : Bloc d'instruction n°3
... .....
Valn : Bloc d'instruction n°N case valn : Bloc d'instruction n°N
Sinon : Bloc d'instruction n°N+1 default : Bloc d'instruction n°N+1
FinSelon }
2
4/7/2023
Exercice n°1 : Écrire un algorithme permettant d'afficher le mois en toute lettres selon son numéro saisi au clavier.
#include <stdio.h>
Algorithme Mois void main()
Variables N : Entier { int N;
Début printf("Donner le numéro du mois :");
Ecrire("Donner le numéro du mois :") scanf("%d",&N);
Lire(N) switch (N)
Selon N faire {
1 : Ecrire("Janvier") case 1 : printf("Janvier"); break;
2 : Ecrire("Février") case 2 : printf("Février"); break;
3 : Ecrire("Mars") case 3 : printf("Mars"); break;
4 : printf("Avril"); case 4 : printf("Avril"); break;
5 : printf("Mai"); case 5 : printf("Mai"); break;
6 : printf("Juin"); case 6 : printf("Juin"); break;
7 : printf("Juillet"); case 7 : printf("Juillet"); break;
8 : printf("Aout"); case 8 : printf("Aout"); break;
9 : printf("Septembre"); case 9 : printf("Septembre"); break;
10 : Ecrire("Octobre") case 10 : printf("Octobre"); break;
11 : Ecrire("Novembre") case 11 : printf("Novembre"); break;
12 : Ecrire("Décembre") case 12 : printf("Décembre"); break;
Sinon : Ecrire("Le numéro est incorrecte") default : printf("Le numéro est incorrecte");
FinSelon }
Fin }
Tester le programme suivant sans l'utilisation
de l'instruction break ? #include <stdio.h>
Algorithme Mois void main()
Variables N : Entier { int N;
Début printf("Donner le numéro du mois :");
Ecrire("Donner le numéro du mois :") scanf("%d",&N);
Lire(N) switch (N)
Selon N faire {
1 : Ecrire("Janvier") case 1 : printf("Janvier");
2 : Ecrire("Février") case 2 : printf("Février");
3 : Ecrire("Mars") case 3 : printf("Mars");
4 : printf("Avril"); case 4 : printf("Avril");
5 : printf("Mai"); case 5 : printf("Mai");
6 : printf("Juin"); case 6 : printf("Juin");
7 : printf("Juillet"); case 7 : printf("Juillet");
8 : printf("Aout"); case 8 : printf("Aout");
9 : printf("Septembre"); case 9 : printf("Septembre");
10 : Ecrire("Octobre") case 10 : printf("Octobre");
11 : Ecrire("Novembre") case 11 : printf("Novembre");
12 : Ecrire("Décembre") case 12 : printf("Décembre");
Sinon : Ecrire("Le numéro est incorrecte") default : printf("Le numéro est incorrecte");
FinSelon }
Fin }
3
4/7/2023
#include <stdio.h>
void main()
{ int N;
printf("Donner le numéro du mois :");
scanf("%d",&N);
switch (N)
{
case 12 :
Exercice n°2 : Ecrire un algorithme permettant
case 1 :
d'afficher la saison selon le numéro du mois saisi au
case 2 : printf("Hiver"); break ;
clavier.
case 3 :
• En décembre, en janvier, en février, c’est l’hiver. case 4 :
• En mars, en avril, en mai, c’est le printemps. case 5 : printf("Printemps"); break ;
• En juin, en juillet, en août, c’est l’été. case 6 :
• En septembre, en octobre, en novembre, c’est case 7 :
l’automne. case 8 : printf("Ete"); break ;
case 9 :
case 10 :
case 11 : printf("Automne"); break ;
default : printf("Le numéro est incorrecte");
}
}
ALGORITHME calculatrice
Variables a, b : entier
op : CARACTERE
DEBUT
ECRIRE (" saisissez le premier entier ")
LIRE (a)
ECRIRE (" saisissez l’opération ")
Exercice n°3 : Ecrire un LIRE (op)
algorithme/programme calculatrice ECRIRE (" saisissez le deuxième entier")
permettant la saisie de deux entiers LIRE (b)
SELON (op) faire
a et b et aussi la saisie un caractère ( '+' : ECRIRE ("la somme de ",a, "et de ",b, "est égale",a+b)
'+' , '–' , '*' ou '/') qui spécifie '*' : ECRIRE ("le produit de ",a, "et de ",b, "est égale",a*b)
l'opération entre a et b. sans oublier '-' : ECRIRE ("la soustraction de ",a, "et de ",b, "est égale", a-b)
d'afficher le résultat. '/' : SI (b= 0) ALORS
ECRIRE (" division impossible ")
SINON
ECRIRE ("la division de ",a, "par ",b, "est égale", a/b)
FINSI
SINON: ECRIRE(" Opération invalide ")
FINSELON
FIN
4
4/7/2023
#include <stdio.h>
void main( )
{ int A,B;
char op;
printf("Saisir l'operateur : ");
scanf("%c", &op);
printf("Saisir le premier nombre : ");
scanf("%d", &A);
Exercice n°3 : Ecrire un printf("Saisir le second nombre : ");
algorithme/programme calculatrice scanf("%d", &B);
permettant la saisie de deux entiers switch (op)
a et b et aussi la saisie un caractère ( {
'+' , '–' , '*' ou '/') qui spécifie case '+' : printf(" \n%d + %d = %d\n",A,B,A+B); break;
case '-' : printf(" \n%d - %d = %d\n",A,B,A-B); break;
l'opération entre a et b. sans oublier case '*' : printf(" \n%d * %d = %d\n",A,B,A*B); break;
d'afficher le résultat. case '/' : if(B!=0)
printf(" \n%d / %d = %f\n",A,B,(float)A/B);
else
printf(" \nDivision par zéro impossible!!!! \n");
break;
default : printf(" Operation invalide "); break;
}
}
#include <stdio.h>
void main( )
{ int A,B;
char op;
printf("Saisir le premier nombre : ");
scanf("%d", &A);
printf("Saisir l'operateur : ");
scanf(" %c", &op);
Exercice n°3 : Ecrire un printf("Saisir le second nombre : ");
algorithme/programme calculatrice scanf("%d", &B);
permettant la saisie de deux entiers switch (op)
a et b et aussi la saisie un caractère ( {
'+' , '–' , '*' ou '/') qui spécifie case '+' : printf(" \n%d + %d = %d\n",A,B,A+B); break;
case '-' : printf(" \n%d - %d = %d\n",A,B,A-B); break;
l'opération entre a et b. sans oublier case '*' : printf(" \n%d * %d = %d\n",A,B,A*B); break;
d'afficher le résultat. case '/' : if(B!=0)
printf(" \n%d / %d = %f\n",A,B,(float)A/B);
else
En général il me suffit de mettre un printf(" \nDivision par zéro impossible!!!! \n");
espace avant le %c pour vider la break;
saisie default : printf(" Operation invalide "); break;
}
}
5
4/7/2023
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque
while (Condition_exécution_vérifiée)
Tant que (Condition_exécution_vérifiée) Faire
{
<Traitement>
<Traitement>
<mise_à_jour_condition_exécution>
<mise_à_jour_condition_exécution>
FinTantque
}
• La boucle while évalue la condition avant d'exécuter le
bloc de code à l'intérieur de la boucle. Si la condition est do
vraie, le bloc de code est exécuté, sinon la boucle se {
termine. <Traitement>
• La boucle do while, évalue la condition après avoir <mise_à_jour_condition_exécution>
exécuté le bloc de code à l'intérieur de la boucle. Cela } while (Condition_exécution_vérifiée) ;
signifie que le bloc de code est toujours exécuté au moins
une fois, même si la condition est fausse dès le départ.
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque
#include <stdio.h>
Répéter la boucle tant que la condition est vraie void main()
Algorithme somme_n { int N,i, S;
Variable N,i ,S: entier printf("donner N : ") ;
Début scanf("%d", &N) ;
Ecrire("donner N") i=1;
Lire(N) S= 0 ;
i←1 while ( i<=N)
S← 0
Tant que ( i≤N) faire {
S← S+ i S= S+ i ;
i ← i+1 i = i+1 ;
Fintantque }
Ecrire("la somme des nombres de 1 à", N, "= ", S) printf("la somme des nombres de 1 à %d = %d", N, S) ;
Fin }
6
4/7/2023
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque
#include <stdio.h>
#include <stdio.h>
void main()
void main()
{ int N,i, S;
{ int N,i, S;
printf("donner N : ") ;
printf("donner N : ") ;
scanf("%d", &N) ;
scanf("%d", &N) ;
i=1;
i=1;
S= 0 ;
S= 0 ;
do
while ( i<=N)
{
{
S= S+ i ;
S= S+ i ;
i = i+1 ;
i = i+1 ;
} while ( i<=N) ;
}
printf("la somme des nombres de 1 à %d = %d", N, S) ;
printf("la somme des nombres de 1 à %d = %d", N, S) ;
}
}
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque
Exercice : Ecrire un algorithme qui demande à
l’utilisateur de saisir une note (l’algorithme ne doit pas
accepter une note supérieure à 20 ou inferieur à 0).
Algorithme note_entre_0_et_20 #include <stdio.h>
Variable note : réel void main()
Début { float note ;
Ecrire ("Entrez une note entre 0 et 20") printf("Entrez une note entre 0 et 20 : ") ;
Lire(note) scanf("%f",¬e);
tantque(note<0 OU note > 20) faire while(note<0 || note > 20)
Ecrire ("Entrez une note entre 0 et 20") {
printf("Entrez une note entre 0 et 20 : ") ;
Lire(note)
scanf("%f",¬e);
Fintantque
}
Fin
}
7
4/7/2023
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque
Exercice : Ecrire un algorithme qui demande à
l’utilisateur de saisir une note (l’algorithme ne doit pas
accepter une note supérieure à 20 ou inferieur à 0).
#include <stdio.h>
#include <stdio.h>
void main()
void main()
{ float note ;
{ float note ;
printf("Entrez une note entre 0 et 20 : ") ;
do
scanf("%f",¬e);
{
while(note<0 || note > 20)
printf("Entrez une note entre 0 et 20 : ") ;
{
scanf("%f",¬e);
printf("Entrez une note entre 0 et 20 : ") ;
} while(note<0 || note > 20) ;
scanf("%f",¬e);
}
}
}
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque For / Pour
Pour I de Val_initiale à Val_finale, [Pas = Val_pas] Faire
<Traitement>
Fin Pour
for (i = Val_initiale ; i <= Val_finale ; i = i + pas )
{
<Traitement>
}
8
4/7/2023
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque For / Pour
#include <stdio.h>
void main()
Algorithme somme_n
{ int N,i, S;
Variable N,i ,S: entier
printf("donner N : ") ;
Début
Ecrire("donner N") scanf("%d", &N) ;
Lire(N) S= 0 ;
S←0 for ( i=1 ; i <=N ; i=i+1)
Pour i de 1 à N faire {
S← S + i S= S+ i ;
FinPour }
Ecrire("la somme des nombres de 1 à", N, "= ", S) printf("la somme des nombres de 1 à %d = %d", N, S) ;
Fin }
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque For / Pour
#include <stdio.h>
void main()
Algorithme somme_n
{ int N,i, S;
Variable N,i ,S: entier
printf("donner N : ") ;
Début
Ecrire("donner N") scanf("%d", &N) ;
Lire(N) S= 0 ;
S←0 for ( i=1 ; i <=N ; i++)
Pour i de 1 à N faire {
S← S + i S= S+ i ;
FinPour }
Ecrire("la somme des nombres de 1 à", N, "= ", S) printf("la somme des nombres de 1 à %d = %d", N, S) ;
Fin }
9
4/7/2023
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque For / Pour
#include <stdio.h>
void main()
{ int N,i, S;
printf("donner N : ") ;
scanf("%d", &N) ;
S= 0 ;
i=1; i=1; for ( i=1 ; i <=N ; i=i+1)
while ( i<=N) do {
{ {
S= S+ i ; S= S+ i ; S= S+ i ;
i = i+1 ; i = i+1 ; }
} } while ( i<=N) ;
printf("la somme des nombres de 1 à %d = %d", N, S) ;
}
1 2
If - Else / Si - Sinon Switch / Selon While / Tantque For / Pour
#include <stdio.h>
void main()
{ int N,i, S;
printf("donner N : ") ;
scanf("%d", &N) ;
S= 0 ;
i=1; i=1; for ( i=1 ; i <=N ; i++)
while ( i<=N) do {
{ {
S= S+ i ; S= S+ i ; S= S+ i ;
i++ ; i++ ; }
} } while ( i<=N) ;
printf("la somme des nombres de 1 à %d = %d", N, S) ;
}
10