SlideShare une entreprise Scribd logo
Les structures de
contrôle conditionnelles
Les structures de contrôle se séparent en
deux familles:
• les structures alternatives
• les structures de boucles.
Elles permettent de modifier le
comportement de l’application en fonction
des valeurs de ses variables.
 Permet de réaliser un traitement ou un autre
selon la valeur d'une condition.
Syntaxe :
En Agorithmique
SI <condition> ALORS
<bloc d'instructions 1>
SINON
<bloc d'instructions 2>
FinSi
En C
if ( <expression> )
<bloc d'instructions 1>;
else
<bloc d'instructions 2>;
if – else
Expression
VRAI FAUX
<Bloc d'instructions 1> <Bloc d'instructions 2>
<expression> :
une variable d'un type numérique, une expression
fournissant un résultat numérique.
<bloc d'instructions> :
• un ensemble d'instructions entre accolades
• une seule instruction
if (a > b)
max = a;
else
max = b;
if (A==B)
printf("A est égal à B");
else
printf("A diffère de B");
if ((a > b) && (b>c))
{
printf("max =%d", a);
printf("min =%d",c);
}
if (A-B)
printf("A diffère de B");
else
printf("A est égal à B");
Exemples
Algorithme Test_Positif;
Var x : entier;
Début
Écrire ("Saisir un entier x: ") ; Lire (x);
Si (x > 0) alors
Écrire(x, " est un nombre positif ");
Sinon
Écrire(x, " est un nombre négatif");
Finsi
Fin.
Exercice:
Ecrire l'algorithme et le programme C permettant de
tester est-ce que un entier x est positif ou négatif
#include <stdio.h> /*Programme TestPositif;*/
main () {
int x;
printf("Saisir un entier x: n");
scanf("%d",&x);
if (x>0)
printf("%d est un nombre positif n", x);
else
printf("%d est un nombre négatif n", x);
}
Exercice:
Ecrire l'algorithme et le programme C permettant de
tester est-ce que un entier x est positif ou négatif
Exercice:
Écrire un algorithme et un programme C qui permet d'afficher
le maximum de deux entiers quelconques.
Algorithmique
ALGORITHME Max_2_Entiers;
Var a,b : Entiers;
DEBUT
Ecrire("Veuillez entrer deux entiers:");
Lire (a,b);
Si (a<b) Alors
Ecrire ("le maximum de ", a , " et ", b, " est : ", b);
Sinon
Ecrire ("le maximum de ", a , " et ", b, " est : ", a);
FinSi
FIN
Exercice:
Écrire un algorithme et un programme C qui permet de
calculer le maximum de deux entiers quelconques.
Programme C
#include <stdio.h>
Main() {
int a, b;
printf ("Veuillez entrer deux entiers: n");
scanf("%d %d",&a,&b);
if (a<b)
printf ("le maximum de %d et %d est : %d",a , b, b);
else
printf ("le maximum de %d et %d est : %d",a , b, a);
}
Pour prendre des décisions entre plusieurs alternatives :
En Agorithmique
SI <Expression 1> ALORS
<bloc d'instructions 1>
SINON
SI <Expression 2> ALORS
<bloc d'instructions 2>
SINON
<bloc d'instructions 3>
FinSi
FinSi
En C
if ( <expression1> )
<bloc d'instructions1>;
else if (<expression2>)
<bloc d'instructions2>;
else if (<expression3>)
<bloc d'instructions3>;
else if (<expressionN>)
<bloc d'instructionsN>;
else
<blocN+1>;
if – else if- …. -else
Exemple :
#include <stdio.h>
main()
{
int A,B;
printf("Entrez deux nombres entiers :");
scanf("%d %d", &A, &B);
if (A > B)
printf("%d est plus grand que %dn", A, B);
else if (A < B)
printf("%d est plus petit que %dn", A, B);
else
printf("%d est égal à %dn", A, B);
}
if – else if- …. -else
VAR A,B,C:Entiers;
DEBUT
Ecrire("Entrer trois entiers:");
Lire(A,B,C);
Ecrire("La valeur maximale est : );
SI (A>B) AND (A>C) ALORS
Ecrire(A);
SINON
SI (A<B) ALORS Ecrire(B);
SINON Ecrire(C);
FinSI
FinSi
Exercice:
Ecrire l'algorithme et le programme C qui lit trois valeurs entières (A, B
et C) au clavier et qui affiche la plus grande des trois valeurs,
#include <stdio.h>
Main() {
int A, B, C;
printf("Introduisez trois nombres entiers :");
scanf("%d %d %d", &A, &B, &C);
printf("La valeur maximale est ");
if ((A>B && A>C))
printf("Le max est : %dn",A);
else if (B>C)
printf(" Le max est : %dn",B);
else
printf(" Le max est : %dn",C);
}
Exercice:
Ecrire l'algorithme et le programme C qui lit trois valeurs entières (A, B
et C) au clavier et qui affiche la plus grande des trois valeurs,
les différentes conditions sont testées dans l'ordre où elles
apparaissent.
Dès qu'une condition est vraie, on exécute l'action associée et on
quitte la structure.
Si aucune condition n'est vérifiée, on exécute la partie sinon, qui est
facultative.
Selon expression Faire
valeur 1 : bloc d’instructions 1
valeur 2 : bloc d’instructions 2
valeur 3 : bloc d’instructions 3
…
Sinon
instructions par défaut
Finselon
switch (expression) {
case val1: instruction 1; break ;
case val2: instruction 2; break ;
...
case valN: instruction N; break ;
default: instruction D ; break ;
}
Switch-case
Exercice
Ecrire l'algorithme et le programme C qui affiche le nom du mois
selon le chiffre entré au clavier.
Selon mois Faire
1 : Ecrire "Janvier";
2 : Ecrire "Février";
…
11 : Ecrire "Novembre";
12 : Ecrire "Décembre";
Sinon
Ecrire "Un numéro de
mois doit être compris entre
1 et 12";
Finselon
switch (mois)
{
case 1: printf ("Janvier");break ;
case 2: printf ( "Février");break ;
…
case 11 : printf ("Novembre");break ;
case 12 : printf ("Décembre"); break ;
default:
printf("Un numéro de mois doit être
compris entre 1 et 12"); break ;
}
Problème
Écrire un algorithme permettant d’afficher 300 fois le
message : ‘‘ bonjour tout le monde’’.
Solution
ALGORITHME Affichage-300-fois;
DEBUT
Écrire (' Bonjour tout le monde '); {1ère fois}
Écrire (' Bonjour tout le monde '); {2ème fois}
.
.
Écrire (' Bonjour tout le monde '); {300ème fois}
FIN
 Les structures de boucles nous donnent la
possibilité de faire répéter une instruction (ou un
bloc):
• soit tant qu'une condition est vraie
• soit un nombre déterminé de fois.
 Il ya 3 grands types de structures de boucles:
• Tant que … Faire : si condition répète
• Faire … Jusqu'à : répète jusqu’à condition
• Pour : répète n fois
La structure "tant que"
Permet de tester une condition
Exécuter une instruction (ou un bloc) tant que
cette condition est vraie.
Syntaxe:
Tant que Expression Faire
<bloc d'instructions>;
Fin tant que
while (Expression) {
<bloc d'instructions>;
/*bloc d'instructions*/
}
• Tant que Expression est Vraie le bloc d'instructions
sera exécuté.
• Si Expression est fausse on passe à l'instruction
suivante.
• Il se peut que l'on ne rentre jamais dans la boucle (si la
condition n'est jamais vraie)
• On ne connaît pas à l’avance le nombre d'itérations de la
boucle Tant que.
Tant que Expression Faire
<bloc d'instructions>;
Fin tant que
while (Expression) {
<bloc d'instructions>;
/*bloc d'instructions*/
}
Solution de l'exercice précédent:
ALGORITHME Affichage-300-fois;
VAR i : Entier ;
DEBUT
i  0 ; { Initialisation }
Tant que (i < 300) Faire
Écrire (" Bonjour tout le monde ");
i  i + 1 ;
Fin tant que
FIN.
Solution de l'exercice précédent:
#include <stdio.h>
#include <conio.h>
main() {
int i = 0;
while (i < 300)
{
printf("Bonjour tout le monde n ");
i++;
}
}
Exemple
ALGORITHME Affichage-Test;
VAR test: Entier;
DEBUT
Test ← 10;
Tant que (test >0) Faire
Ecrire ("test = ", test);
Test ← test-2;
Fin Tant que
FIN.
#include <stdio.h>
#include <conio.h>
main()
{
int test = 10;
while (test > 0)
{
printf("test = %d n ", test);
test -= 2;
}
}
Exercice
Dans ces algorithmes combien de fois la boucle est- elle
exécutée ?
ALGORITHME Boucle1;
Var i , y : Entiers;
Début
i   ;
y  0 ;
Tant Que (i<7) faire
i  i+1;
y  y+i;
Écrire (' y = ' , y)
Fin Tant que
Fin
ALGORITHME Boucle2;
Var n : Entier;
Début
n  15;
Tant Que (n<>0) faire
Écrire (n);
n  n-2 ;
Fin Tant que
Fin.
La structure "Faire … jusqu'à"
 On utilise cette instruction pour exécuter des actions
jusqu'à ce qu'une condition soit remplie.
 Elle permet d’entrer une première fois dans la boucle
avant de tester la condition pour les autres fois.
Syntaxe :
Faire
<bloc d'instructions>;
Jusqu’à Condition
Do
{
<bloc d'instructions>;
} while (condition);
•Le bloc d'instructions est exécuté une première fois.
•Si la condition est vraie la boucle est à nouveau exécutée.
•Si la condition est fausse on passe à l'instruction suivante.
•Le bloc d’instructions sera exécuté au moins une fois.
•La boucle n’est pas INCONDITIONNELLE. On ne connaît
pas à l’avance le nombre d’itérations.
Faire
<bloc d'instructions>;
Jusqu’à Condition
Do
{
<bloc d'instructions>;
} while (condition);
Exemple
ALGORITHME Affichage-Test;
VAR test: Entier;
DEBUT
Test ← 10;
Faire
Ecrire ("test = ", test);
Test ← test-2;
jusqu'à (test >0)
FIN.
#include <stdio.h>
main ()
{
int test = 10;
do
{
printf ("test= %d n", test);
test -= 2;
} while (test > 0);
}
Exercice:
Écrire un algorithme et un programme C permettant de
calculer, pour un entier N> 0, la somme :
SN = 1 + 2 + 3 + …… + N
L’instruction Pour
 Elle limite le nombre de fois où doit se répéter le bloc Action
 L’utilisation la plus courante est l’initialisation et la modification
d’un compteur jusqu’à ce que celui-ci atteigne la valeur
souhaitée.
 On doit utiliser la structure Pour lorsque l’on connaît le
nombre d’itérations.
Syntaxe :
Pour variable  valeur1 à
valeur2 [pas de <incrément>]
faire
<Bloc d'instructions> ;
Fin Pour
for (expression(s)1;
expression(s)2; expression(s)3 )
{
<Bloc d'instructions> ;
}
 Expression 1 => Initialisation d’une ou plusieurs
variables (index).
 Expression 2 => Expression conditionnelle
(condition d’arrêt).
 Expression 3 => Expression modifiant l’index.
Pour variable  valeur1 à
valeur2 [pas de <incrément>]
faire
<Bloc d'instructions> ;
Fin Pour
for (expression(s)1;
expression(s)2; expression(s)3 )
{
<Bloc d'instructions> ;
}
Exemple:
ALGORITHME Affichage-a;
VAR a: Entier;
DEBUT
Pour a  256 à 1 faire
Ecrire ("a = ", a);
Test ← a / 2;
Fin pour
FIN
#include <stdio.h>
main ()
{
int a;
for (a = 256; a>1; a /= 2)
printf ("a= %d n", a);
}
Exercice:
Écrire l’algorithme permettant de calculer la
moyenne des notes de N étudiants

Contenu connexe

Similaire à Algorithmique&Langage C Partie-2 BTS.pptx

condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptx
MohammedErritali2
 
Cours tp2
Cours tp2Cours tp2
Cours tp2
Mohamed MHAMDI
 
Ch4- les structures répétitives.pdf
Ch4- les structures répétitives.pdfCh4- les structures répétitives.pdf
Ch4- les structures répétitives.pdf
FadouaBouafifSamoud
 
Cours java script
Cours java scriptCours java script
Cours java script
AdelThaljaoui
 
cours Plsql _ abdelkhalek benhoumine
cours Plsql _ abdelkhalek benhouminecours Plsql _ abdelkhalek benhoumine
cours Plsql _ abdelkhalek benhoumine
abdelkhalek benhoumine
 
PL/SQL:les curseurs
PL/SQL:les curseursPL/SQL:les curseurs
PL/SQL:les curseurs
Abdelouahed Abdou
 
Initiation à la programmation sous excel tutoriel2
Initiation à la programmation sous excel tutoriel2Initiation à la programmation sous excel tutoriel2
Initiation à la programmation sous excel tutoriel2
Christophe Malpart
 
Dvdmiage algo chapitre_04_instructions_de_choix
Dvdmiage algo chapitre_04_instructions_de_choixDvdmiage algo chapitre_04_instructions_de_choix
Dvdmiage algo chapitre_04_instructions_de_choix
kattass mourad
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
YasmineChihab
 
Language-C.ppt
Language-C.pptLanguage-C.ppt
Language-C.ppt
EmnaBenSaid2
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
ABID Mehdi
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
ABID Mehdi
 
Chap05 (buchi)
Chap05 (buchi)Chap05 (buchi)
Chap05 (buchi)infcom
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
Alexandre Hamez
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
Abdoulaye Dieng
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
ECAM Brussels Engineering School
 

Similaire à Algorithmique&Langage C Partie-2 BTS.pptx (20)

Tp 1 introduction à matlab
Tp 1 introduction à matlabTp 1 introduction à matlab
Tp 1 introduction à matlab
 
Tp 1 introduction à matlab
Tp 1 introduction à matlabTp 1 introduction à matlab
Tp 1 introduction à matlab
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptx
 
Chapitre2 prog dsplf3
Chapitre2 prog dsplf3Chapitre2 prog dsplf3
Chapitre2 prog dsplf3
 
Cours tp2
Cours tp2Cours tp2
Cours tp2
 
Ch4- les structures répétitives.pdf
Ch4- les structures répétitives.pdfCh4- les structures répétitives.pdf
Ch4- les structures répétitives.pdf
 
Cours java script
Cours java scriptCours java script
Cours java script
 
cours Plsql _ abdelkhalek benhoumine
cours Plsql _ abdelkhalek benhouminecours Plsql _ abdelkhalek benhoumine
cours Plsql _ abdelkhalek benhoumine
 
PL/SQL:les curseurs
PL/SQL:les curseursPL/SQL:les curseurs
PL/SQL:les curseurs
 
Initiation à la programmation sous excel tutoriel2
Initiation à la programmation sous excel tutoriel2Initiation à la programmation sous excel tutoriel2
Initiation à la programmation sous excel tutoriel2
 
Dvdmiage algo chapitre_04_instructions_de_choix
Dvdmiage algo chapitre_04_instructions_de_choixDvdmiage algo chapitre_04_instructions_de_choix
Dvdmiage algo chapitre_04_instructions_de_choix
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
 
Language-C.ppt
Language-C.pptLanguage-C.ppt
Language-C.ppt
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Chap05 (buchi)
Chap05 (buchi)Chap05 (buchi)
Chap05 (buchi)
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Theme4
Theme4Theme4
Theme4
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 

Dernier

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 

Dernier (9)

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 

Algorithmique&Langage C Partie-2 BTS.pptx

  • 1. Les structures de contrôle conditionnelles
  • 2. Les structures de contrôle se séparent en deux familles: • les structures alternatives • les structures de boucles. Elles permettent de modifier le comportement de l’application en fonction des valeurs de ses variables.
  • 3.  Permet de réaliser un traitement ou un autre selon la valeur d'une condition. Syntaxe : En Agorithmique SI <condition> ALORS <bloc d'instructions 1> SINON <bloc d'instructions 2> FinSi En C if ( <expression> ) <bloc d'instructions 1>; else <bloc d'instructions 2>; if – else
  • 4. Expression VRAI FAUX <Bloc d'instructions 1> <Bloc d'instructions 2> <expression> : une variable d'un type numérique, une expression fournissant un résultat numérique. <bloc d'instructions> : • un ensemble d'instructions entre accolades • une seule instruction
  • 5. if (a > b) max = a; else max = b; if (A==B) printf("A est égal à B"); else printf("A diffère de B"); if ((a > b) && (b>c)) { printf("max =%d", a); printf("min =%d",c); } if (A-B) printf("A diffère de B"); else printf("A est égal à B"); Exemples
  • 6. Algorithme Test_Positif; Var x : entier; Début Écrire ("Saisir un entier x: ") ; Lire (x); Si (x > 0) alors Écrire(x, " est un nombre positif "); Sinon Écrire(x, " est un nombre négatif"); Finsi Fin. Exercice: Ecrire l'algorithme et le programme C permettant de tester est-ce que un entier x est positif ou négatif
  • 7. #include <stdio.h> /*Programme TestPositif;*/ main () { int x; printf("Saisir un entier x: n"); scanf("%d",&x); if (x>0) printf("%d est un nombre positif n", x); else printf("%d est un nombre négatif n", x); } Exercice: Ecrire l'algorithme et le programme C permettant de tester est-ce que un entier x est positif ou négatif
  • 8. Exercice: Écrire un algorithme et un programme C qui permet d'afficher le maximum de deux entiers quelconques. Algorithmique ALGORITHME Max_2_Entiers; Var a,b : Entiers; DEBUT Ecrire("Veuillez entrer deux entiers:"); Lire (a,b); Si (a<b) Alors Ecrire ("le maximum de ", a , " et ", b, " est : ", b); Sinon Ecrire ("le maximum de ", a , " et ", b, " est : ", a); FinSi FIN
  • 9. Exercice: Écrire un algorithme et un programme C qui permet de calculer le maximum de deux entiers quelconques. Programme C #include <stdio.h> Main() { int a, b; printf ("Veuillez entrer deux entiers: n"); scanf("%d %d",&a,&b); if (a<b) printf ("le maximum de %d et %d est : %d",a , b, b); else printf ("le maximum de %d et %d est : %d",a , b, a); }
  • 10. Pour prendre des décisions entre plusieurs alternatives : En Agorithmique SI <Expression 1> ALORS <bloc d'instructions 1> SINON SI <Expression 2> ALORS <bloc d'instructions 2> SINON <bloc d'instructions 3> FinSi FinSi En C if ( <expression1> ) <bloc d'instructions1>; else if (<expression2>) <bloc d'instructions2>; else if (<expression3>) <bloc d'instructions3>; else if (<expressionN>) <bloc d'instructionsN>; else <blocN+1>; if – else if- …. -else
  • 11. Exemple : #include <stdio.h> main() { int A,B; printf("Entrez deux nombres entiers :"); scanf("%d %d", &A, &B); if (A > B) printf("%d est plus grand que %dn", A, B); else if (A < B) printf("%d est plus petit que %dn", A, B); else printf("%d est égal à %dn", A, B); } if – else if- …. -else
  • 12. VAR A,B,C:Entiers; DEBUT Ecrire("Entrer trois entiers:"); Lire(A,B,C); Ecrire("La valeur maximale est : ); SI (A>B) AND (A>C) ALORS Ecrire(A); SINON SI (A<B) ALORS Ecrire(B); SINON Ecrire(C); FinSI FinSi Exercice: Ecrire l'algorithme et le programme C qui lit trois valeurs entières (A, B et C) au clavier et qui affiche la plus grande des trois valeurs,
  • 13. #include <stdio.h> Main() { int A, B, C; printf("Introduisez trois nombres entiers :"); scanf("%d %d %d", &A, &B, &C); printf("La valeur maximale est "); if ((A>B && A>C)) printf("Le max est : %dn",A); else if (B>C) printf(" Le max est : %dn",B); else printf(" Le max est : %dn",C); } Exercice: Ecrire l'algorithme et le programme C qui lit trois valeurs entières (A, B et C) au clavier et qui affiche la plus grande des trois valeurs,
  • 14. les différentes conditions sont testées dans l'ordre où elles apparaissent. Dès qu'une condition est vraie, on exécute l'action associée et on quitte la structure. Si aucune condition n'est vérifiée, on exécute la partie sinon, qui est facultative. Selon expression Faire valeur 1 : bloc d’instructions 1 valeur 2 : bloc d’instructions 2 valeur 3 : bloc d’instructions 3 … Sinon instructions par défaut Finselon switch (expression) { case val1: instruction 1; break ; case val2: instruction 2; break ; ... case valN: instruction N; break ; default: instruction D ; break ; } Switch-case
  • 15. Exercice Ecrire l'algorithme et le programme C qui affiche le nom du mois selon le chiffre entré au clavier. Selon mois Faire 1 : Ecrire "Janvier"; 2 : Ecrire "Février"; … 11 : Ecrire "Novembre"; 12 : Ecrire "Décembre"; Sinon Ecrire "Un numéro de mois doit être compris entre 1 et 12"; Finselon switch (mois) { case 1: printf ("Janvier");break ; case 2: printf ( "Février");break ; … case 11 : printf ("Novembre");break ; case 12 : printf ("Décembre"); break ; default: printf("Un numéro de mois doit être compris entre 1 et 12"); break ; }
  • 16. Problème Écrire un algorithme permettant d’afficher 300 fois le message : ‘‘ bonjour tout le monde’’. Solution ALGORITHME Affichage-300-fois; DEBUT Écrire (' Bonjour tout le monde '); {1ère fois} Écrire (' Bonjour tout le monde '); {2ème fois} . . Écrire (' Bonjour tout le monde '); {300ème fois} FIN
  • 17.  Les structures de boucles nous donnent la possibilité de faire répéter une instruction (ou un bloc): • soit tant qu'une condition est vraie • soit un nombre déterminé de fois.  Il ya 3 grands types de structures de boucles: • Tant que … Faire : si condition répète • Faire … Jusqu'à : répète jusqu’à condition • Pour : répète n fois
  • 18. La structure "tant que" Permet de tester une condition Exécuter une instruction (ou un bloc) tant que cette condition est vraie. Syntaxe: Tant que Expression Faire <bloc d'instructions>; Fin tant que while (Expression) { <bloc d'instructions>; /*bloc d'instructions*/ }
  • 19. • Tant que Expression est Vraie le bloc d'instructions sera exécuté. • Si Expression est fausse on passe à l'instruction suivante. • Il se peut que l'on ne rentre jamais dans la boucle (si la condition n'est jamais vraie) • On ne connaît pas à l’avance le nombre d'itérations de la boucle Tant que. Tant que Expression Faire <bloc d'instructions>; Fin tant que while (Expression) { <bloc d'instructions>; /*bloc d'instructions*/ }
  • 20. Solution de l'exercice précédent: ALGORITHME Affichage-300-fois; VAR i : Entier ; DEBUT i  0 ; { Initialisation } Tant que (i < 300) Faire Écrire (" Bonjour tout le monde "); i  i + 1 ; Fin tant que FIN.
  • 21. Solution de l'exercice précédent: #include <stdio.h> #include <conio.h> main() { int i = 0; while (i < 300) { printf("Bonjour tout le monde n "); i++; } }
  • 22. Exemple ALGORITHME Affichage-Test; VAR test: Entier; DEBUT Test ← 10; Tant que (test >0) Faire Ecrire ("test = ", test); Test ← test-2; Fin Tant que FIN. #include <stdio.h> #include <conio.h> main() { int test = 10; while (test > 0) { printf("test = %d n ", test); test -= 2; } }
  • 23. Exercice Dans ces algorithmes combien de fois la boucle est- elle exécutée ? ALGORITHME Boucle1; Var i , y : Entiers; Début i   ; y  0 ; Tant Que (i<7) faire i  i+1; y  y+i; Écrire (' y = ' , y) Fin Tant que Fin ALGORITHME Boucle2; Var n : Entier; Début n  15; Tant Que (n<>0) faire Écrire (n); n  n-2 ; Fin Tant que Fin.
  • 24. La structure "Faire … jusqu'à"  On utilise cette instruction pour exécuter des actions jusqu'à ce qu'une condition soit remplie.  Elle permet d’entrer une première fois dans la boucle avant de tester la condition pour les autres fois. Syntaxe : Faire <bloc d'instructions>; Jusqu’à Condition Do { <bloc d'instructions>; } while (condition);
  • 25. •Le bloc d'instructions est exécuté une première fois. •Si la condition est vraie la boucle est à nouveau exécutée. •Si la condition est fausse on passe à l'instruction suivante. •Le bloc d’instructions sera exécuté au moins une fois. •La boucle n’est pas INCONDITIONNELLE. On ne connaît pas à l’avance le nombre d’itérations. Faire <bloc d'instructions>; Jusqu’à Condition Do { <bloc d'instructions>; } while (condition);
  • 26. Exemple ALGORITHME Affichage-Test; VAR test: Entier; DEBUT Test ← 10; Faire Ecrire ("test = ", test); Test ← test-2; jusqu'à (test >0) FIN. #include <stdio.h> main () { int test = 10; do { printf ("test= %d n", test); test -= 2; } while (test > 0); }
  • 27. Exercice: Écrire un algorithme et un programme C permettant de calculer, pour un entier N> 0, la somme : SN = 1 + 2 + 3 + …… + N
  • 28. L’instruction Pour  Elle limite le nombre de fois où doit se répéter le bloc Action  L’utilisation la plus courante est l’initialisation et la modification d’un compteur jusqu’à ce que celui-ci atteigne la valeur souhaitée.  On doit utiliser la structure Pour lorsque l’on connaît le nombre d’itérations. Syntaxe : Pour variable  valeur1 à valeur2 [pas de <incrément>] faire <Bloc d'instructions> ; Fin Pour for (expression(s)1; expression(s)2; expression(s)3 ) { <Bloc d'instructions> ; }
  • 29.  Expression 1 => Initialisation d’une ou plusieurs variables (index).  Expression 2 => Expression conditionnelle (condition d’arrêt).  Expression 3 => Expression modifiant l’index. Pour variable  valeur1 à valeur2 [pas de <incrément>] faire <Bloc d'instructions> ; Fin Pour for (expression(s)1; expression(s)2; expression(s)3 ) { <Bloc d'instructions> ; }
  • 30. Exemple: ALGORITHME Affichage-a; VAR a: Entier; DEBUT Pour a  256 à 1 faire Ecrire ("a = ", a); Test ← a / 2; Fin pour FIN #include <stdio.h> main () { int a; for (a = 256; a>1; a /= 2) printf ("a= %d n", a); }
  • 31. Exercice: Écrire l’algorithme permettant de calculer la moyenne des notes de N étudiants