Vous êtes sur la page 1sur 17

Bases de la programmation et algorithmique appliquée : 3

crédits (45 heures) ; CM, TD, TP, TPE


Spécialités : GSI, GL et RES

Niveau : I

Par

Dr. BAKONGA Jean Bernard


CHAPITRE 1 : LES GENERALITES SUR LES ALGORITHMES
Compétences visées :
 Définir : algorithme, algorithmique, programme, processeur
 Citer des exemples d’algorithme dans votre environnement
 Décrire les qualités d’un bon algorithme
 Décrire les étapes de résolution d’un problème,
 Donner la structure d’un algorithme.

Introduction

Dans la vie, l’homme est soumis à des difficultés qu’il doit surmonter afin de gérer son existence.
Pour résoudre ces problèmes il a besoin des méthodes structurées et bien détaillées. En d’autre
terme, il a besoin d’algorithmes. Ainsi, s’il vous déjà arrivée : de construire une maison, de traverser
la chaussée, de préparer un plat, de mettre en marche un ordinateur, de déchiffrer un mode
d’emploi pour faire fonctionner un appareil, d’indiquer un chemin à un touriste, de faire chercher
un objet à une personne par téléphone, … Alors vous avez déjà exécuté ou faire exécuté des
algorithmes.

I. Quelques définitions

1. Un algorithme est une suite finie et ordonnée d’instruction donc l’exécution séquentielle conduit
à la résolution d’un problème.

Ou encore, un algorithme est suite d’instructions ordonnées qui décrit les différentes étapes à
suivre par un automate (ou un processeur) pour résoudre un problème donné en un temps fini.

2. Un Processeur : c’est toute entité capable de comprendre un énoncé et de réaliser le travail


correspondant (l’algorithme).

3. L’algorithmique est la science qui étudie les techniques fondamentales d’analyse et de


conception des algorithmes.

- Concevoir un algorithme de résolution d’un problème, c’est donner une méthode de résolution
dudit problème

- L’analyse de l’algorithme est l’étude mathématique des algorithmes dans le but de déterminer
leur efficacité (l’efficacité est une mesure du temps nécessaire à l’exécution de l’algorithme)

NB : C’est l’analyse qui permet de choisir entre plusieurs algorithmes celui qu’il est conseillé
d’utiliser.

4. Un programme est un algorithme traduit dans un langage de programmation.

II. Exemples d’algorithme

Exemple1 : Akono achète au petit marché fougerole 5 Kg de viande sans os à 2850 F le kg. Quelle
est la dépense totale ?
Ce problème est soumis à 04 élèves lors d’un concours.
Elève1 : il effectue l’opération : 2850 *5=14250 F
Elève2 : il effectue l’opération : 5*2850 =14250 F

© Dr. Jean Bernard BAKONGA Page 2 sur 17


Elève3 : il effectue l’opération : 2850 +2850 +2850 +2850 +2850 =14250 F
Elève4 : il effectue l’opération : (5+5+5+………….+5)*2850 fois=14250 F
Nous constatons qu’on peut résoudre ce problème de plusieurs façons et obtenir exactement le
même résultat. Chaque façon de résoudre ce problème constitue un algorithme.
Question : Comment départager les 04 candidats ?quelle est la méthode la plus efficace ?
Exemple2 : Considérons un énoncé (E) : « calcul de la somme des quatre premiers entiers naturels
non nuls». Il est demandé à deux élèves de le réaliser en utilisant une calculatrice de poche

Elève1 Elève2
1) Appuyer sur la touche marquée ¨ON¨ 1) Appuyer sur la touche marquée ¨ON¨
2) Appuyer sur la touche marquée ¨1¨ 2) Appuyer sur la touche marquée ¨4¨
3) Appuyer sur la touche marquée ¨+¨ 3) Appuyer sur la touche marquée ¨*¨
4) Appuyer sur la touche marquée ¨2¨ 4) Appuyer sur la touche marquée ¨5¨
5) Appuyer sur la touche marquée ¨+¨ 5) Appuyer sur la touche marquée ¨÷¨
6) Appuyer sur la touche marquée ¨3¨ 6) Appuyer sur la touche marquée ¨2¨
7) Appuyer sur la touche marquée ¨+¨ 7) Appuyer sur la touche marquée ¨=¨
8) Appuyer sur la touche marquée ¨4¨
9) Appuyer sur la touche marquée ¨=¨ Le résultat s’affiche à l’écran : 10
Le résultat s’affiche à l’écran : 10
Une fois de plus pour ces deux méthodes nous obtenons exactement le même résultat. Chaque
méthode ici constitue donc un algorithme. A partir de ces deux exemples nous retenons que : pour
problème donné, on peut avoir plusieurs chemins pour atteindre la solution, et chaque chemin
constitue un algorithme.

III. Les caractéristiques d‘un bon algorithme

Un algorithme doit remplir un certain nombre de critères de qualité :

- Clair (Clarté) : facile à comprendre même par un non informaticien.


- Indépendance : un algorithme doit être un indépendant vis-à-vis d’un langage de programmation
ou bien d’un système d’exploitation, doit pouvoir être traduit en n’importe quel langage de
programmation.
- Documenté : doit contenir suffisamment des commentaires précis pour faciliter sa compréhension
- Précis (Précision): Chaque élément de l'algorithme ne doit pas porter à confusion,
- Concis: un algorithme ne doit pas être long (ne doit pas dépasser une page de format A4). Si c'est
le cas, il faut décomposer le problème en plusieurs sous-problèmes ou sous-programmes.
- Structuré: Un algorithme doit être composé de différentes parties facilement identifiables
- Efficace : doit être rapide d’exécution
- Exact et résous le problème : un algorithme doit résoudre le problème pour lequel il est conçu en
fournissant le résultat correct et attendu.
- Se termine toujours (terminaison et finitude) : un algorithme doit se terminer en un temps fini et
après un nombre d’étapes fini,

IV. Les phases de production d’un algorithme

© Dr. Jean Bernard BAKONGA Page 3 sur 17


La démarche à suivre pour résoudre un algorithme de résolution d’un problème donné comporte
05 phases :

1. L’analyse

Consiste à rechercher dans l’énoncé du problème les grandeurs connues, grandeurs cherchées et les
traitements :

a) les grandeurs connues : sont les données initiales du problème

b) Opérations de traitement : Les opérations de traitement sont des actions ou des tâches à effectuer
sur les données. Les opérations de traitement sont généralement identifiées par des verbes
d‘action.

c) les grandeurs cherchées : sont les résultats obtenus à la suite de l‘exécution d‘une instruction ou
d‘une succession d‘instructions.

2. La conception d’une méthode de résolution

C’est la spécification de la méthode de résolution de chaque traitement issu de l’étape de l’analyse.


Il s’agit, généralement pour chaque traitement, d’établir une relation entre les données et les
résultats. La relation est le lien sémantique qui existe entre les grandeurs connues et les grandeurs
cherchées. Elle peut se faire par des courtes phrases en langage naturel ou à l’aide des symboles
mathématiques.

Exemple1 : lire deux nombres, calculer la somme, la moyenne et le reste de la division du premier
par le second, puis afficher le résultat.

Analyse :
- données : les 2 nombres (1er nombre : a ; 2ème nombre : b)
- résultats : la somme (Somme), la moyenne (Moyenne) et le reste (Reste)
- traitements : lire 2 nombres, calculer la somme, calculer la moyenne, calculer le reste et afficher
les résultats.
NB : avant toute lecture de variable, il faut une instruction d’affichage demandant les variables à
lire.
Conception : les liens entre les variables ici sont les quatre opérations arithmétiques (=, +, /, mod).
Nous avons donc les relations suivantes : = a + b, = (a + b)/2 et = a mod b
Exemple2 : établir un code de la route afin de résoudre le problème des embouteillages dans la
circulation

Analyse : - données (entrées) : usagers de la route (véhicules, piéton, motos, …), feux de
signalisation, routes, panneaux de signalisation.
- résultats (sorties) : nouvelle règles de circulation
- établir le code de la route
Conception : - relation entre les entrées et les sorties : le respect des nouvelles règles de circulation

3. La mise en œuvre de la méthode retenue

Elle consiste à choisir les structures de données et les structures de contrôles appropriées et à écrire
l’algorithme de résolution du problème posé. Une structure de données est un moyen permettant à

© Dr. Jean Bernard BAKONGA Page 4 sur 17


un ordinateur d’organiser et de stocker une donnée. Comme exemple nous pouvons citer : une salle
de classe, un pays, un continent, une armoire, un disque dur, une clé USB, CD-ROM, … de façon
beaucoup plus spécifique, les structures de données sont représenter dans un ordinateur par des
tableaux à une entrée, des tableaux à deux entrées, des listes, des enregistrements, des piles, files,
des arbres.

Tandisqu’une structure de contrôle est une instruction qui permet de tester si une condition est
vraie ou non.

Exemple : en considérant l’exemple 1 précédent nous pouvons produire l’étape de Mise en œuvre :

Algorithme operation
Variable a, b, somme, reste : entier ; moyenne : réel ; /*déclaration des objets en entrés et en
sorties*/
Début /*début de l’algorithme*/
Ecrire (" Entrer deux nombres SVP !") ;
Lire (a,b) ; /* lecture des deux nombres saisis au clavier*/
Somme a+b ;
Moyenne (a+b)/2 ;
Reste  a mod b ;
Ecrire (somme, moyenne, reste) ; /*affichage des résultats à l’écran*/
Fin
4. L’essai de l’algorithme

Ici il s’agit de construire un jeu d’essai permettant de tester à la main le fonctionnement de


l’algorithme pour s’assurer qu’il produit effectivement les résultats escomptés.

5. La programmation

Cette phase consiste à choix un langage de programmation et à écrire le programme.

Un langage est un ensemble de symboles et de règle. En appliquant les règles aux symboles, nous
obtenons les mots du langage facilitant la communication. Un langage de programmation est donc
simplement un langage compréhensible par un ordinateur. Exemple: Pascal, Fortran, Html,
JavaScript, PHP, Visual Basic, Java, C++, Windev, Delphi, … Dans le cadre du cours d’algorithme,
on dira que le langage de programmation sert à traduire les algorithmes afin qu’il soit exécuté par
les ordinateurs. Schématiquement on a :
Programmation (traduction,
Analyse et conception interprétation)
Problème Algorithme de Programme
résolution du PB
Langue naturelle langage algorithmique (LDA) langage de programmation
(Française, anglaise, …) (Pascal, C, C++, Java, …)

V. LES ELEMENTS D’UN ALGORITHME

L’écriture d’un algorithme se fait à l’aide d’un langage de définition d’algorithme (LDA). Il a pour
avantage d’être facilement transcrit dans un langage de programmation. Ce LDA fait appel à de
nombreuses notions telles que les mots clés, les commentaires, les séparateurs, les identificateurs :

1. Les mots clés du LDA

© Dr. Jean Bernard BAKONGA Page 5 sur 17


Ensemble de mots prédéfinis qui sont utilisées par le langage pour son fonctionnement:
-Algorithme, Début, Finalgo, Variables, Constantes,
- Réel, Caractères, Entier, Chaine, … qui sont les mots clés permettant de définir les types,
- Si, Finsi, Tantque, Fintantque, Pour, Finpour, Répéter, Jusqu’à : qui sont les mots clés permettant
de définir les structures de contrôle
- Procédure, FinProc, Fonction, FinFonc : qui sont les mots clés permettant de définir les sous
algorithmes. Et la liste est non exhaustive

2. Les identificateurs

Ce sont des noms qui désignent les éléments de l’algorithme (Constantes, Variables, Types,
Fonction, …). Un identificateur est formé d’une suite de caractères choisi parmi les lettres, les
chiffres, ou le caractère souligné (_), ne pouvant pas commencer par un chiffre, ne contenant pas
des lettres accentuées et différent des mots clés. Exemple : a, A, total, val_5, b7 sont des
identificateurs corrects ; 8z est identificateur incorrect

NB : il n’y a pas de différence entre les caractères minuscules et majuscules

3. Les séparateurs

Dans le langage naturel, les mots peuvent être séparés par un espace, un signe de ponctuation ou
une fin de ligne. Il en est de même pour le LDA. Les séparateurs sont : les opérateurs (+, -, *, /, =,,
…), les caractères de ponctuation : ( ) , ; . : [ ] { } etc

NB : le point-virgule (;) marque la fin d’une instruction

4. Les commentaires

Un commentaire est un élément de l’algorithme ayant pour objectif d’éclaircir les éventuelles zones
d’ombre dans un code, il facilite le travail en équipe ainsi que la maintenance. Les commentaires
seront encadrés des symboles /* et */. Exemple : /* ceci est un commentaire*/

5. Structure générale d’un algorithme

Un algorithme décrit une méthode pour la résolution d’un problème cette description est
généralement structurée suivant un squelette qui contient trois (03) parties :

- L’entête : comprenant le nom de l’algorithme qui permet d’identifier l’algorithme,

- La zone de déclarations : comprenant une liste exhaustive des objets qui seront manipulés dans le
corps de l’algorithme. elle est structurée de la manière suivante :
La déclaration des types utilisateurs, elle se fait par l’usage du mot clé Type.
La déclaration des constantes, elle se fait en utilisant le mot clé Constante
La déclaration des variables : elle se fait par l’usage du mot clé Variable.
La déclaration des fonctions : elle se fait par l’usage du mot clé Fonction
La déclaration des procédures : elle se fait par l’usage du mot clés Procédure

- Le corps : contient les tâches (instructions, opérations) à exécuter. Les instructions comprises entre
les mots clés début et fin sont les seules qui seront exécutées par le processeur, d’où leur nom
d’instructions exécutables.

© Dr. Jean Bernard BAKONGA Page 6 sur 17


Ainsi la syntaxe d’écriture d’un algorithme sera la suivante :

Algorithme nom_algorithme } entête


Déclaration des Types ;
Déclaration des Constantes ; Zone de déclaration
Déclaration des Variables ;
Déclaration des Fonctions et Procédures ;
Début
Instruction 1 ;
Instruction 2 ; Section des instructions exécutable
. ; {Corps de l’algorithme}
. ;
. ;
Instruction n ;
Fin
Remarque : - le chois d’un nom relève du libre arbitre du concepteur, mais le nom doit refléter le
traitement qu’est censé effectué notre algorithme, - le nom de l’algorithme doit respecter les
règles de nommage des identificateurs.

Exercice d’application : soit un algorithme qui permet d’afficher "bonjour" à l’écran

a) Donner un nom à l’algorithme qui permettra de résoudre le problème

b) Il y’a-t-il une (ou des) donnée(s), si oui les quelles ou laquelle?

c) Il y’a-t-il un (ou des) résultat(s), si oui les quelles ou lequel?

d) Il y’a-t-il une (ou des) opération(s) de traitement, si oui les quelles ou laquelle?

e) Déduire la rédaction de l’entête et la partie déclarative de l’algorithme.

© Dr. Jean Bernard BAKONGA Page 7 sur 17


CHAPITRE 2 : LES OBJETS DANS UN ALGORITHME
Compétences visées:
 Décrire les caractéristiques d’un objet (variable ou constante) : nom, nature, types, sens, rôle.
 Déclarer des objets (variables et constantes)

INTRODUCTION
Un algorithme opère sur des données d’entrée appelées objets. Un objet est un récipient utilisé par
le processeur pour garder (stocker) les informations nécessaires à la résolution d’un problème. Il est
caractérisé par son nom, son type, sa nature, son utilisation, sa valeur initiale et sa valeur finale.
Pour être utilisé dans la résolution du problème, Il doit être déclaré.
I. Les caractéristiques d’un objet
Elles permettent de comprendre sans ambigüité le rôle que cet objet joue dans l’algorithme.
I.1. Le nom d’un objet
Il permet d’identifier un objet dans l’algorithme. On l’appelle aussi identificateur. Il est composé
d’une suite finit de caractères alphanumériques commençant forcément par un caractère
alphabétique.
Remarque : - un identificateur peu avoir la barre de soulignement (Under score).
- Un identificateur ne doit jamais contenir de caractère accentué (^^^¨). Il est judicieux de choisir des
identificateurs significatifs.
I.2. Le type d’un objet
Il indique l’ensemble dans lequel l’objet prend ses valeurs (ensemble de définition), il indique aussi
implicitement les opérations qui pourraient être réalisés avec ce type d’objet. En algorithmique on
distingue les objets de type simple et de type composés.
Un objet de type simple est encore appelé objet de type prédéfinis. Parmi les types simples on
distingue :
-Le type entier : il est identifié par le mot clé entier. Un objet de ce type prend ses valeurs dans un
sous-ensemble des entiers relatifs (IZ). Les opérations possibles sur les entiers sont : +,-,*, div, mod
-Le type réel : un objet de ce type prend ses valeurs dans l’ensemble IR, la déclaration d’un réel se
fait en utilisant le mot clé réel. Les opérations possibles sur les réels sont :+,-,*, /
-Le type caractère : un caractère prend ses valeurs dans les ensembles suivants :
 Les symboles de l’alphabet (“a"-“z" ; “A"-“Z")
 Les chiffres de la numérotation décimale (“0"-“9")
 Les caractères spéciaux (“$" ; “#" ;“@"…)
Remarque : le caractère ne peut prendre qu’un seul symbole comme valeur à un moment donné. La
déclaration d’un caractère se fait en utilisant le mot clé caractère
-Le type chaine de caractères : une chaine de caractères est une suite finie de caractères. Le mot clé
permettant de déclarer une chaine est string. Exemple : “123", “toto", “Paul", “bonjour"
Remarque : les caractères et chaine doivent toujours se placer entre apostrophes ou doubles
apostrophes.
-Les booléens. Un objet de type booléen ne peut prendre que deux valeurs : vrai ou faux. Un booléen
est déclaré dans un algorithme en utilisant le mot clé Booléen.

© Dr. Jean Bernard BAKONGA Page 8 sur 17


I.3. La nature d’un objet
Un objet peut être une constante ou une variable.
 Une constante Une constante est un objet ayant un contenu fixe durant toute l’exécution
d’un algorithme. Toute tentative de modification de cette valeur provoque une erreur.
 Une variable Une variable est un objet dont le contenu peut être modifié au cours de
l’exécution d’un programme ou d’un algorithme.
I.4. Le sens d’un objet
Qui précise le rôle de cet objet dans l’algorithme. Il permet de répondre à la question « est-ce que
l’objet joue un rôle d’entrée ou de sortit ou un interne ?
 Un objet d’entrée contient une valeur qui est une donnée du problème à résoudre. Sa valeur
finale n’a aucune importance.
 Un objet de sortie contient à la fin du déroulement de l’algorithme une valeur qui est un
résultat du problème à résoudre. La valeur initiale d’un tel objet n’a pas d’importance
 Un objet d’entrée/sortie : contient au début de l’algorithme une donnée du problème et à la
fin il contient un résultat du problème à résoudre.
 Un objet interne ou intermédiaire : contient une valeur qui n’est ni une donnée du problème
ni un résultat. Il est utilisé pour rendre plus facile la résolution d’un problème.
I.5. L’utilisation
Qui permet de savoir à quoi servira l’objet dans l’algorithme. Exemple : a + b = s
a sert à garder le premier nombre de l’addition
b sert à garder le deuxième nombre de l’addition
s sert à garder le résultat qui est la somme des deux nombres
II. La Déclaration des objets
Un objet doit toujours être déclaré avant son utilisation dans un algorithme. La déclaration se fait
suivant sa nature : variable ou constante.
I.1. La déclaration des variables
On déclare une variable dans un algorithme comme suit :
Var NomVariable : Type ; ou Variable NomVariable : Type ;
Exemples : Var x ,y,z : Réel
variable Compteur : Entier
Var Lettre : Caractère
I.2. La déclaration des variables
Une constante est déclarée dans un algorithme comme suit :
Const NomConstante = Valeur ;
Exemples : Const Pi = 3.141559 ;
Const lettre = ‘A’ ;

© Dr. Jean Bernard BAKONGA Page 9 sur 17


CHAPITRE 3 : LES INSTRUCTIONS DE BASE ET LES OPERATEURS

Compétences visées:

 utiliser les opérations : arithmétiques, logiques, relationnelles ou comparaisons, l’Affectation, l’incrémentation.


 Utiliser les primitives : la lecture et l’écriture à l’écran

INTRODUCTION

Une instruction de base ou élémentaire est un ordre contenu dans le corps de l’algorithme que
l’ordinateur doit interpréter et exécuter afin de résoudre un problème encore appelée opération ou
primitive. Ainsi, pour résoudre un problème à l’aide d’un ordinateur, il faut connaitre la liste des
primitives ou instruction élémentaires de cet ordinateur. Dans la plupart des cas l’ordinateur sais :
 Attribuer une valeur à un objet
 Additionner, multiplier soustraire ou diviser les valeurs de deux objets
 Obtenir la valeur d’un objet à partir de l’extérieur
 Communiquer la valeur d’un objet à l’extérieur
 Comparer la valeur de deux objets.

I. les instructions de base

Il s’agit de l’affectation, la lecture et l’écriture :


1) Instructions d’affectation
C’est le fait d’attribuer une valeur à une variable. Cette instruction se note avec le symbole “",
qui confère une valeur à une variable.
Syntaxe : Variable  expression ou valeur
Exemple si nous voulons attribuer la valeur 5 à la variable a nous écrirons a  5 ;
Remarque : l’instruction d’affectation a pour conséquence d’effacer l’ancien contenu de la variable.
2) Instructions de lecture et écriture
Elles permettent la communication entre l’ordinateur (mémoire centrale) et le monde extérieur
(l’homme, un autre ordinateur). On distingue :
2.1. La lecture ou l’entrée
C’est l’opération qui permet d’attribuer à l’ordinateur une valeur venant de l’extérieur pour qu’elles
soient utilisées par le programme. Elle se fait à partir des unités d’entrée (généralement le clavier).
Sa syntaxe est : Lire (liste des variables séparée par des virgules). Exemple : Lire (a, b) ou lire (a) ; lire (b)
Remarque : - on ne lit pas une valeur. Exemple lire (4) est interdit ; - on ne lit pas une opération.
Exemple : lire (a+b) est interdit
2.2. L’écriture ou la sortie
C’est l’opération qui permet de renvoyer à l’extérieur les valeurs des objets contenue dans la
mémoire centrale. Elle se fait généralement par l’écran. Sa syntaxe est : Ecrire (liste des variables séparée
par des virgules). Exemple : Ecrire (a, b) ; Ecrire(x)
La sortie peut aussi servir à afficher un message selon la syntaxe suivante Ecrire (‘’message’’).
Exemple : Ecrire (“4"), Ecrire (“bonjour M/Mme")

© Dr. Jean Bernard BAKONGA Page 10 sur 17


II. Les opérateurs

Un opérateur est un symbole permettant d’agir sur un objet ou d’effectuer des calculs. Or un
Opérande est une donnée utilisée par un opérateur. On distingue plusieurs types d’opérateurs :
1) les opérateurs arithmétiques :
Qui permettent d’effectuer des opérations arithmétiques entre opérandes numériques :
Addition (+), soustraction (-), multiplication (*), division (/), division entière (div), reste de la
division entière (mod). Exemple : 10/4 = 2.5, 10 div 4 = 2 et 10 mod 4= 2. ; La puissance ou exposant
(^ ou **) exemple : 3^2=3*3=9 ou 3**2=3*3=9
2) les opérateurs logiques :
Ce sont des opérations qui s’appliquent sur des objets de type booléen, ayant également un résultat
de type booléen. On distingue :
- L’opérateur unaire : “non" (négation)
- Les Opérateurs binaires : «ET» (conjonction), «OU» (disjonction)
Les opérateurs logiques peuvent être représentés dans la table suivante :
a b a ET b a OU b a OU b (exclusif) NON a
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 0 1
3) les opérateurs de comparaison :
Ils permettent de comparer deux opérandes et produisent une valeur booléenne. Ils peuvent être
appliqués sur tous les types simples :
Opérateur Description
= L’égalité
<> L’inégalité
> La supériorité stricte
>= La supériorité large
< L’infériorité stricte
<= L’infériorité large

4) L’opérateur de concaténation
Il permet de créer une chaîne de caractères à partir de deux chaînes de caractère en les mettant bout
à bout. Il noté «+». Exemple "b" + "a" = "ba" ; "Lycée Général" + "Leclerc" ="Lycée Général Leclerc".
5) Les opérateurs d’incrémentation et de décrémentation
- L’incrémentation est l'opération qui consiste à augmenter d’une unité le contenu d’une variable.
Elle se fait de manière suivante. Soit x la variable incrémentée. xx+1. Exemple si x = 10 alors
xx+1 = 11
- La décrémentation, est l'opération qui consiste à augmenter d’une unité le contenu d’une variable.
Elle se fait de manière suivante. Soit x la variable incrémentée. xx+1. Exemple si x = 10 alors xx-
1=9

© Dr. Jean Bernard BAKONGA Page 11 sur 17


III. La priorité des opérateurs arithmétiques

Pour évaluer une expression on part de la gauche vers la droite en tenant compte de l’ordre de
priorité des opérateurs qui est (du plus prioritaire au moins prioritaire) : les parenthèses () ; la
puissance ^ ; la multiplication * et la division / ; le modulo % (qui retourne le reste de la division
entière entre deux entiers) ; l’addition + et la soustraction -. Exemple1 : 9+3*4 vaut 21. Exemple2 :
(9+3)*4 vaut 48

IV. EXERCICES D’APPLICATION

Ecrire un algorithme qui permet d’échanger les valeurs de deux variables entières (A et B) :
- En utilisant une variable intermédiaire
- Sans utilisant une variable intermédiaire

© Dr. Jean Bernard BAKONGA Page 12 sur 17


CHAPITRE 4 : LES STRUCTURES DE CONTROLE
Objectifs spécifiques:
 Utiliser les structures séquentielles
 Utiliser les structures alternatives
 Utiliser les structures de choix multiple
 Utiliser structures itératives ou les boucles

INTRODUCTION
Les opérations élémentaires relatives à la résolution d‘un problème, peuvent en fonction de leur
enchainement, être organisées suivant une famille de structures algorithmiques fondamentales
nommées structures de contrôle. Une structure de contrôle est une instruction qui permet de tester
si une condition est vraie ou non. On distingue : les structures séquentielles ; les structures
alternatives ; Les structures de choix ; et les structures itératives ou répétitives.
1/. Les structures séquentielles ou linéaires
Ici, les instructions sont écrites les unes après les autres et sont à exécuter successivement dans
l‘ordre leur apparition. Il n’y a aucune condition, ni répétition.
Syntaxe : se présente comme suit : Début
action1 ;
action2 ;
....
action n ;
Fin
Exemple : Début
x3;
y  x+2 ;
z  x+y ;
ecrire (x,y,z)
Fin
2/. Les structures alternatives
Elles permettent d’exécuter un bloc d’instructions en fonction de la réalisation d’une condition. On
en distingue deux : l’alternative réduite ou simple ; l’alternative complète.
2.1) L’alternative réduite ou simple (SI…)
Elle permet d'exécuter un bloc d'instructions si jamais une condition est réalisée.
Syntaxe : Si condition alors
action(s) ;
FinSi
Sémantique :
- les mots clés : Si, alors, Finsi sont reconnus par l’ordinateur ;
- le terme « condition » est un booléen c-a-d qu’il vaut soit vrai soit faux ;
- action(s) désigne une instruction ou une liste ordonnée d’instructions, ou une structure de
contrôleà exécuter.
Fonctionnement :

© Dr. Jean Bernard BAKONGA Page 13 sur 17


On exécute action(s) uniquement lorsque la condition est vraie.
Exemple : écrire un algorithme qui lit un nombre entier et affiche un message permettant de savoir
si le nbre lu est pair.
Algorithme nbre_pair ;
Variable x :Entier
Début
Lire (x) ;
Si (xmod2=0) alors
ecrire (x) ;
Finsi
Fin
2.2) L’alternative complète (Si…Sinon…)
Elle permet d'exécuter un autre bloc d’instructions en cas de non-réalisation de la condition.
Syntaxe : Si condition alors
action1 ;
Sinon
action2
FinSi
Sémantique :
- les mots clés : Si, alors, Sinon, Finsi sont reconnus par l’ordinateur ;
- le terme « condition » est un booléen c-a-d qu’il vaut soit vrai soit faux ;
- action1 et action2 désignent soient une instruction, soient une liste ordonnée d’instructions, soit
une structure de contrôle à exécuter.
Fonctionnement :
- On exécute action1 uniquement lorsque la condition est vraie ;
- On exécute action2 uniquement lorsque la condition est fausse ;
Exemple : écrire un algorithme qui lit deux nombres, calcule et affiche le quotient de la division du
premier par le second.
3/. Les structures de choix
La structure de choix permet, en fonction de plusieurs conditions de type booléen, d‘effectuer des
actions différentes. En fait, avec l’alternance simple ou complexe on se retrouve généralement avec
beaucoup d’imbrications. Or avec la structure de choix nous pouvons réduire ces imbrications et
rendre l’algorithme plus lisible.
Syntaxe :
Cas où :
condition1 : action1 ;
condition2 : action2 ;
………………………………….
………………………………..
condition n : action n ;
[Sinon action n+1 ;]

© Dr. Jean Bernard BAKONGA Page 14 sur 17


FinCas
Sémantique :
- les mots clés : Cas où, Sinon, FinCas sont reconnus par l’ordinateur ;
- « condition1, condition2 … condition n » sont des booléen c-a-d qu’ils valent soit vrai soit faux ;
- action1, action2, …, action n peuvent être des séquences d‘instructions contenant à leurs tours
d‘autres structures de choix.
- le mot Sinon est optionnel et est utilisé lorsque nous avons une suite d’actions qui doivent être
exécutées si la condition n’est pas prise en compte.
Exemple : écrire un algorithme qui lit deux entiers, résout et affiche les solutions de l’équation de la
forme ax+b=0. Utiliser les structures Si et Cas où.
4/. Les structures itératives ou répétitives.
La structure itérative ou boucle répète l‘exécution d‘une instruction ou d‘un ensemble
d‘instructions. Sa forme dépend de la connaissance qu‘on a du nombre de répétition de l‘action. On
distingue deux cas : Le nombre de répétitions est inconnu ou variable et Le nombre de répétition
est connu.
4.1) Le nombre de répétitions est inconnu ou variable
Ici il existe deux structures de base : La structure RÉPÉTER et La structure TANT QUE
a) La structure TANT QUE … FAIRE
Elle permet d’exécuter une action ou une suite d’action tant que la condition est vérifiée.
Syntaxe : Initialiser la condition ;
Tant que (condition) Faire
action(s) ;
Faire évoluer la condition ;
FinTantque
Sémantique
- les mots clés : Tant que, Faire et FinTantque sont reconnus par l’ordinateur ;
- « action(s) » est soit une instruction, soit un ensemble d’instructions, soit une structure de
contrôle à exécuter.
- « Initialiser la condition » permet de tester la condition au moins une fois ;
- « Faire évoluer la condition » permet d’atteindre la condition d’arrêt afin de ne pas boucler.
Fonctionnement :
- L’exécution de cette boucle commence par l’évaluation de la condition.
- Si la condition est évaluée à vrai, alors, on exécute action et cette exécution est répétée autant de
fois que la condition sera vraie.
- Si la condition est évalué à faux, action n’est pas exécuté et l’algorithme se poursuit
séquentiellement à partir de l’instruction suivant le fin tant que.
Remarque
- Dans un schéma ‘tant que’,on doit toujours retrouver une instruction qui modifie la valeur de la
variable de control.et généralement, cette instruction est la dernière de la boucle tant que.
- Dans ce schéma itératif, l’évaluation de la condition se fait toujours en entrée de la boucle

© Dr. Jean Bernard BAKONGA Page 15 sur 17


Exemple : Ecrire un algorithme qui lit un entier puis l’affiche ; le fait jusqu’à ce que l’entier lu soit
négatif.
b) La structure RÉPÉTER … JUSQU’A
Elle permet d’exécuter au moins une fois l’action quel que soit la valeur initiale de la condition.
Syntaxe : Initialiser la condition ;
Répéter
action(s);
Faire évoluer la condition ;
Jusqu'à (condition) ;
Sémantique
- les mots clés : Répéter, Jusqu’a sont reconnus par l’ordinateur ;
- « action(s) est soit une instruction, soit un ensemble d’instructions, soit une structure de contrôle
à exécuter.
Fonctionnement :
On exécute action jusqu'à ce que la condition devienne vraie. Autrement dit on exécute action tant
que la condition est fausse.
Remarque
L’évaluation de la condition dans une boucle ‘tant que’ se fait en entrée alors que dans une boucle
‘répéter’, elle s’évalue en sortis.
Exemple : Refaire l’exemple précédent en utilisant la structure Répéter
Devoir :
4.2) Le nombre de répétition de l‘action est connu
Ici, on fait usage de la structure Pour.
c) La structure Pour … Faire
Elle est utilisée uniquement quand on connaît d’avance le nombre de répétitions ou itérations à
effectuer, c-a-d lors qu’on connaît exactement le nombre de fois qu’on doit effectuer un traitement.
Syntaxe : Pour compteur=M à N, [pas=p] Faire
action(s) ;
FinPour
Sémantique
- les mots clés : Pour, FinPour sont reconnus par l’ordinateur ;
- « compteur » est un entier sa valeur initiale est M et sa valeur finale est N ;
- le « pas » est optionnel (il vaut 1 par défaut et dans ce cas on ne le précise plus) ;
- « action(s) » est soit une instruction, soit un ensemble d’instructions, soit une structure de contrôle
à exécuter ;
- le nombre d’itérations ou de répétitions est égal à |N-M+1|
Remarque :
Si M<N, on parle de « Pour croissant » ;
Si M>N, on parle de « Pour décroissant »
Exemple : Ecrire un algorithme qui affiche "Bonjour" à l’écran ; et le répète 50 fois.

© Dr. Jean Bernard BAKONGA Page 16 sur 17


5/. Activités de consolidation (devoir)
1. Ecrire un algorithme qui lit une valeur, calcule et affiche sa valeur absolue. On rappelle :
|x|= x si x>0 ;
|x|= -x si x<0 ;
2. Ecrire un algorithme qui lit une note, affiche « ajournée » si la note est inférieure à 8, « oral » entre
8 et 10, « admis » au-dessus de 10. En utilisant : -l’alternance complète ; -la structure de choix ;
3. Ecrire un algorithme qui lit trois entiers a, b et c ; calcule et affiche les solutions de l’équation
ax2+bx+c=0.En utilisant :
- l’alternance complète ; - la structure de choix ;
4. Écrire un algorithme qui lit deux entiers, calcule et affiche la multiplication de ces deux entiers
en utilisant uniquement l’addition. En utilisant les boucles Pour, Répéter et Tant que.
5. Soit à écrire un algorithme qui lit une suite de valeurs réelles, calcule et affiche la moyenne des
valeurs positives parmi les valeurs ainsi lus.la suite s’achève par la lecture de la valeur « -1 ».
- Connaît-on d’avance le nombre d’itérations ? Justifier,
- Quelle(s) structure(s) de contrôle doit-on utiliser ?
- Ecrire l’algorithme à l’aide des structures "TANT QUE" et "REPETER"
6. Ecrire un algorithme qui lit un entier positif n non nul, calcule et fournit en sortie la somme des
n premier entiers.

© Dr. Jean Bernard BAKONGA Page 17 sur 17

Vous aimerez peut-être aussi