SlideShare une entreprise Scribd logo
Nous formons les experts de demain
ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE
Reproduction interdite
Nous formons les experts de demain
ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE
EDO123 - ALGORITHMES & STRUCTURES DE DONNEES
Licence professionnelle informatique
1ère année - Tronc commun
Nous formons les experts de demain
ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE
Reproduction interdite
Nous formons les experts de demain
ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE
Présentation DE L’ENSEIGNANT
M. Olyvier NZIGHOU
Master 2 Gestion de Projets Informatiques de l’Université de
Strasbourg.
Enseignant vacataire à l’IST, EPL, IAI, SUP’MANAGEMENT,
ESIITECH
Tél. : 066049840 / 077684285
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Objectifs du cours
3
 Apprendre les concepts de base de l'algorithmique et de
la programmation impérative.
 Être capable de mettre en œuvre ces concepts pour
analyser des problèmes simples et écrire les algorithmes
correspondants.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Evaluation
4
 Contrôles (40%)
inclus
 Devoirs
 Interrogations
 Examen final (60%)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Enseignement
5
 Cours
Magistral
 TD
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
COMPETENCES À ACQUERIR
6
 Savoir transcrire un problème en
algorithmes
 Savoir manipuler des structures de données
 Etc.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Contenu du cours
7
Chapitre 1 : Introduction à l’informatique
Chapitre 2 : Introduction aux algorithmes
Chapitre 3 : Les instructions simples
Chapitre 4 : Les instructions conditionnelles
Chapitre 5 : Les instructions itératives
Chapitre 6 : Les instructions de branchement
Chapitre 7 : Les tableaux
Chapitre 8 : Les chaînes de caractères
Chapitre 9 : Les structures ou enregistrements
Chapitre 10 : Les procédures et les fonctions
Chapitre 11: Les pointeurs
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
8
CHAPITRE I Introduction A
L’INFORMATIQUE
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QUE L’INFORMATIQUE
9
 L'informatique est un domaine d'activité scientifique, technique,
et industriel concernant le traitement automatique de
l'information numérique par l'exécution de programmes
informatiques par des machines appelées ordinateurs.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QUE L’INFORMATIQUE
10
 Les champs d'application de l’informatique peuvent être
séparés en deux branches :
 Théorique : concerne la définition de concepts et
modèles (informatique mathématique) ;
 Pratique : s'intéresse aux techniques concrètes de mise
en œuvre.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QUE L’INFORMATIQUE
11
 En Informatique, il y’a deux axes d’études :
1. Le hardware : Matériels (concrets)
2. Le software : Logiciels (abstrait)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QUE L’INFORMATIQUE
12
 INFORMATIQUE : INFORMA = INFORMATION
TIQUE = AUTOMATIQUE
 L'informatique est la science qui permet de traiter
automatiquement et rationnellement les informations à
l'aide d’une machine électronique (par exemple, un
ordinateur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QUE L’INFORMATIQUE
13
 Un ordinateur est un appareil électronique qui traite les
informations dans une unité centrale selon un programme
enregistré en mémoire centrale.
 L’Informatique est la Science du traitement automatique et
rationnel de l'information, considérée comme le support
des connaissances et des communications.
 L’ensemble des applications de cette science, mettent en
œuvre des matériels (ordinateurs) et des logiciels
(programmes).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
14
 Pratiquement dans tous les domaines qu’on peut
imaginer :
 Bureautique : traitement de texte, tableur, ...
 Sciences : prévisions, météo, simulation ...
 Contrôle : Commande de voiture, Piloter des
avions, les machines, les robots, …
 Médecine : imagerie médicale, opérations guidées
par ordinateur...
 Communication : Internet, Téléphonie, ...
 …
QU’EST-CE QUE L’INFORMATIQUE
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QUE L’INFORMATION
15
 L’information est l’élément de connaissance susceptible d'être
codé pour être conservé et traité.
 Codage de l’information :
1. L’ordinateur travaille avec des informations codées en bits.
2. Le bit correspond à un état 0 ou 1.
3. L’association de 8 bits, permet de coder 256 informations
(caractères).
Par exemple :
 01000001  Codification de la lettre A
 01000011  Codification de la lettre C
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CEQUE L’INFORMATION
16
 Unité de capacité:
a) 8 bits  1 octet
b) 1024 octets  1 Ko (Kilo octets)
c) 1024 Ko  1 Mo (Méga octets)
d) 1024 Mo  1 Go (Giga octets)
e) 1024 Go  1 To (Téra octets)
f) 1024 To  1 Po (Péta octets)
g) 1024 Po  1 Eo (Exa octets)
h) 1024 Eo  1 Zo (Zettaoctets)
i) 1024 Zo  1 Yo (Yottaoctets).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QUE SIGNIFIE LE « TERME » TRAITEMENT
17
 Un traitement est l'ensemble de toutes les opérations que
l'on peut effectuer sur les informations (saisie,
modification, mémorisation, transmission…) afin de les rendre
manipulables et utilisables.
 En général, un traitement peut être schématiser comme suit
:
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QU’UN ORDINATEUR ?
18
 Un ordinateur est une machine (ensemble de circuits
électronique) qui permet le traitement automatique de
l’information :
1. Acquisition, stockage : acquérir et conserver de
l’information,
2. Traitement : effectuer des calculs et exécuter des
actions,
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QU’UN ORDINATEUR ?
19
3. Restitution : restituer les informations stockées.
 Permet de lier « information » & « données » (0 ou 1)
 Différents types d’informations : valeurs numériques
(entiers non signés, entiers signés, réels,….), textes, images,
sons, vidéo… codés avec des 0 ou 1.
Le terme « automatique » signifie que l’ordinateur lui-même va
exécuter certaines opérations définies à l’avance (sans intervention
humaine).
Exemple du Guichet Automatique de Banque(GAB),…
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QU’UN ORDINATEUR ?
20
 Types d’ordinateurs :
 Toute machine capable de manipuler des
informations binaires peut être qualifiée
d'ordinateur.
 Le type d'ordinateur le plus présent sur le marché
est le PC (Ordinateur personnel), toutefois il
existe d'autres types d'ordinateurs (n'étant pas
des PC).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QU’UN ORDINATEUR ?
21
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
COMPOSANTS DE BASE D’UN ORDINATEUR
22
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LE PROCESSEUR (CPU, UCT)
23
 Il faut se rappeler que le cœur de l’ordinateur c’est le
processeur, c’est vraiment lui qui fait tous les
traitements;
 Le processeur n’est pas intelligent (il ne pense pas, il
calcule).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LE PROCESSEUR (CPU, UCT)
24
 Le processeur exécute un programme qui est une liste
d’instructions, ces dernières sont exécutées
séquentiellement.
 Ces instructions du programme qui sont écrites dans un
certain langage de programmation (exemple le C), sont
ensuite codées en binaire qui est le langage machine qui va
être exécuté par le processeur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LE FONCTIONNEMENT D’UN ORDINATEUR
25
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
50
CHAPITRE II
Introduction aux algorithmes
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
INTRODUCTION GENERALE
51
 Cours initie à la notion d’algorithmique, ses concepts et ses
fondements de base.
 L’accent est mis également sur les structures de données
nécessaires au développement algorithmique tout en
insistant sur le côté pratique à travers des exemples et des
exercices.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHME
52
 La notion d'algorithme est à la base de toute la programmation
informatique.
 La définition la plus simple que l’on peut associer à cette
notion est qu’un algorithme est une suite ordonnée
d’instructions qui indique la démarche à suivre pour résoudre
un problème ou effectuer une tâche.
 Le mot algorithme vient du nom latinisé du mathématicien
perse Alkhawarizmi, surnommé « le père de l'algèbre ».
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
53
 L’algorithmique est la science des algorithmes. Elle s’intéresse à
l’art de construire des algorithmes ainsi qu’à déterminer leur
validité, leur robustesse, leur réutilisabilité, leur complexité ou
leur efficacité.
 L’algorithmique permet ainsi de passer d’un problème à résoudre à un
algorithme qui décrit la démarche de résolution du problème.
 Par conséquent, la programmation consiste à traduire un algorithme
dans un langage « compréhensible » par l’ordinateur afin qu’il
puisse être exécuté automatiquement.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
54
Etapes de développement.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
55
 La figure ci-dessus illustre les deux phases nécessaires pour
obtenir un code source :
 Phase d’algorithmique qui implique la recherche et
l’écriture d’un algorithme ;
 Phase de programmation qui consiste à traduire
l’algorithme obtenu en un programme à l’aide d’un
langage de programmation (C, Java, Python,…).
 Dans la première phase, on doit définir les données qu’on
dispose et les objectifs qu’on souhaite atteindre, ainsi que
prévoir des réponses à tous les cas possibles.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
56
 Exemple :
Résolution d’une équation de second degré ax2 + bx + c = 0
 Les données sont a, b et c
 Les sorties sont x1 et x2
 Les cas : a = 0 et b ≠ 0, a = 0 et b = 0, a ≠ 0, ……
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
57
Principe général
 Le traitement automatique de l’information consiste à
exécuter des instructions (opérations élémentaires et
complexes) sur des données d’entrée afin de générer d’autres
informations appelées résultats ou données de sortie.
TRAITEMENT
Données Résultats
Entrée
(Input)
Sortie
(Output)
Principe du traitement automatisé.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
58
Exemple : Calcul de la moyenne d’un étudiant
 Supposons qu’on doit calculer la moyenne d’un étudiant
pour un ensemble de matières.
 On doit donc :
1) Définir le nombre des matières concernées ainsi que les
notes et les coefficients ;
2) Réaliser les opérations suivantes :
 Multiplier chaque note d’une matière par son
coefficient,
 Calculer la somme des résultats des multiplications,
 Diviser la somme obtenue par le total des coefficients,
3) Afficher le la moyenne de l’étudiant (résultat final).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
59
Remarque :
 Lorsqu’on écrit un algorithme, les questions suivantes
doivent être considérées :
 Quel est le résultat attendu ?
 Quelles sont les données nécessaires (informations
requises) ?
 Comment faire (le traitement à réaliser) ?
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
60
Caractéristiques des algorithmes :
Structure générale
 Un algorithme se compose généralement de deux parties :
 Partie déclarative : appelée aussi entête de l’algorithme,
elle contient généralement les déclarations (des
constantes, des variables, etc.).
 Partie corps de l’algorithme : constituée d’une ou
plusieurs séquences d’instructions faisant appel à des
opérations de base à exécuter par l’ordinateur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
61
Algorithme <Nom de l’algorithme>
La partie
déclarativ
e
Le corps de
l’algorithme
Constante
<Liste des constantes avec leurs valeurs>
Variable
<Liste de variables suivis de leurs types>
Début
Fin
<Bloc d’instructions>
L’entête
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
62
Les variables et les constantes
 L’élément unitaire de stockage de l’information est appelé
bit. Un bit ne peut avoir que deux états distincts : 0 ou 1
(vrai ou faux dans la logique).
 Dans la mémoire de l’ordinateur, les données sont
manipulées par groupes de 8 bits (octets), ou plus (mots de
16, 32, 64 bits,…).
 Une case mémoire est donc appelée mot et pour que l’unité
centrale puisse stocker une information et la retrouver dans
la mémoire, chaque mot est repéré par une adresse.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
63
 Dans la programmation, les adresses mémoire sont représentées
par des noms. Le programmeur ne connait pas donc l’adresse
d’une case mais plutôt son nom.
 Il y a donc deux façons de voir la mémoire centrale de
l’ordinateur : côté programmeur et côté ordinateur tel qu’il est
illustré, à titre d’exemple, dans le schéma suivant.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
64
Organisation de la mémoire.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
65
Les variables
 Une variable est une case mémoire destiné à contenir des valeurs
de type défini au préalable (nombres, caractères, chaînes de
caractères,…).
 Elle possède un nom, un type, et un contenu qui peut être modifié
au cours de l’exécution de l’algorithme.
Le mot clé est : Variable
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
66
Les constantes
 La définition d’une constante est la même que celle d’une
variable à la différence que sa valeur reste inchangée tout au
long du déroulement (exécution) de l’algorithme.
Le mot clé est: Constante
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
67
Les variables et les constantes sont déclarées selon la syntaxe
suivante :
Syntaxe :
Variable <nom_variable> : type
Constante <NOM_CONSTANTE> = valeur
Remarque :
 Dans la partie déclarative, les variables et les constantes sont
caractérisées essentiellement par :
 Un identificateur : est un nom attribué à la variable ou à
la constante, qui peut être composé de lettres et de
chiffres mais sans espaces.
 Un type : qui définit la nature et la taille de la variable.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
68
Exemple :
Variable x, y : entier
Constante alpha = 0.5
 Dans cet exemple, nous avons déclaré :
 Deux variables (x et y) de type entier, ce type est décrit
dans la sous-section suivante.
 Une constante (alpha) égale à la valeur 0.5 à titre
d’exemple.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
69
Les types de base :
 Le type d’une variable définit l’ensemble des valeurs que
peut prendre la variable, ainsi que l’ensemble des opérations
que l’on peut appliquer sur cette variable.
 Il existe des types simples prédéfinis tels que : entier, réel,
caractère et booléen et chaîne de caractères.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
70
Type entier :
 C’est un type numérique représentant l’ensemble des
entiers relatifs, tels que : -9, 0, 31, ….
 Les opérations permises sur ce type sont : +, - , *, div
(division entière) et mod (modulo ou reste de la division
entière).
Le mot clé est : entier
Exemple : Variable x : entier
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
71
Type réel :
 C’est un type numérique aussi représentant l’ensemble des
nombres réels, tels que : 0.25, -1.33, 2.5 e+10,… .
 Les opérations permises sur ce type sont : +, -, * et /.
Le mot clé est : réel
Exemple : Variable y : réel
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
72
Type caractère :
 Ce type représente tous les caractères alphanumériques tels
que : ′a′, ′A′, ′3′, ′%′, ′ ′, …
 Les opérations supportées par ce type sont : =, ≠, <, <=, >,
>=.
Le mot clé est : caractère
Exemple : Variable a : caractère
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
73
Type booléen :
 Ce type est utilisé dans la logique pour représenter les deux
valeurs : vrai et faux.
 Les opérations prises en charge sont : NON, ET, OU.
Le mot clé est : booléen
Exemple : Variable b : booléen
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
74
Type Chaîne de caractères :
 Ce type représente les mots et les phrases tels que
"Algorithmique", "Cours", etc.
 Le mot clé utilisé est : chaîne
Exemple : Variable c : chaîne
Globalement, la partie déclarative d’un algorithme peut être
représentée comme suit.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMIQUE
75
Exemple :
Variable x, y : entier
z, w : réel
lettre : caractère
nom : chaîne
Etat : booléen
Constante N = 100
arobase = ′@′
mot = "bonjour"
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CONCLUSION
76
Ce chapitre constitue une initiation aux notions basiques de
l’écriture des algorithmes.
La syntaxe d’un algorithme, la notion de variable et de
constante, ainsi que leurs types sont définies et expliqués à
travers des exemples simples.
Ceci constitue pour le lecteur un prérequis de base qui lui
permettra de comprendre la notion d’instructions
algorithmiques dans les prochains chapitres.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
77
CHAPITRE III
LES INSTRUCTIONS SIMPLES
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
INTRODUCTION
78
 Un algorithme, par définition, est un ensemble
d’instructions qui peuvent être simples ou complexes.
 Dans ce chapitre, on s’intéressera aux instructions
simples notamment : les instructions d’affectation,
de lecture et d’écriture.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’AFFECTATION
79
 Cette instruction est élémentaire en algorithmique, elle
permet d’assigner une valeur à une variable selon la syntaxe
suivante :
variable  expression
 Une instruction d’affectation est exécutée comme suit :
1. Evaluation de l’expression située à droite de l’instruction,
2. Affectation du résultat à la variable située à gauche de
l’instruction.
 L’expression peut être :
 une constante : c  10
 une variable : v  x
 une expression arithmétique : e  x + y
 une expression logique : d  a OU b
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’AFFECTATION
80
Remarque :
 Une constante ne figure jamais à gauche d’une instruction
d’affectation.
Exemple d’instruction fausse :
Constante z = 1
z  2 « Faux »
 Après une affectation, l’ancien contenu d’une variable est
substitué (écrasé) par le nouveau contenu.
Exemple : Variable a : entier
a  1
a  2
Après la deuxième affectation, la valeur de a est devenue 2 (la
valeur 1 est écrasée).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’AFFECTATION
81
 Une instruction d’affectation doit se faire entre deux types
compatibles.
Exemple : Variable x, y : entier z : réel a, b :
caractère
Instructions correctes Instructions incorrectes
x  y
y  x
z  x
a  b
b  a
x  z
x  a
b  y
a  z
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’AFFECTATION
82
 Les expressions arithmétiques ou logiques sont composées d’au
moins deux termes reliés par un ou plusieurs opérateurs dont on
peut distinguer :
a) Les opérateurs arithmétiques (par ordre de priorité) :
^ : Puissance (exposant)
* , / , mod : Multiplication, Division et Modulo
+ , - : Addition et Soustraction
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’AFFECTATION
83
b) Les opérateurs logiques ou booléens :
NON : Non logique (négation) ET : Et logique (conjonction)
OU : Ou logique (disjonction) NON ET : négation de
conjonction
NON OU : négation de disjonction
A B A ET B A OU B NON A
VRAI VRAI VRAI VRAI FAUX
VRAI FAUX FAUX VRAI FAUX
FAUX VRAI FAUX VRAI VRAI
FAUX FAUX FAUX FAUX VRAI
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’AFFECTATION
84
c) Les opérateurs de comparaison ou relationnels :
> , >= : supérieur et supérieur ou égal
< , <= : inférieur et inférieur ou égal
= , ≠ (ou < >) : égal et différent
Remarque :
 Les expressions logiques peuvent être composées des
opérateurs logiques et/ou relationnels.
Par exemple, (A < 20) ET (B >= 10) est Vrai si A est inférieur à 20
et B est égal ou supérieur à 10, et faux sinon.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION de lecture
85
 Cette instruction est très primordiale dans un algorithme.
 Elle permet de lire des valeurs en entrée (input) et les
affecter aux variables stockées dans la mémoire.
 Les valeurs affectées sont souvent des données introduites à
partir d’un périphérique d’entrée tel que le clavier.
Syntaxe : Lire(var1, var2,…)
Exemple :
Lire(x) : lit et stocke une valeur donnée dans la case
mémoire associée à x.
Lire(x,y) : lit et stocke deux valeurs, la première dans x
et la deuxième dans y.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION de lecture
86
Illustration :
Opération de lecture
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’ecriture
87
 Cette instruction est aussi d’une grande importance dans les
algorithmes.
 Elle permet d’écrire en sortie (output) les données résultant
d’un traitement effectué par l’algorithme (valeur, texte, …) en
les affichant par exemple sur un périphérique de sortie tel
que l’écran.
Syntaxe :
Ecrire (var1, var2, expr1, expr2, …)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION D’ecriture
88
Remarque :
 Dans le cas d’écriture d’une expression, c'est le résultat
d’évaluation de cette expression qui est affiché et non pas
l’expression elle-même.
Par exemple :
Soient deux variables x et y tel que x = 5 et y = 7, l’instruction
: Ecrire(x + y)
Affiche en sortie le résultat d’addition de x et y (soit 12).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’INSTRUCTION d’ECRITURE
89
Illustration :
Opération d’écriture
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXEMPLE D’ALGORITHME contenant les trois instructions PRECEDENTES
90
Algorithme Moyenne_deux_réels
Variable x, y, z : réel
Début
Ecrire(″Donner la première valeur : ″)
Lire(x)
Ecrire(″Donner la deuxième valeur : ″) ;
Lire(y)
z  (x + y)/2
Ecrire (″La moyenne est : ″, z)
// On peut remplacer les deux dernières instructions
par une seule :
Ecrire (″La moyenne est : ″, (x + y)/2 ) // dans ce
cas on a pas besoin de z
Fin
 Dans cet algorithme, si l’utilisateur introduit 10 pour x et 20
pour y alors l’affichage sera : La moyenne est : 15
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CONCLUSION
91
 Dans ce chapitre, nous avons présenté les instructions
algorithmiques fondamentales à savoir l’affectation, la
lecture et l’écriture.
 Ces trois instructions simples sont incontournables dans
l’écriture d’un algorithme et constituent l’un des moyens
les plus simples qui permettent au programmeur
d’interagir avec son ordinateur à travers des actions
d’entrées/sorties.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
92
CHAPITRE IV
instructions conditionnelles
(les alternatives)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
INTRODUCTION
93
 Les algorithmes comportent généralement deux types
d’instructions :
 Les instructions simples : qui permettent la manipulation des
variables telles que l’affectation, la lecture et l’écriture.
 Les instructions de contrôle : qui précisent l’enchainement
chronologique des instructions simples.
 C’est en particulier le cas des instructions conditionnelles ou
les tests.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Structure d’un test : forme simple
94
 Il existe deux formes de test : forme simple (ou réduite) et
forme complète.
 Dans la forme simple (ou réduite), une action qui correspond
à une ou plusieurs instructions, est exécuté si une condition
est vérifiée.
 Sinon l’algorithme passe directement au bloc d’instruction qui
suit immédiatement le bloc conditionnel.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
95
Si (condition) Alors
Instruction(s)
//actions
Finsi
Structure d’un test : forme simple
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
96
Remarque :
 La condition évaluée après l’instruction « SI » est une
variable ou une expression booléenne qui, à un moment
donné, est vraie ou fausse. Par exemple : x = y, x <= y
x  5
y  9
 Dans cet exemple, le message ″x est égale à y″ ne sera
pas affiché puisque la condition (x = y) n’est pas
vérifiée.
Si (x = y) Alors
Ecrire(″x est égale à y″)
Finsi
Structure d’un test : forme simple
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
97
 La forme complète permet de choisir entre deux actions
selon qu’une condition est vérifiée ou non.
Si (condition) Alors
Instruction(s) 1
Sinon
Instruction(s) 2
Finsi
Structure d’un test : forme complète
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
98
Remarque :
 Certains problèmes exigent parfois de formuler des
conditions qui ne peuvent pas être exprimées sous la forme
d’une simple comparaison.
 Par exemple, la condition x ∈ [0, 1[ s’exprime par la
combinaison de deux conditions x >= 0 et x < 1 qui doivent
être vérifiées en même temps.
 Pour combiner ces deux conditions, on utilise les opérateurs
logiques. Ainsi, la condition x ∈ [0, 1[ pourra s’écrire sous
la forme : (x >= 0) ET (x < 1).
 Cette dernière est appelée une condition composée ou complexe.
Structure d’un test : forme complète
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
99
Exemple (sur la forme complète d’un test) :
x  5
y  9
 Avec cette forme, on peut traiter les deux cas possibles. Si la
condition (x=y) est vérifiée, le premier message est affiché, si
elle n’est pas vérifiée, le deuxième message est affiché.
Si (x = y) Alors
Ecrire(″x est égale à y″)
Sinon
Ecrire (″x est différente de
y″)
Finsi
Structure d’un test : forme complète
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
100
 La forme « Si … Alors … Sinon » permet deux choix
correspondants à deux traitements différents.
 Dans d’autres situations, on pourra avoir plus de deux cas, ce
qui rend cette alternative insuffisante pour traiter tous les
cas possibles.
 La forme complète permet de choisir entre plusieurs actions en
imbriquant des formes simples selon la syntaxe ci-dessous.
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
101
Si (condition1) Alors
Traitement 1
Sinon Si (condition2) Alors
Traitement 2
Sinon Si (condition3)
Alors
Traitement 3
…
Sinon Traitement
N
Finsi
Finsi
Finsi
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
102
Exemple (Etat de l’eau) :
 Dans les conditions normales de température et de
pression, l’eau est sous forme de glace si la température
est inférieure ou égale à 0° C, sous forme de liquide si la
température est comprise entre 0° C et 100° C et sous
forme de vapeur au-delà de 100° C.
 Ecrivons l’algorithme qui permet de vérifier l’état de
l’eau selon sa température.
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
103
Algorithme Etat_Eau
Variable t : Réel
Début
Ecrire("Donner la température de
l’eau :")
Lire(t)
Si (t <= 0) Alors
Ecrire("Etat solide")
Finsi
Si ((t > 0) ET (t < 100)) Alors
Ecrire("Etat liquide")
Finsi
Si (t >= 100) Alors
Ecrire("Etat gazeux")
Finsi
Fin
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
104
 Cet algorithme est correct mais il évalue les trois conditions qui
portent sur la même variable et qui sont exclusives.
 En effet, si (t <= 0), alors on ne peut pas avoir (t>= 0 et t < 100)
ni (t> 100).
 Il est donc inutile d’évaluer les deux dernières conditions si la
première est vérifiée, ou d’évaluer la dernière condition si la
deuxième est vérifiée.
 Pour éviter ce cas de figure, il sera préférable d’utiliser des tests
imbriqués comme suit :
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
105
…
Début
Ecrire("Donner la température de
l’eau:")
Lire(t)
Si (t <= 0) Alors
Ecrire("Etat solide")
Sinon Si (t < 100) Alors
Ecrire("
Etat liquide")
Sinon
Ecrire("Etat
gazeux")
Finsi
Finsi
Fin
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
106
Donc, l’utilisation de tests imbriqués permet de :
 Simplifier le pseudo-code : à travers l’imbrication nous n’avons
utilisé que deux conditions simples au lieu de trois conditions dont
une, est composée.
 un algorithme (ou programme) plus simple et plus lisible.
 Optimiser le temps d’exécution : dans le cas où la première
condition est vérifiée, l’algorithme passe directement à la fin,
sans tester le reste qui est forcément faux.
 un algorithme (ou programme) plus performant à l’exécution.
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
107
Remarque :
 Nous avons les équivalences suivantes :
NON(A ET B) ⇔ NON(A) OU NON(B)
NON(A OU B) ⇔ NON(A) ET NON(B)
 Ainsi, toute structure de test avec l’opérateur logique ET
peut être exprimée d’une manière équivalente avec
l’opérateur logique OU et vice-versa.
 Par conséquent, les deux alternatives suivantes sont
équivalentes
Structure d’un test : tests imbriqués
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
108
Structure d’un test
Si A ET B
Alors
Instruction
(s) 1
Sinon
Instruction(s)
2
Finsi
Si NON A OU NON B
Alors
Instruction(s) 2
Sinon
Instruction(s) 1
Finsi
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
109
 Il existe une autre variante d’instructions conditionnelles
qui permet d’effectuer des actions différentes suivant les
différentes valeurs que peut avoir une variable.
 Cette structure est écrite comme suit :
Les choix multiples
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
110
Syntaxe :
Selon (variable)
Valeur1 : instruction(s) 1
Valeur2 : instruction(s) 2
…
ValeurN : instruction(s) N
Défaut : instruction(s)
par défaut
Finselon
Les choix multiples
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
111
Remarque :
 Dans la structure de test à choix multiples :
 L’action peut être une suite d’instructions ;
 La valeur est une constante de même type que la variable ;
 La partie « défaut » est exécutée si aucun des autres cas
n’est vérifié ;
 L’exécution des différents cas (y compris le cas par défaut)
est exclusive c’est-à-dire l’exécution d’un seul cas provoque
la sortie de cette structure.
Les choix multiples
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
112
Exemple :
 Dans ce qui suit, le nom du jour de la semaine
correspondant est affiché selon la valeur de la variable «
jour ».
Les choix multiples
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
113
jour  5
Selon(jour)
1 : Ecrire("Dimanche")
2 : Ecrire("Lundi")
3 : Ecrire("Mardi")
4 : Ecrire("Mercredi")
5 : Ecrire("Jeudi")
6 : Ecrire("Vendredi")
7 : Ecrire("Samedi")
Défaut : Ecrire("Numéro de jour invalide.")
Finselon
 Donc, l’expression « Jeudi » est affichée dans ce cas.
Les choix multiples
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
114
 Dans ce chapitre, nous avons présenté le principe de la
condition, suivant lequel un algorithme peut effectuer une
action ou prendre une décision.
 Ceci est mis en œuvre à travers les instructions
conditionnelles ou tout simplement les tests avec leurs
différentes formes vues précédemment.
Conclusion
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
115
CHAPITRE V
instructions itératives
(les boucles)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
116
 Pour calculer la moyenne générale d’un étudiant, il faut
répéter la séquence d’instructions qui permet de calculer la
moyenne générale :
 Lire toutes les notes (et leurs coefficients) de l’étudiant,
 Calculer la somme des notes,
 Diviser la somme obtenue sur le nombre (ou sur la somme
des coefficients).
 Si l’on veut maintenant calculer la moyenne d’un autre
étudiant, les mêmes instructions doivent être répétées.
 Pour N d’étudiants, il nous faudra donc répéter N fois la même
séquence d’instructions.
INTRODUCTION
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
117
 Il se pose deux questions importantes :
1) Comment éviter d’écrire plusieurs fois la même séquence
d’instructions ?
2) Combien de fois doit-on répéter l’exécution de la
séquence d’instructions pour obtenir le résultat attendu ?
 Pour répondre à cette question, de nouvelles instructions de
contrôle sont introduites. Il s’agit des instructions itératives
(appelées aussi les boucles ou les itérations).
INTRODUCTION
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
118
 Une boucle (ou itération) est une instruction de contrôle qui
permet de répéter plusieurs fois un ensemble d’instructions.
 Généralement, deux cas sont distingués :
 Le nombre de répétitions est connu.
 Le nombre des répétitions est inconnu ou variable.
Définition
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
119
 Lorsque le nombre de répétitions est déterminé (connu),
l’utilisation de l’instruction « Pour … Faire » est privilégiée.
 Une structure de boucle avec l’instruction « Pour » s’arrête
une fois que le nombre de répétitions est atteint.
 Cette structure possède un indice (compteur) de contrôle
d’itérations caractérisé par :
 une valeur initiale (vi),
 une valeur finale (vf),
 un pas de variation .
L’instruction « Pour … Faire »
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
120
Pour <indice> de <vi> à <vf> [Pas <val_pas>]
Faire
Instruction(s)
FinPour
 Cette structure est dite « croissante » lorsque la valeur initiale vi
de l’indice est inférieure à sa valeur finale vf, le pas de variation
est par conséquent positif. Autrement, elle est dite «
décroissante ».
L’instruction « Pour … Faire »
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
121
L’instruction « Pour … Faire »
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
122
L’instruction « Pour … Faire »
 Exemple : un compteur croissant/décroissant
Les deux algorithmes suivants comptent de 1 à N et de N à 1
respectivement.
Algorithme compteur_croissant
Variable i : entier
Constante N=100
Début
Pour i de 1 à N Faire
Ecrire(i)
FinPour
Fin
Algorithme compteur_decroissant
Variable i : entier
Constante N=100
Début
Pour i de N à 1 Faire
Ecrire(i)
FinPour
Fin
 Remarque : Si la valeur du « pas » n’est pas précisée dans
l’instruction « Pour », elle est par défaut égale à un (1).
Résultat d’exécution : 1, 2, 3, …, 99, 100Résultat d’exécution : 100,
99, 98, …, 2, 1
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
123
L’instruction « Tant que … faire »
 Cette instruction permet de tester une condition et répéter le
traitement associé tant que cette condition est vérifiée.
Tant que (condition de
réalisation) Faire
Instruction(s)
Fintq
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
124
L’instruction « Tant que … faire »
Exemple : Réécrivons l’algorithme précédent avec cette
instruction.
Variable i : entier
Début
i  1
Tant que (i<=100) Faire
Ecrire(i)
i i+1
Fintq
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
125
L’instruction « Répéter … jusqu’à »
 Dans cette instruction, un traitement est exécuté au moins une
fois puis sa répétition se poursuit jusqu’à ce que la condition
soit vérifiée.
Répéter
Instruction(s)
Jusqu’à (condition
d’arrêt)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
126
L’instruction « Répéter … jusqu’à »
Exemple : Soit l’algorithme suivant :
Variables n, p : entier
Début
Répéter
Ecrire("Donner un nombre :")
Lire(n)
p  n*n
Ecrire(p)
Jusqu’à (n=0)
Ecrire("Fin de l’algorithme")
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
127
L’instruction « Répéter … jusqu’à »
 Les instructions encadrées par les mots répéter et jusqu’à
constituent le bloc de la boucle qu’il faut répéter jusqu’à ce
que la condition (n=0) soit vérifiée.
 Donc le nombre de répétitions de cette boucle dépend des
données fournies par l’utilisateur.
 Question ?
 Réécrire l’algorithme précédent avec « Tant que … Faire
» puis avec « Pour … Faire ».
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
128
L’instruction « Répéter … jusqu’à »
 Remarque :
 Dans la boucle « Répéter … Jusqu’à », la condition telle
qu’elle est exprimée ci-dessus, constitue une condition
d’arrêt de la boucle ; mais réellement, cela diffère selon le
langage de programmation utilisé.
 Par exemple, en Pascal, la condition de cette boucle est une
condition d’arrêt. Alors qu’en langage C, cette condition est
exprimée en tant qu’une condition de continuation.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
129
La notion dE compteur
 Un compteur est une variable associée à la boucle dont la
valeur est incrémentée de un (1) à chaque itération.
 Elle sert donc à compter le nombre d’itérations (répétitions)
de la boucle.
 La notion du compteur est associée particulièrement aux
deux boucles : « Répéter … Jusqu’à » et « Tant que … Faire
».
 Par contre, dans la boucle « Pour … Faire », c’est l’indice
qui joue le rôle du compteur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
130
La notion dE compteur
cpt  0
Répéter
instruction(s)
…
cpt  cpt + 1
Jusqu’à (condition
d’arrêt)
cpt  0
Tant que (condition de
réalisation) Faire
instruction(s)
…
cpt  cpt + 1
FinTq
Bloc de la boucle
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
131
La notion dE compteur
 Remarque :
 Il faut toujours initialiser le compteur avant de commencer le
comptage.
 La variable « cpt » (utilisée ci-dessus comme compteur), a
été initialisée à zéro (0) avant le début de chaque boucle.
 L’instruction « cpt  cpt +1 » incrémente la valeur de « cpt
» de un (1).
 Elle peut être placée n’importe où à l’intérieur du bloc de la
boucle.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
132
La notion dE compteur
 Exemple :
i  0
Répéter
Ecrire(i)
i  i+1
Jusqu’à (i=5)
i  0
Tant que (i<5) Faire
Ecrire(i)
i  i+1
FinTq
Résultat d’exécution : 0, 1, 2, 3, 4, 5 Résultat
d’exécution : 0, 1, 2, 3, 4
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
133
La notion d’accumulation
 Cette notion est fondamentale en programmation.
 Elle est utilisée notamment pour calculer la somme d’un
ensemble de valeurs.
 L’instruction correspondante se présente ainsi :
variable  variable + valeur
 Cette instruction consiste à ajouter une valeur à une
variable numérique, puis affecter le résultat dans la
variable elle-même.
 En d’autres termes, la nouvelle valeur de variable est
égale à l’ancienne plus une certaine valeur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
134
 Exemple : calcul de la somme de n valeurs données par l’utilisateur :
Variables i, n : entier
som, val : réel
Début
Écrire ("Donner le nombre de valeurs :")
Lire(n)
som  0
Pour i de 1 à n Faire
Écrire("Enter une valeur :")
Lire(val)
som  som + val
FinPour
Écrire("La somme des valeurs est égale à :", som)
Fin
La notion d’accumulation
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
135
Les boucles imbriquees
 Exemple : Les boucles peuvent être imbriquées les unes dans
les autres. Deux ou plusieurs boucles imbriquées peuvent être
aussi les mêmes ou différentes.
Pour i de 1 à 2 Faire
Écrire("i = ",i)
Pour j de 1 à 3 Faire boucle 1
Écrire("j = ",j) boucle 2
FinPour
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
136
Les boucles imbriquées
 Dans l’exemple ci-dessus, chaque itération de la boucle extérieure
(boucle 1) exécute la boucle intérieure (boucle 2) jusqu’à la fin
avant de passer à l’itération suivante, et ainsi de suite jusqu’à la
fin des deux boucles.
 Ainsi, le résultat d’exécution peut être représenté comme suit :
i = 1
j = 1
j = 2
j = 3
i = 2
j = 1
j = 2
j = 3
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
137
Les boucles imbriquées
 Remarque :
 Des boucles peuvent être imbriquées ou successives.
 Cependant, elles ne peuvent jamais être croisées.
 Par exemple, l’algorithme suivant est faux puisqu’il
comporte deux boucles croisées :
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
138
Les boucles imbriquées
Variables i, j : entier
Début
i1
j1
Répéter
Écrire(i)
Répéter
Écrire(j)
ii+1
Jusqu’à (i>2)
jj+1
Jusqu’à (j>3)
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
139
Conclusion
 Ce chapitre a été consacré aux structures itératives ou
boucles qui permettent de répéter l’exécution d’une
séquence d’instructions plusieurs fois selon un nombre fixe
ou certains critères dont l’utilisation a été explicitée à
travers différents exemples.
 Ainsi, ces instructions sont d’une grande importance dans
la manipulation de certaines structures de données telles
que les tableaux que nous aborderons dans le prochain
chapitre.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
140
CHAPITRE VI
L’Instruction de Branchement
(Aller à - SAUT)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
141
 L’instruction de branchement permet de sauter à un endroit
précis du programme. Cet endroit est repéré par une
étiquette.
Branchement – SAUT
Algorithme
Exemple1
Variable
x : entier
Début
Lire(x)
aller à 1
Ecrire(x+5)
1 : Ecrire(x-5)
Fin
On fait référence à l’instruction sur laquelle on saute par <Etiq>:<Instruciton>
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
142
C’est quoi le résultat de l’algorithme ?
Dérouler pour x = 8
Branchement – SAUT
Algorithme
Exemple1
Variable
x : entier
Début
Lire(x)
aller à 1
x  x + 5
1 : x x – 5
Ecrire(x)
Fin
Instruction x
Lire(x) 8
Aller à 1 
x  x - 5
8
3
Ecrire (x) 3
Dans ce cas, on parle de saut inconditionnel
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
143
C’est quoi le résultat de l’algorithme ?
 Dérouler pour x = 8
Branchement – SAUT
Algorithme Exemple2
Variable
x : entier
Début
Lire(x)
Si (x > 10) alors
aller à 1
Sinon
allers à 2
Finsi
1 : x x + 5
aller à 3
2 : x x - 5
3 : Ecrire(x)
Fin
Instruction x
Lire(x) 8
Si(x > 10) =>
faux
=> Sinon
Aller à 2 
x  x - 5
8
3
Ecrire (x) 3
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
144
C’est quoi le résultat de l’algorithme ?
 Dérouler pour x = 12
Branchement – SAUT
Algorithme Exemple2
Variable
x : entier
Début
Lire(x)
Si (x > 10) alors
aller à 1
Sinon
allers à 2
Finsi
1 : x x + 5
aller à 3
2 : x x - 5
3 : Ecrire(x)
Fin
Dans ce cas, on parle de saut conditionnel
Instruction x
Lire(x) 12
Si (x > 10)
=> true
=>Aller à 1
 x  x + 5
12
17
Aller à 3 
Ecrire (x) 17
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
145
Récrire l’Algorithme en utilisant les
branchements ?
Branchement – SAUT
Algorithme
Exemple3
Variable
x, i : entier
Début
Lire(x)
Pour i de 1 à
x faire
Ecrire(i)
FinPour
Fin
On peut remplacer les boucles par des instruction
de branchement
Algorithme Exemple4
Variable
x, i : entier
Début
Lire(x)
i  1
1 : Si( i > x)
Alors
aller à 2
Finsi
Ecrire (i)
i  i + 1
aller à 1
2 :
Fin
 Remplacer une Boucle en utilisant les branchements
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
146
 L’instruction de branchement (ou de saut) permet de sauter sur
une instruction du programme afin de continuer l’exécution à
partir de cette dernière (instruction).
 Pour pouvoir sauter sur une instruction, il faut utiliser une
étiquette pour désigner cette instruction.
 Il y a deux types de branchement :
 Instruction de branchement inconditionnel : c’est un saut
sans condition qui ne fait pas partie du bloc du Si ou du
Sinon.
 Instruction de branchement conditionnel : c’est un saut
soumis à une condition. Dans ce cas, cette instruction fait
partie du bloc Si ou du bloc Sinon.
CONCLUSION
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
147
CHAPITRE VII
Les tableaux
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
INTRODUCTION
148
 Supposons que l’on a besoin de stocker et de manipuler les notes
de 100 étudiants. On doit, par conséquent, déclarer 100
variables : n1, n2,…, n100.
 Vous pouvez remarquer que c’est un peu lourd de manipuler
une centaine de variables (avec 100 fois de lecture/écriture…).
 Imaginons maintenant le cas pour une promotion de 1000
étudiants, alors là notre cas devient un vrai problème.
 En algorithmique (et en programmation), on peut regrouper toutes
ces variables en une seule structure qui s’appelle tableau.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
INTRODUCTION
149
 Un tableau est un ensemble de variables de même type ayant
toutes le même nom. Suite à cette définition, la question
suivante se pose :
 Comment peut-on différencier des variables ayant le
même nom ?
 La réponse est dans la notion du tableau lui-même où
chaque élément est repéré par un indice.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
INTRODUCTION
150
 Ce dernier est un numéro (généralement un entier) qui
permet de différencier chaque élément du tableau des
autres.
 Ainsi, les éléments du tableau ont tous le même nom, mais
pas le même indice.
 Pour accéder à un élément d’un tableau, on utilise le nom
du tableau suivi de l’indice de l’élément entre
crochets.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
INTRODUCTION
151
Exemple :
 Soit le tableau T contenant les valeurs suivantes :
 5, 10, 29, 3, et 14.
 L’organisation du tableau T dans la mémoire peut être
représentée comme suit :
i = 0 i = 1 i = 2 i = 3 i = 4
T[0] = 5 T[1] = 10 T[2] = 29 T[3] = 3 T[4] = 14
Valeurs :
Indices :
T
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Tableaux à une seule dimension
152
 Dans ce type de tableaux, chaque élément est accessible
(pour lecture ou modification) par un seul indice.
 Déclaration
La syntaxe de déclaration d’un tableau à une seule
dimension est la suivante :
<nom_du_tableau> Tableau[taille] : Type
Exemple : Notes Tableau[100] : Réel
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Tableaux à une seule dimension
153
Remarque :
 L’indice d’un élément dans un tableau, peut être exprimé
comme un nombre, mais aussi il peut être exprimé comme
une variable ou une expression calculée.
 La valeur de l’indice doit être toujours :
 Supérieur ou égal à 0 : dans quelques langages, le
premier élément d’un tableau porte l’indice 1 (comme
en Pascal). Mais dans d’autres, comme c’est le cas en
langage C, la numérotation des indices commence à zéro.
 Par exemple Notes[1] est le deuxième élément du
tableau Notes.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Tableaux à une seule dimension
154
 de type entier : quel que soit le langage, l’élément
Notes[1,…] n’existe jamais.
 Inférieur ou égal au nombre des éléments du tableau (moins
1 si l’on commence à zéro) : En langage C, si un tableau
T est déclaré comme ayant 10 éléments, la présence, dans
une ligne du corps de l’algorithme, de l’expression T[10]
déclenchera automatiquement une erreur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
155
 Une fois déclaré, un tableau peut être manipulé comme un
ensemble de variables simples. Les trois manipulations de
base sont l’affectation, la lecture et l’écriture.
L’affectation :
 L’affectation d’une valeur v à un élément i d’un tableau T de
type numérique, se fait par : T[i]  v
 Par exemple, l’instruction : T[0]  5 affecte la valeur 5 au
premier élément du tableau T.
i = 0 i = 1 i = 2 i = 3 i = 4
5
Valeurs :
Indices :
T
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
156
 Supposons maintenant que l’on veut affecter la même valeur
à tous les éléments du tableau T, on utilisera pour cela une
boucle :
Pour i de 0 à n-1 Faire // n est la taille de T
T[i]  5
Finpour
 Cette boucle permet de parcourir tout le tableau T en
affectant à chaque élément la valeur 5.
i = 0 i = 1 i = 2 i = 3 i = 4
5 5 5 5 5
Valeurs :
Indices :
T
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
157
La lecture :
 Il est possible aussi d’affecter des valeurs aux éléments
d’un tableau par une instruction de lecture.
Exemple :
Ecrire("Entrer une note :")
Lire(T[0])
 Dans cet exemple, la valeur saisie est affectée au premier
élément du tableau T.
i = 0 i = 1 i = 2 i = 3 i = 4
0
Valeurs :
Indices :
T
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
158
L’écriture :
 De même que la lecture, l’écriture de la valeur d’un élément
du tableau s’écrira comme suit : Ecrire(T[i]).
 Cette instruction permet d’afficher la valeur de l’élément i
du tableau T.
Remarque :
 Les éléments d’un tableau sont manipulés de la même façon
que les variables simples. S’il s’agit d’un tableau de type
numérique, les éléments peuvent être utilisés dans
l’évaluation des expressions numériques du genre :
x (Notes[1] + Notes[2])/2
Notes[0]  Notes[0] + 1
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
159
Exemple :
Soit Notes un tableau de valeurs réelles tel qu’il est illustré
dans le schéma qui suit.
i = 0 i = 1 i = 2 i = 3 i = 4
10 15 7 8.25 11.5
Valeurs :
Indices :
T
 L’exécution de l’instruction : x  (Notes[1] +
Notes[2])/2
Est équivalente à l’opération : x  (15+7)/2 = 11
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
160
 Ecrivons un algorithme qui permet de lire des valeurs
saisies par l’utilisateur dans un tableau de taille 20, et les
afficher par la suite.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
161
Algorithme Application1
Variable i : Entier
Tab Tableau[20] : Réel
Début
Pour i de 0 à 19
Ecrire("Donner une valeur :")
Lire(Tab[i])
FinPour
Pour i de 0 à 19
Ecrire("Valeur ", i, "=", Tab[i])
FinPour
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
162
 L’exécution du programme correspondant à l’algorithme ci-
dessus, permet d’initialiser le tableau Tab comme suit :
 Après la fin de la 1ère boucle (boucle de lecture) :
i = 0 i = 1 … i = 18 i = 19
5 34 … 14.5 60
Valeurs :
Indices :
T
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
163
 Après la fin de la 2ème boucle (boucle d’affichage), on
aura, sur écran par exemple, l’affichage suivant :
Valeur 0 = 5
Valeur 1 = 34
…
Valeur 18 = 14.5
Valeur 19 = 60
 Remarque : les valeurs : 5, 34, 14.5 et 60 sont un exemple
d’échantillon de valeurs saisies par l’utilisateur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
La recherche dans un tableau
164
La notion du drapeau :
 Le drapeau (ou flag en Anglais) est une variable booléenne
initialisée à Faux (drapeau baissé).
 Dès qu’un évènement attendu se produit, la variable change
de valeur à Vrai (drapeau levé).
 Donc, la valeur finale du drapeau permet de savoir si un
évènement a eu lieu ou pas.
 Cela devrait s’éclairer à l’aide d’un exemple extrêmement
fréquent : la recherche de l’occurrence d’une valeur dans un
tableau.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
La recherche dans un tableau
165
Exemple :
 En supposant l’existence d’un tableau comportant N valeurs
entières.
 On doit écrire un algorithme qui lit un nombre donné et
informe l’utilisateur de la présence ou de l’absence de ce
nombre dans le tableau.
 La première étape consiste à écrire les instructions de lecture
du nombre N et de parcours du tableau :
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
La recherche dans un tableau
166
Variables val, i, N : Entier
Tab Tableau[20] : Entier
Début
Lire(N)
Ecrire("Entrer la valeur à rechercher :")
Lire(val)
Pour i de 0 à N-1
…
FinPour
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
167
Illustration :
On suppose que N=6 et les valeurs saisies sont celles figurant
dans le schéma suivant :
i = 0 i = 1 i = 2 i = 3 i = 4 i = 5
10 22 31 46 5 7
Valeurs :
Indices :
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
168
 Revenons à l’algorithme, maintenant, il faut combler les
points de la boucle (le bloc qui devra contenir les
instructions de la recherche).
 Évidemment, il va falloir comparer « val » à chaque
élément du tableau, s’il y a une égalité quelque part, alors «
val » fait partie du tableau.
 Cela va se traduire, bien entendu, par l’instruction
conditionnelle « Si … Alors … Sinon ».
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
169
…
Début
Ecrire("Entrez la valeur à rechercher ")
Lire(val)
Pour i de 0 à N-1
Si (val = Tab[i]) Alors
Ecrire(val, "figure")
Sinon
Ecrire(val, "ne figure pas")
Finsi
FinPour
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
170
Illustration :
On suppose que la valeur à rechercher (val) est égale à 31 :
i = 0 i = 1 i = 2 i = 3 i = 4 i = 5
10 22 31 46 5 7
Valeurs :
Indices :
Ta
b
T[0] =
val ?
T[1] =
val ?
T[2] =
val ?
T[5] =
val ?
31 ne figure
pas
31
figure
31 ne figure
pas
…
31 ne figure
pas
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
171
 On peut constater qu’on a deux possibilités :
 ou bien la valeur « val » figure dans le tableau,
 ou bien elle n'y figure pas.
 Mais dans tous les cas, l'algorithme ne doit produire qu'une
seule réponse, quel que soit le nombre d'éléments du
tableau. Or, l'algorithme ci-dessus affiche autant de
messages qu'il y a de valeurs dans le tableau. Il y a donc une
erreur quelque part.
 En fait, on ne peut savoir si la valeur recherchée existe dans
le tableau ou non que lorsque le parcours du tableau est
entièrement accompli.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
172
 Pour pallier cette erreur, on doit réécrire l’algorithme en
plaçant le test après la boucle et en utilisant cette fois-ci
une variable booléenne (drapeau) que l’on appelle « Existe
».
 Cette variable doit être gérée comme suit :
 La valeur de départ de « Existe » doit être évidemment
Faux (drapeau baissé).
 La valeur de la variable « Existe » doit devenir Vrai
(drapeau levé), si un test dans la boucle est vérifié
(lorsque la valeur de « val » est rencontrée dans le
tableau). Mais le test doit être asymétrique, c.à.d. qu’il
ne comporte pas de « sinon ».
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
173
…
Début
Ecrire("Entrez la valeur à rechercher ")
Lire(val)
Existe  Faux
Pour i de 0 à N-1 Faire
Si (val = Tab[i]) Alors
Existe  Vrai
Finsi
Finpour
Si (Existe = Vrai) Alors
Ecrire(val, "fait partie du tableau")
Sinon
Ecrire(val, "ne fait pas partie du tableau")
Finsi
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
174
Illustration :
En utilisant un drapeau (variable « Existe ») :
i = 0 i = 1 i = 2 i = 3 i = 4 i = 5
10 22 31 46 5 7
Valeurs :
Indices :
Ta
b
T[0] =
val ?
T[1] =
val ?
T[2] =
val ?
T[5] =
val ?
Existe = Faux
Existe =
Vrai
Existe = Faux
…
Existe = Faux
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
175
 Réécrire le même algorithme mais cette fois-ci, la boucle
de recherche doit être arrêtée dès que la valeur du drapeau
change.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
176
Algorithme vecteur
Variable val, i, N : entier
Existe : booléen
T Tableau[50] : entier
Début
{ lecture de val, N, et les éléments du tableau T}
Ecrire("donner val : ")
Lire(val)
Répéter
Ecrire("donner N avec 0<N<=50 : ")
Lire(N)
Jusqu’à (0<N) et (N<=50)
Pour i de 0 à N-1 Faire
Ecrire("donner T[",i,"] :")
Lire(T[i])
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
177
{1- initialiser la variable booléenne}
Existe  Faux
{2- Vérification}
{Initialiser l’indice de parcours sur la première
valeur}
i  0
{Tant que non fin des éléments et val n’existe pas}
Tant que (i <= N-1) ET (Existe = Faux) Faire
{cas où T[i] = val}
Si (T[i] = val) Alors
{Inverser la valeur de Existe}
Existe  Vrai
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
178
Sinon {cas où T[i] <> val}
{avancer vers le prochain élément}
i  i+1
Finsi
FinTq
{3- affichage de la décision}
Si (Existe = Vrai) Alors
Ecrire(val, "existe dans le tableau T")
Sinon
Ecrire(val, "n’existe pas dans le tableau T")
Finsi
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
179
Qu’est-ce qu’un tri ?
 Le tri est une opération consistant à ordonner un ensemble
d’éléments suivant une relation d’ordre prédéfinie.
 Le problème du tri est un grand classique en algorithmique.
Trier un tableau numérique c’est donc ranger ses éléments en
ordre croissant ou décroissant.
 Il existe plusieurs algorithmes de tri, parmi lesquels le tri par
sélection, tri par insertion, tri à bulles, tri par fusion, etc.
 Nous illustrons dans ce qui suit deux types de tri, à savoir le tri
par sélection et le tri par insertion.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
180
Tri par sélection
 Cette technique est parmi les plus simples, elle consiste à
sélectionner, pour une place donnée, l’élément qui doit y être
positionné.
 Par exemple pour trier un tableau en ordre croissant, on met en
première position le plus petit élément du tableau et on passe à
la position suivante pour mettre le plus petit élément parmi les
éléments restants et ainsi de suite jusqu’au dernier.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
181
Exemple :
Soit à trier, en ordre croissant, le tableau suivant :
25 10 13 31 22 4 2 18
Nous commençons par la recherche de la plus petite valeur et sa
position. Une fois identifiée (dans ce cas, c’est le nombre 2 en 7ème
position), nous l’échangeons avec le 1er élément (le nombre 25). Le
tableau devient ainsi :
2 10 13 31 22 4 25 18
Nous recommençons la recherche, mais cette fois, à partir du 2ème
élément (puisque le 1er est à sa position correcte). Le plus petit
élément se trouve en 6ème position (le nombre 4). Nous
échangeons donc le 2ème élément avec le 6ème élément :
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
182
Nous recommençons la recherche à partir du 3ème élément
(puisque les deux premiers sont maintenant bien placés), Le plus
petit élément se trouve aussi en 6ème position (10), en l’échangeant
avec le 3ème, ça donnera:
2 4 13 31 22 10 25 18
Nous recommençons maintenant à partir du 4ème élément et de la
même façon nous procédons jusqu’à l’avant dernier :
2 4 10 31 22 13 25 18
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
183
2 4 10 13 18 31 25 22
2 4 10 13 22 31 25 18
2 4 10 13 18 22 25 31
2 4 10 13 18 22 25 31
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
184
 Algorithmiquement, nous pouvons décrire ce processus de la
manière suivante :
 Boucle principale : prenant comme point de départ le
premier élément, puis le second, etc. jusqu’à l’avant dernier.
 Boucle secondaire : à partir de ce point de départ mouvant,
nous recherchons jusqu’à la fin du tableau le plus petit
élément. Une fois trouvé, nous l’échangeons avec le point de
départ.
 Donc, cela s’écrit :
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Manipulation
185
{ boucle principale : le point de départ se décale à chaque tour }
Pour i de 0 à 6 Faire
{ on considère provisoirement que T[i] est le plus petit élément }
posmin  i { posmin est la position du minimum initialisée par i}
{ on examine tous les éléments suivants }
Pour j de (i + 1) à 7 Faire
Si (T[j] < T[posmin]) Alors
posmin  j
Finsi
Finpour
{ on sait maintenant où est le plus petit élément. Il ne reste plus
qu'à effectuer la permutation }
temp  T[posmin]
T[posmin] T[i]
T[i]  temp
{ On a placé correctement l'élément numéro i, on passe à présent au
suivant }
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
186
Tri par insertion
 Soit à trier un tableau d’éléments en ordre croissant.
 Le principe de ce type de tri repose à chaque itération sur
trois phases :
a) On prend le premier élément dans la partie non encore
triée du tableau (la clé).
b) On cherche la place de la clé dans la partie déjà triée du
tableau, en commençant par la droite de cette partie.
c) Une fois cette place trouvée, on y insère la clé après qu’on
ait décalé vers la droite tous les éléments de la partie triée
dont la valeur est plus grande ou égale à la valeur de la
clé.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
187
 Il faut noter qu’initialement, la partie triée est constituée
seulement du premier élément du tableau, autrement dit, le
processus du tri commence à partir du deuxième élément.
 Exemple :
Soit à trier, en ordre croissant, le même tableau précédent en
appliquant le tri par insertion :
25 10 13 31 22 4 2 18
i = 1
Partie non encore
triée
Clé
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
188
On décale le 1er élément de la partie triée vers la droite puisque
sa valeur est supérieure à la clé. Cette dernière est déplacée à la
1ère position :
10 25 13 31 22 4 2 18
On recommence le processus avec une nouvelle clé. Le 1er
élément à droite de la partie triée (25) est décalé vers la droite
puisque sa valeur est supérieure à la clé. Le 2ème élément ne sera
pas décalé puisqu’il est inférieur à la clé. Par conséquent, la clé
est insérée dans la 2ème position du tableau :
i = 2
10 13 25 31 22 4 2 18
i = 3
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
189
On ne déplace pas cette clé (31) puisque sa valeur est supérieure
à celles des éléments qui la précèdent.
10 13 25 31 22 4 2 18
i = 4
On décale les deux premiers éléments (31 et 25) vers la droite et
la clé est insérée à la 3ème position :
10 13 22 25 31 4 2 18
i = 5
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
190
On décale tous les éléments de la partie triée vers la droite
puisque leurs valeurs sont supérieures à celle de la clé. Cette
dernière est déplacée à la 1 ère position :
4 10 13 22 25 31 2 18
i = 6
La même opération est répétée pour cette clé (2) :
2 4 10 13 22 25 31 18
i = 7
Les trois éléments (22,25 et 31) sont décalés vers la droite et la
clé est déplacée vers la 5ème position
2 4 10 13 18 22 25 31
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Le tri d’un tableau
191
…
Début
Pour i de 1 à N-1 Faire { on commence par le 2ème élément (début de
la partie non triée)}
clé  T[i]
j  i - 1 { indice du 1er élément à droite de la partie triée }
Tant que ((j >= 0) ET (clé < T[j])) Faire
T[j +1]  T[j] { Décalage }
j  j - 1
FinTq
T[j +1]  clé { Insertion de la clé }
FinPour
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Comparaison
192
 Dans l’algorithme de tri par sélection, nous avons dans tous les
cas, la boucle interne qui est exécutée pour i=1, 2, 3 jusqu’à
i=(n-1) par conséquent, nous avons (n-1) + (n-2) + (n-3) + … +
1 étant n(n-1)/2 exécutions.
 Par exemple, pour un tableau de 100 éléments, la boucle est
exécutée 4950 fois dans tous les cas.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Comparaison
193
 Dans l’algorithme de tri par insertion, nous avons dans le pire
des cas un tableau trié à l’envers (en ordre décroissant dans ce
cas), et la boucle interne est exécuté (n-1) + (n-2) + (n-3) + …
+ 1 fois, étant n(n-1)/2 exécutions au maximum.
 Au meilleur des cas, le tableau est trié en ordre voulu (croissant
dans ce cas) et la boucle interne ne s’exécutera jamais.
 En moyenne, le nombre d’exécutions est n(n-1)/4. Par
exemple, pour un tableau de 100 éléments, la boucle est
exécutée 4950 fois au maximum et 2475 en moyenne.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
195
Problème 2 : Soit une classe de 5 étudiants qui prennent
des cours dans 10 modules. Quelle est la structure de
données qui nous permet de sauvegarder les notes des 5
étudiants.
Solution : La solution idéale est d’avoir un tableau à
deux dimensions (une matrice) de 5 lignes (les
étudiants) et de 10 colonnes (les modules). Une cellule
repérée par la ligne i et la colonne j définit la note de
l’étudiant i dans le module j.
Déclaration :
Variable Notes Tableau[5,10] : réels
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
196
Ligne
0
Ligne
1
Ligne
2
Ligne
3
Ligne
4 Colonne
0
Colonne
8
Colonne
7
Colonne
1
 La valeur entourée indique l’élément désigné par la ligne 0 et la colonne 3 
Notes [0,3].
 Pour modifier cet élément on écrit : Lire(Notes[0,3])
 Pour afficher cet élément on écrit : Ecrire(Notes[0,3])
 Pour modifier cet élément on écrit : Notes[0,3]  14
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
197
Syntaxe : <Identificateur> Tableau[t1, t2] : type
 Identificateur : représente le nom de tableau.
 t1 : est le nombre maximal de lignes.
 t2 : est le nombre maximal de colonnes.
 Type : est le type des éléments : réel, entier, caractère,
booléen, ou composé.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
198
 Affichage d’une matrice
{1 - Affichage par ligne }
Pour i de 0 à n-1 Faire
Pour j de 0 à m-1 Faire
Ecrire(A[i,j])
FinPour
FinPour
{2 - Affichage par
colonne}
Pour j de 0 à m-1 Faire
Pour i de 0 à n-1 Faire
Ecrire(A[i,j])
FinPour
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
199
 Lecture d’une matrice :
{lecture de n et m}
Répéter
Ecrire("Donner n entre 1 et 20 et m entre 1 et 30 :")
Lire(n,m)
Jusqu’à (n>0) et (n<=20) et (m>0) et (m<=30)
{Lecture par ligne}
Pour i de 0 à n-1 Faire
Pour j de 0 à m-1 Faire
Ecrire("Donner un élément :")
Lire(A[i,j])
FinPour
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
200
{Lecture par colonne}
Pour j de 0 à m-1 Faire
Pour i de 0 à n-1 Faire
Ecrire("Donner un élément :")
Lire(A[i,j])
FinPour
FinPour
Plusieurs opérations peuvent être effectuées sur les matrices
: Opérations de consultation Opérations de modification
1) Affichage d’une matrice
2) Calcul de la somme, le produit, le
maximum, le minimum, un compteur … pour
les éléments de la matrice
1) Lecture (saisie ou remplissage) d’une
matrice
2) Modification des valeurs des éléments
3) Décalage ou permutation des éléments
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
201
 Toutes ces opérations nécessitent le parcours des
éléments de la matrice. On peut citer plusieurs types de
parcours :
1. Parcours de la matrice ligne par ligne
2. Parcours de la matrice colonne par colonne
3. Parcours partiel
4. Parcours d’une ligne / colonne
5. Parcours de la diagonale principale / diagonale
secondaire
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
202
1. Traitement pour toutes les lignes :
(*Initialiser le résultat pour tous les éléments*)
Pour i de 0 à n-1 faire
(*Condition sur les lignes*)
Pour j de 0 à m-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments A[i,j]
FinPour
FinPour
(*Traitement du résultat pour tous les éléments*)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
APPLICATION
203
1. Calculer et afficher le nombre d’éléments impairs
pour toutes les lignes impairs.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CORRIGE de l’APPLICATION
204
Cpt  0
Pour i de 0 à n-1 FAIRE
Si (i mod 2 <> 0) Alors
Pour j de 0 à m-1 FAIRE
Si (A[i,j] mod 2 <> 0) Alors
cpt  cpt +1
Finsi
FinPour
Finsi
FinPour
Ecrire(cpt)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
205
2. Traitement pour chaque ligne :
Pour i de 0 à n-1 Faire
(*Condition sur les lignes*)
(*Initialisation du résultat pour chaque ligne*)
Pour j de 0 à m-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments A[i,j]
FinPour
(*Traitement du résultat pour chaque ligne*)
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
APPLICATION
206
2. Calculer et afficher la moyenne des éléments pairs pour
chaque ligne
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CORRIGE de l’APPLICATION
207
Pour i de 0 à n-1 Faire
S  0 cpt  0
Pour j de 0 à m-1 Faire
Si (A[i,j] mod 2 = 0) Alors
S  S + A[i,j]
Cpt  cpt +1
Finsi
FinPour
Si (cpt > 0) Alors
Moy  S/cpt
Ecrire(Moy)
Finsi
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
208
3. Traitement pour toutes les colonnes :
(*Initialiser le résultat pour tous les éléments*)
Pour j de 0 à m-1 Faire
(*Condition sur les colonnes*)
Pour i de 0 à n-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments A[i,j]
FinPour
FinPour
(*Traitement du résultat pour tous les éléments*)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
APPLICATION
209
3. Calculer et afficher le nombre d’éléments > val pour
toutes les colonnes de rang pair.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CORRIGE de l’APPLICATION
210
Cpt  0
Pour j de 0 à m-1 Faire
Si (j mod 2 = 0) ALORS
Pour i de 0 à n-1 Faire
Si (A[i,j] > val) Alors
cpt  cpt +1
Finsi
FinPour
Finsi
FinPour
Ecrire(cpt)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
211
4. Traitement pour chaque colonne :
Pour j de 0 à m-1 Faire
(*Condition sur les colonnes*)
(*Initialisation du résultat pour chaque colonne*)
Pour i de 0 à n-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments A[i,j]
FinPour
(*Traitement du résultat pour chaque colonne*)
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
APPLICATION
212
4. Construire puis afficher un vecteur V de taille m, tel
que : 𝑉 𝑗 = 𝐶𝑜𝑙𝑜𝑛𝑛𝑒 𝑗 si j est multiple de 3.
𝑉 𝑗 = 𝐶𝑜𝑙𝑜𝑛𝑛𝑒 𝑗 si j n’est pas un multiple de 3
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CORRIGE de l’APPLICATION
213
Pour j de 0 à m-1 Faire
Si (j mod 3 = 0) Alors
S  0
Pour i de 0 à n-1 Faire
S  S + A[i,j]
FinPour
V[j]  S
Sinon
P 1
Pour i de 0 à n-1 Faire
P  P * A[i,j]
FinPour
V[j]  P
Finsi
FinPour
Pour i de 0 à m-1 Faire
Ecrire(V[i])
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
214
5. Traitement pour une ligne : p
A[p,0], A[p,1], A[p,2], …, A[p,m-1]  A[p,j],
j∈{0, …, m-1}
(*Initialisation *)
Pour j de 0 à m-1 faire
(*Condition sur les éléments*)
Actions pour les éléments A[p,j]
FinPour
(*Traitement du résultat*)
p
m
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
APPLICATION
215
5. Calculer et afficher le produit des éléments d’une
ligne p.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CORRIGE de l’APPLICATION
216
P  1
Pour j de 0 à m-1 Faire
P  P * A[p,j]
FinPour
Ecrire(P)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
217
6. Traitement pour une colonne : q
A[0,q], A[1,q], A[2,q], …, A[n-1,q]  A[i,q],
i∈{0, …, n-1}
(*Initialisation *)
Pour i de 0 à n-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments A[i,q]
FinPour
(*Traitement du résultat*)
q
n
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
APPLICATION
218
6. Calculer et afficher la somme des éléments d’une
colonne q.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CORRIGE de l’APPLICATION
219
S  0
Pour i  0 à n-1 Faire
S  S + A[i,q]
FinPour
Ecrire(S)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
220
7. Traitement pour les éléments de la DP (matrice carrée)
(*Initialisation *)
Pour i de 0 à n-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments
A[i,i]
FinPour
(*Traitement du résultat*)
i = j  A[i,i] ou A[j,j]
(*Initialisation *)
Pour j de 0 à n-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments
A[j,j]
FinPour
(*Traitement du résultat*)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
APPLICATION
221
7. Calculer et afficher la somme des éléments de la
diagonale principale.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CORRIGE DE L’APPLICATION
222
S  0
Pour i de 0 à n-1 Faire
S  S + A[i,i]
FinPour
Ecrire(S)
S  0
Pour j de 0 à n-1 Faire
S  S + A[j,j]
FinPour
Ecrire(S)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
223
8. Traitement pour les éléments de la DS (matrice carrée)
(*Initialisation *)
Pour i de 0 à n-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments A[i,n-
i+1]
FinPour
(*Traitement du résultat*)
i = n-j+1  A[i, n-i+1] ou A[n-j+1,
j]
(*Initialisation *)
Pour j de 0 à n-1 Faire
(*Condition sur les éléments*)
Actions pour les éléments A[n-
j+1,j]
FinPour
(*Traitement du résultat*)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
application
224
7. Calculer et afficher le produit des éléments de la
diagonale secondaire.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Corrige de l’application
225
P  1
Pour i de 0 à n-1 Faire
P  P * A[i, n-i+1]
FinPour
Ecrire(P)
P  1
Pour j de 0 à n-1 Faire
P  P * A[n-j+1,j]
FinPour
Ecrire(P)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TRAITEMENT sur LES MATRICES
226
 La transposée d’une matrice :
 La transposée d’une matrice A c’est une autre matrice
B dans laquelle les dimensions sont inversées (n,m)
 (m,n)
 Chaque ligne de la matrice A va devenir une colonne
dans la matrice B
7 1 0
4 2 3
7 4
1 2
0 3
A[1,1]  B[1,1]
A[1,2]  B[2,1]
A[i,j]  B[j,i]
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXERCICE
227
 Soit une matrice A de taille n*m (n≤20, m≤30), Ecrire un
algorithme qui :
1. Lit (remplit) les valeurs de la matrice A avec deux méthodes
différentes (par ligne et par colonne).
2. Affiche le maximum ainsi que la moyenne de tous les éléments
de A.
3. Construit la matrice B qui représente la transposée de la
matrice A.
4. Affiche la somme de chaque colonne de B.
5. Affiche la matrice A ligne par ligne, et la matrice B colonne par
colonne.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXERCICE (SOLUTION)
228
Algorithme Opérations_Matrice1
Variable i, j, n, m, S, Max : entier
A Tableau[20,30] : entier
B Tableau[30,20] : entier
Moy : réel
Début
{1}
Répéter
Ecrire("Donner n entre 1 et 20 et m entre 1 et 30")
Lire(n, m)
Jusqu’à (n>0) et (n<21) et (m>0) et (m<31)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXERCICE (SOLUTION)
229
{lecture par ligne}
Pour i de 0 à n-1 Faire
Pour j de 0 à m-1 Faire
Ecrire("Donner un élément")
Lire(A[i,j])
FinPour
FinPour
{lecture par colonne}
Pour j de 0 à m-1 Faire
Pour i de 0 à n-1 Faire
Ecrire("Donner un élément")
Lire(A[i,j])
FinPour
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXERCICE (SOLUTION)
230
{2}
S  0
Max  A[1,1]
Pour i  1 à n-1 Faire
Pour j  1 à m-1 Faire
S  S + A[i,j]
Si (A[i,j] > Max) Alors Max  A[i,j] Finsi
FinPour
FinPour
Moy  S/(n*m)
{Affichage}
Ecrire("Moy=", Moy, " Max=", Max)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXERCICE (SOLUTION)
231
{3}
Pour i de 0 à n-1 Faire
Pour j de 0 à m-1 Faire
B[j,i]  A[i,j]
FinPour
FinPour
{4}
Pour j de 0 à n-1 Faire
{faire le travail pour toutes les n colonnes}
S  0
Pour i de 0 à m-1 Faire
S  S + B[i,j] {calculer la somme pour une colonne j}
FinPour
{Afficher la somme pour une colonne j}
Ecrire("la somme des éléments de la colonne", j, " de la
matrice B est :", S)
FinPour
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXERCICE (SOLUTION)
232
{5}
{Affichage de A ligne par ligne}
Pour i de 0 à n-1 Faire
Pour j de 0 à m-1 Faire
Ecrire("A[",i, ", ",j, "]= ", A[i,j])
FinPour
FinPour
{Affichage de B colonne par colonne}
Pour j de 0 à n-1 Faire
Pour i de 0 à m-1 Faire
Ecrire("B[",i, ", ",j, "]= ", B[i,j])
FinPour
FinPour
Fin
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXERCICE
233
 Etant donnée une matrice carrée d’entiers A de taille n (n≤20),
Ecrire un algorithme qui :
1. Lit (remplit) les valeurs de la matrice A.
2. Construit la matrice B comme suit : la matrice contient les
valeurs de la matrice A, ensuite on met la valeur de l’indice
de ligne sur les éléments de la diagonale principale et enfin
la valeur de l’indice de colonne sur les éléments de la
diagonale secondaire.
3. Calcule SP : somme des éléments de la diagonale principale
de B et PS produit des éléments de la diagonale secondaire
de B.
4. Affiche la matrice A colonne par colonne et la matrice B
ligne par ligne et les valeurs de SP et PS.
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx

Contenu connexe

Similaire à Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx

introduction microinformatiques olvay.ppt
introduction microinformatiques olvay.pptintroduction microinformatiques olvay.ppt
introduction microinformatiques olvay.ppt
NesrineLaradji
 
Histoire Informatique Et Hackers
Histoire Informatique Et HackersHistoire Informatique Et Hackers
Histoire Informatique Et HackersPatrick Plante
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Trésor-Dux LEBANDA
 
Chapitre 1 Définitions et vocabulaires de base.pdf
Chapitre 1 Définitions et vocabulaires de base.pdfChapitre 1 Définitions et vocabulaires de base.pdf
Chapitre 1 Définitions et vocabulaires de base.pdf
YounesAziz3
 
Notions IHM
Notions IHMNotions IHM
Notions IHM
lecolededesign
 
Notions ihm
Notions ihmNotions ihm
Notions ihm
Laurent Neyssensas
 
Informatique, web... Préparation au C2i
Informatique, web... Préparation au C2iInformatique, web... Préparation au C2i
Informatique, web... Préparation au C2i
Clément Dussarps
 
Technologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logiciellesTechnologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logicielles
Frédéric Simonet
 
Des ordinateurs et des hommes : les interfaces homme-machine
Des ordinateurs et des hommes : les interfaces homme-machineDes ordinateurs et des hommes : les interfaces homme-machine
Des ordinateurs et des hommes : les interfaces homme-machineVincent Mabillot
 
Linux_history.pdf
Linux_history.pdfLinux_history.pdf
Linux_history.pdf
jaweb1
 
Embedded intro 2006
Embedded intro 2006Embedded intro 2006
Embedded intro 2006mcbinene
 
Cours en maintenance pc
Cours  en maintenance pcCours  en maintenance pc
Cours en maintenance pc
mohamednacim
 
resume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdfresume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdf
FootballLovers9
 
COURS INTELLIGENCE ARTIFICIELLE.pptx
COURS INTELLIGENCE ARTIFICIELLE.pptxCOURS INTELLIGENCE ARTIFICIELLE.pptx
COURS INTELLIGENCE ARTIFICIELLE.pptx
PROF ALAIN NDEDI
 
Expose sur l' informatique ok
Expose sur l' informatique okExpose sur l' informatique ok
Expose sur l' informatique okNICKYKROU
 
L1 Cours Numérique & Société
 L1 Cours Numérique & Société L1 Cours Numérique & Société
L1 Cours Numérique & Société
Amar LAKEL, PhD
 
Introduction du séminaire IoT EISTI du 14 avril 2016
Introduction du séminaire IoT EISTI du 14 avril 2016Introduction du séminaire IoT EISTI du 14 avril 2016
Introduction du séminaire IoT EISTI du 14 avril 2016
Christophe BRUNSCHWEILER
 
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / SmileSéminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
Smile I.T is open
 
Introduction à l’internet des objets
Introduction à l’internet des objets Introduction à l’internet des objets
Introduction à l’internet des objets
bilele
 
Conférence les technologies du numérique st exupéry 8 nov. 2017
Conférence les technologies du numérique st exupéry 8 nov.  2017Conférence les technologies du numérique st exupéry 8 nov.  2017
Conférence les technologies du numérique st exupéry 8 nov. 2017
SinGuy
 

Similaire à Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx (20)

introduction microinformatiques olvay.ppt
introduction microinformatiques olvay.pptintroduction microinformatiques olvay.ppt
introduction microinformatiques olvay.ppt
 
Histoire Informatique Et Hackers
Histoire Informatique Et HackersHistoire Informatique Et Hackers
Histoire Informatique Et Hackers
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
 
Chapitre 1 Définitions et vocabulaires de base.pdf
Chapitre 1 Définitions et vocabulaires de base.pdfChapitre 1 Définitions et vocabulaires de base.pdf
Chapitre 1 Définitions et vocabulaires de base.pdf
 
Notions IHM
Notions IHMNotions IHM
Notions IHM
 
Notions ihm
Notions ihmNotions ihm
Notions ihm
 
Informatique, web... Préparation au C2i
Informatique, web... Préparation au C2iInformatique, web... Préparation au C2i
Informatique, web... Préparation au C2i
 
Technologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logiciellesTechnologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logicielles
 
Des ordinateurs et des hommes : les interfaces homme-machine
Des ordinateurs et des hommes : les interfaces homme-machineDes ordinateurs et des hommes : les interfaces homme-machine
Des ordinateurs et des hommes : les interfaces homme-machine
 
Linux_history.pdf
Linux_history.pdfLinux_history.pdf
Linux_history.pdf
 
Embedded intro 2006
Embedded intro 2006Embedded intro 2006
Embedded intro 2006
 
Cours en maintenance pc
Cours  en maintenance pcCours  en maintenance pc
Cours en maintenance pc
 
resume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdfresume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdf
 
COURS INTELLIGENCE ARTIFICIELLE.pptx
COURS INTELLIGENCE ARTIFICIELLE.pptxCOURS INTELLIGENCE ARTIFICIELLE.pptx
COURS INTELLIGENCE ARTIFICIELLE.pptx
 
Expose sur l' informatique ok
Expose sur l' informatique okExpose sur l' informatique ok
Expose sur l' informatique ok
 
L1 Cours Numérique & Société
 L1 Cours Numérique & Société L1 Cours Numérique & Société
L1 Cours Numérique & Société
 
Introduction du séminaire IoT EISTI du 14 avril 2016
Introduction du séminaire IoT EISTI du 14 avril 2016Introduction du séminaire IoT EISTI du 14 avril 2016
Introduction du séminaire IoT EISTI du 14 avril 2016
 
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / SmileSéminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
 
Introduction à l’internet des objets
Introduction à l’internet des objets Introduction à l’internet des objets
Introduction à l’internet des objets
 
Conférence les technologies du numérique st exupéry 8 nov. 2017
Conférence les technologies du numérique st exupéry 8 nov.  2017Conférence les technologies du numérique st exupéry 8 nov.  2017
Conférence les technologies du numérique st exupéry 8 nov. 2017
 

Plus de OlyvierNzighou1

Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
OlyvierNzighou1
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
OlyvierNzighou1
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup management
OlyvierNzighou1
 
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt
OlyvierNzighou1
 
Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.
OlyvierNzighou1
 
Support GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxSupport GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptx
OlyvierNzighou1
 
1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptx1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptx
OlyvierNzighou1
 
Codage_Information.pptx
Codage_Information.pptxCodage_Information.pptx
Codage_Information.pptx
OlyvierNzighou1
 
Algebre_Boole-1.pptx
Algebre_Boole-1.pptxAlgebre_Boole-1.pptx
Algebre_Boole-1.pptx
OlyvierNzighou1
 
Cybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxCybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptx
OlyvierNzighou1
 
Présentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxPrésentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptx
OlyvierNzighou1
 
AG-15-12-2023.ppt
AG-15-12-2023.pptAG-15-12-2023.ppt
AG-15-12-2023.ppt
OlyvierNzighou1
 
Gestion_de_projetOK.pptx
Gestion_de_projetOK.pptxGestion_de_projetOK.pptx
Gestion_de_projetOK.pptx
OlyvierNzighou1
 

Plus de OlyvierNzighou1 (13)

Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup management
 
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt
 
Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.
 
Support GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxSupport GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptx
 
1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptx1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptx
 
Codage_Information.pptx
Codage_Information.pptxCodage_Information.pptx
Codage_Information.pptx
 
Algebre_Boole-1.pptx
Algebre_Boole-1.pptxAlgebre_Boole-1.pptx
Algebre_Boole-1.pptx
 
Cybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxCybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptx
 
Présentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxPrésentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptx
 
AG-15-12-2023.ppt
AG-15-12-2023.pptAG-15-12-2023.ppt
AG-15-12-2023.ppt
 
Gestion_de_projetOK.pptx
Gestion_de_projetOK.pptxGestion_de_projetOK.pptx
Gestion_de_projetOK.pptx
 

Dernier

Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
caggoune66
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
Billy DEYLORD
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 

Dernier (13)

Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 

Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx

  • 1. Nous formons les experts de demain ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE Reproduction interdite Nous formons les experts de demain ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE EDO123 - ALGORITHMES & STRUCTURES DE DONNEES Licence professionnelle informatique 1ère année - Tronc commun
  • 2. Nous formons les experts de demain ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE Reproduction interdite Nous formons les experts de demain ECOLE SUPERIEURE D’INGENIERIE ET D’INNOVATION TECHNOLOGIQUE Présentation DE L’ENSEIGNANT M. Olyvier NZIGHOU Master 2 Gestion de Projets Informatiques de l’Université de Strasbourg. Enseignant vacataire à l’IST, EPL, IAI, SUP’MANAGEMENT, ESIITECH Tél. : 066049840 / 077684285
  • 3. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Objectifs du cours 3  Apprendre les concepts de base de l'algorithmique et de la programmation impérative.  Être capable de mettre en œuvre ces concepts pour analyser des problèmes simples et écrire les algorithmes correspondants.
  • 4. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Evaluation 4  Contrôles (40%) inclus  Devoirs  Interrogations  Examen final (60%)
  • 5. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Enseignement 5  Cours Magistral  TD
  • 6. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite COMPETENCES À ACQUERIR 6  Savoir transcrire un problème en algorithmes  Savoir manipuler des structures de données  Etc.
  • 7. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Contenu du cours 7 Chapitre 1 : Introduction à l’informatique Chapitre 2 : Introduction aux algorithmes Chapitre 3 : Les instructions simples Chapitre 4 : Les instructions conditionnelles Chapitre 5 : Les instructions itératives Chapitre 6 : Les instructions de branchement Chapitre 7 : Les tableaux Chapitre 8 : Les chaînes de caractères Chapitre 9 : Les structures ou enregistrements Chapitre 10 : Les procédures et les fonctions Chapitre 11: Les pointeurs
  • 8. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 8 CHAPITRE I Introduction A L’INFORMATIQUE
  • 9. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 9  L'informatique est un domaine d'activité scientifique, technique, et industriel concernant le traitement automatique de l'information numérique par l'exécution de programmes informatiques par des machines appelées ordinateurs.
  • 10. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 10  Les champs d'application de l’informatique peuvent être séparés en deux branches :  Théorique : concerne la définition de concepts et modèles (informatique mathématique) ;  Pratique : s'intéresse aux techniques concrètes de mise en œuvre.
  • 11. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 11  En Informatique, il y’a deux axes d’études : 1. Le hardware : Matériels (concrets) 2. Le software : Logiciels (abstrait)
  • 12. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 12  INFORMATIQUE : INFORMA = INFORMATION TIQUE = AUTOMATIQUE  L'informatique est la science qui permet de traiter automatiquement et rationnellement les informations à l'aide d’une machine électronique (par exemple, un ordinateur.
  • 13. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 13  Un ordinateur est un appareil électronique qui traite les informations dans une unité centrale selon un programme enregistré en mémoire centrale.  L’Informatique est la Science du traitement automatique et rationnel de l'information, considérée comme le support des connaissances et des communications.  L’ensemble des applications de cette science, mettent en œuvre des matériels (ordinateurs) et des logiciels (programmes).
  • 14. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 14  Pratiquement dans tous les domaines qu’on peut imaginer :  Bureautique : traitement de texte, tableur, ...  Sciences : prévisions, météo, simulation ...  Contrôle : Commande de voiture, Piloter des avions, les machines, les robots, …  Médecine : imagerie médicale, opérations guidées par ordinateur...  Communication : Internet, Téléphonie, ...  … QU’EST-CE QUE L’INFORMATIQUE
  • 15. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATION 15  L’information est l’élément de connaissance susceptible d'être codé pour être conservé et traité.  Codage de l’information : 1. L’ordinateur travaille avec des informations codées en bits. 2. Le bit correspond à un état 0 ou 1. 3. L’association de 8 bits, permet de coder 256 informations (caractères). Par exemple :  01000001  Codification de la lettre A  01000011  Codification de la lettre C
  • 16. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CEQUE L’INFORMATION 16  Unité de capacité: a) 8 bits  1 octet b) 1024 octets  1 Ko (Kilo octets) c) 1024 Ko  1 Mo (Méga octets) d) 1024 Mo  1 Go (Giga octets) e) 1024 Go  1 To (Téra octets) f) 1024 To  1 Po (Péta octets) g) 1024 Po  1 Eo (Exa octets) h) 1024 Eo  1 Zo (Zettaoctets) i) 1024 Zo  1 Yo (Yottaoctets).
  • 17. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QUE SIGNIFIE LE « TERME » TRAITEMENT 17  Un traitement est l'ensemble de toutes les opérations que l'on peut effectuer sur les informations (saisie, modification, mémorisation, transmission…) afin de les rendre manipulables et utilisables.  En général, un traitement peut être schématiser comme suit :
  • 18. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 18  Un ordinateur est une machine (ensemble de circuits électronique) qui permet le traitement automatique de l’information : 1. Acquisition, stockage : acquérir et conserver de l’information, 2. Traitement : effectuer des calculs et exécuter des actions,
  • 19. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 19 3. Restitution : restituer les informations stockées.  Permet de lier « information » & « données » (0 ou 1)  Différents types d’informations : valeurs numériques (entiers non signés, entiers signés, réels,….), textes, images, sons, vidéo… codés avec des 0 ou 1. Le terme « automatique » signifie que l’ordinateur lui-même va exécuter certaines opérations définies à l’avance (sans intervention humaine). Exemple du Guichet Automatique de Banque(GAB),…
  • 20. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 20  Types d’ordinateurs :  Toute machine capable de manipuler des informations binaires peut être qualifiée d'ordinateur.  Le type d'ordinateur le plus présent sur le marché est le PC (Ordinateur personnel), toutefois il existe d'autres types d'ordinateurs (n'étant pas des PC).
  • 21. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 21
  • 22. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite COMPOSANTS DE BASE D’UN ORDINATEUR 22
  • 23. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LE PROCESSEUR (CPU, UCT) 23  Il faut se rappeler que le cœur de l’ordinateur c’est le processeur, c’est vraiment lui qui fait tous les traitements;  Le processeur n’est pas intelligent (il ne pense pas, il calcule).
  • 24. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LE PROCESSEUR (CPU, UCT) 24  Le processeur exécute un programme qui est une liste d’instructions, ces dernières sont exécutées séquentiellement.  Ces instructions du programme qui sont écrites dans un certain langage de programmation (exemple le C), sont ensuite codées en binaire qui est le langage machine qui va être exécuté par le processeur.
  • 25. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LE FONCTIONNEMENT D’UN ORDINATEUR 25
  • 26. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 50 CHAPITRE II Introduction aux algorithmes
  • 27. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite INTRODUCTION GENERALE 51  Cours initie à la notion d’algorithmique, ses concepts et ses fondements de base.  L’accent est mis également sur les structures de données nécessaires au développement algorithmique tout en insistant sur le côté pratique à travers des exemples et des exercices.
  • 28. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHME 52  La notion d'algorithme est à la base de toute la programmation informatique.  La définition la plus simple que l’on peut associer à cette notion est qu’un algorithme est une suite ordonnée d’instructions qui indique la démarche à suivre pour résoudre un problème ou effectuer une tâche.  Le mot algorithme vient du nom latinisé du mathématicien perse Alkhawarizmi, surnommé « le père de l'algèbre ».
  • 29. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 53  L’algorithmique est la science des algorithmes. Elle s’intéresse à l’art de construire des algorithmes ainsi qu’à déterminer leur validité, leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité.  L’algorithmique permet ainsi de passer d’un problème à résoudre à un algorithme qui décrit la démarche de résolution du problème.  Par conséquent, la programmation consiste à traduire un algorithme dans un langage « compréhensible » par l’ordinateur afin qu’il puisse être exécuté automatiquement.
  • 30. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 54 Etapes de développement.
  • 31. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 55  La figure ci-dessus illustre les deux phases nécessaires pour obtenir un code source :  Phase d’algorithmique qui implique la recherche et l’écriture d’un algorithme ;  Phase de programmation qui consiste à traduire l’algorithme obtenu en un programme à l’aide d’un langage de programmation (C, Java, Python,…).  Dans la première phase, on doit définir les données qu’on dispose et les objectifs qu’on souhaite atteindre, ainsi que prévoir des réponses à tous les cas possibles.
  • 32. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 56  Exemple : Résolution d’une équation de second degré ax2 + bx + c = 0  Les données sont a, b et c  Les sorties sont x1 et x2  Les cas : a = 0 et b ≠ 0, a = 0 et b = 0, a ≠ 0, ……
  • 33. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 57 Principe général  Le traitement automatique de l’information consiste à exécuter des instructions (opérations élémentaires et complexes) sur des données d’entrée afin de générer d’autres informations appelées résultats ou données de sortie. TRAITEMENT Données Résultats Entrée (Input) Sortie (Output) Principe du traitement automatisé.
  • 34. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 58 Exemple : Calcul de la moyenne d’un étudiant  Supposons qu’on doit calculer la moyenne d’un étudiant pour un ensemble de matières.  On doit donc : 1) Définir le nombre des matières concernées ainsi que les notes et les coefficients ; 2) Réaliser les opérations suivantes :  Multiplier chaque note d’une matière par son coefficient,  Calculer la somme des résultats des multiplications,  Diviser la somme obtenue par le total des coefficients, 3) Afficher le la moyenne de l’étudiant (résultat final).
  • 35. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 59 Remarque :  Lorsqu’on écrit un algorithme, les questions suivantes doivent être considérées :  Quel est le résultat attendu ?  Quelles sont les données nécessaires (informations requises) ?  Comment faire (le traitement à réaliser) ?
  • 36. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 60 Caractéristiques des algorithmes : Structure générale  Un algorithme se compose généralement de deux parties :  Partie déclarative : appelée aussi entête de l’algorithme, elle contient généralement les déclarations (des constantes, des variables, etc.).  Partie corps de l’algorithme : constituée d’une ou plusieurs séquences d’instructions faisant appel à des opérations de base à exécuter par l’ordinateur.
  • 37. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 61 Algorithme <Nom de l’algorithme> La partie déclarativ e Le corps de l’algorithme Constante <Liste des constantes avec leurs valeurs> Variable <Liste de variables suivis de leurs types> Début Fin <Bloc d’instructions> L’entête
  • 38. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 62 Les variables et les constantes  L’élément unitaire de stockage de l’information est appelé bit. Un bit ne peut avoir que deux états distincts : 0 ou 1 (vrai ou faux dans la logique).  Dans la mémoire de l’ordinateur, les données sont manipulées par groupes de 8 bits (octets), ou plus (mots de 16, 32, 64 bits,…).  Une case mémoire est donc appelée mot et pour que l’unité centrale puisse stocker une information et la retrouver dans la mémoire, chaque mot est repéré par une adresse.
  • 39. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 63  Dans la programmation, les adresses mémoire sont représentées par des noms. Le programmeur ne connait pas donc l’adresse d’une case mais plutôt son nom.  Il y a donc deux façons de voir la mémoire centrale de l’ordinateur : côté programmeur et côté ordinateur tel qu’il est illustré, à titre d’exemple, dans le schéma suivant.
  • 40. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 64 Organisation de la mémoire.
  • 41. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 65 Les variables  Une variable est une case mémoire destiné à contenir des valeurs de type défini au préalable (nombres, caractères, chaînes de caractères,…).  Elle possède un nom, un type, et un contenu qui peut être modifié au cours de l’exécution de l’algorithme. Le mot clé est : Variable
  • 42. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 66 Les constantes  La définition d’une constante est la même que celle d’une variable à la différence que sa valeur reste inchangée tout au long du déroulement (exécution) de l’algorithme. Le mot clé est: Constante
  • 43. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 67 Les variables et les constantes sont déclarées selon la syntaxe suivante : Syntaxe : Variable <nom_variable> : type Constante <NOM_CONSTANTE> = valeur Remarque :  Dans la partie déclarative, les variables et les constantes sont caractérisées essentiellement par :  Un identificateur : est un nom attribué à la variable ou à la constante, qui peut être composé de lettres et de chiffres mais sans espaces.  Un type : qui définit la nature et la taille de la variable.
  • 44. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 68 Exemple : Variable x, y : entier Constante alpha = 0.5  Dans cet exemple, nous avons déclaré :  Deux variables (x et y) de type entier, ce type est décrit dans la sous-section suivante.  Une constante (alpha) égale à la valeur 0.5 à titre d’exemple.
  • 45. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 69 Les types de base :  Le type d’une variable définit l’ensemble des valeurs que peut prendre la variable, ainsi que l’ensemble des opérations que l’on peut appliquer sur cette variable.  Il existe des types simples prédéfinis tels que : entier, réel, caractère et booléen et chaîne de caractères.
  • 46. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 70 Type entier :  C’est un type numérique représentant l’ensemble des entiers relatifs, tels que : -9, 0, 31, ….  Les opérations permises sur ce type sont : +, - , *, div (division entière) et mod (modulo ou reste de la division entière). Le mot clé est : entier Exemple : Variable x : entier
  • 47. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 71 Type réel :  C’est un type numérique aussi représentant l’ensemble des nombres réels, tels que : 0.25, -1.33, 2.5 e+10,… .  Les opérations permises sur ce type sont : +, -, * et /. Le mot clé est : réel Exemple : Variable y : réel
  • 48. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 72 Type caractère :  Ce type représente tous les caractères alphanumériques tels que : ′a′, ′A′, ′3′, ′%′, ′ ′, …  Les opérations supportées par ce type sont : =, ≠, <, <=, >, >=. Le mot clé est : caractère Exemple : Variable a : caractère
  • 49. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 73 Type booléen :  Ce type est utilisé dans la logique pour représenter les deux valeurs : vrai et faux.  Les opérations prises en charge sont : NON, ET, OU. Le mot clé est : booléen Exemple : Variable b : booléen
  • 50. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 74 Type Chaîne de caractères :  Ce type représente les mots et les phrases tels que "Algorithmique", "Cours", etc.  Le mot clé utilisé est : chaîne Exemple : Variable c : chaîne Globalement, la partie déclarative d’un algorithme peut être représentée comme suit.
  • 51. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMIQUE 75 Exemple : Variable x, y : entier z, w : réel lettre : caractère nom : chaîne Etat : booléen Constante N = 100 arobase = ′@′ mot = "bonjour"
  • 52. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CONCLUSION 76 Ce chapitre constitue une initiation aux notions basiques de l’écriture des algorithmes. La syntaxe d’un algorithme, la notion de variable et de constante, ainsi que leurs types sont définies et expliqués à travers des exemples simples. Ceci constitue pour le lecteur un prérequis de base qui lui permettra de comprendre la notion d’instructions algorithmiques dans les prochains chapitres.
  • 53. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 77 CHAPITRE III LES INSTRUCTIONS SIMPLES
  • 54. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite INTRODUCTION 78  Un algorithme, par définition, est un ensemble d’instructions qui peuvent être simples ou complexes.  Dans ce chapitre, on s’intéressera aux instructions simples notamment : les instructions d’affectation, de lecture et d’écriture.
  • 55. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’AFFECTATION 79  Cette instruction est élémentaire en algorithmique, elle permet d’assigner une valeur à une variable selon la syntaxe suivante : variable  expression  Une instruction d’affectation est exécutée comme suit : 1. Evaluation de l’expression située à droite de l’instruction, 2. Affectation du résultat à la variable située à gauche de l’instruction.  L’expression peut être :  une constante : c  10  une variable : v  x  une expression arithmétique : e  x + y  une expression logique : d  a OU b
  • 56. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’AFFECTATION 80 Remarque :  Une constante ne figure jamais à gauche d’une instruction d’affectation. Exemple d’instruction fausse : Constante z = 1 z  2 « Faux »  Après une affectation, l’ancien contenu d’une variable est substitué (écrasé) par le nouveau contenu. Exemple : Variable a : entier a  1 a  2 Après la deuxième affectation, la valeur de a est devenue 2 (la valeur 1 est écrasée).
  • 57. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’AFFECTATION 81  Une instruction d’affectation doit se faire entre deux types compatibles. Exemple : Variable x, y : entier z : réel a, b : caractère Instructions correctes Instructions incorrectes x  y y  x z  x a  b b  a x  z x  a b  y a  z
  • 58. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’AFFECTATION 82  Les expressions arithmétiques ou logiques sont composées d’au moins deux termes reliés par un ou plusieurs opérateurs dont on peut distinguer : a) Les opérateurs arithmétiques (par ordre de priorité) : ^ : Puissance (exposant) * , / , mod : Multiplication, Division et Modulo + , - : Addition et Soustraction
  • 59. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’AFFECTATION 83 b) Les opérateurs logiques ou booléens : NON : Non logique (négation) ET : Et logique (conjonction) OU : Ou logique (disjonction) NON ET : négation de conjonction NON OU : négation de disjonction A B A ET B A OU B NON A VRAI VRAI VRAI VRAI FAUX VRAI FAUX FAUX VRAI FAUX FAUX VRAI FAUX VRAI VRAI FAUX FAUX FAUX FAUX VRAI
  • 60. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’AFFECTATION 84 c) Les opérateurs de comparaison ou relationnels : > , >= : supérieur et supérieur ou égal < , <= : inférieur et inférieur ou égal = , ≠ (ou < >) : égal et différent Remarque :  Les expressions logiques peuvent être composées des opérateurs logiques et/ou relationnels. Par exemple, (A < 20) ET (B >= 10) est Vrai si A est inférieur à 20 et B est égal ou supérieur à 10, et faux sinon.
  • 61. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION de lecture 85  Cette instruction est très primordiale dans un algorithme.  Elle permet de lire des valeurs en entrée (input) et les affecter aux variables stockées dans la mémoire.  Les valeurs affectées sont souvent des données introduites à partir d’un périphérique d’entrée tel que le clavier. Syntaxe : Lire(var1, var2,…) Exemple : Lire(x) : lit et stocke une valeur donnée dans la case mémoire associée à x. Lire(x,y) : lit et stocke deux valeurs, la première dans x et la deuxième dans y.
  • 62. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION de lecture 86 Illustration : Opération de lecture
  • 63. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’ecriture 87  Cette instruction est aussi d’une grande importance dans les algorithmes.  Elle permet d’écrire en sortie (output) les données résultant d’un traitement effectué par l’algorithme (valeur, texte, …) en les affichant par exemple sur un périphérique de sortie tel que l’écran. Syntaxe : Ecrire (var1, var2, expr1, expr2, …)
  • 64. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION D’ecriture 88 Remarque :  Dans le cas d’écriture d’une expression, c'est le résultat d’évaluation de cette expression qui est affiché et non pas l’expression elle-même. Par exemple : Soient deux variables x et y tel que x = 5 et y = 7, l’instruction : Ecrire(x + y) Affiche en sortie le résultat d’addition de x et y (soit 12).
  • 65. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’INSTRUCTION d’ECRITURE 89 Illustration : Opération d’écriture
  • 66. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXEMPLE D’ALGORITHME contenant les trois instructions PRECEDENTES 90 Algorithme Moyenne_deux_réels Variable x, y, z : réel Début Ecrire(″Donner la première valeur : ″) Lire(x) Ecrire(″Donner la deuxième valeur : ″) ; Lire(y) z  (x + y)/2 Ecrire (″La moyenne est : ″, z) // On peut remplacer les deux dernières instructions par une seule : Ecrire (″La moyenne est : ″, (x + y)/2 ) // dans ce cas on a pas besoin de z Fin  Dans cet algorithme, si l’utilisateur introduit 10 pour x et 20 pour y alors l’affichage sera : La moyenne est : 15
  • 67. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CONCLUSION 91  Dans ce chapitre, nous avons présenté les instructions algorithmiques fondamentales à savoir l’affectation, la lecture et l’écriture.  Ces trois instructions simples sont incontournables dans l’écriture d’un algorithme et constituent l’un des moyens les plus simples qui permettent au programmeur d’interagir avec son ordinateur à travers des actions d’entrées/sorties.
  • 68. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 92 CHAPITRE IV instructions conditionnelles (les alternatives)
  • 69. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite INTRODUCTION 93  Les algorithmes comportent généralement deux types d’instructions :  Les instructions simples : qui permettent la manipulation des variables telles que l’affectation, la lecture et l’écriture.  Les instructions de contrôle : qui précisent l’enchainement chronologique des instructions simples.  C’est en particulier le cas des instructions conditionnelles ou les tests.
  • 70. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Structure d’un test : forme simple 94  Il existe deux formes de test : forme simple (ou réduite) et forme complète.  Dans la forme simple (ou réduite), une action qui correspond à une ou plusieurs instructions, est exécuté si une condition est vérifiée.  Sinon l’algorithme passe directement au bloc d’instruction qui suit immédiatement le bloc conditionnel.
  • 71. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 95 Si (condition) Alors Instruction(s) //actions Finsi Structure d’un test : forme simple
  • 72. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 96 Remarque :  La condition évaluée après l’instruction « SI » est une variable ou une expression booléenne qui, à un moment donné, est vraie ou fausse. Par exemple : x = y, x <= y x  5 y  9  Dans cet exemple, le message ″x est égale à y″ ne sera pas affiché puisque la condition (x = y) n’est pas vérifiée. Si (x = y) Alors Ecrire(″x est égale à y″) Finsi Structure d’un test : forme simple
  • 73. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 97  La forme complète permet de choisir entre deux actions selon qu’une condition est vérifiée ou non. Si (condition) Alors Instruction(s) 1 Sinon Instruction(s) 2 Finsi Structure d’un test : forme complète
  • 74. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 98 Remarque :  Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être exprimées sous la forme d’une simple comparaison.  Par exemple, la condition x ∈ [0, 1[ s’exprime par la combinaison de deux conditions x >= 0 et x < 1 qui doivent être vérifiées en même temps.  Pour combiner ces deux conditions, on utilise les opérateurs logiques. Ainsi, la condition x ∈ [0, 1[ pourra s’écrire sous la forme : (x >= 0) ET (x < 1).  Cette dernière est appelée une condition composée ou complexe. Structure d’un test : forme complète
  • 75. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 99 Exemple (sur la forme complète d’un test) : x  5 y  9  Avec cette forme, on peut traiter les deux cas possibles. Si la condition (x=y) est vérifiée, le premier message est affiché, si elle n’est pas vérifiée, le deuxième message est affiché. Si (x = y) Alors Ecrire(″x est égale à y″) Sinon Ecrire (″x est différente de y″) Finsi Structure d’un test : forme complète
  • 76. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 100  La forme « Si … Alors … Sinon » permet deux choix correspondants à deux traitements différents.  Dans d’autres situations, on pourra avoir plus de deux cas, ce qui rend cette alternative insuffisante pour traiter tous les cas possibles.  La forme complète permet de choisir entre plusieurs actions en imbriquant des formes simples selon la syntaxe ci-dessous. Structure d’un test : tests imbriqués
  • 77. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 101 Si (condition1) Alors Traitement 1 Sinon Si (condition2) Alors Traitement 2 Sinon Si (condition3) Alors Traitement 3 … Sinon Traitement N Finsi Finsi Finsi Structure d’un test : tests imbriqués
  • 78. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 102 Exemple (Etat de l’eau) :  Dans les conditions normales de température et de pression, l’eau est sous forme de glace si la température est inférieure ou égale à 0° C, sous forme de liquide si la température est comprise entre 0° C et 100° C et sous forme de vapeur au-delà de 100° C.  Ecrivons l’algorithme qui permet de vérifier l’état de l’eau selon sa température. Structure d’un test : tests imbriqués
  • 79. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 103 Algorithme Etat_Eau Variable t : Réel Début Ecrire("Donner la température de l’eau :") Lire(t) Si (t <= 0) Alors Ecrire("Etat solide") Finsi Si ((t > 0) ET (t < 100)) Alors Ecrire("Etat liquide") Finsi Si (t >= 100) Alors Ecrire("Etat gazeux") Finsi Fin Structure d’un test : tests imbriqués
  • 80. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 104  Cet algorithme est correct mais il évalue les trois conditions qui portent sur la même variable et qui sont exclusives.  En effet, si (t <= 0), alors on ne peut pas avoir (t>= 0 et t < 100) ni (t> 100).  Il est donc inutile d’évaluer les deux dernières conditions si la première est vérifiée, ou d’évaluer la dernière condition si la deuxième est vérifiée.  Pour éviter ce cas de figure, il sera préférable d’utiliser des tests imbriqués comme suit : Structure d’un test : tests imbriqués
  • 81. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 105 … Début Ecrire("Donner la température de l’eau:") Lire(t) Si (t <= 0) Alors Ecrire("Etat solide") Sinon Si (t < 100) Alors Ecrire(" Etat liquide") Sinon Ecrire("Etat gazeux") Finsi Finsi Fin Structure d’un test : tests imbriqués
  • 82. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 106 Donc, l’utilisation de tests imbriqués permet de :  Simplifier le pseudo-code : à travers l’imbrication nous n’avons utilisé que deux conditions simples au lieu de trois conditions dont une, est composée.  un algorithme (ou programme) plus simple et plus lisible.  Optimiser le temps d’exécution : dans le cas où la première condition est vérifiée, l’algorithme passe directement à la fin, sans tester le reste qui est forcément faux.  un algorithme (ou programme) plus performant à l’exécution. Structure d’un test : tests imbriqués
  • 83. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 107 Remarque :  Nous avons les équivalences suivantes : NON(A ET B) ⇔ NON(A) OU NON(B) NON(A OU B) ⇔ NON(A) ET NON(B)  Ainsi, toute structure de test avec l’opérateur logique ET peut être exprimée d’une manière équivalente avec l’opérateur logique OU et vice-versa.  Par conséquent, les deux alternatives suivantes sont équivalentes Structure d’un test : tests imbriqués
  • 84. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 108 Structure d’un test Si A ET B Alors Instruction (s) 1 Sinon Instruction(s) 2 Finsi Si NON A OU NON B Alors Instruction(s) 2 Sinon Instruction(s) 1 Finsi
  • 85. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 109  Il existe une autre variante d’instructions conditionnelles qui permet d’effectuer des actions différentes suivant les différentes valeurs que peut avoir une variable.  Cette structure est écrite comme suit : Les choix multiples
  • 86. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 110 Syntaxe : Selon (variable) Valeur1 : instruction(s) 1 Valeur2 : instruction(s) 2 … ValeurN : instruction(s) N Défaut : instruction(s) par défaut Finselon Les choix multiples
  • 87. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 111 Remarque :  Dans la structure de test à choix multiples :  L’action peut être une suite d’instructions ;  La valeur est une constante de même type que la variable ;  La partie « défaut » est exécutée si aucun des autres cas n’est vérifié ;  L’exécution des différents cas (y compris le cas par défaut) est exclusive c’est-à-dire l’exécution d’un seul cas provoque la sortie de cette structure. Les choix multiples
  • 88. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 112 Exemple :  Dans ce qui suit, le nom du jour de la semaine correspondant est affiché selon la valeur de la variable « jour ». Les choix multiples
  • 89. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 113 jour  5 Selon(jour) 1 : Ecrire("Dimanche") 2 : Ecrire("Lundi") 3 : Ecrire("Mardi") 4 : Ecrire("Mercredi") 5 : Ecrire("Jeudi") 6 : Ecrire("Vendredi") 7 : Ecrire("Samedi") Défaut : Ecrire("Numéro de jour invalide.") Finselon  Donc, l’expression « Jeudi » est affichée dans ce cas. Les choix multiples
  • 90. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 114  Dans ce chapitre, nous avons présenté le principe de la condition, suivant lequel un algorithme peut effectuer une action ou prendre une décision.  Ceci est mis en œuvre à travers les instructions conditionnelles ou tout simplement les tests avec leurs différentes formes vues précédemment. Conclusion
  • 91. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 115 CHAPITRE V instructions itératives (les boucles)
  • 92. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 116  Pour calculer la moyenne générale d’un étudiant, il faut répéter la séquence d’instructions qui permet de calculer la moyenne générale :  Lire toutes les notes (et leurs coefficients) de l’étudiant,  Calculer la somme des notes,  Diviser la somme obtenue sur le nombre (ou sur la somme des coefficients).  Si l’on veut maintenant calculer la moyenne d’un autre étudiant, les mêmes instructions doivent être répétées.  Pour N d’étudiants, il nous faudra donc répéter N fois la même séquence d’instructions. INTRODUCTION
  • 93. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 117  Il se pose deux questions importantes : 1) Comment éviter d’écrire plusieurs fois la même séquence d’instructions ? 2) Combien de fois doit-on répéter l’exécution de la séquence d’instructions pour obtenir le résultat attendu ?  Pour répondre à cette question, de nouvelles instructions de contrôle sont introduites. Il s’agit des instructions itératives (appelées aussi les boucles ou les itérations). INTRODUCTION
  • 94. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 118  Une boucle (ou itération) est une instruction de contrôle qui permet de répéter plusieurs fois un ensemble d’instructions.  Généralement, deux cas sont distingués :  Le nombre de répétitions est connu.  Le nombre des répétitions est inconnu ou variable. Définition
  • 95. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 119  Lorsque le nombre de répétitions est déterminé (connu), l’utilisation de l’instruction « Pour … Faire » est privilégiée.  Une structure de boucle avec l’instruction « Pour » s’arrête une fois que le nombre de répétitions est atteint.  Cette structure possède un indice (compteur) de contrôle d’itérations caractérisé par :  une valeur initiale (vi),  une valeur finale (vf),  un pas de variation . L’instruction « Pour … Faire »
  • 96. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 120 Pour <indice> de <vi> à <vf> [Pas <val_pas>] Faire Instruction(s) FinPour  Cette structure est dite « croissante » lorsque la valeur initiale vi de l’indice est inférieure à sa valeur finale vf, le pas de variation est par conséquent positif. Autrement, elle est dite « décroissante ». L’instruction « Pour … Faire »
  • 97. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 121 L’instruction « Pour … Faire »
  • 98. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 122 L’instruction « Pour … Faire »  Exemple : un compteur croissant/décroissant Les deux algorithmes suivants comptent de 1 à N et de N à 1 respectivement. Algorithme compteur_croissant Variable i : entier Constante N=100 Début Pour i de 1 à N Faire Ecrire(i) FinPour Fin Algorithme compteur_decroissant Variable i : entier Constante N=100 Début Pour i de N à 1 Faire Ecrire(i) FinPour Fin  Remarque : Si la valeur du « pas » n’est pas précisée dans l’instruction « Pour », elle est par défaut égale à un (1). Résultat d’exécution : 1, 2, 3, …, 99, 100Résultat d’exécution : 100, 99, 98, …, 2, 1
  • 99. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 123 L’instruction « Tant que … faire »  Cette instruction permet de tester une condition et répéter le traitement associé tant que cette condition est vérifiée. Tant que (condition de réalisation) Faire Instruction(s) Fintq
  • 100. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 124 L’instruction « Tant que … faire » Exemple : Réécrivons l’algorithme précédent avec cette instruction. Variable i : entier Début i  1 Tant que (i<=100) Faire Ecrire(i) i i+1 Fintq Fin
  • 101. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 125 L’instruction « Répéter … jusqu’à »  Dans cette instruction, un traitement est exécuté au moins une fois puis sa répétition se poursuit jusqu’à ce que la condition soit vérifiée. Répéter Instruction(s) Jusqu’à (condition d’arrêt)
  • 102. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 126 L’instruction « Répéter … jusqu’à » Exemple : Soit l’algorithme suivant : Variables n, p : entier Début Répéter Ecrire("Donner un nombre :") Lire(n) p  n*n Ecrire(p) Jusqu’à (n=0) Ecrire("Fin de l’algorithme") Fin
  • 103. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 127 L’instruction « Répéter … jusqu’à »  Les instructions encadrées par les mots répéter et jusqu’à constituent le bloc de la boucle qu’il faut répéter jusqu’à ce que la condition (n=0) soit vérifiée.  Donc le nombre de répétitions de cette boucle dépend des données fournies par l’utilisateur.  Question ?  Réécrire l’algorithme précédent avec « Tant que … Faire » puis avec « Pour … Faire ».
  • 104. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 128 L’instruction « Répéter … jusqu’à »  Remarque :  Dans la boucle « Répéter … Jusqu’à », la condition telle qu’elle est exprimée ci-dessus, constitue une condition d’arrêt de la boucle ; mais réellement, cela diffère selon le langage de programmation utilisé.  Par exemple, en Pascal, la condition de cette boucle est une condition d’arrêt. Alors qu’en langage C, cette condition est exprimée en tant qu’une condition de continuation.
  • 105. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 129 La notion dE compteur  Un compteur est une variable associée à la boucle dont la valeur est incrémentée de un (1) à chaque itération.  Elle sert donc à compter le nombre d’itérations (répétitions) de la boucle.  La notion du compteur est associée particulièrement aux deux boucles : « Répéter … Jusqu’à » et « Tant que … Faire ».  Par contre, dans la boucle « Pour … Faire », c’est l’indice qui joue le rôle du compteur.
  • 106. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 130 La notion dE compteur cpt  0 Répéter instruction(s) … cpt  cpt + 1 Jusqu’à (condition d’arrêt) cpt  0 Tant que (condition de réalisation) Faire instruction(s) … cpt  cpt + 1 FinTq Bloc de la boucle
  • 107. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 131 La notion dE compteur  Remarque :  Il faut toujours initialiser le compteur avant de commencer le comptage.  La variable « cpt » (utilisée ci-dessus comme compteur), a été initialisée à zéro (0) avant le début de chaque boucle.  L’instruction « cpt  cpt +1 » incrémente la valeur de « cpt » de un (1).  Elle peut être placée n’importe où à l’intérieur du bloc de la boucle.
  • 108. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 132 La notion dE compteur  Exemple : i  0 Répéter Ecrire(i) i  i+1 Jusqu’à (i=5) i  0 Tant que (i<5) Faire Ecrire(i) i  i+1 FinTq Résultat d’exécution : 0, 1, 2, 3, 4, 5 Résultat d’exécution : 0, 1, 2, 3, 4
  • 109. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 133 La notion d’accumulation  Cette notion est fondamentale en programmation.  Elle est utilisée notamment pour calculer la somme d’un ensemble de valeurs.  L’instruction correspondante se présente ainsi : variable  variable + valeur  Cette instruction consiste à ajouter une valeur à une variable numérique, puis affecter le résultat dans la variable elle-même.  En d’autres termes, la nouvelle valeur de variable est égale à l’ancienne plus une certaine valeur.
  • 110. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 134  Exemple : calcul de la somme de n valeurs données par l’utilisateur : Variables i, n : entier som, val : réel Début Écrire ("Donner le nombre de valeurs :") Lire(n) som  0 Pour i de 1 à n Faire Écrire("Enter une valeur :") Lire(val) som  som + val FinPour Écrire("La somme des valeurs est égale à :", som) Fin La notion d’accumulation
  • 111. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 135 Les boucles imbriquees  Exemple : Les boucles peuvent être imbriquées les unes dans les autres. Deux ou plusieurs boucles imbriquées peuvent être aussi les mêmes ou différentes. Pour i de 1 à 2 Faire Écrire("i = ",i) Pour j de 1 à 3 Faire boucle 1 Écrire("j = ",j) boucle 2 FinPour FinPour
  • 112. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 136 Les boucles imbriquées  Dans l’exemple ci-dessus, chaque itération de la boucle extérieure (boucle 1) exécute la boucle intérieure (boucle 2) jusqu’à la fin avant de passer à l’itération suivante, et ainsi de suite jusqu’à la fin des deux boucles.  Ainsi, le résultat d’exécution peut être représenté comme suit : i = 1 j = 1 j = 2 j = 3 i = 2 j = 1 j = 2 j = 3
  • 113. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 137 Les boucles imbriquées  Remarque :  Des boucles peuvent être imbriquées ou successives.  Cependant, elles ne peuvent jamais être croisées.  Par exemple, l’algorithme suivant est faux puisqu’il comporte deux boucles croisées :
  • 114. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 138 Les boucles imbriquées Variables i, j : entier Début i1 j1 Répéter Écrire(i) Répéter Écrire(j) ii+1 Jusqu’à (i>2) jj+1 Jusqu’à (j>3) Fin
  • 115. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 139 Conclusion  Ce chapitre a été consacré aux structures itératives ou boucles qui permettent de répéter l’exécution d’une séquence d’instructions plusieurs fois selon un nombre fixe ou certains critères dont l’utilisation a été explicitée à travers différents exemples.  Ainsi, ces instructions sont d’une grande importance dans la manipulation de certaines structures de données telles que les tableaux que nous aborderons dans le prochain chapitre.
  • 116. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 140 CHAPITRE VI L’Instruction de Branchement (Aller à - SAUT)
  • 117. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 141  L’instruction de branchement permet de sauter à un endroit précis du programme. Cet endroit est repéré par une étiquette. Branchement – SAUT Algorithme Exemple1 Variable x : entier Début Lire(x) aller à 1 Ecrire(x+5) 1 : Ecrire(x-5) Fin On fait référence à l’instruction sur laquelle on saute par <Etiq>:<Instruciton>
  • 118. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 142 C’est quoi le résultat de l’algorithme ? Dérouler pour x = 8 Branchement – SAUT Algorithme Exemple1 Variable x : entier Début Lire(x) aller à 1 x  x + 5 1 : x x – 5 Ecrire(x) Fin Instruction x Lire(x) 8 Aller à 1  x  x - 5 8 3 Ecrire (x) 3 Dans ce cas, on parle de saut inconditionnel
  • 119. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 143 C’est quoi le résultat de l’algorithme ?  Dérouler pour x = 8 Branchement – SAUT Algorithme Exemple2 Variable x : entier Début Lire(x) Si (x > 10) alors aller à 1 Sinon allers à 2 Finsi 1 : x x + 5 aller à 3 2 : x x - 5 3 : Ecrire(x) Fin Instruction x Lire(x) 8 Si(x > 10) => faux => Sinon Aller à 2  x  x - 5 8 3 Ecrire (x) 3
  • 120. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 144 C’est quoi le résultat de l’algorithme ?  Dérouler pour x = 12 Branchement – SAUT Algorithme Exemple2 Variable x : entier Début Lire(x) Si (x > 10) alors aller à 1 Sinon allers à 2 Finsi 1 : x x + 5 aller à 3 2 : x x - 5 3 : Ecrire(x) Fin Dans ce cas, on parle de saut conditionnel Instruction x Lire(x) 12 Si (x > 10) => true =>Aller à 1  x  x + 5 12 17 Aller à 3  Ecrire (x) 17
  • 121. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 145 Récrire l’Algorithme en utilisant les branchements ? Branchement – SAUT Algorithme Exemple3 Variable x, i : entier Début Lire(x) Pour i de 1 à x faire Ecrire(i) FinPour Fin On peut remplacer les boucles par des instruction de branchement Algorithme Exemple4 Variable x, i : entier Début Lire(x) i  1 1 : Si( i > x) Alors aller à 2 Finsi Ecrire (i) i  i + 1 aller à 1 2 : Fin  Remplacer une Boucle en utilisant les branchements
  • 122. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 146  L’instruction de branchement (ou de saut) permet de sauter sur une instruction du programme afin de continuer l’exécution à partir de cette dernière (instruction).  Pour pouvoir sauter sur une instruction, il faut utiliser une étiquette pour désigner cette instruction.  Il y a deux types de branchement :  Instruction de branchement inconditionnel : c’est un saut sans condition qui ne fait pas partie du bloc du Si ou du Sinon.  Instruction de branchement conditionnel : c’est un saut soumis à une condition. Dans ce cas, cette instruction fait partie du bloc Si ou du bloc Sinon. CONCLUSION
  • 123. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 147 CHAPITRE VII Les tableaux
  • 124. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite INTRODUCTION 148  Supposons que l’on a besoin de stocker et de manipuler les notes de 100 étudiants. On doit, par conséquent, déclarer 100 variables : n1, n2,…, n100.  Vous pouvez remarquer que c’est un peu lourd de manipuler une centaine de variables (avec 100 fois de lecture/écriture…).  Imaginons maintenant le cas pour une promotion de 1000 étudiants, alors là notre cas devient un vrai problème.  En algorithmique (et en programmation), on peut regrouper toutes ces variables en une seule structure qui s’appelle tableau.
  • 125. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite INTRODUCTION 149  Un tableau est un ensemble de variables de même type ayant toutes le même nom. Suite à cette définition, la question suivante se pose :  Comment peut-on différencier des variables ayant le même nom ?  La réponse est dans la notion du tableau lui-même où chaque élément est repéré par un indice.
  • 126. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite INTRODUCTION 150  Ce dernier est un numéro (généralement un entier) qui permet de différencier chaque élément du tableau des autres.  Ainsi, les éléments du tableau ont tous le même nom, mais pas le même indice.  Pour accéder à un élément d’un tableau, on utilise le nom du tableau suivi de l’indice de l’élément entre crochets.
  • 127. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite INTRODUCTION 151 Exemple :  Soit le tableau T contenant les valeurs suivantes :  5, 10, 29, 3, et 14.  L’organisation du tableau T dans la mémoire peut être représentée comme suit : i = 0 i = 1 i = 2 i = 3 i = 4 T[0] = 5 T[1] = 10 T[2] = 29 T[3] = 3 T[4] = 14 Valeurs : Indices : T
  • 128. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Tableaux à une seule dimension 152  Dans ce type de tableaux, chaque élément est accessible (pour lecture ou modification) par un seul indice.  Déclaration La syntaxe de déclaration d’un tableau à une seule dimension est la suivante : <nom_du_tableau> Tableau[taille] : Type Exemple : Notes Tableau[100] : Réel
  • 129. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Tableaux à une seule dimension 153 Remarque :  L’indice d’un élément dans un tableau, peut être exprimé comme un nombre, mais aussi il peut être exprimé comme une variable ou une expression calculée.  La valeur de l’indice doit être toujours :  Supérieur ou égal à 0 : dans quelques langages, le premier élément d’un tableau porte l’indice 1 (comme en Pascal). Mais dans d’autres, comme c’est le cas en langage C, la numérotation des indices commence à zéro.  Par exemple Notes[1] est le deuxième élément du tableau Notes.
  • 130. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Tableaux à une seule dimension 154  de type entier : quel que soit le langage, l’élément Notes[1,…] n’existe jamais.  Inférieur ou égal au nombre des éléments du tableau (moins 1 si l’on commence à zéro) : En langage C, si un tableau T est déclaré comme ayant 10 éléments, la présence, dans une ligne du corps de l’algorithme, de l’expression T[10] déclenchera automatiquement une erreur.
  • 131. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 155  Une fois déclaré, un tableau peut être manipulé comme un ensemble de variables simples. Les trois manipulations de base sont l’affectation, la lecture et l’écriture. L’affectation :  L’affectation d’une valeur v à un élément i d’un tableau T de type numérique, se fait par : T[i]  v  Par exemple, l’instruction : T[0]  5 affecte la valeur 5 au premier élément du tableau T. i = 0 i = 1 i = 2 i = 3 i = 4 5 Valeurs : Indices : T
  • 132. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 156  Supposons maintenant que l’on veut affecter la même valeur à tous les éléments du tableau T, on utilisera pour cela une boucle : Pour i de 0 à n-1 Faire // n est la taille de T T[i]  5 Finpour  Cette boucle permet de parcourir tout le tableau T en affectant à chaque élément la valeur 5. i = 0 i = 1 i = 2 i = 3 i = 4 5 5 5 5 5 Valeurs : Indices : T
  • 133. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 157 La lecture :  Il est possible aussi d’affecter des valeurs aux éléments d’un tableau par une instruction de lecture. Exemple : Ecrire("Entrer une note :") Lire(T[0])  Dans cet exemple, la valeur saisie est affectée au premier élément du tableau T. i = 0 i = 1 i = 2 i = 3 i = 4 0 Valeurs : Indices : T
  • 134. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 158 L’écriture :  De même que la lecture, l’écriture de la valeur d’un élément du tableau s’écrira comme suit : Ecrire(T[i]).  Cette instruction permet d’afficher la valeur de l’élément i du tableau T. Remarque :  Les éléments d’un tableau sont manipulés de la même façon que les variables simples. S’il s’agit d’un tableau de type numérique, les éléments peuvent être utilisés dans l’évaluation des expressions numériques du genre : x (Notes[1] + Notes[2])/2 Notes[0]  Notes[0] + 1
  • 135. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 159 Exemple : Soit Notes un tableau de valeurs réelles tel qu’il est illustré dans le schéma qui suit. i = 0 i = 1 i = 2 i = 3 i = 4 10 15 7 8.25 11.5 Valeurs : Indices : T  L’exécution de l’instruction : x  (Notes[1] + Notes[2])/2 Est équivalente à l’opération : x  (15+7)/2 = 11
  • 136. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 160  Ecrivons un algorithme qui permet de lire des valeurs saisies par l’utilisateur dans un tableau de taille 20, et les afficher par la suite.
  • 137. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 161 Algorithme Application1 Variable i : Entier Tab Tableau[20] : Réel Début Pour i de 0 à 19 Ecrire("Donner une valeur :") Lire(Tab[i]) FinPour Pour i de 0 à 19 Ecrire("Valeur ", i, "=", Tab[i]) FinPour Fin
  • 138. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 162  L’exécution du programme correspondant à l’algorithme ci- dessus, permet d’initialiser le tableau Tab comme suit :  Après la fin de la 1ère boucle (boucle de lecture) : i = 0 i = 1 … i = 18 i = 19 5 34 … 14.5 60 Valeurs : Indices : T
  • 139. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 163  Après la fin de la 2ème boucle (boucle d’affichage), on aura, sur écran par exemple, l’affichage suivant : Valeur 0 = 5 Valeur 1 = 34 … Valeur 18 = 14.5 Valeur 19 = 60  Remarque : les valeurs : 5, 34, 14.5 et 60 sont un exemple d’échantillon de valeurs saisies par l’utilisateur.
  • 140. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite La recherche dans un tableau 164 La notion du drapeau :  Le drapeau (ou flag en Anglais) est une variable booléenne initialisée à Faux (drapeau baissé).  Dès qu’un évènement attendu se produit, la variable change de valeur à Vrai (drapeau levé).  Donc, la valeur finale du drapeau permet de savoir si un évènement a eu lieu ou pas.  Cela devrait s’éclairer à l’aide d’un exemple extrêmement fréquent : la recherche de l’occurrence d’une valeur dans un tableau.
  • 141. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite La recherche dans un tableau 165 Exemple :  En supposant l’existence d’un tableau comportant N valeurs entières.  On doit écrire un algorithme qui lit un nombre donné et informe l’utilisateur de la présence ou de l’absence de ce nombre dans le tableau.  La première étape consiste à écrire les instructions de lecture du nombre N et de parcours du tableau :
  • 142. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite La recherche dans un tableau 166 Variables val, i, N : Entier Tab Tableau[20] : Entier Début Lire(N) Ecrire("Entrer la valeur à rechercher :") Lire(val) Pour i de 0 à N-1 … FinPour Fin
  • 143. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 167 Illustration : On suppose que N=6 et les valeurs saisies sont celles figurant dans le schéma suivant : i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 10 22 31 46 5 7 Valeurs : Indices :
  • 144. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 168  Revenons à l’algorithme, maintenant, il faut combler les points de la boucle (le bloc qui devra contenir les instructions de la recherche).  Évidemment, il va falloir comparer « val » à chaque élément du tableau, s’il y a une égalité quelque part, alors « val » fait partie du tableau.  Cela va se traduire, bien entendu, par l’instruction conditionnelle « Si … Alors … Sinon ».
  • 145. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 169 … Début Ecrire("Entrez la valeur à rechercher ") Lire(val) Pour i de 0 à N-1 Si (val = Tab[i]) Alors Ecrire(val, "figure") Sinon Ecrire(val, "ne figure pas") Finsi FinPour Fin
  • 146. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 170 Illustration : On suppose que la valeur à rechercher (val) est égale à 31 : i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 10 22 31 46 5 7 Valeurs : Indices : Ta b T[0] = val ? T[1] = val ? T[2] = val ? T[5] = val ? 31 ne figure pas 31 figure 31 ne figure pas … 31 ne figure pas
  • 147. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 171  On peut constater qu’on a deux possibilités :  ou bien la valeur « val » figure dans le tableau,  ou bien elle n'y figure pas.  Mais dans tous les cas, l'algorithme ne doit produire qu'une seule réponse, quel que soit le nombre d'éléments du tableau. Or, l'algorithme ci-dessus affiche autant de messages qu'il y a de valeurs dans le tableau. Il y a donc une erreur quelque part.  En fait, on ne peut savoir si la valeur recherchée existe dans le tableau ou non que lorsque le parcours du tableau est entièrement accompli.
  • 148. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 172  Pour pallier cette erreur, on doit réécrire l’algorithme en plaçant le test après la boucle et en utilisant cette fois-ci une variable booléenne (drapeau) que l’on appelle « Existe ».  Cette variable doit être gérée comme suit :  La valeur de départ de « Existe » doit être évidemment Faux (drapeau baissé).  La valeur de la variable « Existe » doit devenir Vrai (drapeau levé), si un test dans la boucle est vérifié (lorsque la valeur de « val » est rencontrée dans le tableau). Mais le test doit être asymétrique, c.à.d. qu’il ne comporte pas de « sinon ».
  • 149. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 173 … Début Ecrire("Entrez la valeur à rechercher ") Lire(val) Existe  Faux Pour i de 0 à N-1 Faire Si (val = Tab[i]) Alors Existe  Vrai Finsi Finpour Si (Existe = Vrai) Alors Ecrire(val, "fait partie du tableau") Sinon Ecrire(val, "ne fait pas partie du tableau") Finsi Fin
  • 150. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 174 Illustration : En utilisant un drapeau (variable « Existe ») : i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 10 22 31 46 5 7 Valeurs : Indices : Ta b T[0] = val ? T[1] = val ? T[2] = val ? T[5] = val ? Existe = Faux Existe = Vrai Existe = Faux … Existe = Faux
  • 151. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 175  Réécrire le même algorithme mais cette fois-ci, la boucle de recherche doit être arrêtée dès que la valeur du drapeau change.
  • 152. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 176 Algorithme vecteur Variable val, i, N : entier Existe : booléen T Tableau[50] : entier Début { lecture de val, N, et les éléments du tableau T} Ecrire("donner val : ") Lire(val) Répéter Ecrire("donner N avec 0<N<=50 : ") Lire(N) Jusqu’à (0<N) et (N<=50) Pour i de 0 à N-1 Faire Ecrire("donner T[",i,"] :") Lire(T[i]) FinPour
  • 153. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 177 {1- initialiser la variable booléenne} Existe  Faux {2- Vérification} {Initialiser l’indice de parcours sur la première valeur} i  0 {Tant que non fin des éléments et val n’existe pas} Tant que (i <= N-1) ET (Existe = Faux) Faire {cas où T[i] = val} Si (T[i] = val) Alors {Inverser la valeur de Existe} Existe  Vrai
  • 154. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 178 Sinon {cas où T[i] <> val} {avancer vers le prochain élément} i  i+1 Finsi FinTq {3- affichage de la décision} Si (Existe = Vrai) Alors Ecrire(val, "existe dans le tableau T") Sinon Ecrire(val, "n’existe pas dans le tableau T") Finsi Fin
  • 155. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 179 Qu’est-ce qu’un tri ?  Le tri est une opération consistant à ordonner un ensemble d’éléments suivant une relation d’ordre prédéfinie.  Le problème du tri est un grand classique en algorithmique. Trier un tableau numérique c’est donc ranger ses éléments en ordre croissant ou décroissant.  Il existe plusieurs algorithmes de tri, parmi lesquels le tri par sélection, tri par insertion, tri à bulles, tri par fusion, etc.  Nous illustrons dans ce qui suit deux types de tri, à savoir le tri par sélection et le tri par insertion.
  • 156. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 180 Tri par sélection  Cette technique est parmi les plus simples, elle consiste à sélectionner, pour une place donnée, l’élément qui doit y être positionné.  Par exemple pour trier un tableau en ordre croissant, on met en première position le plus petit élément du tableau et on passe à la position suivante pour mettre le plus petit élément parmi les éléments restants et ainsi de suite jusqu’au dernier.
  • 157. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 181 Exemple : Soit à trier, en ordre croissant, le tableau suivant : 25 10 13 31 22 4 2 18 Nous commençons par la recherche de la plus petite valeur et sa position. Une fois identifiée (dans ce cas, c’est le nombre 2 en 7ème position), nous l’échangeons avec le 1er élément (le nombre 25). Le tableau devient ainsi : 2 10 13 31 22 4 25 18 Nous recommençons la recherche, mais cette fois, à partir du 2ème élément (puisque le 1er est à sa position correcte). Le plus petit élément se trouve en 6ème position (le nombre 4). Nous échangeons donc le 2ème élément avec le 6ème élément :
  • 158. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 182 Nous recommençons la recherche à partir du 3ème élément (puisque les deux premiers sont maintenant bien placés), Le plus petit élément se trouve aussi en 6ème position (10), en l’échangeant avec le 3ème, ça donnera: 2 4 13 31 22 10 25 18 Nous recommençons maintenant à partir du 4ème élément et de la même façon nous procédons jusqu’à l’avant dernier : 2 4 10 31 22 13 25 18
  • 159. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 183 2 4 10 13 18 31 25 22 2 4 10 13 22 31 25 18 2 4 10 13 18 22 25 31 2 4 10 13 18 22 25 31
  • 160. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 184  Algorithmiquement, nous pouvons décrire ce processus de la manière suivante :  Boucle principale : prenant comme point de départ le premier élément, puis le second, etc. jusqu’à l’avant dernier.  Boucle secondaire : à partir de ce point de départ mouvant, nous recherchons jusqu’à la fin du tableau le plus petit élément. Une fois trouvé, nous l’échangeons avec le point de départ.  Donc, cela s’écrit :
  • 161. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 185 { boucle principale : le point de départ se décale à chaque tour } Pour i de 0 à 6 Faire { on considère provisoirement que T[i] est le plus petit élément } posmin  i { posmin est la position du minimum initialisée par i} { on examine tous les éléments suivants } Pour j de (i + 1) à 7 Faire Si (T[j] < T[posmin]) Alors posmin  j Finsi Finpour { on sait maintenant où est le plus petit élément. Il ne reste plus qu'à effectuer la permutation } temp  T[posmin] T[posmin] T[i] T[i]  temp { On a placé correctement l'élément numéro i, on passe à présent au suivant } FinPour
  • 162. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 186 Tri par insertion  Soit à trier un tableau d’éléments en ordre croissant.  Le principe de ce type de tri repose à chaque itération sur trois phases : a) On prend le premier élément dans la partie non encore triée du tableau (la clé). b) On cherche la place de la clé dans la partie déjà triée du tableau, en commençant par la droite de cette partie. c) Une fois cette place trouvée, on y insère la clé après qu’on ait décalé vers la droite tous les éléments de la partie triée dont la valeur est plus grande ou égale à la valeur de la clé.
  • 163. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 187  Il faut noter qu’initialement, la partie triée est constituée seulement du premier élément du tableau, autrement dit, le processus du tri commence à partir du deuxième élément.  Exemple : Soit à trier, en ordre croissant, le même tableau précédent en appliquant le tri par insertion : 25 10 13 31 22 4 2 18 i = 1 Partie non encore triée Clé
  • 164. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 188 On décale le 1er élément de la partie triée vers la droite puisque sa valeur est supérieure à la clé. Cette dernière est déplacée à la 1ère position : 10 25 13 31 22 4 2 18 On recommence le processus avec une nouvelle clé. Le 1er élément à droite de la partie triée (25) est décalé vers la droite puisque sa valeur est supérieure à la clé. Le 2ème élément ne sera pas décalé puisqu’il est inférieur à la clé. Par conséquent, la clé est insérée dans la 2ème position du tableau : i = 2 10 13 25 31 22 4 2 18 i = 3
  • 165. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 189 On ne déplace pas cette clé (31) puisque sa valeur est supérieure à celles des éléments qui la précèdent. 10 13 25 31 22 4 2 18 i = 4 On décale les deux premiers éléments (31 et 25) vers la droite et la clé est insérée à la 3ème position : 10 13 22 25 31 4 2 18 i = 5
  • 166. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 190 On décale tous les éléments de la partie triée vers la droite puisque leurs valeurs sont supérieures à celle de la clé. Cette dernière est déplacée à la 1 ère position : 4 10 13 22 25 31 2 18 i = 6 La même opération est répétée pour cette clé (2) : 2 4 10 13 22 25 31 18 i = 7 Les trois éléments (22,25 et 31) sont décalés vers la droite et la clé est déplacée vers la 5ème position 2 4 10 13 18 22 25 31
  • 167. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Le tri d’un tableau 191 … Début Pour i de 1 à N-1 Faire { on commence par le 2ème élément (début de la partie non triée)} clé  T[i] j  i - 1 { indice du 1er élément à droite de la partie triée } Tant que ((j >= 0) ET (clé < T[j])) Faire T[j +1]  T[j] { Décalage } j  j - 1 FinTq T[j +1]  clé { Insertion de la clé } FinPour Fin
  • 168. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Comparaison 192  Dans l’algorithme de tri par sélection, nous avons dans tous les cas, la boucle interne qui est exécutée pour i=1, 2, 3 jusqu’à i=(n-1) par conséquent, nous avons (n-1) + (n-2) + (n-3) + … + 1 étant n(n-1)/2 exécutions.  Par exemple, pour un tableau de 100 éléments, la boucle est exécutée 4950 fois dans tous les cas.
  • 169. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Comparaison 193  Dans l’algorithme de tri par insertion, nous avons dans le pire des cas un tableau trié à l’envers (en ordre décroissant dans ce cas), et la boucle interne est exécuté (n-1) + (n-2) + (n-3) + … + 1 fois, étant n(n-1)/2 exécutions au maximum.  Au meilleur des cas, le tableau est trié en ordre voulu (croissant dans ce cas) et la boucle interne ne s’exécutera jamais.  En moyenne, le nombre d’exécutions est n(n-1)/4. Par exemple, pour un tableau de 100 éléments, la boucle est exécutée 4950 fois au maximum et 2475 en moyenne.
  • 170. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 195 Problème 2 : Soit une classe de 5 étudiants qui prennent des cours dans 10 modules. Quelle est la structure de données qui nous permet de sauvegarder les notes des 5 étudiants. Solution : La solution idéale est d’avoir un tableau à deux dimensions (une matrice) de 5 lignes (les étudiants) et de 10 colonnes (les modules). Une cellule repérée par la ligne i et la colonne j définit la note de l’étudiant i dans le module j. Déclaration : Variable Notes Tableau[5,10] : réels
  • 171. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 196 Ligne 0 Ligne 1 Ligne 2 Ligne 3 Ligne 4 Colonne 0 Colonne 8 Colonne 7 Colonne 1  La valeur entourée indique l’élément désigné par la ligne 0 et la colonne 3  Notes [0,3].  Pour modifier cet élément on écrit : Lire(Notes[0,3])  Pour afficher cet élément on écrit : Ecrire(Notes[0,3])  Pour modifier cet élément on écrit : Notes[0,3]  14
  • 172. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 197 Syntaxe : <Identificateur> Tableau[t1, t2] : type  Identificateur : représente le nom de tableau.  t1 : est le nombre maximal de lignes.  t2 : est le nombre maximal de colonnes.  Type : est le type des éléments : réel, entier, caractère, booléen, ou composé.
  • 173. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 198  Affichage d’une matrice {1 - Affichage par ligne } Pour i de 0 à n-1 Faire Pour j de 0 à m-1 Faire Ecrire(A[i,j]) FinPour FinPour {2 - Affichage par colonne} Pour j de 0 à m-1 Faire Pour i de 0 à n-1 Faire Ecrire(A[i,j]) FinPour FinPour
  • 174. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 199  Lecture d’une matrice : {lecture de n et m} Répéter Ecrire("Donner n entre 1 et 20 et m entre 1 et 30 :") Lire(n,m) Jusqu’à (n>0) et (n<=20) et (m>0) et (m<=30) {Lecture par ligne} Pour i de 0 à n-1 Faire Pour j de 0 à m-1 Faire Ecrire("Donner un élément :") Lire(A[i,j]) FinPour FinPour
  • 175. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 200 {Lecture par colonne} Pour j de 0 à m-1 Faire Pour i de 0 à n-1 Faire Ecrire("Donner un élément :") Lire(A[i,j]) FinPour FinPour Plusieurs opérations peuvent être effectuées sur les matrices : Opérations de consultation Opérations de modification 1) Affichage d’une matrice 2) Calcul de la somme, le produit, le maximum, le minimum, un compteur … pour les éléments de la matrice 1) Lecture (saisie ou remplissage) d’une matrice 2) Modification des valeurs des éléments 3) Décalage ou permutation des éléments
  • 176. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 201  Toutes ces opérations nécessitent le parcours des éléments de la matrice. On peut citer plusieurs types de parcours : 1. Parcours de la matrice ligne par ligne 2. Parcours de la matrice colonne par colonne 3. Parcours partiel 4. Parcours d’une ligne / colonne 5. Parcours de la diagonale principale / diagonale secondaire
  • 177. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 202 1. Traitement pour toutes les lignes : (*Initialiser le résultat pour tous les éléments*) Pour i de 0 à n-1 faire (*Condition sur les lignes*) Pour j de 0 à m-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[i,j] FinPour FinPour (*Traitement du résultat pour tous les éléments*)
  • 178. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 203 1. Calculer et afficher le nombre d’éléments impairs pour toutes les lignes impairs.
  • 179. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 204 Cpt  0 Pour i de 0 à n-1 FAIRE Si (i mod 2 <> 0) Alors Pour j de 0 à m-1 FAIRE Si (A[i,j] mod 2 <> 0) Alors cpt  cpt +1 Finsi FinPour Finsi FinPour Ecrire(cpt)
  • 180. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 205 2. Traitement pour chaque ligne : Pour i de 0 à n-1 Faire (*Condition sur les lignes*) (*Initialisation du résultat pour chaque ligne*) Pour j de 0 à m-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[i,j] FinPour (*Traitement du résultat pour chaque ligne*) FinPour
  • 181. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 206 2. Calculer et afficher la moyenne des éléments pairs pour chaque ligne
  • 182. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 207 Pour i de 0 à n-1 Faire S  0 cpt  0 Pour j de 0 à m-1 Faire Si (A[i,j] mod 2 = 0) Alors S  S + A[i,j] Cpt  cpt +1 Finsi FinPour Si (cpt > 0) Alors Moy  S/cpt Ecrire(Moy) Finsi FinPour
  • 183. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 208 3. Traitement pour toutes les colonnes : (*Initialiser le résultat pour tous les éléments*) Pour j de 0 à m-1 Faire (*Condition sur les colonnes*) Pour i de 0 à n-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[i,j] FinPour FinPour (*Traitement du résultat pour tous les éléments*)
  • 184. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 209 3. Calculer et afficher le nombre d’éléments > val pour toutes les colonnes de rang pair.
  • 185. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 210 Cpt  0 Pour j de 0 à m-1 Faire Si (j mod 2 = 0) ALORS Pour i de 0 à n-1 Faire Si (A[i,j] > val) Alors cpt  cpt +1 Finsi FinPour Finsi FinPour Ecrire(cpt)
  • 186. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 211 4. Traitement pour chaque colonne : Pour j de 0 à m-1 Faire (*Condition sur les colonnes*) (*Initialisation du résultat pour chaque colonne*) Pour i de 0 à n-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[i,j] FinPour (*Traitement du résultat pour chaque colonne*) FinPour
  • 187. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 212 4. Construire puis afficher un vecteur V de taille m, tel que : 𝑉 𝑗 = 𝐶𝑜𝑙𝑜𝑛𝑛𝑒 𝑗 si j est multiple de 3. 𝑉 𝑗 = 𝐶𝑜𝑙𝑜𝑛𝑛𝑒 𝑗 si j n’est pas un multiple de 3
  • 188. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 213 Pour j de 0 à m-1 Faire Si (j mod 3 = 0) Alors S  0 Pour i de 0 à n-1 Faire S  S + A[i,j] FinPour V[j]  S Sinon P 1 Pour i de 0 à n-1 Faire P  P * A[i,j] FinPour V[j]  P Finsi FinPour Pour i de 0 à m-1 Faire Ecrire(V[i]) FinPour
  • 189. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 214 5. Traitement pour une ligne : p A[p,0], A[p,1], A[p,2], …, A[p,m-1]  A[p,j], j∈{0, …, m-1} (*Initialisation *) Pour j de 0 à m-1 faire (*Condition sur les éléments*) Actions pour les éléments A[p,j] FinPour (*Traitement du résultat*) p m
  • 190. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 215 5. Calculer et afficher le produit des éléments d’une ligne p.
  • 191. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 216 P  1 Pour j de 0 à m-1 Faire P  P * A[p,j] FinPour Ecrire(P)
  • 192. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 217 6. Traitement pour une colonne : q A[0,q], A[1,q], A[2,q], …, A[n-1,q]  A[i,q], i∈{0, …, n-1} (*Initialisation *) Pour i de 0 à n-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[i,q] FinPour (*Traitement du résultat*) q n
  • 193. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 218 6. Calculer et afficher la somme des éléments d’une colonne q.
  • 194. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 219 S  0 Pour i  0 à n-1 Faire S  S + A[i,q] FinPour Ecrire(S)
  • 195. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 220 7. Traitement pour les éléments de la DP (matrice carrée) (*Initialisation *) Pour i de 0 à n-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[i,i] FinPour (*Traitement du résultat*) i = j  A[i,i] ou A[j,j] (*Initialisation *) Pour j de 0 à n-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[j,j] FinPour (*Traitement du résultat*)
  • 196. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 221 7. Calculer et afficher la somme des éléments de la diagonale principale.
  • 197. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE DE L’APPLICATION 222 S  0 Pour i de 0 à n-1 Faire S  S + A[i,i] FinPour Ecrire(S) S  0 Pour j de 0 à n-1 Faire S  S + A[j,j] FinPour Ecrire(S)
  • 198. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 223 8. Traitement pour les éléments de la DS (matrice carrée) (*Initialisation *) Pour i de 0 à n-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[i,n- i+1] FinPour (*Traitement du résultat*) i = n-j+1  A[i, n-i+1] ou A[n-j+1, j] (*Initialisation *) Pour j de 0 à n-1 Faire (*Condition sur les éléments*) Actions pour les éléments A[n- j+1,j] FinPour (*Traitement du résultat*)
  • 199. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite application 224 7. Calculer et afficher le produit des éléments de la diagonale secondaire.
  • 200. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Corrige de l’application 225 P  1 Pour i de 0 à n-1 Faire P  P * A[i, n-i+1] FinPour Ecrire(P) P  1 Pour j de 0 à n-1 Faire P  P * A[n-j+1,j] FinPour Ecrire(P)
  • 201. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 226  La transposée d’une matrice :  La transposée d’une matrice A c’est une autre matrice B dans laquelle les dimensions sont inversées (n,m)  (m,n)  Chaque ligne de la matrice A va devenir une colonne dans la matrice B 7 1 0 4 2 3 7 4 1 2 0 3 A[1,1]  B[1,1] A[1,2]  B[2,1] A[i,j]  B[j,i]
  • 202. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXERCICE 227  Soit une matrice A de taille n*m (n≤20, m≤30), Ecrire un algorithme qui : 1. Lit (remplit) les valeurs de la matrice A avec deux méthodes différentes (par ligne et par colonne). 2. Affiche le maximum ainsi que la moyenne de tous les éléments de A. 3. Construit la matrice B qui représente la transposée de la matrice A. 4. Affiche la somme de chaque colonne de B. 5. Affiche la matrice A ligne par ligne, et la matrice B colonne par colonne.
  • 203. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXERCICE (SOLUTION) 228 Algorithme Opérations_Matrice1 Variable i, j, n, m, S, Max : entier A Tableau[20,30] : entier B Tableau[30,20] : entier Moy : réel Début {1} Répéter Ecrire("Donner n entre 1 et 20 et m entre 1 et 30") Lire(n, m) Jusqu’à (n>0) et (n<21) et (m>0) et (m<31)
  • 204. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXERCICE (SOLUTION) 229 {lecture par ligne} Pour i de 0 à n-1 Faire Pour j de 0 à m-1 Faire Ecrire("Donner un élément") Lire(A[i,j]) FinPour FinPour {lecture par colonne} Pour j de 0 à m-1 Faire Pour i de 0 à n-1 Faire Ecrire("Donner un élément") Lire(A[i,j]) FinPour FinPour
  • 205. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXERCICE (SOLUTION) 230 {2} S  0 Max  A[1,1] Pour i  1 à n-1 Faire Pour j  1 à m-1 Faire S  S + A[i,j] Si (A[i,j] > Max) Alors Max  A[i,j] Finsi FinPour FinPour Moy  S/(n*m) {Affichage} Ecrire("Moy=", Moy, " Max=", Max)
  • 206. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXERCICE (SOLUTION) 231 {3} Pour i de 0 à n-1 Faire Pour j de 0 à m-1 Faire B[j,i]  A[i,j] FinPour FinPour {4} Pour j de 0 à n-1 Faire {faire le travail pour toutes les n colonnes} S  0 Pour i de 0 à m-1 Faire S  S + B[i,j] {calculer la somme pour une colonne j} FinPour {Afficher la somme pour une colonne j} Ecrire("la somme des éléments de la colonne", j, " de la matrice B est :", S) FinPour
  • 207. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXERCICE (SOLUTION) 232 {5} {Affichage de A ligne par ligne} Pour i de 0 à n-1 Faire Pour j de 0 à m-1 Faire Ecrire("A[",i, ", ",j, "]= ", A[i,j]) FinPour FinPour {Affichage de B colonne par colonne} Pour j de 0 à n-1 Faire Pour i de 0 à m-1 Faire Ecrire("B[",i, ", ",j, "]= ", B[i,j]) FinPour FinPour Fin
  • 208. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXERCICE 233  Etant donnée une matrice carrée d’entiers A de taille n (n≤20), Ecrire un algorithme qui : 1. Lit (remplit) les valeurs de la matrice A. 2. Construit la matrice B comme suit : la matrice contient les valeurs de la matrice A, ensuite on met la valeur de l’indice de ligne sur les éléments de la diagonale principale et enfin la valeur de l’indice de colonne sur les éléments de la diagonale secondaire. 3. Calcule SP : somme des éléments de la diagonale principale de B et PS produit des éléments de la diagonale secondaire de B. 4. Affiche la matrice A colonne par colonne et la matrice B ligne par ligne et les valeurs de SP et PS.