Vous êtes sur la page 1sur 41

CHAPITRE III 

: LES INSTRUCTIONS DE CONTRÔLE


OBJET : Ce chapitre présente les différents traitements, les différentes actions qu’on
va utiliser pour agir sur les données afin de les manipuler.

OBJECTIFS : A la fin de ce chapitre, vous serez à mesure de connaître :


 Les différentes actions de l’algorithme ;
 Les actions de l’algorithme à utiliser dans des situations précises ;

La difficulté dans la réussite d’un algorithme se situe à deux niveaux :


 Les différentes instructions de l’algorithme qu’il faut face à une
situation ;
 L’agencement de ces différentes instructions dans une certaine logique
pour résoudre un problème.

I. L’INSTRUCTION D’AFFECTATION

1. Syntaxe et signification

La seule chose qu’on puisse faire avec une variable, c’est l’affecter, c’est-à-


dire lui attribuer une valeur.
En pseudo-code, l'instruction d'affectation se note avec le signe ←

Ainsi : 24
Y ← 24 ;
Attribue la valeur 24 à la variable Y.

Y
Cela sous-entend impérativement que Y soit une variable de type numérique. Si Y
a été défini dans un autre type, il faut bien comprendre que cette instruction
provoquera une erreur. On peut en revanche sans aucun problème attribuer à une
variable la valeur d’une autre variable, telle quelle ou modifiée.
Par exemple :
T← Y ; Signifie que la valeur de T est maintenant celle de Y.

Notez bien que cette instruction n’a en rien modifié la valeur de Y : une
instruction d’affectation ne modifie que ce qui est situé à gauche de la flèche.
T ← Y + 4 ;
Si Y contenait 12, T vaut maintenant 16. De même que précédemment, Y vaut
toujours 12.
T ← T + 1 ;
Si T valait 6, il vaut maintenant 7. La valeur de T est modifiée, puisque T est la
variable située à gauche de la flèche.
Pour revenir à présent sur le rôle des guillemets dans les chaînes de caractères,
comparons maintenant deux algorithmes suivants :

Exemple 1
Début
Rire ← "Loulou"
beni ← "Rire"
Fin

Exemple 2
Début
Rire ← "Loulou"
beni ← Rire
Fin
La seule différence entre les deux algorithmes consiste dans la présence ou dans
l’absence des guillemets lors de la seconde affectation. Et l'on voit que cela change
tout !
Dans l'exemple 1, ce que l'on affecte à la variable beni, c'est la suite de caractères  
R- i -r - e. Et à la fin de l’algorithme, le contenu de la variable beni est donc « Rire ».
Dans l'exemple 2, en revanche, Rire étant dépourvu de guillemets, n'est pas
considéré comme une suite de caractères, mais comme un nom de variable. Le sens
de la ligne devient donc : « affecte à la variable beni le contenu de la variable Rire ».
A la fin de l’algorithme n°2, la valeur de la variable beni est donc « Loulou ».  Ici,
l’oubli des guillemets conduit certes à un résultat,  mais à un résultat différent.
A noter, car c’est un cas très fréquent, que généralement, lorsqu’on oublie les
guillemets lors d’une affectation de chaîne, ce qui se trouve à droite du signe
d’affectation ne correspond à aucune variable précédemment déclarée et affectée.
Dans ce cas, l’oubli des guillemets se solde immédiatement par une erreur
d’exécution.
Ceci est une simple illustration. Mais elle résume l’ensemble des problèmes qui
surviennent lorsqu’on oublie la règle des guillemets aux chaînes de caractères. 

2. Ordre des instructions


Il va de soi que l’ordre dans lequel les instructions sont écrites va jouer un rôle
essentiel dans le résultat final. Considérons les deux algorithmes suivants :
Exemple 1
Variable A en Numérique
Début
A ← 34 ;
A ← 12 ;
Fin

Exemple 2
Variable A en Numérique
Début
A ← 12;
A ← 34 ;
Fin

Il est clair que dans le premier cas la valeur finale de A est 12, dans l’autre elle est
34.
Il n’y a aucun intérêt à affecter une variable pour l’affecter différemment juste après.
En l’occurrence, on aurait tout aussi bien atteint le même résultat en
écrivant simplement :
Exemple 1:
Variable A : Numérique;
Début
A ← 12;
Fin
Exemple 2 :
Variable A en Numérique
Début
A ← 34 ;
Fin

II. LES INSTRUCTIONS D’INCREMENTATION ET DE DECREMENTATION

L’incrémentation est l’opération qui consiste à accroitre par addition, la valeur d’une
variable à partir de son ancienne valeur.
Syntaxe : nom_variable1← nom_variable1+α(α réel ou entier positif)
Exemples : b ← b+1 ; Q←Q+2 ;
Explications : b ← b+1 ; signifie « prendre la valeur de la variable b à laquelle il
faudra ajouter 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :

10 11

b b
La décrémentation est l’opération qui consiste à décroitre par soustraction la valeur
d’une variable à partir de sa valeur initiale.
Syntaxe : nom_variable1← nom_variable1- α(α réel ou entier positif)
Exemples : k ← k-1 ; d← d- 3 ;
Explications : k ← k -1 ; signifie « prendre la valeur de la variable k à laquelle il
faudra retrancher 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :

31 30

k k
III. INSTRUCTION D’AFFICHAGE ET DE SAISIE

1. Instruction d’affichage ou de sortie


 Pour afficher du texte à l’écran on utilise deux mots clés :
AFFICHER ou ECRIRE et on procède comme suit :

Syntaxe 1 : AFFICHER (″insérer le texte à afficher″) ;


Ex. : AFFICHER (″nous sommes en salle de cours.″) ;
ECRIRE (″BONJOUR″) ;
Le texte en griffe apparait tel à l’écran.

 Pour afficher le contenu d’une cellule mémoire, une variable on met le nom de
la variable simplement sans griffe.
Syntaxe 2 : AFFICHER (nom_variable) ;
Ex. :
VAR x, y : entier ;
x ← 6 ; y ← 4 ;
AFFICHER(x) ; (*on verra 6 afficher à l’écran*)
ECRIRE(y) ; (*on verra 4 afficher à l’écran*)
AFFICHER(x, y) ; (*on verra 6 4 afficher à l’écran*)

 On peut afficher en même temps du texte et des variables.


Syntaxe 3 : AFFICHER (″insérer le texte à afficher″, nom_variable) ;
Ex. :
VAR x : entier ;
x ← 12 ; y ← 2 ; 
AFFICHER (″le résultat est : ″, x) ; (*on verra afficher à l’écran le résultat est 12*)
AFFICHER (″la somme de″, x, ″et de″, y, ″est : ″, x+y) ;
*on verra afficher à l’écran la somme de 12 et de 2 est 14
NB. : Ici les textes entre ″ ″ et les variables sans ″ ″ sont séparés par une virgule.

2. Instruction de saisie ou d’entrée

Elle permet de ranger ou mémoriser une valeur que l’on vient de saisir pour un
usage ultérieur. On saisi toujours une valeur considérée comme le contenu d’une
variable. Pour cela deux mots clés sont utilisés, ce sont : SAISIR ou LIRE
Syntaxe : SAISIR (nom_variable) ; ou LIRE (nom_variable) ;

Ex. :
VAR x : entier ;
AFFICHER (″Entrer une valeur ″)
SAISIR (x) ;
*Permet de ranger la valeur que l’utilisateur va saisir dans la variable x

Simulation : A l’écran on a
L’utilisateur saisi
Entrer une valeur
24
24 sera rangé dans Ecran
La variable
(Cellule mémoire) x

24 Unité centrale

Cellule mémoire x

NB. : DEUX REMARQUES POUR TERMINER

 En mathématiques, une « variable » est généralement une inconnue, qui


recouvre un nombre non précisé de valeurs. Lorsque j’écris :
y = 3 x + 2 ;
Les « variables » x et y satisfaisant à l’équation existent en nombre infini
(graphiquement, l’ensemble des solutions à cette équation dessine une droite).
Lorsque j’écris :
ax² + bx + c = 0
La « variable » x désigne les solutions à cette équation, c’est-à-dire zéro, une ou
deux valeurs à la fois…
En informatique, une variable possède à un moment donné une valeur et une
seule. A la rigueur, elle peut ne pas avoir de valeur du tout (une fois qu’elle a été
déclarée, et tant qu’on ne l’a pas affectée. A signaler que dans certains langages, les
variables non encore affectées sont considérées comme valant automatiquement
zéro). Mais ce qui est important, c’est que cette valeur justement, ne « varie » pas à
proprement parler. Du moins ne varie-t-elle que lorsqu’elle est l’objet d’une
instruction d’affectation.
 La deuxième remarque concerne le signe de l’affectation. En algorithmique,
comme on l’a vu, c’est le signe ←. Mais en pratique, la quasi totalité des
langages emploient le signe égal (=). Et là, pour les débutants, la confusion
avec les maths est également facile. En maths, A = B et B = A sont deux
propositions strictement équivalentes. En informatique, absolument pas,
puisque cela revient à écrire A ← B et B ← A, deux choses bien différentes.
De même, A=A+1, qui en mathématiques, constitue une équation sans
solution, représente en programmation une action tout à fait licite (et de
surcroît extrêmement courante). Donc, attention  ! ! ! La meilleure des
vaccinations contre cette confusion consiste à bien employer le signe ← en
pseudo-code, signe qui a le mérite de ne pas laisser place à l’ambiguïté.
Une fois acquis les bons réflexes avec ce signe, vous n’aurez plus aucune
difficulté à passer au = des langages de programmation.

EXERCICES D’APPLICATION

Exercice 1 :
Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ; CORRECTION
DEBUT
A ← 1 ; A=3 B=4
B ← A + 3 ;
A ← 3 ;
FIN
Exercice 1.2
Quelles seront les valeurs des variables A, B et C après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B, C : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 3 ; …………………………………………………………………………………
C ← A + B ; ………………………………………………………………………..
A ← 2 ;
C ← B – A ;
FIN

Exercice 1.3
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ;
DEBUT
A ← 5 ; …………………………………………………………………………………
…………………………………………………………………………………
B ← A + 4 ;
………………………………………………………………………..
A ← A + 1 ;
B ← A – 4 ;
FIN

Exercice 1.4
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME valeur
Var A, B : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 2 ; …………………………………………………………………………………
A ← B ; ………………………………………………………………………..
B ← A ;
FIN
Moralité : les deux dernières instructions permettent-elles d’échanger les deux
valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela change-t-il
quelque chose ?
Exercice 1.5
Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et
ce quel que soit leur contenu préalable.
Exercice 1.6
Une variante du précédent : on dispose de trois variables A, B et C. Ecrivez un
algorithme transférant à B la valeur de A, à C la valeur de B et à A la valeur de C
(toujours quels que soient les contenus préalables de ces variables).
Exercice 1.7
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ;
L’algorithme produit le résultat suivant :
B ← "12" ;
C aura comme contenu ‘’42312’’ car le signe +
C ← A + B ;
permet aussi de concatener deux chaînes.
FIN
Exercice 1.8
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ; …………………………………………………………………………………
B ← "12" ; …………………………………………………………………………………
C ← A & B ; ………………………………………………………………………..

FIN

Exercice 2
Ecrire un algorithme qui permet de calculer la moyenne par matière et la moyenne
générale d’un étudiant selon les règles de gestion suivantes :
*Algorithme : 2 notes coefficient 2, 1 note coefficient 1 ;
*Mathématique : 2 notes coefficient 1, 1 note coefficient 2.

Exercice 3 : Proposer un algorithme qui permet de calculer le volume d’un cylindre.


Exercice 4 : Ecrire un programme pour calculer le carré d’un entier saisi au clavier.
Exercice 5 :
Ecrire un programme qui calcule le montant brut d'un achat d’un article pour une
certaine quantité.

IV. LES SEQUENCES OU BLOCS D’INSTRUCTIONS

Une séquence ou bloc d’instructions est une suite d’instructions juxtaposées et


délimitées par les mots clés DEBUT et FIN. Elle est localisée à l’intérieur du corps de
l’algorithme ou au sein d’une fonction ou d’une procédure. Lorsque des instructions
concourent à la réalisation d’une tâche donnée, alors celle-ci sont mises en bloc.
Syntaxe
Enchaînement
DEBUT
ACTION 1
ACTION 1 ;
ACTION 2 ;
FIN
ACTION 2
Les actions sont exécutées les unes à la suite
des autres dans l'ordre d'écriture.

V. LES INSTRUCTIONS ALTERNATIVES OU DE DECISION :

1. Structure alternative réduite : SI…ALORS

Si la condition est vraie alors l'action est exécutée, sinon elle ne l'est pas.

Syntaxe 1 :
Sélection Si faux
CONDITION

SI Condition ALORS
DSI
ACTION ; Si vrai
FSI
ACTION 1

Exemple 1 Exemple 2 Exemple 1


A 11 ; A 4 ; A 11 ;B 11 ;
Si A > 9 Alors Si A > 7 Alors Si (A > 9) ET (B< 0) Alors
DEBUTSI DEBUTSI DEBUTSI
F b+ A ; K c * A ; F b+ A ;
FINSI FINSI FINSI
D A * 2 ; D A * 2 ; D A * 2 ;
Commentaires Commentaires Commentaires
Les instructions Les instructions comprises Les instructions
comprises Entre DEBUTSI et FINSI ne comprises
Entre DEBUTSI et FINSI seront Pas exécutées Entre DEBUTSI et FINSI
seront exécutées Car A< 7. Par contre ne seront Pas exécutées
Car A > 9. Et après après avoir sauté Car certes A> 9
cette Exécution, l’on va Tout ce qui est entre Mais B n’est pas <0 ;
exécuter D A * 2 ; DEBUTSI et FINSI ; Par contre, l’on va
car elle n’est pas liée à l’on va exécuter exécuter D A * 2 ;
la condition de Si D A * 2 ; car elle n’est car elle n’est pas liée à
Pas Liée à la condition de la condition de Si
Si

2. Structure alternative complète : Si … Alors … Sinon

Si la condition est vraie alors l'action1 est exécutée, sinon c'est l'action 2 qui sera exécutée.

Syntaxe 2
SI (condition1) ALORS CONDITION Si vrai
DEBUTSI
Action1 ;
SINON
Action2 ; Si faux
FSI
ACTION 2 ACTION 1

3. Les imbrications de Si … Alors et Si … Alors …Sinon

Lorsque l’on veut envisager un choix parmi n possibilités, il est alors possibles d’utiliser plusieurs
structures Si mais en les imbriquant c’est-à-dire en faisant apparaître des Si à l’intérieur d’autres
comme suit.
Syntaxe 3 :
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINONSI (condition2) ALORS
Action2 ;
FSI

Syntaxe 4 :
Sélection (suite)
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINON
SI (condition2) ALORS
DEBUTSI
Action2 ;

SINON

SI (condition N) ALORS
DEBUTSI
Action N ;
FSI
FSI

FSI

VI. STRUCTURE A CHOIX MULTIPLES

Lorsque l’on veut envisager un choix parmi n possibilités, il est également possible d’utiliser la
structure SUIVANT… FAIRE.
 Cas ou valeur doivent être un entier, un caractère, une chaîne de caractère ou un
booléen. Ils ne peuvent pas être des réels car les réels sont écrits avec une valeur
approchée…
 Cas ou valeur peuvent être une constante, une liste de constante ou un intervalle, de
Syntaxe CAS 1
SELON condition ACTION 1
Cas 1 : action 1 ;
Cas 2 : action 2 ;
……
Cas n : action n ; CAS 2
FINSI ACTION 2

OU
SUIVANT (CHOIX) Faire CAS 3
DEBUTSUIVANT ACTION 3
Valeur 1 : action 1 ;
Valeur 2 : action 2 ;

Valeur N : action N ;

SINON

Action ;

FINSUIVANT

Ex. :
……………………
A, B, C : entier ;
AFFICHER (‘Entrer un nombre’) ;
SAISIR (C) ;
SUIVANT C FAIRE
1 : AFFICHER (‘ le nombre saisi est petit’) ;
2, 3, 4 : AFFICHER (‘ le nombre est juste moyen’) ;
5.. 10 : AFFICHER (‘ le nombre saisi est moyen’) ;
SINON
AFFICHER (‘ le nombre saisi n’est pas autorisé’) ;
FINSUIVANT

EXPLICATION :
Si C vaut 1 alors exécuter le bloc d’instruction : afficher le nombre saisi est petit.
Dans le cas contraire si elle vaut 2 ou 3 ou 4 alors afficher le nombre est juste moyen
Dans le cas contraire si elle est comprise entre 5 et 10 alors exécuter le bloc
d’instruction : afficher le nombre saisi est moyen;
Dans si C ne correspond à aucune des valeurs alors afficher le nombre saisi n’est
pas autorisé.

VII. STRUCTURES ITERATIVES

Elles permettent de répéter un certain nombre de fois une instruction ou un bloc


d’instructions tant qu’une condition est vérifiée.
En effet, lors de la résolution de problèmes, nous sommes souvent amenés à
répéter des actions un certain nombre de fois. Par exemple dans la vie courante,
pour construire une maison, le maçon pose des briques une à une et il répète cette
même action jusqu’à ce que le mur atteigne une certaine hauteur voulue. Et après
cela, l’on pose la charpente de la maison. C’est pareil en algorithme. Par exemple,
lors de l’acquisition des données, l’on voudrait éviter la saisie des valeurs négatives.
Dans ce cas tant que l’utilisateur n’entre pas de valeurs positives, l’on va continuer à
l’inviter à saisir des valeurs positives.
Les boucles sont au nombre de trois ( 3 ) :
 POUR … FAIRE
 TANT QUE … FAIRE
 REPETER … JUSQU'A

1. La structure POUR … FAIRE

Cette structure s’utilise de préférence lorsque l’on connaît exactement le nombre d’itérations
c’est-à-dire le nombre de fois que l’on doit répéter le bloc d’instruction.

Syntaxe

POUR index valeur initiale à valeur finale [Pas] FAIRE


DPOUR
Action ;
FPOUR

NB. :
*L’index est aussi appelé compteur car c’est lui qui compte à chaque fois que
l’on parcourt le bloc d’instruction. Il est généralement de type entier et jamais
réel car avec les réels la boucle ne va jamais s’arrêter parce que par exemple
dans l’intervalle 1..2, il existe une infinité de réels ; cet index prendra
successivement les comprises entre la valeur initiale comprise et la valeur
finale comprise.

*Le compteur est initialisé à  « valeur initiale » et à chaque parcours du bloc


d’instructions il est incrémenté ou décrémenté de la valeur du PAS
automatiquement jusqu’à à atteindre « valeur finale ». Après quoi, l’on sort du
bloc d’instructions pour la suite de l’algorithme. Mais avant tout l’on vérifie
d’abord si le compteur est > valeur final. Si tel n’est pas le cas, l’on exécute le
bloc d’instructions, puis l’on revient à nouveau vérifier la condition. Par contre
si tel est le cas, l’on saute le bloc d’instructions et l’on poursuit l’exécution du
programme juste après le bloc d’instructions.

*PAS : c’est la valeur α à ajouter ou soustraire de l’index, quand ce PAS vaut


1 on ne le mentionne pas tandis que quand il diffère de 1 on le mentionne
entre les crochets.

Exemple 1 : Exemple 2 :


POUR i 0 à 50 FAIRE POUR i 0 à 50 [2] FAIRE
DPOUR DPOUR
AFFICHER (‘’ BONJOUR’’) ; AFFICHER (i) ;
FPOUR FPOUR

Permet de répéter l’affichage Per met d’afficher tous les nombres


de « BONJOUR » 51 fois pairs de à 50

2. Boucle TANT QUE…FAIRE


Cette structure permet la répétition d’une ou plusieurs actions tant qu’une condition est satisfaite.
La condition est testée avant la première exécution de l’action définie. Une boucle TANT QUE
n'est pas exécutée si la condition est fausse au début

Syntaxe 1 Condition si faux


TANT QUE Condition FAIRE
DTQ
Action ; si vrai
FTQ

Ex. : Action
TANT QUE (a= b) ET (c < 0) FAIRE
DTQ
d a +b+c ;
AFFICHER (‘ La valeur de d est :’, d) ;
FTQ

OU

Syntaxe 2 qui s’apparente à la structure POUR…FAIRE

Compteur valeur initiale ;


TANT QUE (Compteur < = valeur final) FAIRE
DTQ
Action ;
Compteur Compteur+PAS ;
FTQ

Compteur valeur initiale

Compteur > valeur finale


Action

Compteur Compteur+PAS

Si vrai

Si faux

EX. :
J 1 ;
TANT QUE (J< = 5) FAIRE
DTQ
AFFICHER (‘BONJOUR’) ;
J J+1 ;
FTQ

NB. : Vous avez remarqué que dans la syntaxe 2 de TANT QUE…FAIRE


l’instruction J J+1. Cela est dû au fait que contrairement à la structure
POUR…FAIRE où le compteur s’incrémente de la valeur du PAS
automatiquement à chaque parcours de la boucle, dans la structure TANT
QUE… FAIRE, ce n’est pas le cas. Nous devons nous même l’incrémenter de
façon explicite.

3. Structure : REPETER….JUSQU’A

Cette structure permet la répétition d’une action jusqu’à ce qu’une condition soit vérifiée. Elle
ressemble à la structure itérative tant que, à cette différence près que la condition exprimée
permet l’arrêt du traitement. De plus, elle n’est testée qu’après la première exécution de l’action
définie. L’action est exécutée au moins une fois avant que l’on vérifie la condition.

Syntaxe

Compteur valeur initiale


Action

Compteur Compteur+PAS

REPETER
Action ; Compteur > valeur finale
JUSQU'A (condition vraie)

Exemple 1:

S 1;
REPETER
Si Faux
A C+ 4;
B d mod C;
S S + 1; Si Vrai

JUSQU’ A S = 10;

Exemple 2:
Compteur 1 ;

REPETER

AFFICHER (‘’ BONJOUR’’) ;

Compteur Compteur +1 ;

JUSQU'A (Compteur › 50)

*On va exécuter le bloc d’instructions jusqu’à ce que S vale 10 dans l’exemple 1


*et jusqu’ à ce que le compteur soit supérieur à 50 dans l’exemple 2.

L’ART DE LA PROGRAMMATION
Cette partie est très importante dans la réussite de l’élaboration de vos algorithmes.
Certes, nous devons concevoir des algorithmes mais pas n’importe comment.
L’élaboration de l’algorithme suit des directives qui ne sont pas obligatoire mais vous
aidera énormément dans la compréhension et la lisibilité de vos algorithmes. De
surcroît ces directives vous aideront énormément dans la recherche d’erreurs dans
votre algorithme.
Voici quelques démarches à suivre :

1. Le DEBUT et la FIN de l’algorithme ou d’une structure doivent être sur la


même colonne. Cela permet de mieux structurer l’algorithme et de savoir où
un traitement débute et où il se termine.

2. Faire toujours des décalages vers la droite lorsqu’on débute un traitement lié à
une structure et aligner les instructions liées à un même traitement, sur la
même colonne. Cela permet de mieux structurer l’algorithme et de l’aérer.

3. Avant l’écriture de l’algorithme, il faudra toujours voir s’il n’ya pas de cas
particulier (s). S’il y en a, il faudra gérer ce(s) cas particulier(s) avant de gérer
le cas général (exemple pour la division de a/, le cas particulier est lorsque
b=0).

4. La lisibilité : débarrassez-vous des instructions non nécessaires à la résolution


d’un problème, au niveau du programme et commentez souvent vos lignes
d’instructions.

5. L’exactitude : c’est l’aptitude d’un programme à fournir le résultat voulu et à


répondre aux spécifications du problème posé.

OPTIMISATION D’UN PROGRAMME

Optimiser un programme informatique, c’est le rendre de telle sorte qu’il :


 Occupe moins de place dans la mémoire centrale lors de son chargement en
vue de son exécution ;
 Que le microprocesseur mette moins de temps pour l’exécuter.

Comment optimiser un programme ?


 Utiliser le moins de variable possible ;
 Eviter d’allonger inutilement le programme par l’utilisation d’instructions non
nécessaires ;
 Utiliser les solutions les plus simples pour l’exécuter.

TRAVAUX DIRIGES D’ALGORITHME

Exercice 0
Ecrire un programme qui échange la valeur de deux variables.
Exemple, si a = 2 et b = 5, le programme donnera a = 5 et b = 2.

Exercice 1
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et
affiche le carrée de ce nombre.

Exercice 2
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de
TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libellés
apparaissent clairement.

Exercice 3
Ecrire un algorithme qui après saisi d’un temps en seconde, converti ce temps en
heure(H), minute (mn) et seconde(s). Ex.: 4000s = 1h 06 mn 40 s

Exercice 4
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si
leur produit est négatif ou positif (on laisse de coté le cas où le produit est nul).
Attention toutefois : on ne doit pas calculer le produit des deux nombres.

Exercice 5 :
Un magasin d’impression de document facture 25fcfa les 10 premières impressions,
20fcfa les 30 suivantes, et 10fcfa au-delà .Ecrivez un algorithme qui demande à
l’utilisateur le nombre d’impression à effectuer et qui affiche la facture
correspondante.

Exercice 6
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe
de sa catégorie :
* ”Poussin” de 6 à 7 ans
*”Pupille” de 8 à 9 ans
*”Minime” de 10 à 11 ans
*”Cadet” après 12 ans

Exercice 7
Ecrire un algorithme qui permet de résoudre et afficher les résultats de l’équation du
second degré suivante : ax2+bx+c=0.

Exercice 8
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que
la réponse convienne. En cas de réponse supérieure à 20, on fera apparaitre un
message : Plus petit ! , et inversement, Plus grand ! Si le nombre est inférieur à 10.

Exercice 9
Proposer un algorithme qui permet de calculer et afficher le gain de vendeurs de
journaux qui vendent uniquement un et un seul type de journal. Les règles de gestion
sont les suivantes :
- Vendeurs de journaux journaliers : gain d’une commission de 10% par journal ;
- Vendeurs de journaux hebdomadaires : gain d’une commission de 5% par
journal ;
- Vendeurs de journaux mensuels : gain d’une commission de 20% par journal.

Exercice 10
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des
entiers jusqu’`a ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.

Exercice 11
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8

Exercice 12
Ecrire un algorithme qui effectue la multiplication de deux (2) nombres entiers positifs
saisis au clavier en utilisant uniquement l’addition. Afficher le résultat du calcul.
Exercice 13
Proposer un algorithme qui à partir d’un réel noté x et d’une valeur entière appelée n,
retourne x à la puissance n en utilisant une boucle répétitive.

CHAPITRE III : LES INSTRUCTIONS DE CONTRÔLE


OBJET : Ce chapitre présente les différents traitements, les différentes actions qu’on
va utiliser pour agir sur les données afin de les manipuler.

OBJECTIFS : A la fin de ce chapitre, vous serez à mesure de connaître :


 Les différentes actions de l’algorithme ;
 Les actions de l’algorithme à utiliser dans des situations précises ;

La difficulté dans la réussite d’un algorithme se situe à deux niveaux :


 Les différentes instructions de l’algorithme qu’il faut face à une
situation ;
 L’agencement de ces différentes instructions dans une certaine logique
pour résoudre un problème.

I. L’INSTRUCTION D’AFFECTATION

1. Syntaxe et signification

La seule chose qu’on puisse faire avec une variable, c’est l’affecter, c’est-à-


dire lui attribuer une valeur.
En pseudo-code, l'instruction d'affectation se note avec le signe ←

Ainsi : 24
Y ← 24 ;
Attribue la valeur 24 à la variable Y.

Y
Cela sous-entend impérativement que Y soit une variable de type numérique. Si Y
a été défini dans un autre type, il faut bien comprendre que cette instruction
provoquera une erreur. On peut en revanche sans aucun problème attribuer à une
variable la valeur d’une autre variable, telle quelle ou modifiée.
Par exemple :
T← Y ; Signifie que la valeur de T est maintenant celle de Y.

Notez bien que cette instruction n’a en rien modifié la valeur de Y : une
instruction d’affectation ne modifie que ce qui est situé à gauche de la flèche.
T ← Y + 4 ;
Si Y contenait 12, T vaut maintenant 16. De même que précédemment, Y vaut
toujours 12.
T ← T + 1 ;
Si T valait 6, il vaut maintenant 7. La valeur de T est modifiée, puisque T est la
variable située à gauche de la flèche.

Pour revenir à présent sur le rôle des guillemets dans les chaînes de caractères,
comparons maintenant deux algorithmes suivants :

Exemple 1
Début
Rire ← "Loulou"
beni ← "Rire"
Fin

Exemple 2
Début
Rire ← "Loulou"
beni ← Rire
Fin
La seule différence entre les deux algorithmes consiste dans la présence ou dans
l’absence des guillemets lors de la seconde affectation. Et l'on voit que cela change
tout !
Dans l'exemple 1, ce que l'on affecte à la variable beni, c'est la suite de caractères  
R- i -r - e. Et à la fin de l’algorithme, le contenu de la variable beni est donc « Rire ».
Dans l'exemple 2, en revanche, Rire étant dépourvu de guillemets, n'est pas
considéré comme une suite de caractères, mais comme un nom de variable. Le sens
de la ligne devient donc : « affecte à la variable beni le contenu de la variable Rire ».
A la fin de l’algorithme n°2, la valeur de la variable beni est donc « Loulou ».  Ici,
l’oubli des guillemets conduit certes à un résultat,  mais à un résultat différent.
A noter, car c’est un cas très fréquent, que généralement, lorsqu’on oublie les
guillemets lors d’une affectation de chaîne, ce qui se trouve à droite du signe
d’affectation ne correspond à aucune variable précédemment déclarée et affectée.
Dans ce cas, l’oubli des guillemets se solde immédiatement par une erreur
d’exécution.
Ceci est une simple illustration. Mais elle résume l’ensemble des problèmes qui
surviennent lorsqu’on oublie la règle des guillemets aux chaînes de caractères. 

2. Ordre des instructions


Il va de soi que l’ordre dans lequel les instructions sont écrites va jouer un rôle
essentiel dans le résultat final. Considérons les deux algorithmes suivants :
Exemple 1
Variable A en Numérique
Début
A ← 34 ;
A ← 12 ;
Fin

Exemple 2
Variable A en Numérique
Début
A ← 12;
A ← 34 ;
Fin

Il est clair que dans le premier cas la valeur finale de A est 12, dans l’autre elle est
34.
Il n’y a aucun intérêt à affecter une variable pour l’affecter différemment juste après.
En l’occurrence, on aurait tout aussi bien atteint le même résultat en
écrivant simplement :
Exemple 1:
Variable A : Numérique;
Début
A ← 12;
Fin
Exemple 2 :
Variable A en Numérique
Début
A ← 34 ;
Fin

II. LES INSTRUCTIONS D’INCREMENTATION ET DE DECREMENTATION

L’incrémentation est l’opération qui consiste à accroitre par addition, la valeur d’une
variable à partir de son ancienne valeur.
Syntaxe : nom_variable1← nom_variable1+α(α réel ou entier positif)
Exemples : b ← b+1 ; Q←Q+2 ;
Explications : b ← b+1 ; signifie « prendre la valeur de la variable b à laquelle il
faudra ajouter 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :

10 11

b b
La décrémentation est l’opération qui consiste à décroitre par soustraction la valeur
d’une variable à partir de sa valeur initiale.
Syntaxe : nom_variable1← nom_variable1- α(α réel ou entier positif)
Exemples : k ← k-1 ; d← d- 3 ;
Explications : k ← k -1 ; signifie « prendre la valeur de la variable k à laquelle il
faudra retrancher 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :

31 30
k k
III. INSTRUCTION D’AFFICHAGE ET DE SAISIE

1. Instruction d’affichage ou de sortie

 Pour afficher du texte à l’écran on utilise deux mots clés :


AFFICHER ou ECRIRE et on procède comme suit :

Syntaxe 1 : AFFICHER (″insérer le texte à afficher″) ;


Ex. : AFFICHER (″nous sommes en salle de cours.″) ;
ECRIRE (″BONJOUR″) ;
Le texte en griffe apparait tel à l’écran.

 Pour afficher le contenu d’une cellule mémoire, une variable on met le nom de
la variable simplement sans griffe.
Syntaxe 2 : AFFICHER (nom_variable) ;
Ex. :
VAR x, y : entier ;
x ← 6 ; y ← 4 ;
AFFICHER(x) ; (*on verra 6 afficher à l’écran*)
ECRIRE(y) ; (*on verra 4 afficher à l’écran*)
AFFICHER(x, y) ; (*on verra 6 4 afficher à l’écran*)

 On peut afficher en même temps du texte et des variables.


Syntaxe 3 : AFFICHER (″insérer le texte à afficher″, nom_variable) ;
Ex. :
VAR x : entier ;
x ← 12 ; y ← 2 ; 
AFFICHER (″le résultat est : ″, x) ; (*on verra afficher à l’écran le résultat est 12*)
AFFICHER (″la somme de″, x, ″et de″, y, ″est : ″, x+y) ;
*on verra afficher à l’écran la somme de 12 et de 2 est 14
NB. : Ici les textes entre ″ ″ et les variables sans ″ ″ sont séparés par une virgule.

2. Instruction de saisie ou d’entrée

Elle permet de ranger ou mémoriser une valeur que l’on vient de saisir pour un
usage ultérieur. On saisi toujours une valeur considérée comme le contenu d’une
variable. Pour cela deux mots clés sont utilisés, ce sont : SAISIR ou LIRE
Syntaxe : SAISIR (nom_variable) ; ou LIRE (nom_variable) ;
Ex. :
VAR x : entier ;
AFFICHER (″Entrer une valeur ″)
SAISIR (x) ;
*Permet de ranger la valeur que l’utilisateur va saisir dans la variable x

Simulation : A l’écran on a
L’utilisateur saisi
Entrer une valeur
24
24 sera rangé dans Ecran
La variable
(Cellule mémoire) x

24 Unité centrale

Cellule mémoire x

NB. : DEUX REMARQUES POUR TERMINER

 En mathématiques, une « variable » est généralement une inconnue, qui


recouvre un nombre non précisé de valeurs. Lorsque j’écris :
y = 3 x + 2 ;
Les « variables » x et y satisfaisant à l’équation existent en nombre infini
(graphiquement, l’ensemble des solutions à cette équation dessine une droite).
Lorsque j’écris :
ax² + bx + c = 0
La « variable » x désigne les solutions à cette équation, c’est-à-dire zéro, une ou
deux valeurs à la fois…
En informatique, une variable possède à un moment donné une valeur et une
seule. A la rigueur, elle peut ne pas avoir de valeur du tout (une fois qu’elle a été
déclarée, et tant qu’on ne l’a pas affectée. A signaler que dans certains langages, les
variables non encore affectées sont considérées comme valant automatiquement
zéro). Mais ce qui est important, c’est que cette valeur justement, ne « varie » pas à
proprement parler. Du moins ne varie-t-elle que lorsqu’elle est l’objet d’une
instruction d’affectation.
 La deuxième remarque concerne le signe de l’affectation. En algorithmique,
comme on l’a vu, c’est le signe ←. Mais en pratique, la quasi totalité des
langages emploient le signe égal (=). Et là, pour les débutants, la confusion
avec les maths est également facile. En maths, A = B et B = A sont deux
propositions strictement équivalentes. En informatique, absolument pas,
puisque cela revient à écrire A ← B et B ← A, deux choses bien différentes.
De même, A=A+1, qui en mathématiques, constitue une équation sans
solution, représente en programmation une action tout à fait licite (et de
surcroît extrêmement courante). Donc, attention  ! ! ! La meilleure des
vaccinations contre cette confusion consiste à bien employer le signe ← en
pseudo-code, signe qui a le mérite de ne pas laisser place à l’ambiguïté.
Une fois acquis les bons réflexes avec ce signe, vous n’aurez plus aucune
difficulté à passer au = des langages de programmation.

EXERCICES D’APPLICATION

Exercice 1 :
Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ; CORRECTION
DEBUT
A ← 1 ; A=3 B=4
B ← A + 3 ;
A ← 3 ;
FIN
Exercice 1.2
Quelles seront les valeurs des variables A, B et C après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B, C : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 3 ; …………………………………………………………………………………
C ← A + B ; ………………………………………………………………………..
A ← 2 ;
C ← B – A ;
FIN
Exercice 1.3
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ;
DEBUT
A ← 5 ; …………………………………………………………………………………
…………………………………………………………………………………
B ← A + 4 ;
………………………………………………………………………..
A ← A + 1 ;
B ← A – 4 ;
FIN

Exercice 1.4
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME valeur
Var A, B : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 2 ; …………………………………………………………………………………
A ← B ; ………………………………………………………………………..
B ← A ;
FIN
Moralité : les deux dernières instructions permettent-elles d’échanger les deux
valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela change-t-il
quelque chose ?
Exercice 1.5
Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et
ce quel que soit leur contenu préalable.
Exercice 1.6
Une variante du précédent : on dispose de trois variables A, B et C. Ecrivez un
algorithme transférant à B la valeur de A, à C la valeur de B et à A la valeur de C
(toujours quels que soient les contenus préalables de ces variables).
Exercice 1.7
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ;
L’algorithme produit le résultat suivant :
B ← "12" ;
C aura comme contenu ‘’42312’’ car le signe +
C ← A + B ;
permet aussi de concatener deux chaînes.
FIN
Exercice 1.8
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ; …………………………………………………………………………………
B ← "12" ; …………………………………………………………………………………
C ← A & B ; ………………………………………………………………………..

FIN

Exercice 2
Ecrire un algorithme qui permet de calculer la moyenne par matière et la moyenne
générale d’un étudiant selon les règles de gestion suivantes :
*Algorithme : 2 notes coefficient 2, 1 note coefficient 1 ;
*Mathématique : 2 notes coefficient 1, 1 note coefficient 2.

Exercice 3 : Proposer un algorithme qui permet de calculer le volume d’un cylindre.


Exercice 4 : Ecrire un programme pour calculer le carré d’un entier saisi au clavier.
Exercice 5 :
Ecrire un programme qui calcule le montant brut d'un achat d’un article pour une
certaine quantité.
IV. LES SEQUENCES OU BLOCS D’INSTRUCTIONS

Une séquence ou bloc d’instructions est une suite d’instructions juxtaposées et


délimitées par les mots clés DEBUT et FIN. Elle est localisée à l’intérieur du corps de
l’algorithme ou au sein d’une fonction ou d’une procédure. Lorsque des instructions
concourent à la réalisation d’une tâche donnée, alors celle-ci sont mises en bloc.
Syntaxe
Enchaînement
DEBUT
ACTION 1
ACTION 1 ;
ACTION 2 ;
FIN
ACTION 2
Les actions sont exécutées les unes à la suite
des autres dans l'ordre d'écriture.

V. LES INSTRUCTIONS ALTERNATIVES OU DE DECISION :

1. Structure alternative réduite : SI…ALORS

Si la condition est vraie alors l'action est exécutée, sinon elle ne l'est pas.

Syntaxe 1 :
Sélection CONDITION Si faux

SI Condition ALORS
DSI
ACTION ; Si vrai
FSI
ACTION 1
Exemple 1 Exemple 2 Exemple 1
A 11 ; A 4 ; A 11 ;B 11 ;
Si A > 9 Alors Si A > 7 Alors Si (A > 9) ET (B< 0) Alors
DEBUTSI DEBUTSI DEBUTSI
F b+ A ; K c * A ; F b+ A ;
FINSI FINSI FINSI
D A * 2 ; D A * 2 ; D A * 2 ;
Commentaires Commentaires Commentaires
Les instructions Les instructions comprises Les instructions
comprises Entre DEBUTSI et FINSI ne comprises
Entre DEBUTSI et FINSI seront Pas exécutées Entre DEBUTSI et FINSI
seront exécutées Car A< 7. Par contre ne seront Pas exécutées
Car A > 9. Et après après avoir sauté Car certes A> 9
cette Exécution, l’on va Tout ce qui est entre Mais B n’est pas <0 ;
exécuter D A * 2 ; DEBUTSI et FINSI ; Par contre, l’on va
car elle n’est pas liée à l’on va exécuter exécuter D A * 2 ;
la condition de Si D A * 2 ; car elle n’est car elle n’est pas liée à
Pas Liée à la condition de la condition de Si
Si

2. Structure alternative complète : Si … Alors … Sinon

Si la condition est vraie alors l'action1 est exécutée, sinon c'est l'action 2 qui sera exécutée.

Syntaxe 2 CONDITION
SI (condition1) ALORS Si vrai
DEBUTSI
Action1 ;
SINON
Action2 ; Si faux
FSI
ACTION 2 ACTION 1
3. Les imbrications de Si … Alors et Si … Alors …Sinon

Lorsque l’on veut envisager un choix parmi n possibilités, il est alors possibles d’utiliser plusieurs
structures Si mais en les imbriquant c’est-à-dire en faisant apparaître des Si à l’intérieur d’autres
comme suit.

Syntaxe 3 :
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINONSI (condition2) ALORS
Action2 ;
FSI

Syntaxe 4 :
Sélection (suite)
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINON
SI (condition2) ALORS
DEBUTSI
Action2 ;

SINON

SI (condition N) ALORS
DEBUTSI
Action N ;
FSI
FSI

FSI
VI. STRUCTURE A CHOIX MULTIPLES

Lorsque l’on veut envisager un choix parmi n possibilités, il est également possible d’utiliser la
structure SUIVANT… FAIRE.
 Cas ou valeur doivent être un entier, un caractère, une chaîne de caractère ou un
booléen. Ils ne peuvent pas être des réels car les réels sont écrits avec une valeur
approchée…
 Cas ou valeur peuvent être une constante, une liste de constante ou un intervalle, de
même type que la variable condition ou CHOIX pour respecter la compatibilité de
type.
 Lorsque la variable CHOIX a son contenu qui correspond à une valeur ou un cas
alors l’instruction en face de ce cas est exécutée. Après cela l’on sort de la structure
SUIVANT … FAIRE. Mais si la variable CHOIX a son contenu qui ne correspond pas
à une valeur ou un cas alors dans ce cas aucune instruction n’est exécutée.

Syntaxe CAS 1
SELON condition ACTION 1
Cas 1 : action 1 ;
Cas 2 : action 2 ;
……
Cas n : action n ; CAS 2
FINSI ACTION 2

OU
SUIVANT (CHOIX) Faire CAS 3
DEBUTSUIVANT ACTION 3
Valeur 1 : action 1 ;
Valeur 2 : action 2 ;

Valeur N : action N ;

SINON

Action ;

FINSUIVANT

Ex. :
……………………
A, B, C : entier ;
AFFICHER (‘Entrer un nombre’) ;
SAISIR (C) ;
SUIVANT C FAIRE
1 : AFFICHER (‘ le nombre saisi est petit’) ;
2, 3, 4 : AFFICHER (‘ le nombre est juste moyen’) ;
5.. 10 : AFFICHER (‘ le nombre saisi est moyen’) ;
SINON
AFFICHER (‘ le nombre saisi n’est pas autorisé’) ;
FINSUIVANT

EXPLICATION :
Si C vaut 1 alors exécuter le bloc d’instruction : afficher le nombre saisi est petit.
Dans le cas contraire si elle vaut 2 ou 3 ou 4 alors afficher le nombre est juste moyen
Dans le cas contraire si elle est comprise entre 5 et 10 alors exécuter le bloc
d’instruction : afficher le nombre saisi est moyen;
Dans si C ne correspond à aucune des valeurs alors afficher le nombre saisi n’est
pas autorisé.

VII. STRUCTURES ITERATIVES

Elles permettent de répéter un certain nombre de fois une instruction ou un bloc


d’instructions tant qu’une condition est vérifiée.
En effet, lors de la résolution de problèmes, nous sommes souvent amenés à
répéter des actions un certain nombre de fois. Par exemple dans la vie courante,
pour construire une maison, le maçon pose des briques une à une et il répète cette
même action jusqu’à ce que le mur atteigne une certaine hauteur voulue. Et après
cela, l’on pose la charpente de la maison. C’est pareil en algorithme. Par exemple,
lors de l’acquisition des données, l’on voudrait éviter la saisie des valeurs négatives.
Dans ce cas tant que l’utilisateur n’entre pas de valeurs positives, l’on va continuer à
l’inviter à saisir des valeurs positives.
Les boucles sont au nombre de trois ( 3 ) :
 POUR … FAIRE
 TANT QUE … FAIRE
 REPETER … JUSQU'A

1. La structure POUR … FAIRE

Cette structure s’utilise de préférence lorsque l’on connaît exactement le nombre d’itérations
c’est-à-dire le nombre de fois que l’on doit répéter le bloc d’instruction.
Syntaxe

POUR index valeur initiale à valeur finale [Pas] FAIRE


DPOUR
Action ;
FPOUR

NB. :
*L’index est aussi appelé compteur car c’est lui qui compte à chaque fois que
l’on parcourt le bloc d’instruction. Il est généralement de type entier et jamais
réel car avec les réels la boucle ne va jamais s’arrêter parce que par exemple
dans l’intervalle 1..2, il existe une infinité de réels ; cet index prendra
successivement les comprises entre la valeur initiale comprise et la valeur
finale comprise.

*Le compteur est initialisé à  « valeur initiale » et à chaque parcours du bloc


d’instructions il est incrémenté ou décrémenté de la valeur du PAS
automatiquement jusqu’à à atteindre « valeur finale ». Après quoi, l’on sort du
bloc d’instructions pour la suite de l’algorithme. Mais avant tout l’on vérifie
d’abord si le compteur est > valeur final. Si tel n’est pas le cas, l’on exécute le
bloc d’instructions, puis l’on revient à nouveau vérifier la condition. Par contre
si tel est le cas, l’on saute le bloc d’instructions et l’on poursuit l’exécution du
programme juste après le bloc d’instructions.

*PAS : c’est la valeur α à ajouter ou soustraire de l’index, quand ce PAS vaut


1 on ne le mentionne pas tandis que quand il diffère de 1 on le mentionne
entre les crochets.

Exemple 1 : Exemple 2 :


POUR i 0 à 50 FAIRE POUR i 0 à 50 [2] FAIRE
DPOUR DPOUR
AFFICHER (‘’ BONJOUR’’) ; AFFICHER (i) ;
FPOUR FPOUR

Permet de répéter l’affichage Per met d’afficher tous les nombres


de « BONJOUR » 51 fois pairs de à 50
2. Boucle TANT QUE…FAIRE

Cette structure permet la répétition d’une ou plusieurs actions tant qu’une condition est satisfaite.
La condition est testée avant la première exécution de l’action définie. Une boucle TANT QUE
n'est pas exécutée si la condition est fausse au début

Syntaxe 1 Condition si faux


TANT QUE Condition FAIRE
DTQ
Action ; si vrai
FTQ

Ex. : Action
TANT QUE (a= b) ET (c < 0) FAIRE
DTQ
d a +b+c ;
AFFICHER (‘ La valeur de d est :’, d) ;
FTQ

OU

Syntaxe 2 qui s’apparente à la structure POUR…FAIRE

Compteur valeur initiale ;


TANT QUE (Compteur < = valeur final) FAIRE
DTQ
Action ;
Compteur Compteur+PAS ;
FTQ
Compteur valeur initiale

Compteur > valeur finale Si vrai

Si faux
Action

Compteur Compteur+PAS

EX. :
J 1 ;
TANT QUE (J< = 5) FAIRE
DTQ
AFFICHER (‘BONJOUR’) ;
J J+1 ;
FTQ

NB. : Vous avez remarqué que dans la syntaxe 2 de TANT QUE…FAIRE


l’instruction J J+1. Cela est dû au fait que contrairement à la structure
POUR…FAIRE où le compteur s’incrémente de la valeur du PAS
automatiquement à chaque parcours de la boucle, dans la structure TANT
QUE… FAIRE, ce n’est pas le cas. Nous devons nous même l’incrémenter de
façon explicite.

3. Structure : REPETER….JUSQU’A

Cette structure permet la répétition d’une action jusqu’à ce qu’une condition soit vérifiée. Elle
ressemble à la structure itérative tant que, à cette différence près que la condition exprimée
permet l’arrêt du traitement. De plus, elle n’est testée qu’après la première exécution de l’action
définie. L’action est exécutée au moins une fois avant que l’on vérifie la condition.
Syntaxe

Compteur valeur initiale


REPETER
Action ;
JUSQU'A (condition vraie)
Action

Exemple 1:

S 1; Compteur Compteur+PAS
REPETER
Si Faux
A C+ 4;
B d mod C;
S S + 1; Compteur > valeur finale Si Vrai

JUSQU’ A S = 10;

Exemple 2:
Compteur 1 ;

REPETER

AFFICHER (‘’ BONJOUR’’) ;

Compteur Compteur +1 ;

JUSQU'A (Compteur › 50)

*On va exécuter le bloc d’instructions jusqu’à ce que S vale 10 dans l’exemple 1


*et jusqu’ à ce que le compteur soit supérieur à 50 dans l’exemple 2.
L’ART DE LA PROGRAMMATION

Cette partie est très importante dans la réussite de l’élaboration de vos algorithmes.
Certes, nous devons concevoir des algorithmes mais pas n’importe comment.
L’élaboration de l’algorithme suit des directives qui ne sont pas obligatoire mais vous
aidera énormément dans la compréhension et la lisibilité de vos algorithmes. De
surcroît ces directives vous aideront énormément dans la recherche d’erreurs dans
votre algorithme.
Voici quelques démarches à suivre :

6. Le DEBUT et la FIN de l’algorithme ou d’une structure doivent être sur la


même colonne. Cela permet de mieux structurer l’algorithme et de savoir où
un traitement débute et où il se termine.

7. Faire toujours des décalages vers la droite lorsqu’on débute un traitement lié à
une structure et aligner les instructions liées à un même traitement, sur la
même colonne. Cela permet de mieux structurer l’algorithme et de l’aérer.

8. Avant l’écriture de l’algorithme, il faudra toujours voir s’il n’ya pas de cas
particulier (s). S’il y en a, il faudra gérer ce(s) cas particulier(s) avant de gérer
le cas général (exemple pour la division de a/, le cas particulier est lorsque
b=0).

9. La lisibilité : débarrassez-vous des instructions non nécessaires à la résolution


d’un problème, au niveau du programme et commentez souvent vos lignes
d’instructions.

10. L’exactitude : c’est l’aptitude d’un programme à fournir le résultat voulu et à


répondre aux spécifications du problème posé.

OPTIMISATION D’UN PROGRAMME

Optimiser un programme informatique, c’est le rendre de telle sorte qu’il :


 Occupe moins de place dans la mémoire centrale lors de son chargement en
vue de son exécution ;
 Que le microprocesseur mette moins de temps pour l’exécuter.

Comment optimiser un programme ?


 Utiliser le moins de variable possible ;
 Eviter d’allonger inutilement le programme par l’utilisation d’instructions non
nécessaires ;
 Utiliser les solutions les plus simples pour l’exécuter.
TRAVAUX DIRIGES D’ALGORITHME

Exercice 0
Ecrire un programme qui échange la valeur de deux variables.
Exemple, si a = 2 et b = 5, le programme donnera a = 5 et b = 2.

Exercice 1
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et
affiche le carrée de ce nombre.

Exercice 2
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de
TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libellés
apparaissent clairement.

Exercice 3
Ecrire un algorithme qui après saisi d’un temps en seconde, converti ce temps en
heure(H), minute (mn) et seconde(s). Ex.: 4000s = 1h 06 mn 40 s

Exercice 4
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si
leur produit est négatif ou positif (on laisse de coté le cas où le produit est nul).
Attention toutefois : on ne doit pas calculer le produit des deux nombres.

Exercice 5 :
Un magasin d’impression de document facture 25fcfa les 10 premières impressions,
20fcfa les 30 suivantes, et 10fcfa au-delà .Ecrivez un algorithme qui demande à
l’utilisateur le nombre d’impression à effectuer et qui affiche la facture
correspondante.

Exercice 6
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe
de sa catégorie :
* ”Poussin” de 6 à 7 ans
*”Pupille” de 8 à 9 ans
*”Minime” de 10 à 11 ans
*”Cadet” après 12 ans

Exercice 7
Ecrire un algorithme qui permet de résoudre et afficher les résultats de l’équation du
second degré suivante : ax2+bx+c=0.

Exercice 8
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que
la réponse convienne. En cas de réponse supérieure à 20, on fera apparaitre un
message : Plus petit ! , et inversement, Plus grand ! Si le nombre est inférieur à 10.

Exercice 9
Proposer un algorithme qui permet de calculer et afficher le gain de vendeurs de
journaux qui vendent uniquement un et un seul type de journal. Les règles de gestion
sont les suivantes :
- Vendeurs de journaux journaliers : gain d’une commission de 10% par journal ;
- Vendeurs de journaux hebdomadaires : gain d’une commission de 5% par
journal ;
- Vendeurs de journaux mensuels : gain d’une commission de 20% par journal.

Exercice 10
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des
entiers jusqu’`a ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.

Exercice 11
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8

Exercice 12
Ecrire un algorithme qui effectue la multiplication de deux (2) nombres entiers positifs
saisis au clavier en utilisant uniquement l’addition. Afficher le résultat du calcul.
Exercice 13
Proposer un algorithme qui à partir d’un réel noté x et d’une valeur entière appelée n,
retourne x à la puissance n en utilisant une boucle répétitive.

Vous aimerez peut-être aussi