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
ALGORITHMES & PROGRAMMATION I & II
7
PARTIE I
ALGORITHME & PROGRAMMATION I
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Contenu du cours
8
1. Introduction à l’informatique
2. Le concept d’algorithme
3. objets & actions de base
4. Les structures de contrôle
5. Tableaux
6. Chaînes de caractères
7. Structures ou Enregistrements
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
9
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
10
 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
11
 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
12
 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
13
 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
14
 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.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
15
 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
16
 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
17
 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
18
 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 ?
19
 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 calcul et exécuter des
actions,
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QU’UN ORDINATEUR ?
20
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 ?
21
 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 ?
22
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
COMPOSANTS DE BASE D’UN ORDINATEUR
23
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LE PROCESSEUR (CPU, UCT)
24
 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)
25
 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
26
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
27
CHAPITRE II
CONCEPT D’ALGORITHME
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
28
 Contexte
1. Au début, on a un problème réel à résoudre
informatiquement.
2. On construit un algorithme,
3. puis un programme pour obtenir les résultats après exécution.
Problème réel
Algorithme
Programme
Résultats (solution du
problème)
RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE
29
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE
30
 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 (données) 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é. Cette
suite d'opérations constitue un algorithme.
 Traduire l'algorithme dans un langage de programmation.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’Est-ce QU’UN ALGORITHME INFORMATIQUE
31
 Un algorithme est une suite finie et non ambigüe
d’instructions et d’opérations permettant de résoudre
une classe de problème.
 Le mot algorithme vient d’Al-Khwârizmî
 Le terme algorithme fut inventé par le mathématicien
Mohammed Ibn Musa Al-Khwârizmî, dans le courant du IXème
siècle.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’Est-ce QU’UN ALGORITHME INFORMATIQUE
32
 Un algorithme est un ensemble d’opérations ordonné et fini
devant être suivi dans l’ordre pour résoudre un problème.
 Un algorithme a pour but de résoudre un problème et donc de
produire un résultat.
 Un algorithme est une succession d’instructions à enchaîner
dans un ordre bien précis, permettant de résoudre un problème de
façon systématique. Il est écrit dans un langage compréhensible
par tous.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
POURQUOI UTILISER UN ALGORITHME
33
 Pour effectuer une tâche, quelle qu’elle soit, un ordinateur à
besoin d’un programme informatique.
 Or, pour fonctionner, un programme informatique doit
indiquer à l’ordinateur ce qu’il doit faire avec précision étape
par étape.
 L’ordinateur exécute ensuite le programme, en suivant
chaque étape de façon automatique pour atteindre l’objectif.
 Or, il faut aussi dire à l’ordinateur comment faire ce qu’il doit
faire. C’est le rôle de l’algorithme informatique.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CARACTÉRISTIQUES D’UN ALGORITHME
34
 Il n’existe pas de méthode pour trouver un algorithme, sa
réalisation est un acte créatif.
 Un même problème peut être résolu par plusieurs
algorithmes.
 Un algorithme doit donner le même résultat pour les mêmes
données.
 Un algorithme doit se terminer après un nombre fini
d’opérations.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Structure GENERALE d’un algorithme
35
Algorithme <Nom de l’algorithme>
La partie
déclarative
Le corps de
l’algorithme
Constante
<Liste des constantes avec leurs valeurs>
Type
<définition des types définis par l’utilisateurs>
Variable
<Liste de variables suivis de leurs types>
DEBUT
FIN
<Séquence d’actions>
L’entête
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
COMPOSANTS D’UN ALGORITHME
36
Un algorithme est composé de trois (3) parties principales :
 L’entête : Cette partie sert à donner un nom à l’algorithme. Elle est
précédée par le mot algorithme ce nom n’influe en rien le bon
déroulement de l’algorithme. En général, il faut donner des noms
qui permettent au lecteur d’avoir une idée de ce que fera
l’algorithme qu’il lira.
 La partie déclarative : Dans cette partie, on déclare les différents
objets que l’algorithme utilise (constantes, variables, etc.)
 Le corps de l’algorithme : Il est composé d’une séquence d'actions
faisant appel à des opérations de base de l'ordinateur. Il est délimité
par les mots DEBUT et FIN.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
37
Algorithme Somme_2_entiers
Variables X, Y, Z : entier
Début
Ecrire("Entrez la valeur de X : ")
Lire(X)
Ecrire("Entrez la valeur de Y: ")
Lire(Y)
Z  X + Y
Ecrire("La somme : ", Z)
Fin
L’entête de
l’algorithme
La partie
déclarative
Le corps de
l’algorithme
Structure GENERALE d’un algorithme
Exemple : somme de deux entiers
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LES ACTIONS DE BASE D’UN ALGORITHME
38
 Une action peut être une :
 Action d'affectation,
 Action d'entrée/sortie,
 Action de contrôle conditionnel simple ou à choix multiple,
 Action de répétition en nombre de fois connu ou inconnu à
l'avance
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
QU’EST-CE QU’UN BON ALGORITHME ?
39
 On peut noter qu’un bon algorithme est un schéma de
résolution possédant les caractéristiques suivantes :
 Correct : s’il répond au problème posé.
 Précis : s’il fournit exactement les résultats
attendus.
 Rapide : s’il utilise un temps d’exécution minimal
indépendamment de la vitesse de la machine.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
PROPRIETES D’UN ALGORITHME
40
 Efficace : s’il utilise le moins d’espace mémoire
possible.
 Clair et lisible : s’il ne présente pas de difficulté de
compréhension pour un autre programmeur désirant
le maintenir ou le développer.
 Résistant : s’il est capable de détecter les cas de
mauvaise utilisation.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Convention D’ECRITURE : L’ORGANIGRAMME
41
 Historiquement, plusieurs types de notation ont
représenté les algorithmes ;
 Notamment une représentation graphique (carrés,
losanges, parallélogrammes…) qu’on appelait des
organigrammes
 Offre une vue d’ensemble de l’algorithme
 Représentation quasiment abandonnée aujourd’hui
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Convention D’ECRITURE : L’ORGANIGRAMME
42
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Convention D’ECRITURE : le pseudo-code ou LDA
43
 Une série de conventions appelées « pseudo-code » avec une
syntaxe qui ressemble à un langage de programmation;
 Ce pseudo-code est aussi appelé LDA (Langage de
Description d’Algorithme);
 Son avantage est de pouvoir être facilement transcrit dans
un langage de programmation.
 Plus pratique pour écrire un algorithme
 Représentation largement utilisée
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Convention D’ECRITURE : le pseudo-code ou LDA
44
 Ce pseudo-code peut varier d’un ouvrage à un autre puisqu’il est
purement conventionnel (Aucune machine n’est sensé le
reconnaitre).
 Pour déclarer les variables et les constantes : var ou variable
et const ou constante
 Affectation : signe égal = ou 
 Point virgule ; ou pas à la fin de chaque instruction
 FINSI ou fsi ou Fin si
 Commentaires : {commentaire} ou (*commentaire*) ou
%commentaire%
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
NOTION DE PROGRAMME
45
 Un programme est une suite ordonnée d’instructions
élémentaires écrites dans un langage de programmation
traduisant un algorithme.
 Chacune de ses instructions spécifie l'opération que doit
exécuter l'ordinateur.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
NOTION DE PROGRAMME
46
 Le langage de programmation est l'intermédiaire entre l'humain
et la machine, il permet d'écrire dans un langage proche de la
machine mais compréhensible par l'humain les opérations
que l'ordinateur doit effectuer.
 Un langage de programmation est un langage comprenant un
ensemble de caractères, de symboles et de mots régis par des
règles qui permettent de les assembler, utilisé pour donner des
instructions à une machine.
 Il existe plusieurs langages de programmation, la plupart
d'entre eux étant réservés à des domaines spécialisés. Exemple
: Fortran, C, C++, Java, Pascal , Python…
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LANGAGE DE PROGRAMMATION
47
 QUESTION : Puisque l’ordinateur ne comprend que le langage
binaire (langage machine) comment va-t-il faire pour
exécuter un programme écrit dans un langage de
programmation (langage évolué) ?
 REPONSE : Le programme écrit en langage évolué (C, C++,
Python) sera traduit en langage machine par un programme
particulier appelé traducteur (compilateurs ou
interpréteur).
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LANGAGE DE PROGRAMMATION
48
 Compilateur :
 Traduit une fois pour toutes, les programmes dans leur
ensemble :
tout le programme est fourni au compilateur pour la
traduction et son résultat sera un nouveau fichier autonome,
c'est-à-dire qui n'aura plus besoin d’un programme autre que
lui pour s'exécuter; on dit d'ailleurs que ce fichier est
exécutable peut être soumis au processeur pour traitement.
 Un langage de programmation pour lequel un compilateur est
disponible est appelé un langage compilé.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LANGAGE DE PROGRAMMATION
49
 Interpréteur :
Traduit les programmes instruction par instruction et
soumet chaque instruction traduite au processeur pour
exécution.
Un langage de programmation pour lequel un
interpréteur est disponible est appelé un langage
interprété
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LANGAGE DE PROGRAMMATION
50
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ALGORITHMES & PROGRAMMATION I
51
CHAPITRE III
OBJETS & ACTIONS DE BASE
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
OBJETS
52
 Les algorithmes agissent sur des objets qui peuvent varier
ou rester constants.
 Les objets peuvent être soit :
 Variables
 Constantes
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
C’est quoi une variable ?
53
 Au cours de l’exécution d’un programme informatique on
aura besoin de stocker des informations en mémoire :
 Saisies par l’utilisateur au clavier
 Résultat d’un programme (intermédiaire ou définitif)
 Ces informations sont stockées dans des variables
 On peut à tout moment durant l’exécution de l’algorithme
changer la valeur de la variable en écrasant l’ancienne à
condition que la nouvelle valeur soit du même type ou
compatible avec.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
REPRESENTATION D’UNE VARIABLE DANS LA MEMOIRE
54
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
55
 Une variable est donc le nom d’un espace mémoire utilisé
pour mémoriser (stocker temporairement) une valeur pour
une utilisation ultérieure.
 La variable doit être déclarée avant d’être utilisée, elle doit être
caractérisée par :
 Un Nom (identificateur )
 Un Type
 Une Valeur (Contenu)
C’est quoi une variable ?
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CHOIX DES IDENTIFICATEURS
56
L'identificateur d'une variable :
 C'est un nom symbolique représentant la donnée dans
l'algorithme.
 Il est composé généralement de lettres mais peut
également contenir de chiffres et de trait de
soulignement '_'.
 Le nom d’une variable (ou d’une constante) obéit à des
règles qui changent selon le langage utilisé.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
CHOIX DES IDENTIFICATEURS
57
Principales règles à respecter :
 Un nom de variable doit commencer par une lettre.
 Le nom de variable peut comporter des lettres et des chiffres.
 La plupart des signes de ponctuation sont à éviter, en
particulier les espaces.
exemple valide : A1 exemple invalide : 1A
 Eviter les caractères de ponctuation et les espaces.
 valides : Info2022, Info_2022, InfoAlgoProg
 invalides : Info 2022, Info-2022, Info;2022
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Les types de VARIABLES
58
 Il existe cinq (5) types de base ou primitifs avec lesquels on peut
construire d’autres types dits « types construits »
Type de base de variable Exemple de valeurs à contenir Mot clé
Numérique
Entier -50; 0; 600; 1000 Entier
Réel 20; -4; 36.123; 3.14 Réel
Alphanumérique
Caractère ‘a‘; ‘D‘; ‘+‘; ‘1‘ Car
Chaîne de caractères ˝Algorithme˝; ˝variable˝; Chaîne
Logique ou Booléen VRAI; FAUX Booléen
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Les types NUMERIQUES
59
Type numérique Plage de valeurs Taille mémoire
Byte(octet) -128 à 127 signé - 0 à 255 non signé 1 octet
Entier court -32 768 à 32 767 2 octets
Entier long -2 147 483 648 à 2 147 483 647 4 octets
Réel simple -3.40*10-38 à 3.40*1038 4 octets
Réel double 1.7*10-308 à 1.7*10308 8 octets
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
DECLARATION DES VARIABLES
60
 La déclaration des variables se fait dans la partie déclarative
 Le but est de réserver une case mémoire (allouer de
l’espace mémoire) en précisant ce que l’on veut y mettre :
c’est ce qu’on appelle le type de la variable
Syntaxe de déclaration Exemples
Variable nomDeLaVariable : Type
variable x : Réel
variable Prenom : Chaîne
variable age : Entier
variable i,j,k : Entier
variable c : car
variable trouve : Booléen
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Les constantes
61
 Une constante est une variable dont la valeur ne change pas
au cours de l'exécution du programme, elle peut être un
nombre, un caractère, ou une chaine de caractères. par
convention, les noms de constantes sont en majuscules
 Une constante doit toujours recevoir une valeur dès sa
déclaration.
Syntaxe de déclaration Exemples
Constante NOMDELACONSTANTE = valeur
constante PI = 3.14
constante TAUX = 0.15
constante TROUVE = VRAI
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
LES Expressions
62
 Une expression est une suite finie formée d’opérateurs
arithmétiques, logiques et de comparaison portant sur des
variables ou des valeurs numériques et qui a une valeur
numérique.
 L'évaluation de l'expression fournit une valeur unique qui
est le résultat de l'opération
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXPRESSIONS ARITHMETIQUES & LOGIQUES
63
 Une expression peut être une valeur, une variable ou une
opération constituée de variables reliées par des opérateurs.
Exemples : 1, b, a*2, a+3*b-c, …
 L'évaluation de l'expression fournit une valeur unique qui est le
résultat de l'opération
 Les opérateurs dépendent du type de l'opération, ils peuvent
être :
 des opérateurs arithmétiques : +, -, *, /, div, mod,
↑(puissance)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
EXPRESSIONS ARITHMETIQUES & LOGIQUES
64
 des opérateurs logiques : NON, OU, ET
 des opérateurs relationnels : =, <, >, <=, >=
 des opérateurs sur les chaînes : &, + (concaténation)
 Une expression est évaluée de gauche à droite mais en tenant
compte des priorités des opérateurs
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
OPERATEURS ARITHMETIQUES
65
Opérateur Type d’opérandes exemple
↑ Réel, entier (élévation à la puissance) 𝑥2
 x↑2, 𝑥 = 𝑥1 2
= x ↑ (1/2)
/ Réel, entier (division réelle) 5/2 = 2.5
∗ Réel, entier (produit) 5*3 = 15
+ Réel, entier (addition) 5+2 = 7
− Réel, entier (soustraction) 4-1 = 3
div Entier (quotient de la division entière) 9 div 3 = 3 13 div 5 = 2 3 div 5 = 0
mod Entier (mod : reste de la division entière) 9 mod 3 = 0 13 mod 5 = 3 3 mod 5 = 5
 Exemples d’expressions arithmétiques : (x-y)*z, x↑2–3*t…
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
OPERATEURS LOGIQUES
66
 Associativité des opérateurs ET et OU
a ET (b ET c) = (a ET b) ET c
 Commutativité des opérateurs ET et OU
a ET b = b ET a
a OU b = b OU a
 Distributivité des opérateurs ET et OU
a OU (b ET c) = (a OU b) ET (a ou c)
a ET (b OU c) = (a ET b) OU (a ET c)
 Involution (homographie réciproque) : NON NON a = a
 Loi de Morgan : NON (a OU b) = NON a ET NON b
NON (a ET b) = NON a OU NON b
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLE DE VERITE
67
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
ORDRE DE PRIORITE DES OPERATEURS
68
1) Les parenthèses (on commence par les plus internes).
2) Les fonctions
3) Le NON logique, et le – (unaire)
4) *, /, MOD, DIV, ET
5) +, -, OU
6) Les opérateurs relationnels (=, <, <=, >, >=, <>)
+
-
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
PRIORITE DES OPERATEURS
69
 L'évaluation des expressions se fait généralement de
gauche à droite en respectant les règles de priorité
suivantes sur les opérateurs (classées selon l’ordre
décroissant) :
Exemple : 9 + 3 * 4 vaut 21
En cas de besoin, on utilise les parenthèses pour indiquer les
opérations à effectuer en priorité.
Exemple : (9 + 3) * 4 vaut 48
 À priorité égale, l’évaluation de l’expression se fait de gauche à
droite
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’instruction d’affectation
70
 C’est une instruction qui modifie le contenu d’une case
mémoire en lui affectant une valeur (d’où son nom…).
 En pseudo-code, l'affectation est notée par le signe ←
 Elle permet de copier une donnée d’un endroit à un
autre, c’est-à-dire recréer une entité à un endroit
différent.
 L’instruction d’affectation consiste à attribuer une
valeur à une variable.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
L’instruction d’affectation
71
 Permet d’attribuer des valeurs aux variables en utilisant le symbole
suivant 
Syntaxe Exemples de déclaration Exemples d’affectation
nomDeLaVariable  valeur
Variable x : Réel x  3.14
Variable Prenom : Chaîne Prenom  ˝Sylvie˝
Variable age : Entier age  25
Variable i, j, k : Entier
i  0, j  5, k  -1, i
 j
Variable c : car C  ‘A‘
Variable Trouve : Booléen Trouve  VRAI
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Les types d’affectation : Type 1
72
Identificateur  valeur
Exemples :
x  3.14
Prenom  ˝Sylvie˝
Age  24
i  0
Facture_payee  VRAI
Choix  ‘Y‘;
 Possibilité d’affecter une valeur de même type à
une variable
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Les types d’affectation : Type 2
73
Identificateur  Identificateur
Exemples :
Prenom1 Prenom3
Prenom2 Prenom1
Prenom3 Prenom2
 Possibilité d’affecter une variable de même type à une
variable
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Les types d’affectation : Type 3
74
 Possibilité d’affecter une expression de type compatible à
une variable :
1. C’est le cas quand elles sont du même type ou
quand l’expression est entière et la variable
réelle.
réel  entier (juste)
2. Mais quand la variable est entière et l’expression
réelle.
entier  réel (faux)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Les types d’affectation : Type 3
75
Identificateur  Expression
Exemples :
k  i+j
Consommation  nouvel_index – ancien_index
Moyenne  somme_notes/nombre_eleves
TVA  HT*0.2
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
la séquence des instructions
76
 Les opérations d'un algorithme sont habituellement
exécutées une à la suite de l'autre, en séquence (de haut en
bas et de gauche à droite).
 L'ordre est important.
 On ne peut pas changer cette séquence de façon arbitraire.
 Par exemple, enfiler ses bas puis enfiler ses bottes n’est pas
équivalent à enfiler ses bottes puis enfiler ses bas.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
77
 Donnez les valeurs des variables A, B et C après
exécution des instructions suivantes ?
Variables A, B, C: entier
Début
A  -3
B  7
A  B
B  A-5
C  A + B
C  B – A
Fin
AFFECTATION : EXERCICE
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
78
Donnez les valeurs des variables A et B après exécution
des instructions suivantes ?
Variables A, B : Entier
Début
A  6
B  2
A  B
B  A
Fin
Les deux dernières instructions permettent-elles
d’échanger les valeurs de A et B ?
AFFECTATION : EXERCICE
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
AFFECTATION : ECHANGE
79
 Ecrire un algorithme permettant d’échanger les valeurs
de deux variables A et B
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Instructions d’ENTREES / SORTIES
80
 Pour que l’on puisse « interagir » avec un ordinateur,
on utilise dans un algorithme des instructions
d’Entrée et des instructions de Sortie.
 Les E/S ou I/O permettent
 L’interaction
 Le dialogue
 La communication avec la machine
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Instructions d’ENTREES / SORTIES
81
 Entrées (Input) : il est possible de rentrer des valeurs
dans un algorithme
 Sortie (Output) : de même, en réponse, l’algorithme
peut renvoyer une valeur qui est généralement le
résultat de l’algorithme.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Instructions d’ENTREES / SORTIES
82
 On appelle donc :
Entrée : ce que l’algorithme reçoit
Sortie : ce que l’algorithme émet
 On a affaire à deux (2) acteurs :
L’utilisateur (user)
L’ordinateur (la machine)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
83
ENTREES
SORTIES
ORDINATEUR
UTILISATEUR
Instructions d’ENTREES / SORTIES
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Instructions d’ENTREES / SORTIES
84
 Les Entrées (Input) : en informatique, quand on parle
d’entrée pour un algorithme, cela fait généralement
référence à des données entrées au clavier par l’utilisateur :
Lire(N)
 L’instruction Lire(N) indique que l’algorithme attend que
l’on rentre une valeur au clavier.
 Une fois la valeur saisie, celle-ci sera affectée à la variable N.
 Tant qu’aucune valeur n’est saisie, l’algorithme ne passe pas
à la suite.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Instructions d’ENTREES / SORTIES
85
 Les Sorties (Output) : en informatique, quand on parle
de sorties pour un algorithme, cela fait généralement
référence à des données affichées à l’écran par
l’algorithme (ordinateur) : Ecrire(V)
 L’instruction Ecrire(V) indique que la valeur stockée
dans la variable V va être affichée à l’écran.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Lecture
86
 Lecture  Saisir au clavier et affecter ce qui est saisi
aux variables déjà définies
Syntaxe Exemples
Lire(nom_variable)
Lire(a)
Lire(TVA)
Lire(note)
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Instructions d’ENTREES / SORTIES
87
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
ecriture
88
 Ecriture  Afficher à l’écran
Cas Syntaxe Exemples
1 Ecrire(˝message˝)
Ecrire(˝Entrez la valeur de a :˝)
 Entrez la valeur de a :
2 Ecrire(nom_variable) Ecrire(moyenne)  moyenne
3 Ecrire(˝message˝,nom_variable)
Ecrire(˝votre note est :˝,moyenne)
 votre note est : moyenne
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Instructions d’ENTREES / SORTIES
89
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Exercice
90
 Écrire un algorithme qui demande à l’utilisateur de saisir
deux nombres entiers et de calculer leur somme et
l’afficher à l’écran.
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
Solution de l’exercice
91
Algorithme Somme
Variables a, b, S : Entier
Début
Ecrire(˝Saisir a :˝)
Lire(a)
Ecrire(˝Saisir b :˝)
Lire(b)
S  a + b
Ecrire(˝La somme est :˝,S)
Fin
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, 100 Ré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 « Tantque … faire »
 Cette instruction permet de tester une condition et répéter le
traitement associé tant que cette condition est vérifiée.
Tantque (condition) Faire
Instruction(s)
Fintq
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
124
L’instruction « Tantque … faire »
Exemple : Réécrivons l’algorithme précédent avec cette
instruction.
Variable i : entier
Début
i  1
Tantque(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)
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 « Tantque … 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 « Tantque … 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)
cpt  0
Tantque (condition) 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
Tantque (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 imbriquées
 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 :
Tableau <nom_du_tableau>[taille] : Type
Exemple : Tableau Notes[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
Tableau Tab[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
Tableau Tab[N] : Entier
Variables val, i : Entier
Début
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) 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
Tableau T[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) 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)
200
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] de réels
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
201
 La valeur entourée indique l’élément désigné par la ligne 1 et la colonne 4 i.e.
Notes [1,4].
 Pour modifier cet élément on écrit : Lire(Notes[1,4])
 Pour afficher cet élément on écrit : Ecrire(Notes[1,4])
 Pour modifier cet élément on écrit : Notes[1,4]  14
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite
Reproduction interdite
Reproduction interdite
Reproduction interdite
TABLEAU A DEUX DIMENSIONS (MATRICE)
202
Syntaxe : Tableau <Identificateur> [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)
203
 Affichage d’une matrice
{1 - Affichage par ligne }
Pour i de 0 à n Faire
Pour j de 0 à m Faire
Ecrire(A[i,j])
FinPour
FinPour
{2 - Affichage par
colonne}
Pour j de 0 à m Faire
Pour i de 0 à n 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)
204
 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 Faire
Pour j de 0 à m 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)
205
{Lecture par colonne}
Pour j de 0 à m Faire
Pour i de 0 à n 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)
206
 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
207
1. Traitement pour toutes les lignes :
(*Initialiser le résultat pour tous les éléments*)
Pour i de 0 à n faire
(*Condition sur les lignes*)
Pour j de 01 à m 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
208
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
209
Cpt  0
POUR i  1 à n FAIRE
SI (i mod 2 <> 0) ALORS
POUR j  1 à m 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
210
2. Traitement pour chaque ligne :
POUR i  1 à n FAIRE
(*Condition sur les lignes*)
(*Initialisation du résultat pour chaque ligne*)
POUR j  1 à m 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
211
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
212
POUR i  1 à n FAIRE
S  0 cpt  0
POUR j  1 à m 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
213
3. Traitement pour toutes les colonnes :
(*Initialiser le résultat pour tous les éléments*)
POUR j  1 à m FAIRE
(*Condition sur les colonnes*)
POUR i  1 à n 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
214
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
215
Cpt  0
POUR j  1 à m FAIRE
SI (j mod 2 = 0) ALORS
POUR i  1 à n FAIRE
SI (A[i,j] > val) ALORS
cpt  cpt +1
FINSI
FINPOUR
FINSI
FINPOUR
Ecrire(cpt)
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx

Contenu connexe

Similaire à Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx

Histoire Informatique Et Hackers
Histoire Informatique Et HackersHistoire Informatique Et Hackers
Histoire Informatique Et Hackers
Patrick Plante
 
resume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdfresume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdf
FootballLovers9
 
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
 
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 à l’internet des objets
Introduction à l’internet des objets Introduction à l’internet des objets
Introduction à l’internet des objets
bilele
 
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
 
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
Vincent Mabillot
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
Sara Morgan
 
Linux_history.pdf
Linux_history.pdfLinux_history.pdf
Linux_history.pdf
jaweb1
 
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
 
Pourquoi étudier la technologie ?
Pourquoi étudier la technologie ?Pourquoi étudier la technologie ?
Pourquoi étudier la technologie ?
Henri Willox
 
WygDay - Session Innovation xBrainLab
WygDay - Session Innovation xBrainLabWygDay - Session Innovation xBrainLab
WygDay - Session Innovation xBrainLab
Gregory Renard
 
WygDay 2010 - Start Up : xbrainlab
WygDay 2010 - Start Up : xbrainlabWygDay 2010 - Start Up : xbrainlab
WygDay 2010 - Start Up : xbrainlab
Wygwam
 
Ce que nous apprend l'histoire de l'informatique
Ce que nous apprend l'histoire de l'informatiqueCe que nous apprend l'histoire de l'informatique
Ce que nous apprend l'histoire de l'informatique
Alain Lefebvre
 
Embedded intro 2006
Embedded intro 2006Embedded intro 2006
Embedded intro 2006
mcbinene
 
22 11-2011-ds-présentation-ivresses-numériques
22 11-2011-ds-présentation-ivresses-numériques22 11-2011-ds-présentation-ivresses-numériques
22 11-2011-ds-présentation-ivresses-numériques
Dominique Sciamma
 
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
 
Notions IHM
Notions IHMNotions IHM
Notions IHM
lecolededesign
 

Similaire à Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].pptx (20)

Histoire Informatique Et Hackers
Histoire Informatique Et HackersHistoire Informatique Et Hackers
Histoire Informatique Et Hackers
 
resume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdfresume-theorique-m108-3005-6298a1255e18a.pdf
resume-theorique-m108-3005-6298a1255e18a.pdf
 
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...
 
L1 Cours Numérique & Société
 L1 Cours Numérique & Société L1 Cours Numérique & Société
L1 Cours Numérique & Société
 
Bases informatiques 2
Bases informatiques 2Bases informatiques 2
Bases informatiques 2
 
Introduction à l’internet des objets
Introduction à l’internet des objets Introduction à l’internet des objets
Introduction à l’internet des objets
 
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
 
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
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
 
Linux_history.pdf
Linux_history.pdfLinux_history.pdf
Linux_history.pdf
 
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
 
Pourquoi étudier la technologie ?
Pourquoi étudier la technologie ?Pourquoi étudier la technologie ?
Pourquoi étudier la technologie ?
 
WygDay - Session Innovation xBrainLab
WygDay - Session Innovation xBrainLabWygDay - Session Innovation xBrainLab
WygDay - Session Innovation xBrainLab
 
WygDay 2010 - Start Up : xbrainlab
WygDay 2010 - Start Up : xbrainlabWygDay 2010 - Start Up : xbrainlab
WygDay 2010 - Start Up : xbrainlab
 
Ce que nous apprend l'histoire de l'informatique
Ce que nous apprend l'histoire de l'informatiqueCe que nous apprend l'histoire de l'informatique
Ce que nous apprend l'histoire de l'informatique
 
Embedded intro 2006
Embedded intro 2006Embedded intro 2006
Embedded intro 2006
 
22 11-2011-ds-présentation-ivresses-numériques
22 11-2011-ds-présentation-ivresses-numériques22 11-2011-ds-présentation-ivresses-numériques
22 11-2011-ds-présentation-ivresses-numériques
 
Informatique, web... Préparation au C2i
Informatique, web... Préparation au C2iInformatique, web... Préparation au C2i
Informatique, web... Préparation au C2i
 
Notions IHM
Notions IHMNotions IHM
Notions IHM
 

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

Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.
MahouwetinJacquesGBO
 
Formation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimismeFormation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimisme
M2i Formation
 
Zineb Mekouar.pptx Écrivaine marocaine
Zineb Mekouar.pptx   Écrivaine  marocaineZineb Mekouar.pptx   Écrivaine  marocaine
Zineb Mekouar.pptx Écrivaine marocaine
Txaruka
 
A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)
lebaobabbleu
 
apprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdfapprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdf
kamouzou878
 
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptxMARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
Martin M Flynn
 
1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire
NadineHG
 
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPrésentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
A2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiquesA2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiques
lebaobabbleu
 
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
mcevapi3
 
Cours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTIONCours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTION
Sékou Oumar SYLLA
 
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
dokposeverin
 
Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024
Friends of African Village Libraries
 
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certificationMS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
OlivierLumeau1
 

Dernier (14)

Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.
 
Formation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimismeFormation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimisme
 
Zineb Mekouar.pptx Écrivaine marocaine
Zineb Mekouar.pptx   Écrivaine  marocaineZineb Mekouar.pptx   Écrivaine  marocaine
Zineb Mekouar.pptx Écrivaine marocaine
 
A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)
 
apprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdfapprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdf
 
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptxMARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
 
1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire
 
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPrésentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
A2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiquesA2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiques
 
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
 
Cours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTIONCours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTION
 
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
 
Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024
 
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certificationMS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
 

Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique].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 ALGORITHMES & PROGRAMMATION I & II 7 PARTIE I ALGORITHME & PROGRAMMATION I
  • 8. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Contenu du cours 8 1. Introduction à l’informatique 2. Le concept d’algorithme 3. objets & actions de base 4. Les structures de contrôle 5. Tableaux 6. Chaînes de caractères 7. Structures ou Enregistrements
  • 9. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 9 CHAPITRE I Introduction A L’INFORMATIQUE
  • 10. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 10  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.
  • 11. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 11  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.
  • 12. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 12  En Informatique, il y’a deux axes d’études : 1. Le hardware : Matériels (concrets) 2. Le software : Logiciels (abstrait)
  • 13. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 13  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.
  • 14. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATIQUE 14  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.
  • 15. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 15  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
  • 16. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QUE L’INFORMATION 16  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
  • 17. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CEQUE L’INFORMATION 17  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).
  • 18. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QUE SIGNIFIE LE « TERME » TRAITEMENT 18  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 :
  • 19. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 19  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 calcul et exécuter des actions,
  • 20. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 20 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),…
  • 21. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 21  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).
  • 22. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN ORDINATEUR ? 22
  • 23. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite COMPOSANTS DE BASE D’UN ORDINATEUR 23
  • 24. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LE PROCESSEUR (CPU, UCT) 24  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).
  • 25. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LE PROCESSEUR (CPU, UCT) 25  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 LE FONCTIONNEMENT D’UN ORDINATEUR 26
  • 27. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 27 CHAPITRE II CONCEPT D’ALGORITHME
  • 28. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 28  Contexte 1. Au début, on a un problème réel à résoudre informatiquement. 2. On construit un algorithme, 3. puis un programme pour obtenir les résultats après exécution. Problème réel Algorithme Programme Résultats (solution du problème) RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE
  • 29. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE 29
  • 30. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE 30  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 (données) 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é. Cette suite d'opérations constitue un algorithme.  Traduire l'algorithme dans un langage de programmation.
  • 31. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’Est-ce QU’UN ALGORITHME INFORMATIQUE 31  Un algorithme est une suite finie et non ambigüe d’instructions et d’opérations permettant de résoudre une classe de problème.  Le mot algorithme vient d’Al-Khwârizmî  Le terme algorithme fut inventé par le mathématicien Mohammed Ibn Musa Al-Khwârizmî, dans le courant du IXème siècle.
  • 32. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’Est-ce QU’UN ALGORITHME INFORMATIQUE 32  Un algorithme est un ensemble d’opérations ordonné et fini devant être suivi dans l’ordre pour résoudre un problème.  Un algorithme a pour but de résoudre un problème et donc de produire un résultat.  Un algorithme est une succession d’instructions à enchaîner dans un ordre bien précis, permettant de résoudre un problème de façon systématique. Il est écrit dans un langage compréhensible par tous.
  • 33. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite POURQUOI UTILISER UN ALGORITHME 33  Pour effectuer une tâche, quelle qu’elle soit, un ordinateur à besoin d’un programme informatique.  Or, pour fonctionner, un programme informatique doit indiquer à l’ordinateur ce qu’il doit faire avec précision étape par étape.  L’ordinateur exécute ensuite le programme, en suivant chaque étape de façon automatique pour atteindre l’objectif.  Or, il faut aussi dire à l’ordinateur comment faire ce qu’il doit faire. C’est le rôle de l’algorithme informatique.
  • 34. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CARACTÉRISTIQUES D’UN ALGORITHME 34  Il n’existe pas de méthode pour trouver un algorithme, sa réalisation est un acte créatif.  Un même problème peut être résolu par plusieurs algorithmes.  Un algorithme doit donner le même résultat pour les mêmes données.  Un algorithme doit se terminer après un nombre fini d’opérations.
  • 35. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Structure GENERALE d’un algorithme 35 Algorithme <Nom de l’algorithme> La partie déclarative Le corps de l’algorithme Constante <Liste des constantes avec leurs valeurs> Type <définition des types définis par l’utilisateurs> Variable <Liste de variables suivis de leurs types> DEBUT FIN <Séquence d’actions> L’entête
  • 36. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite COMPOSANTS D’UN ALGORITHME 36 Un algorithme est composé de trois (3) parties principales :  L’entête : Cette partie sert à donner un nom à l’algorithme. Elle est précédée par le mot algorithme ce nom n’influe en rien le bon déroulement de l’algorithme. En général, il faut donner des noms qui permettent au lecteur d’avoir une idée de ce que fera l’algorithme qu’il lira.  La partie déclarative : Dans cette partie, on déclare les différents objets que l’algorithme utilise (constantes, variables, etc.)  Le corps de l’algorithme : Il est composé d’une séquence d'actions faisant appel à des opérations de base de l'ordinateur. Il est délimité par les mots DEBUT et FIN.
  • 37. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 37 Algorithme Somme_2_entiers Variables X, Y, Z : entier Début Ecrire("Entrez la valeur de X : ") Lire(X) Ecrire("Entrez la valeur de Y: ") Lire(Y) Z  X + Y Ecrire("La somme : ", Z) Fin L’entête de l’algorithme La partie déclarative Le corps de l’algorithme Structure GENERALE d’un algorithme Exemple : somme de deux entiers
  • 38. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LES ACTIONS DE BASE D’UN ALGORITHME 38  Une action peut être une :  Action d'affectation,  Action d'entrée/sortie,  Action de contrôle conditionnel simple ou à choix multiple,  Action de répétition en nombre de fois connu ou inconnu à l'avance
  • 39. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite QU’EST-CE QU’UN BON ALGORITHME ? 39  On peut noter qu’un bon algorithme est un schéma de résolution possédant les caractéristiques suivantes :  Correct : s’il répond au problème posé.  Précis : s’il fournit exactement les résultats attendus.  Rapide : s’il utilise un temps d’exécution minimal indépendamment de la vitesse de la machine.
  • 40. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite PROPRIETES D’UN ALGORITHME 40  Efficace : s’il utilise le moins d’espace mémoire possible.  Clair et lisible : s’il ne présente pas de difficulté de compréhension pour un autre programmeur désirant le maintenir ou le développer.  Résistant : s’il est capable de détecter les cas de mauvaise utilisation.
  • 41. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Convention D’ECRITURE : L’ORGANIGRAMME 41  Historiquement, plusieurs types de notation ont représenté les algorithmes ;  Notamment une représentation graphique (carrés, losanges, parallélogrammes…) qu’on appelait des organigrammes  Offre une vue d’ensemble de l’algorithme  Représentation quasiment abandonnée aujourd’hui
  • 42. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Convention D’ECRITURE : L’ORGANIGRAMME 42
  • 43. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Convention D’ECRITURE : le pseudo-code ou LDA 43  Une série de conventions appelées « pseudo-code » avec une syntaxe qui ressemble à un langage de programmation;  Ce pseudo-code est aussi appelé LDA (Langage de Description d’Algorithme);  Son avantage est de pouvoir être facilement transcrit dans un langage de programmation.  Plus pratique pour écrire un algorithme  Représentation largement utilisée
  • 44. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Convention D’ECRITURE : le pseudo-code ou LDA 44  Ce pseudo-code peut varier d’un ouvrage à un autre puisqu’il est purement conventionnel (Aucune machine n’est sensé le reconnaitre).  Pour déclarer les variables et les constantes : var ou variable et const ou constante  Affectation : signe égal = ou   Point virgule ; ou pas à la fin de chaque instruction  FINSI ou fsi ou Fin si  Commentaires : {commentaire} ou (*commentaire*) ou %commentaire%
  • 45. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite NOTION DE PROGRAMME 45  Un programme est une suite ordonnée d’instructions élémentaires écrites dans un langage de programmation traduisant un algorithme.  Chacune de ses instructions spécifie l'opération que doit exécuter l'ordinateur.
  • 46. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite NOTION DE PROGRAMME 46  Le langage de programmation est l'intermédiaire entre l'humain et la machine, il permet d'écrire dans un langage proche de la machine mais compréhensible par l'humain les opérations que l'ordinateur doit effectuer.  Un langage de programmation est un langage comprenant un ensemble de caractères, de symboles et de mots régis par des règles qui permettent de les assembler, utilisé pour donner des instructions à une machine.  Il existe plusieurs langages de programmation, la plupart d'entre eux étant réservés à des domaines spécialisés. Exemple : Fortran, C, C++, Java, Pascal , Python…
  • 47. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LANGAGE DE PROGRAMMATION 47  QUESTION : Puisque l’ordinateur ne comprend que le langage binaire (langage machine) comment va-t-il faire pour exécuter un programme écrit dans un langage de programmation (langage évolué) ?  REPONSE : Le programme écrit en langage évolué (C, C++, Python) sera traduit en langage machine par un programme particulier appelé traducteur (compilateurs ou interpréteur).
  • 48. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LANGAGE DE PROGRAMMATION 48  Compilateur :  Traduit une fois pour toutes, les programmes dans leur ensemble : tout le programme est fourni au compilateur pour la traduction et son résultat sera un nouveau fichier autonome, c'est-à-dire qui n'aura plus besoin d’un programme autre que lui pour s'exécuter; on dit d'ailleurs que ce fichier est exécutable peut être soumis au processeur pour traitement.  Un langage de programmation pour lequel un compilateur est disponible est appelé un langage compilé.
  • 49. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LANGAGE DE PROGRAMMATION 49  Interpréteur : Traduit les programmes instruction par instruction et soumet chaque instruction traduite au processeur pour exécution. Un langage de programmation pour lequel un interpréteur est disponible est appelé un langage interprété
  • 50. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LANGAGE DE PROGRAMMATION 50
  • 51. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 51 CHAPITRE III OBJETS & ACTIONS DE BASE
  • 52. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite OBJETS 52  Les algorithmes agissent sur des objets qui peuvent varier ou rester constants.  Les objets peuvent être soit :  Variables  Constantes
  • 53. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite C’est quoi une variable ? 53  Au cours de l’exécution d’un programme informatique on aura besoin de stocker des informations en mémoire :  Saisies par l’utilisateur au clavier  Résultat d’un programme (intermédiaire ou définitif)  Ces informations sont stockées dans des variables  On peut à tout moment durant l’exécution de l’algorithme changer la valeur de la variable en écrasant l’ancienne à condition que la nouvelle valeur soit du même type ou compatible avec.
  • 54. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite REPRESENTATION D’UNE VARIABLE DANS LA MEMOIRE 54
  • 55. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 55  Une variable est donc le nom d’un espace mémoire utilisé pour mémoriser (stocker temporairement) une valeur pour une utilisation ultérieure.  La variable doit être déclarée avant d’être utilisée, elle doit être caractérisée par :  Un Nom (identificateur )  Un Type  Une Valeur (Contenu) C’est quoi une variable ?
  • 56. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CHOIX DES IDENTIFICATEURS 56 L'identificateur d'une variable :  C'est un nom symbolique représentant la donnée dans l'algorithme.  Il est composé généralement de lettres mais peut également contenir de chiffres et de trait de soulignement '_'.  Le nom d’une variable (ou d’une constante) obéit à des règles qui changent selon le langage utilisé.
  • 57. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CHOIX DES IDENTIFICATEURS 57 Principales règles à respecter :  Un nom de variable doit commencer par une lettre.  Le nom de variable peut comporter des lettres et des chiffres.  La plupart des signes de ponctuation sont à éviter, en particulier les espaces. exemple valide : A1 exemple invalide : 1A  Eviter les caractères de ponctuation et les espaces.  valides : Info2022, Info_2022, InfoAlgoProg  invalides : Info 2022, Info-2022, Info;2022
  • 58. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Les types de VARIABLES 58  Il existe cinq (5) types de base ou primitifs avec lesquels on peut construire d’autres types dits « types construits » Type de base de variable Exemple de valeurs à contenir Mot clé Numérique Entier -50; 0; 600; 1000 Entier Réel 20; -4; 36.123; 3.14 Réel Alphanumérique Caractère ‘a‘; ‘D‘; ‘+‘; ‘1‘ Car Chaîne de caractères ˝Algorithme˝; ˝variable˝; Chaîne Logique ou Booléen VRAI; FAUX Booléen
  • 59. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Les types NUMERIQUES 59 Type numérique Plage de valeurs Taille mémoire Byte(octet) -128 à 127 signé - 0 à 255 non signé 1 octet Entier court -32 768 à 32 767 2 octets Entier long -2 147 483 648 à 2 147 483 647 4 octets Réel simple -3.40*10-38 à 3.40*1038 4 octets Réel double 1.7*10-308 à 1.7*10308 8 octets
  • 60. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite DECLARATION DES VARIABLES 60  La déclaration des variables se fait dans la partie déclarative  Le but est de réserver une case mémoire (allouer de l’espace mémoire) en précisant ce que l’on veut y mettre : c’est ce qu’on appelle le type de la variable Syntaxe de déclaration Exemples Variable nomDeLaVariable : Type variable x : Réel variable Prenom : Chaîne variable age : Entier variable i,j,k : Entier variable c : car variable trouve : Booléen
  • 61. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Les constantes 61  Une constante est une variable dont la valeur ne change pas au cours de l'exécution du programme, elle peut être un nombre, un caractère, ou une chaine de caractères. par convention, les noms de constantes sont en majuscules  Une constante doit toujours recevoir une valeur dès sa déclaration. Syntaxe de déclaration Exemples Constante NOMDELACONSTANTE = valeur constante PI = 3.14 constante TAUX = 0.15 constante TROUVE = VRAI
  • 62. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite LES Expressions 62  Une expression est une suite finie formée d’opérateurs arithmétiques, logiques et de comparaison portant sur des variables ou des valeurs numériques et qui a une valeur numérique.  L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération
  • 63. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXPRESSIONS ARITHMETIQUES & LOGIQUES 63  Une expression peut être une valeur, une variable ou une opération constituée de variables reliées par des opérateurs. Exemples : 1, b, a*2, a+3*b-c, …  L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération  Les opérateurs dépendent du type de l'opération, ils peuvent être :  des opérateurs arithmétiques : +, -, *, /, div, mod, ↑(puissance)
  • 64. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite EXPRESSIONS ARITHMETIQUES & LOGIQUES 64  des opérateurs logiques : NON, OU, ET  des opérateurs relationnels : =, <, >, <=, >=  des opérateurs sur les chaînes : &, + (concaténation)  Une expression est évaluée de gauche à droite mais en tenant compte des priorités des opérateurs
  • 65. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite OPERATEURS ARITHMETIQUES 65 Opérateur Type d’opérandes exemple ↑ Réel, entier (élévation à la puissance) 𝑥2  x↑2, 𝑥 = 𝑥1 2 = x ↑ (1/2) / Réel, entier (division réelle) 5/2 = 2.5 ∗ Réel, entier (produit) 5*3 = 15 + Réel, entier (addition) 5+2 = 7 − Réel, entier (soustraction) 4-1 = 3 div Entier (quotient de la division entière) 9 div 3 = 3 13 div 5 = 2 3 div 5 = 0 mod Entier (mod : reste de la division entière) 9 mod 3 = 0 13 mod 5 = 3 3 mod 5 = 5  Exemples d’expressions arithmétiques : (x-y)*z, x↑2–3*t…
  • 66. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite OPERATEURS LOGIQUES 66  Associativité des opérateurs ET et OU a ET (b ET c) = (a ET b) ET c  Commutativité des opérateurs ET et OU a ET b = b ET a a OU b = b OU a  Distributivité des opérateurs ET et OU a OU (b ET c) = (a OU b) ET (a ou c) a ET (b OU c) = (a ET b) OU (a ET c)  Involution (homographie réciproque) : NON NON a = a  Loi de Morgan : NON (a OU b) = NON a ET NON b NON (a ET b) = NON a OU NON b
  • 67. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLE DE VERITE 67 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
  • 68. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ORDRE DE PRIORITE DES OPERATEURS 68 1) Les parenthèses (on commence par les plus internes). 2) Les fonctions 3) Le NON logique, et le – (unaire) 4) *, /, MOD, DIV, ET 5) +, -, OU 6) Les opérateurs relationnels (=, <, <=, >, >=, <>) + -
  • 69. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite PRIORITE DES OPERATEURS 69  L'évaluation des expressions se fait généralement de gauche à droite en respectant les règles de priorité suivantes sur les opérateurs (classées selon l’ordre décroissant) : Exemple : 9 + 3 * 4 vaut 21 En cas de besoin, on utilise les parenthèses pour indiquer les opérations à effectuer en priorité. Exemple : (9 + 3) * 4 vaut 48  À priorité égale, l’évaluation de l’expression se fait de gauche à droite
  • 70. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’instruction d’affectation 70  C’est une instruction qui modifie le contenu d’une case mémoire en lui affectant une valeur (d’où son nom…).  En pseudo-code, l'affectation est notée par le signe ←  Elle permet de copier une donnée d’un endroit à un autre, c’est-à-dire recréer une entité à un endroit différent.  L’instruction d’affectation consiste à attribuer une valeur à une variable.
  • 71. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite L’instruction d’affectation 71  Permet d’attribuer des valeurs aux variables en utilisant le symbole suivant  Syntaxe Exemples de déclaration Exemples d’affectation nomDeLaVariable  valeur Variable x : Réel x  3.14 Variable Prenom : Chaîne Prenom  ˝Sylvie˝ Variable age : Entier age  25 Variable i, j, k : Entier i  0, j  5, k  -1, i  j Variable c : car C  ‘A‘ Variable Trouve : Booléen Trouve  VRAI
  • 72. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Les types d’affectation : Type 1 72 Identificateur  valeur Exemples : x  3.14 Prenom  ˝Sylvie˝ Age  24 i  0 Facture_payee  VRAI Choix  ‘Y‘;  Possibilité d’affecter une valeur de même type à une variable
  • 73. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Les types d’affectation : Type 2 73 Identificateur  Identificateur Exemples : Prenom1 Prenom3 Prenom2 Prenom1 Prenom3 Prenom2  Possibilité d’affecter une variable de même type à une variable
  • 74. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Les types d’affectation : Type 3 74  Possibilité d’affecter une expression de type compatible à une variable : 1. C’est le cas quand elles sont du même type ou quand l’expression est entière et la variable réelle. réel  entier (juste) 2. Mais quand la variable est entière et l’expression réelle. entier  réel (faux)
  • 75. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Les types d’affectation : Type 3 75 Identificateur  Expression Exemples : k  i+j Consommation  nouvel_index – ancien_index Moyenne  somme_notes/nombre_eleves TVA  HT*0.2
  • 76. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite la séquence des instructions 76  Les opérations d'un algorithme sont habituellement exécutées une à la suite de l'autre, en séquence (de haut en bas et de gauche à droite).  L'ordre est important.  On ne peut pas changer cette séquence de façon arbitraire.  Par exemple, enfiler ses bas puis enfiler ses bottes n’est pas équivalent à enfiler ses bottes puis enfiler ses bas.
  • 77. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 77  Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ? Variables A, B, C: entier Début A  -3 B  7 A  B B  A-5 C  A + B C  B – A Fin AFFECTATION : EXERCICE
  • 78. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 78 Donnez les valeurs des variables A et B après exécution des instructions suivantes ? Variables A, B : Entier Début A  6 B  2 A  B B  A Fin Les deux dernières instructions permettent-elles d’échanger les valeurs de A et B ? AFFECTATION : EXERCICE
  • 79. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite AFFECTATION : ECHANGE 79  Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B
  • 80. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Instructions d’ENTREES / SORTIES 80  Pour que l’on puisse « interagir » avec un ordinateur, on utilise dans un algorithme des instructions d’Entrée et des instructions de Sortie.  Les E/S ou I/O permettent  L’interaction  Le dialogue  La communication avec la machine
  • 81. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Instructions d’ENTREES / SORTIES 81  Entrées (Input) : il est possible de rentrer des valeurs dans un algorithme  Sortie (Output) : de même, en réponse, l’algorithme peut renvoyer une valeur qui est généralement le résultat de l’algorithme.
  • 82. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Instructions d’ENTREES / SORTIES 82  On appelle donc : Entrée : ce que l’algorithme reçoit Sortie : ce que l’algorithme émet  On a affaire à deux (2) acteurs : L’utilisateur (user) L’ordinateur (la machine)
  • 83. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 83 ENTREES SORTIES ORDINATEUR UTILISATEUR Instructions d’ENTREES / SORTIES
  • 84. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Instructions d’ENTREES / SORTIES 84  Les Entrées (Input) : en informatique, quand on parle d’entrée pour un algorithme, cela fait généralement référence à des données entrées au clavier par l’utilisateur : Lire(N)  L’instruction Lire(N) indique que l’algorithme attend que l’on rentre une valeur au clavier.  Une fois la valeur saisie, celle-ci sera affectée à la variable N.  Tant qu’aucune valeur n’est saisie, l’algorithme ne passe pas à la suite.
  • 85. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Instructions d’ENTREES / SORTIES 85  Les Sorties (Output) : en informatique, quand on parle de sorties pour un algorithme, cela fait généralement référence à des données affichées à l’écran par l’algorithme (ordinateur) : Ecrire(V)  L’instruction Ecrire(V) indique que la valeur stockée dans la variable V va être affichée à l’écran.
  • 86. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Lecture 86  Lecture  Saisir au clavier et affecter ce qui est saisi aux variables déjà définies Syntaxe Exemples Lire(nom_variable) Lire(a) Lire(TVA) Lire(note)
  • 87. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Instructions d’ENTREES / SORTIES 87
  • 88. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ecriture 88  Ecriture  Afficher à l’écran Cas Syntaxe Exemples 1 Ecrire(˝message˝) Ecrire(˝Entrez la valeur de a :˝)  Entrez la valeur de a : 2 Ecrire(nom_variable) Ecrire(moyenne)  moyenne 3 Ecrire(˝message˝,nom_variable) Ecrire(˝votre note est :˝,moyenne)  votre note est : moyenne
  • 89. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Instructions d’ENTREES / SORTIES 89
  • 90. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Exercice 90  Écrire un algorithme qui demande à l’utilisateur de saisir deux nombres entiers et de calculer leur somme et l’afficher à l’écran.
  • 91. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Solution de l’exercice 91 Algorithme Somme Variables a, b, S : Entier Début Ecrire(˝Saisir a :˝) Lire(a) Ecrire(˝Saisir b :˝) Lire(b) S  a + b Ecrire(˝La somme est :˝,S) Fin
  • 92. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 92 CHAPITRE IV instructions conditionnelles (les alternatives)
  • 93. 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.
  • 94. 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.
  • 95. 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
  • 96. 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
  • 97. 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
  • 98. 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
  • 99. 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
  • 100. 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
  • 101. 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
  • 102. 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
  • 103. 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
  • 104. 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
  • 105. 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
  • 106. 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
  • 107. 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
  • 108. 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
  • 109. 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
  • 110. 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
  • 111. 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
  • 112. 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
  • 113. 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
  • 114. 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
  • 115. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 115 CHAPITRE V instructions itératives (les boucles)
  • 116. 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
  • 117. 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
  • 118. 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
  • 119. 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 »
  • 120. 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 »
  • 121. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 121 L’instruction « Pour … Faire »
  • 122. 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, 100 Résultat d’exécution : 100, 99, 98, …, 2, 1
  • 123. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 123 L’instruction « Tantque … faire »  Cette instruction permet de tester une condition et répéter le traitement associé tant que cette condition est vérifiée. Tantque (condition) Faire Instruction(s) Fintq
  • 124. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 124 L’instruction « Tantque … faire » Exemple : Réécrivons l’algorithme précédent avec cette instruction. Variable i : entier Début i  1 Tantque(i<=100)Faire Ecrire(i) i i+1 Fintq Fin
  • 125. 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)
  • 126. 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
  • 127. 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 « Tantque … Faire » puis avec « Pour … Faire ».
  • 128. 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.
  • 129. 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 « Tantque … Faire ».  Par contre, dans la boucle « Pour … Faire », c’est l’indice qui joue le rôle du compteur.
  • 130. 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) cpt  0 Tantque (condition) Faire instruction(s) … cpt  cpt + 1 FinTq Bloc de la boucle
  • 131. 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.
  • 132. 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 Tantque (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
  • 133. 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.
  • 134. 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
  • 135. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite 135 Les boucles imbriquées  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
  • 136. 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
  • 137. 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 :
  • 138. 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
  • 139. 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.
  • 140. 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)
  • 141. 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>
  • 142. 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
  • 143. 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
  • 144. 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
  • 145. 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
  • 146. 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
  • 147. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite ALGORITHMES & PROGRAMMATION I 147 CHAPITRE VII Les tableaux
  • 148. 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.
  • 149. 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.
  • 150. 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.
  • 151. 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
  • 152. 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 : Tableau <nom_du_tableau>[taille] : Type Exemple : Tableau Notes[100] : Réel
  • 153. 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.
  • 154. 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.
  • 155. 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
  • 156. 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
  • 157. 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
  • 158. 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
  • 159. 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
  • 160. 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.
  • 161. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite Manipulation 161 Algorithme Application1 Variable i : Entier Tableau Tab[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
  • 162. 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
  • 163. 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.
  • 164. 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.
  • 165. 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 :
  • 166. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite La recherche dans un tableau 166 Tableau Tab[N] : Entier Variables val, i : Entier Début Ecrire("Entrer la valeur à rechercher :") Lire(val) Pour i de 0 à N-1 … Finpour Fin
  • 167. 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 :
  • 168. 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 ».
  • 169. 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
  • 170. 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
  • 171. 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.
  • 172. 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 ».
  • 173. 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) Alors Ecrire(val, "fait partie du tableau") Sinon Ecrire(val, "ne fait pas partie du tableau") Finsi Fin
  • 174. 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
  • 175. 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.
  • 176. 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 Tableau T[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
  • 177. 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) et (existe = Faux) Faire {cas où T[i] = val} Si (T[i] = val) Alors {Inverser la valeur de Existe} Existe  Vrai
  • 178. 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
  • 179. 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.
  • 180. 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.
  • 181. 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 :
  • 182. 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
  • 183. 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
  • 184. 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 :
  • 185. 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
  • 186. 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é.
  • 187. 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é
  • 188. 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
  • 189. 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
  • 190. 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
  • 191. 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
  • 192. 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.
  • 193. 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.
  • 194. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 200 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] de réels
  • 195. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 201  La valeur entourée indique l’élément désigné par la ligne 1 et la colonne 4 i.e. Notes [1,4].  Pour modifier cet élément on écrit : Lire(Notes[1,4])  Pour afficher cet élément on écrit : Ecrire(Notes[1,4])  Pour modifier cet élément on écrit : Notes[1,4]  14
  • 196. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 202 Syntaxe : Tableau <Identificateur> [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é.
  • 197. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 203  Affichage d’une matrice {1 - Affichage par ligne } Pour i de 0 à n Faire Pour j de 0 à m Faire Ecrire(A[i,j]) FinPour FinPour {2 - Affichage par colonne} Pour j de 0 à m Faire Pour i de 0 à n Faire Ecrire(A[i,j]) FinPour FinPour
  • 198. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 204  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 Faire Pour j de 0 à m Faire Ecrire("Donner un élément :") Lire(A[i,j]) FinPour FinPour
  • 199. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 205 {Lecture par colonne} Pour j de 0 à m Faire Pour i de 0 à n 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
  • 200. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TABLEAU A DEUX DIMENSIONS (MATRICE) 206  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
  • 201. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 207 1. Traitement pour toutes les lignes : (*Initialiser le résultat pour tous les éléments*) Pour i de 0 à n faire (*Condition sur les lignes*) Pour j de 01 à m 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*)
  • 202. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 208 1. Calculer et afficher le nombre d’éléments impairs pour toutes les lignes impairs.
  • 203. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 209 Cpt  0 POUR i  1 à n FAIRE SI (i mod 2 <> 0) ALORS POUR j  1 à m FAIRE SI (A[i,j] mod 2 <> 0) ALORS cpt  cpt +1 FINSI FINPOUR FINSI FINPOUR Ecrire(cpt)
  • 204. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 210 2. Traitement pour chaque ligne : POUR i  1 à n FAIRE (*Condition sur les lignes*) (*Initialisation du résultat pour chaque ligne*) POUR j  1 à m FAIRE (*Condition sur les éléments*) Actions pour les éléments A[i,j] FINPOUR (*Traitement du résultat pour chaque ligne*) FINPOUR
  • 205. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 211 2. Calculer et afficher la moyenne des éléments pairs pour chaque ligne
  • 206. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 212 POUR i  1 à n FAIRE S  0 cpt  0 POUR j  1 à m 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
  • 207. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite TRAITEMENT sur LES MATRICES 213 3. Traitement pour toutes les colonnes : (*Initialiser le résultat pour tous les éléments*) POUR j  1 à m FAIRE (*Condition sur les colonnes*) POUR i  1 à n 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*)
  • 208. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite APPLICATION 214 3. Calculer et afficher le nombre d’éléments > val pour toutes les colonnes de rang pair.
  • 209. Muhammad Ibn Musa Al-Khwarizmi Reproduction interdite Reproduction interdite Reproduction interdite Reproduction interdite CORRIGE de l’APPLICATION 215 Cpt  0 POUR j  1 à m FAIRE SI (j mod 2 = 0) ALORS POUR i  1 à n FAIRE SI (A[i,j] > val) ALORS cpt  cpt +1 FINSI FINPOUR FINSI FINPOUR Ecrire(cpt)