0% ont trouvé ce document utile (0 vote)
33 vues10 pages

Algorithmes et Exemples de Programmation

Le document présente des exemples d'algorithmes utilisant les structures de contrôle if-else et switch en langage C. Les algorithmes proposés permettent de déterminer si un nombre est pair ou impair, ou d'afficher le mois correspondant à un numéro.

Transféré par

med
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues10 pages

Algorithmes et Exemples de Programmation

Le document présente des exemples d'algorithmes utilisant les structures de contrôle if-else et switch en langage C. Les algorithmes proposés permettent de déterminer si un nombre est pair ou impair, ou d'afficher le mois correspondant à un numéro.

Transféré par

med
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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",&note);
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",&note);
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",&note);
{
while(note<0 || note > 20)
printf("Entrez une note entre 0 et 20 : ") ;
{
scanf("%f",&note);
printf("Entrez une note entre 0 et 20 : ") ;
} while(note<0 || note > 20) ;
scanf("%f",&note);
}
}
}

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

Vous aimerez peut-être aussi