Algorithme et programmation Savoir transcrire un problème en algorithmes
Savoir traduire un algorithme en programme
Savoir manipuler des structures de données
Etc. 1. Introduction à l’informatique
2. Le concept d’algorithme
3. Variables & actions de base
4. Les structures de contrôle
5. Tableaux
6. Chaînes de caractères
7. Procédures & Fonctions
8. Enregistrements
9. Fichiers
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.
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)…
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.
En informatique, pour arriver d'un problème réel à une solution pouvant être exécutée par un ordinateur, il faut suivre les étapes suivantes :
Analyser le problème : définir avec précision les informations dont on dispose et les résultats à obtenir.
Déterminer les méthodes de résolution : il s'agit de déterminer la suite des opérations à effectuer pour obtenirà partir des données la solution au problème posé. Cettesuite d'opérations constitue un algorithme.
Traduire l'algorithme dans un langage de programmation.
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%)
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).
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.
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.
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.
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 »
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
i1
j1
Répéter
Écrire(i)
Répéter
Écrire(j)
ii+1
Jusqu’à (i>2)
jj+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.