CHAPITRE I : NOTION D’ALGORITHME
I – Qu’est ce qu’un Algorithme ?
Un algorithme est une suite finie et non-ambiguë d’instructions qui
prend en entrée un ensemble de valeurs et qui délivre en sortie un ensemble
de valeurs, afin d’apporter une réponse à un problème donnée. Il tire son
origine du nom du mathématicien Arabe, Muhammad ibn Mūsā al-
Khuwārizmī qui au IXè siècle, écrivit le premier ouvrage systématique sur la
solution des équations linéaires.
Si les instructions d'un algorithme s’exécutent les unes après les autres,
l'algorithme est dit séquentiel, si elles s’exécutent en même temps, il est
parallèle. Si l'algorithme exploite des tâches s’exécutant sur un réseau de
processeurs on parle d’algorithme réparti, ou distribué.
II – Pourquoi Apprendre l’Algorithme ?
L’algorithme nous permet d’informatiser une application (facturation de
la consommation d'eau, par exemple), c'est-à-dire faire réaliser par
ordinateur, une tâche qui était réalisée par l'Homme. Pour faire exécuter une
tâche par ordinateur, il faut tout d'abord, détailler suffisamment les étapes de
résolution du problème, pour qu'elle soit exécutable par l'homme. Ensuite,
transférer la résolution en une suite d'étapes si élémentaire et simple à
exécuter, pouvant être codée en un programme dans un langage
compréhensible par ordinateur.
1
III – Les étapes de résolution d’un Algorithme
Les étapes de résolution d’un problème d’algorithme peuvent être
énumérées comme suit :
1 – Comprendre l’énoncé du Problème
Quel est l’objectif recherché par le problème ?
2 – Décomposer le problème en sous-problèmes plus simple à
résoudre
Quelles sont les différentes étapes nécessaires pour atteindre notre
objectif ?
3 – Associer à chaque sous problème, une spécification
De quoi avons-nous besoins ?
Nous avons généralement besoins de deux types de données :
3.1 – Données nécessaires
Les données nécessaires sont des données en entrées, c'est-àdire les
informations saisies au clavier.
3.2 – Données résultantes
Les données résultantes sont des données en sorties, c'est-à-dire les
informations affichées sur l’écran de l’ordinateur ou non saisies au clavier.
Ainsi pour répondre efficacement à la question n°3 nous allons adopter le
tableau ci-dessous.
2
Données
Variables Descriptions Types
4 – Ecriture de l’Algorithme
Il s’agit ici de retracer les différentes parties de la résolution du
problème en respectant la syntaxe de l’algorithme.
5 – Faire la trace
Il s’agit de faire une simulation et de prévoir à la main le comportement
de l’ordinateur.
IV – Structure d’un Algorithme
Algo nom_de_lalgorithme
Var
Nom_variable Type
Debut
Instruction(s)
3
Fin
Nb : Algo et Var sont les abréviations respectives d’algorithme et de variable.
1- Qu’est ce qu’un type abstrait ?
Un type abstrait est un triplet composé de :
- D’un nom,
- D’un ensemble de valeurs,
- D’un ensemble d’opérations définies sur ces valeurs.
1.1- Le type Booléen
Une variable de type booléen prend comme valeur VRAI ou FAUX.
Les opérations usuelles sont ET, OU et NON qui sont données dans
les tables qui suivent :
OU FAUX VRAI ET FAUX VRAI
FAUX FAUX VRAI FAUX FAUX FAUX
VRAI VRAI VRAI VRAI FAUX VRAI
NON
FAUX VRAI
VRAI FAUX
4
1.2- Le type Entier
Une variable de type entier peut prendre comme valeur
l’ensemble des nombres entiers signés. Les opérations associées
sont les opérations usuelles +,-,*,/.
Exemple : 10 ; 0 ; 100 ; 1 etc …
1.3- Le type Réel
Une variable de type réel peut prendre comme valeur l’ensemble
des nombres réels. Les opérations associées sont les opérations
usuelles +,-,*, /.
Exemple : 10,05 ; 0 ; 100 ; 2 … etc.
Le type Caractère
Une variable de type caractère peut prendre comme valeur
l’ensemble des caractères imprimables. On notera les valeurs entre
griffe (" ") ou double côtes.
Exemple : "Beugre Christian"; "0"; "Libreville"; "1" etc …
Attention, les valeurs :
"1" qui est un caractère, 1 qui est un entier et 1 qui est un entier ; sont
différentes et ne seront pas codées de la même manière dans la mémoire de
la machine.
2- Qu’est ce qu’une variable ?
Une variable est un triplet composé de :
5
- D’un type (déjà définie),
- D’un nom (à priori toute chaîne alphanumérique), -
D’une valeur.
Elle est donc un espace mémoire pouvant recevoir une et une seule
valeur à un moment donné.
NB : le nom d’une variable ne doit pas comporter d’espaces ni d’accents et ne
doit pas commencer par un chiffre ou un caractère spécial.
Exemple : nometud Nom de la variable
Valeur de la Valérie variable
Caractère
3- Qu’est ce qu’une expression ?
Une expression est constituée à l’aide de variables déjà déclarées, de
valeurs, de parenthèse et d’opérateurs du (des) type(s) des variables
concernées.
4- Qu’est ce que l’affectation ?
L’affectation est l’instruction qui permet de stocker une valeur dans une
variable.
Exemple : nometud "Valérie"
Affectation Expression
5- Entrées et Sorties
6
Entrées
Les entrées représentent l’ensemble des instructions qui
permettent de stocker une valeur dans une variable à partir
du clavier. En Algorithme, il en existe deux : LIRE et
SAISIR.
Exemple : SAISIR (nometud) OU LIRE (nometud)
Sorties
Les sorties représentent l’ensemble des instructions qui
permettent d’afficher le contenu d’une variable ou afficher une
information sur l’écran de l’ordinateur. En Algorithme, il en
existe deux : ECRIRE et AFFICHER.
Exemple : AFFICHER (nometud) OU ECRIRE (nometud),
AFFICHER ("Valérie") OU LIRE ("Valérie").
NB : nous utiliserons pour la suite du cours, les instructions AFFICHER et
SAISIR.
6- Les opérateurs arithmétiques, logiques et de comparaisons
Les opérateurs arithmétiques
Addition +
-
Soustraction
Multiplication *
Division /
Reste de la division entière Mod (exemple : 7 Mod 2 = 1)
Division entière Div (exemple : 7 Div 2 = 3)
7
Les opérateurs logiques et de comparaisons
égale =
Supérieur >
Inférieur <
Différent <>
Supérieur ou égale >=
Inférieur ou égale <=
et ET
ou OU
8
CHAPITRE II : STRUCTURES DE BASE
Les actions d’un algorithme s’articulent a l’aide des structures de base
qui sont :
• La structure séquentielle (ensemble d’opérations à la
suite les unes des autres) :c’est ce que nous avons vu
jusqu’à présent ;
• La structure conditionnelle (ensemble d’opérations
soumises à une condition) ;
• La structure répétitive (ensemble d’opérations répétées
un nombre fini de fois).
I – Les structures conditionnelles
1- La structure alternative
La structure alternative permet à un algorithme de poser une ou
plusieurs conditions avant d’effectuer une ou plusieurs actions.
1.1- La forme simple
SI (Condition est Vrai) Alors
Instruction(s)
FSI
9
1.2- La forme complexe
Elle est utilisée lorsqu’on a exactement deux (02) alternatives
complémentaires.
SI (Condition est Vrai) Alors Instruction
(s)
SINON
Instruction(s)
FSI
1.3- La forme imbriquée
Elle est utilisée lorsqu’on a plus de deux (02) alternatives.
SI (Condition 1 est Vrai) Alors
SI (Condition 2 est Vrai)
Alors Instruction(s)
SINON
Instruction(s)
FSI SINON
SI (Condition 3 est Vrai) Alors
Instruction(s)
SINON
Instruction(s)
FSI FSI
10
2- La structure de choix
Lorsque le nombre de choix alternatifs est plus grand que 3 et que
la condition porte sur des nombres entiers ou des caractères, les
structures alternatives peuvent être avantageusement remplacées par la
structure de choix.
Syntaxe
SELON (choix) FAIRE
Cas choix 1 : Instruction(s)
Cas choix 2 : Instruction(s)
Cas choix 3 : Instruction(s)
………………………
………………………
Cas choix n : Instruction(s)
AUTREMENT
Instruction(s)
FSELON
11
II – Les structures répétitives
Un programme a presque toujours pour rôle de répéter la même
action un certain nombre de fois. Pour ce faire on utilise les structures
répétitives, ou structures itératives ou encore boucles.
1- La boucle TANTQUE …….. FAIRE
Condition Conditions d’exécution des itérations
d’entrée
TANT QUE (Condition est vraie) FAIRE
Instruction 1
Instruction 2
Instruction 3
………………….
Instruction n condition de sortie
FINTQE
Remarque
• La boucle TANTQUE ne s’exécute pas lorsque la condition
d’entrée ne satisfait pas les conditions d’itérations ;
• En l’absence de conditions de sortie, la boucle TANTQUE devient
une boucle infinie ;
• La boucle TANTQUE peut ne jamais s’exécuter.
12
2- La boucle REPETER ……… JUSQUA
Condition d’entrée
REPETER
Instruction 1
Instruction 2
………………….
Instruction n Condition de sortie
JUSQUA (Condition soit fausse)
Conditions d’exécution des itérations
Remarque
La boucle REPETER s’exécute au moins une fois.
NB : les boucles TANTQUE et REPETER sont utilisées lorsqu’on ne
connait pas le nombre d’itération à effectuer.
3- La boucle POUR ……… FAIRE
POUR cp vd A vf PAS DE k FAIRE (k ε Z)
Instruction(s)
FPOUR
Remarque
Cp : représente le compteur ; Vd : représente la valeur de début ;
Vf : représente la valeur de fin ; vp : représente la valeur du pas ;
13