2. Reproduction interdite
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, ESIITECH, SUP’ MANAGEMENT
Tél. : 066049840 / 077684285
Email : olyvier.nzighou@gmail.com
3. Reproduction interdite
Objectif du cours
3
Ce cours s’adresse aux étudiants des Classes Préparatoires
aux Grandes Ecoles (CPGE).
Il forme aux bases de la programmation :
Python
SciLab,
SQL
ainsi qu’aux bases de l’ingénierie numérique
(résolution approchée d’équations algébriques ou
différentielles, calcul approchée d’intégrales, etc.)
7. Reproduction interdite
pourquoi l’Informatique dans les cpge ?
7
Tout ingénieur doit maîtriser les concepts fondamentaux de
l’informatique pour :
Communiquer avec les informaticiens
Comprendre les questions de complexité algorithmique, de
précision numérique de sécurité.
Disposer d’une représentation claire de l’architecture d’un
ordinateur, d’un OS, d’un réseau
Savoir écrire du code et utiliser les bibliothèques logicielles
Prendre des décisions stratégiques
8. Reproduction interdite
CONTEXTE
8
Un monde numérique avec une explosion des données tout à
fait considérables. Les ordres de grandeur sont tellement
hallucinant que quand on en parle, on ne nous croit pas !
Par exemple le nombre de mots prononcés par l’être humain
depuis qu’il y a des êtres humains sur terre est comparable au
nombre d’octets échangés sur Internet chaque année.
Colossale !
D’où l’importance de savoir exploiter les résultats
numériques, les résultats d’origine expérimentale,
industrielle ou les données qu’on peut trouver sur le réseau
Internet.
Une obsolescence rapide des technologies (un renouvèlement
rapide des technologies)
9. Reproduction interdite
CONTEXTE
9
Conséquence :
Présenter les concepts fondamentaux
Ne pas se lier à des normes ou protocoles non pérennes
mais contextualiser toutes les activités en lien avec
les autres disciplines scientifiques
Analyser et modéliser un problème, une situation, un
système informatique
10. Reproduction interdite
CONTEXTE
10
Concevoir une solution modulaire, utilisant les méthodes de
programmation et les structures de données appropriées.
Traduire un algorithme dans un langage de programmation
Spécifier les composants logiciels développés ou utilisés
Evaluer, contrôler, valider des algorithmes et des
programmes
Communiquer à l’écrit et à l’oral une problématique, une
solution.
11. Reproduction interdite
CHOIX DU LANGAGE
11
Python (logiciel libre et gratuit) permet une entrée
pédagogiquement adaptée
Syntaxe simple et conforme aux standards
Sémantique claire et bien définie
Nombreuses bibliothèques logicielles pour des exemples
inspirés par les disciplines :
Calcul numérique (Numpy)
Bibliothèque scientifique (Scipy)
Visualisation graphique (Matplotlib)
12. Reproduction interdite
Généralité et Algorithmique de base
12
Le but de cette partie est de connaître les constituants d’un
système informatique et l’initiation à la conception des
algorithmes élémentaires manipulant (variables, types,
structure de contrôle) puis convertir ces algorithmes en
programmes.
13. Reproduction interdite
Les principaux chapitres
13
Environnement matériel et logiciel d’un SI
Représentation des données dans la mémoire (RAM)
Système d’exploitation d’un ordinateur
Environnement de développement intégré « IDE »
Algorithmique de base
14. Reproduction interdite
Algorithmique et programmation
14
Le but de cette partie est d’initier à la programmation
modulaire ainsi que la représentation des données
dans des structures de données ou collections
d’objets (tableaux, chaînes de caractères, listes, tuples,
…) et leurs utilisations (tri, recherche, fichier, …)
15. Reproduction interdite
Les principaux chapitres
15
Programmation modulaire (fonctions)
Structures de données et leurs utilisations
Fichiers de données
16. Reproduction interdite
Les principaux chapitres
16
Présentation des bibliothèques (Numpy, Scipy et
matplotlib)
Résolution d’équation algébrique (dichotomie, Newton)
Résolution approchée d’une équation différentielle (Euler)
Résolution d’un système linéaire inversible (Gauss)
17. Reproduction interdite
OUTILS LOGICIELS
17
Langage de programmation : Python
Environnement de Développement Intégré : Pyzo, PyCharm ou
Visual Studio Code...
Langage de programmation de calcul numérique : Python ou
SciLab
19. Reproduction interdite
PLAN
19
1. Notions de base
2. Système informatique
3. Qu’est-ce qu’un ordinateur
4. Schéma fonctionnel d’un ordinateur
5. Mémoire centrale
6. Microprocesseur
7. Représentation des données dans la mémoire
20. Reproduction interdite
NOTIONS DE BASE
20
Qu’est-ce que l’informatique :
Le terme « informatique » vient de la contraction des
mots « information » et « automatique ». Il a été proposé
par Michel Dreyfus en 1962, et accepté par l’académie
française en 1966, pour désigner la technique
permettant de traiter automatiquement les
informations.
Donc : L’informatique = Information + Automatique
21. Reproduction interdite
NOTIONS DE BASE
21
Définition : l’informatique est la science du traitement
automatique de l’information par ordinateur.
Information :
Icone -01- Icone -02- Icone -03-
22. Reproduction interdite
NOTIONS DE BASE
22
Définition :
L’information est un ensemble de renseignements
compréhensibles par l’esprit humain et qui prend un sens
pour lui selon un contexte, elle est représentée à l’aide de
convention (codage) afin d’être conservée traitée ou
communiquée. En informatique, elle correspond généralement
aux données manipulées (texte, nombre image, son, …).
23. Reproduction interdite
NOTIONS DE BASE
23
Traitement de l’information :
58, 3, 78, 2, 9, 7 2, 3, 7, 9, 58, 78
Programmeur Programmer
Classement croissant
Traduction Fr, En
24. Reproduction interdite
NOTIONS DE BASE
24
Schéma d’un traitement
Information
Entrée
Traitement
(Opérations
)
Information
sortie
Le traitement de l’information est une suite d’opérations
transformant une représentation d’information en une autre
représentation plus facile à manipuler ou interpréter
suivant un ensemble de règles fini.
25. Reproduction interdite
NOTIONS DE BASE
25
Le système informatique :
Le système informatique est un ensemble de composants
de type logiciel (Software) et matériel (Hardware), mis
ensemble pour le traitement automatique des
informations.
26. Reproduction interdite
NOTIONS DE BASE
26
Exemple :
Les smartphones, les tablettes, les consoles de jeux et les
ordinateurs sont tous des exemples de systèmes informatiques.
28. Reproduction interdite
SYSTÈME INFORMATIQUE
28
Le logiciel (Software) :
C’est l’ensemble des programmes nécessaires au
fonctionnement d’un système informatique, ils assurent une
communication entre les utilisateurs et les différentes
ressources matérielles de ce système. Il y a deux types :
Logiciel de base
Logiciel d’application
30. Reproduction interdite
Structure d’un ordinateur
30
Qu’est-ce qu’un ordinateur ?
Un ordinateur est une machine de traitement de
l’information (binaire {0,1}) : il est capable d’acquérir de
l’information, de la stocker, de la transformer et de la
restituer sous une autre forme.
31. Reproduction interdite
Structure d’un ordinateur
31
L’acquisition de l’information se fait par l’intermédiaire des
périphériques d’entées (clavier, souris, micro, webcam,
scanner, écran tactile, etc.).
Le stockage de l’information utilise la mémoire d’un
ordinateur (disque dur, mémoire vive, mémoire de masse).
La transformation de l’information est le rôle du
processeur (CPU)
La restitution de l’information utilise les périphériques
de sorties (écran, imprimantes, etc.)
33. Reproduction interdite
Structure d’un ordinateur
33
Architecture de Von Neumann :
Une mémoire centrale
Une unité centrale UC, CPU (Central Processing Unit), Processeur,
Un ensemble de dispositifs d’entrées/sorties pour communiquer avec
l’extérieur
Cette architecture est la base des architectures des ordinateurs
35. Reproduction interdite
Structure d’un ordinateur
35
Définition : On appelle « périphérique » un matériel
électronique pouvant être raccordé à un ordinateur par
l’intermédiaire d’une de ces interfaces d’entrée/sortie
(port série, port parallèle, bus, USB, etc.). Il s’agit donc des
composants de l’ordinateur externes à l’unité centrale.
On distingue habituellement les catégories de périphériques
suivantes :
Périphériques d’entrée
Périphériques de sortie
Périphérique de stockage
Périphérique d’entrée/sortie
36. Reproduction interdite
Structure d’un ordinateur
36
Périphériques d’entrée :
Les périphériques d’entrée ce sont les périphériques capables
uniquement d’envoyer des informations à l’ordinateur, par
exemple les dispositifs de pointage (souris) ou bien le clavier.
Périphériques de sortie :
Il s’agit de périphériques de sortie, fournissant une
représentation visuelle à l’utilisateur, tel qu’un moniteur
(écran).
Périphériques de stockage :
Il s’agit d’un périphérique d’entrée/sortie capable de stocker les
informations de manière permanente (disque dur, le CD-ROM,
le DVD-ROM, etc.)
38. Reproduction interdite
Structure d’un ordinateur
38
Périphériques Types de périphériques Rôle
Souris Périphérique d’entrée Entrer des ordres (clics)
Moniteur Périphérique de sortie Afficher les informations
Clavier Périphérique d’entrée
Ecrire des alphabets, des numéros et
des symboles
Imprimante Périphérique de sortie Imprimer les documents
Casque Périphérique de sortie Entendre du son
Modem Périphérique d’entrée et de sortie Connecter l’ordinateur à Internet
Clé USB Périphérique de stockage Stocker les informations
Scanner Périphérique d’entrée Entrer des photos et des documents
Microphone Périphérique d’entrée Entrer le son
CD-ROM Périphérique de stockage Stocker les informations
Disque dur Périphérique de stockage Stocker les informations
Périphériques - Types de périphériques - Rôle :
39. Reproduction interdite
Structure d’un ordinateur
39
Interfaces d’Entrée/Sortie :
Une interface (connecteur) peut être un port (canal), un
circuit ou bien un processeur spécialisé dans la gestion d’un
certain périphérique ou d’une certaine fonction, constituant
ce qu’on appelle carte d’extension, comme une carte vidéo ou
une carte son.
40. Reproduction interdite
Structure d’un ordinateur
40
La carte mère :
La carte mère est le composant informatique principal
(composé de circuits imprimés et se ports de connexion)
servant à interconnecter tous les composants de l’ordinateur.
Composant Numéro
Processeur 5
RAM 4
IDE 1
LAN 11
Micro 14
Floppy 2
Clavier 7
Port USB 8
Port série 9
Souris PS2 6
Alimentation 3
Port parallèle 10
Line In (Audio) 12
Line Out (Audio) 13
Carte graphique AGP 16
Cartes d’extension PCI 15
42. Reproduction interdite
Structure d’un ordinateur
42
Socket :
Le socket est un connecteur utilisé pour interfacer un
processeur avec une carte mère
43. Reproduction interdite
Structure d’un ordinateur
43
Slot :
Le slot est une fente dans laquelle on insère une carte
d’extension ou une barrette de mémoire
44. Reproduction interdite
Structure d’un ordinateur
44
Connecteur IDE (Integrated Drive Elecronic) :
Le port IDE décrit une interface de connexion pour mémoire
de masse (disque dur, lecteur CD-ROM, etc.)
45. Reproduction interdite
Structure d’un ordinateur
45
Connecteur SATA (Serial Advanced Technology Attachment)
:
Le port SATA permet de connecter à une carte mère tout
périphérique compatible avec cette norme (mémoire de masse,
lecteur DVD, etc.)
46. Reproduction interdite
Structure d’un ordinateur
46
Connecteur AGP (Accelerator Graphic Port) :
Le port AGP est un port interne destiné exclusivement aux cartes
graphiques
47. Reproduction interdite
Structure d’un ordinateur
47
Connecteur PCI Express (Peripheral Component Interconnect)
:
PCI Express est un connecteur qui sert à connecter des cartes
d’extension sur la carte mère d’un ordinateur. Il est destiné à remplacer
tous les connecteurs d’extension PCI et l’AGP
48. Reproduction interdite
Structure d’un ordinateur
48
Chipset :
Un chipset est la puce principale intégrée dans une carte mère. Le
chipset gère les échanges de données par exemple entre le
processeur et la mémoire centrale ou encore c’est lui qui gère les
ports.
49. Reproduction interdite
Structure d’un ordinateur
49
La mémoire centrale :
La mémoire centrale (appelée également mémoire interne)
permet de mémoriser temporairement les données lors de
l’exécution des programmes. La mémoire centrale est réalisée
à l’aide de micro-conducteurs, c’est-à-dire des circuits
électroniques spécialisés rapides. La mémoire centrale
correspond à ce que l’on appelle la mémoire vive (RAM)
50. Reproduction interdite
Structure d’un ordinateur
50
Caractéristiques techniques d’une mémoire :
La capacité
Adresse mémoire
Le temps d’accès
Le temps de cycle
Le débit
La non-volatilité
51. Reproduction interdite
Structure d’un ordinateur
51
La capacité : représentant le volume global
d’informations qu’une mémoire peut stocker, le nombre de
cases mémoires représente la taille ou la capacité de
mémoire (Ko, Mo, ou Go, etc.).
Adresse mémoire : c’est le numéro attribué à une case
mémoire (8 bits) dans la mémoire centrale
Temps d’accès : correspond à l’intervalle de temps
entre la demande de lecture/écriture et la disponibilité de la
donnée
52. Reproduction interdite
Structure d’un ordinateur
52
Le temps de cycle : représente l’intervalle de temps
minimum entre deux accès successifs.
Le débit : c’est le volume d’information échangé par
unité de temps (bits/s)
La non-volatilité : Elle caractérise l’aptitude d’une
mémoire à conserver les données lorsqu’elle n’est pas
alimentée électriquement.
53. Reproduction interdite
Structure d’un ordinateur
53
Types de mémoires :
La mémoire cache : c’est une mémoire rapide permettant
de réduire les délais d’attente des informations stockées dans
la mémoire centrale
Mémoire RAM : mémoire principale du système, elle sert à
stocker de manière temporaire des données lors de
l’exécution des programmes.
La mémoire ROM : Elle fournit les informations nécessaires
pour la mise en route de l’ordinateur.
La mémoire de masse : elle permet de stocker une grande
quantité de données de manière non volatile : exemple disque
dur, clé USB, etc.
56. Reproduction interdite
Structure d’un ordinateur
56
L’unité Centrale de traitement (CPU) : C’est le centre
de calcul et de contrôle d’un ordinateur, le CPU est
matérialisé physiquement par un circuit électronique
appelé microprocesseur.
Le microprocesseur est caractérisé par :
Sa marque : exemple Intel, AMD, Motorola, etc.
Sa fréquence : nombre d’opérations qu’il peut
effectuer par seconde (GHz)
Sa vitesse : la vitesse de traitement (MIPS Unité
de mesure de la puissance d'un processeur,
exprimant le nombre de millions d'instructions
traitées par seconde)
57. Reproduction interdite
Structure d’un ordinateur
57
Le microprocesseur est composé des éléments suivants
:
UAL : Unité Arithmétique et Logique permettant de faire
des calculs arithmétiques et des opérations logiques
UC : Unité de Commande permettant d’organiser et
d’exécuter les opérations effectuées par le microprocesseur
Les Registres : Ce sont des petites mémoires internes,
très rapides d’accès permettant de stocker temporairement
les données ou les instructions.
58. Reproduction interdite
Structure d’un ordinateur
58
Un processeur dispose de quatre tâches fondamentales
qu’il exécute :
FETCH : recherche de l’instruction
DECODE : Décodage de l’instruction (opération et
opérandes)
EXECUTE : Exécution des opérations
WRITEBACK : Ecriture du résultat
59. Reproduction interdite
Structure d’un ordinateur
59
Le bus est le canal électronique qui assure la communication
(information binaire) entre les composants matériels
61. Reproduction interdite
Système de numération
61
Le système décimal :
Le système décimal (base 10) : c’est celui que nous
utilisons dans nos activités quotidiennes. Ce système est
basé sur dix symboles, (0-9), (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)10
Exemple :
Quand on écrit 178 en numération décimale, cela signifie :
178 = 100 + 70 + 8
1 * 10 * 10 + 7 * 10 + 8 * 1
1 * 102 + 7 * 101 + 8 * 100
62. Reproduction interdite
Système de numération
62
Le système binaire (utilisé par les ordinateurs) :
C’est un système qui comprend deux chiffres (0 et 1). Donc
un code binaire contient une séquence constituée
uniquement de 0 et de 1.
Le système binaire permet de mieux représenter le
fonctionnement de l’électronique numérique qui anime les
ordinateurs.
0 : absence de courant électrique
1 : présence de courant électrice
Chaque chiffre constituant un code binaire est appelé Bit
(Binary Digit). Un groupe de 8 bits est appelé octet ou Byte
en anglais.
63. Reproduction interdite
Système de numération
63
Système octale :
L’octal est le codage en base 8. On utilise les chiffres entre
0 et 7 pour coder les nombres en octal.
La numérotation octale permet de simplifier l’écriture
d’un code binaire.
Exemple : (3701)8
Il faut noter que le nombre (109)8 n’est pas un nombre
octal valide car il renferme le chiffre 9 qui n’appartient
pas à cette base.
64. Reproduction interdite
Système de numération
64
Techniquement un ordinateur n’utilise pas la base octale
mais seulement la base binaire.
Cependant certains programmes permettent à
l’utilisateur de représenter un code binaire en octal afin
d’abréger l’écriture binaire.
Exemple : (751)8 = (111 101 001)2
Au lieu d’écrire 9 chiffres en binaires on a écrit que 3 chiffres
en octal
65. Reproduction interdite
Système de numération
65
Système Hexadécimal (Base 16) :
L’hexadécimal est un système numérique qui utilise 16
symboles qui vont de 0 à 9 et de A à F.
A(10), B(11), C(12), D(13), E(14), F(15).
Comme pour la base octale, la base hexadécimale permet
d’abréger l’écriture des longs codes binaires.
Cependant la représentation hexadécimale s’avère plus
pratique que la base octale, vue que chaque octet écrit en binaire
peut être représenté à l’aide de deux caractères en hexadécimaux
Exemple : (1010 1001)2 = (A9)16
66. Reproduction interdite
Système de numération
66
De nos jours le code hexadécimal peut être utilisé
directement par les programmeurs afin de renseigner les
valeurs souhaitées à l’ordinateur sans être obligé de tout
représenter en binaire.
Exemple :
Adressage des cases mémoires
Codes de couleurs (#FF8800 pour l’orange) en HTML
ou CSS
Etc.
En plus de l’indice 16 qui permet d’indiquer que le nombre
en question est en hexadécimal, d’autres notations peuvent
être adoptées : 0xA9, $A9, #A9, etc. selon le langage de
programmation utilisé.
71. Reproduction interdite
Système de numération
71
Addition des nombres binaires naturels :
On désigne par nombre binaire naturel les nombres
ordinaires que nous avons vu jusqu’ici. C’est-à-dire que
chaque bit est pondéré par une puissance de 2
Exemple : (111)2 = 1*22 + 1*21 + 1*20 = (7)10
Il faut noter que le même nombre (111)2 peut désigner
une autre valeur. Par exemple pour les nombres signés,
le bit le plus à gauche n’est pas un bit pondéré par une
puissance de 2 mais il s’agit d’un bit de signe. (Cf. la
suite du cours)
72. Reproduction interdite
Système de numération
72
L’opération d’addition en binaire est similaire à celle en
décimal sauf qu’ici il y a juste quatre situations à mémoriser
:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 10
1 + 1 + 1 = 11
L’addition est simple et cruciale au sein d’un
microprocesseur. Comme on le verra plus tard, faire une
soustraction revient à faire des opérations d’addition de
nombres signés et non pas de nombres binaires naturels.
(Cf. suite du cours).
74. Reproduction interdite
Système de numération
74
Le Complément à 1 :
En décimal, on forme le complément à 9 d’un nombre en
remplaçant chaque chiffre de ce nombre par sa différence
avec 9.
Exemple :
Le complément à 9 de 6473, noté C9(6473)=3526
En binaire, on forme le complément à 1 d’un nombre en
remplaçant chaque chiffre de ce nombre par sa différence
avec 1 (on remplace les 1 par des 0 et réciproquement).
Exemple :
Le complément à 1 de 11010, noté C1(11010)=00101
75. Reproduction interdite
Système de numération
75
Le Complément à 2 (ou complément vrai) :
En décimal, on forme le complément à 10 d’un nombre en
remplaçant le chiffre des unités par sa différence avec 10 et les
autres chiffres de ce nombre par leur différence avec 9.
Le complément à 10 de 6473, noté C10(6473) = 3527
On peut dire que le complément à 10 d’un nombre s’obtient
en soustrayant de la puissance de 10 immédiatement supérieur
ce nombre : 3527 = 10000-6473
76. Reproduction interdite
Système de numération
76
On voit aussi que le complément à 10 s’obtient en ajoutant 1
au complément à 9 :
Le complément à 9 de 6473, noté C9(6473) = 3526
Le complément à 10 de 6473, noté C9(6473)+1 =
3527
En binaire, on va utiliser la règle ci-dessus et former le
complément à 2 d’un nombre en ajoutant 1 au complément à 1
Le complément à 2 de 11010, noté C2(11010)
= C1(11010)+1 = 00101+1 = 00110
77. Reproduction interdite
Système de numération
77
On peut aussi dire que le complément à 2 d’un nombre s’obtient
en le soustrayant de la puissance de 2 immédiatement
supérieure à ce nombre : 00110 = 100000-11010
Une astuce permet d’éviter cette addition : pour obtenir le
complément à 2 d’un nombre, on conserve tous les bits à partir
de la droite jusqu’au 1er 1 compris et on inverse tous les autres.
C2(11010) = 00110
78. Reproduction interdite
Système de numération
78
Exercices d’application :
Calculer le complément en base 10, 8 du nombre 2465
Calculer le complément en base 16 du nombre AB26
Calculer le complément en base 2 de 11001011
79. Reproduction interdite
Système de numération
79
Soustraction par complément à 2 : le but est de remplacer la
soustraction par l’addition
En décimal, soit la soustraction suivante : 742 – 568
Rappels complément à 10 :
En décimal, on forme le complément à 10 d’un nombre en
remplaçant le chiffre des unités par sa différence avec 10 et
les autres chiffres de ce nombre par leur différence avec 9.
Comme 568 = 1000 – 432, on peut écrire :
742 – 568 = 742 – (1000 – 432) = 742 + 432 – 1000 = (1)174
80. Reproduction interdite
Système de numération
80
Comme 432 est le complément à 10 de 568, on a en fait
effectué l’opération suivante : x - y = x + C10(y) -
(puissance de 10 immédiatement supérieure à x)
Au lieu de soustraire 1000, il aurait suffi de négliger la
dernière retenue dans le résultat.
En effet 742 + 432 = (1)174 = 174 si l’on néglige le 1
de gauche
En résumé, au lieu de soustraire un nombre y d’un nombre x,
on ajoute à x le complément à 10 de y et on oublie le (n+1)ème
chiffre si on travaille sur n chiffres.
81. Reproduction interdite
Système de numération
81
Remarque : si les deux nombres x et y ne comportent pas le
même nombre de chiffres, il faut rajouter des 0 devant y avant de
rechercher son complément à 10
Exemple :
742 - 67 = 742 – 067 = 742 + 933 = (1)675 = 675
En binaire c’est pareil (Avec la même remarque que
précédemment)
x – y = x + C2(y) - (puissance de 2 immédiatement
supérieure à x)
82. Reproduction interdite
Système de numération
82
Exemple :
11100101 – 110111 = 11100101 – 00110111
= 11100101 + 11001001 = (1)10101110
Résumé de la méthode :
1.Compléter par des 0 pour avoir le même format
2.Prendre le complément à 2 du nombre à soustraire
3.Faire l’addition et oublier le bit en trop s’il y a lieu
83. Reproduction interdite
Système de numération
83
Pour l’instant la soustraction x – y n’est toujours pas faisable si x<y
(sauf en effectuant y – x et en mettant moins devant le résultat !)
Normalisation des nombres signés :
Comme l’ordinateur ne comprend pas les signes + et -, on va les
représenter par un bit de la façon suivante :
On commence par normaliser la taille à un nombre de bits
précis par exemple 8 bits soit un octet.
On décide que le bit de gauche sera égal à 0 si le nombre est
positif ou nul et à 1 si le nombre est négatif. Ce bit est
appelé bit de signe et les nombres codés ainsi s’appellent
nombres signés.
84. Reproduction interdite
Système de numération
84
Conversion, décimal vers binaire signé :
Si (x)10 est positif ou nul, on le convertit normalement en
binaire
Si (x)10 est négatif, on convertit sa valeur absolue en
binaire et on en prend le complément à 2
Exemple :
6810 = (01000100)2
-67 |-67| = |67| = 01000011, C2(01000011)
= 10111101
donc -67 = 10111101
85. Reproduction interdite
Système de numération
85
Conversion, binaire signé vers décimal :
Si le bit de signe de (x)2 = 0, on le convertit
directement en décimal
Si le bit de signe de (x)2 = 1, cela veut dire que (x)10
est négatif, on cherche le complément à 2 de (x)2, on le
convertit en décimal et on rajoute le signe – devant !
Exemple :
(01110100)2 = 116
(10100010)2 : le bit de signe vaut 1, nombre
négatif C2(10100010) = 01011110 = (94)10,
donc (01110100)2 = -94
86. Reproduction interdite
Système de numération
86
Limites :
Comme on s’est limité à 8 bits, on ne pourra coder en binaire
que 256 valeurs différentes.
En nombres non signés (donc exclusivement positifs) on
pouvait aller de 010 (= (00000000)2) à 25510 (= (11111111)2)
soit 256 valeurs en tout car 256 = 28.
En nombres signés, le plus grand commençant par un 0
(donc positif) est (01111111)2 = 12710.
Le nombre binaire suivant est (10000000)2 mais, comme
il commence par un 1, il doit être considéré comme
négatif.
87. Reproduction interdite
Système de numération
87
Pour trouver sa valeur décimale, on en prend le
complément à 2 soit (10000000)2 qui, converti en
décimal donne 128.
128 est donc la valeur absolue de (10000000)2 et on
obtient en définitive (10000000)2 = -128
Sur un octet, les 256 valeurs codables en nombres signés vont
donc de -128 à +127
Le nombre 128 n’est pas codable en nombres signés sur 8 bits
En nombres signés sur n bits, on peut coder de -2n-1 à 2n-1-1
Le tableau suivant regroupe quelques valeurs particulières de
nombres signés et fait aussi apparaître les nombres hexadécimaux
correspondants.
88. Reproduction interdite
Système de numération
88
Base 10 Base 2 Base 16
127 0111 1111 7F
126 0111 1110 7E
2 0000 0010 02
1 0000 0001 01
0 0000 0000 00
-1 1111 1111 FF
-2 1111 1110 FE
-127 1000 0001 81
-128 1000 0000 80
On constate que les valeurs positives sont codées en hexadécimal de 00 à
7F et que les valeurs ≥ 8016 correspondent à des nombres négatifs.
89. Reproduction interdite
Système de numération
89
Opérations en nombres signés :
Comme nous savons maintenant noter les nombres négatifs, nous pouvons
effectuer la soustraction x - y avec x < y
Le résultat est négatif, son bit de signe est à 1 et il suffit de convertir
comme vu précédemment.
00111100 - 01010101 = 00111100 + C2(01010101)
= 00111100 + 10101011 = 11100111
Correspond à un nombre négatif à cause du 1 de gauche.
Pour calculer sa valeur décimale, on prend le complément à 2 soit
00011001 et on le convertit en décimal, soit 25. le résultat de la
soustraction est donc -25
Attention : Si les nombres sont codés sur 8 bits, le résultat doit rester
compris dans l’intervalle de -128 à +127. Un dépassement doit générer erreur.
93. Reproduction interdite
Système de numération
102
Représentation des nombres binaires (Virgule flottante) Simple
précision et double précision, la norme IEEE 754 :
Lorsqu’on Représente la célérité ou vitesse de la lumière en
base décimale on écrit : C = 300 000 000 ms-1. En général on
préfère l’écriture scientifique : 3 * 108 ms-1
Cette écriture est plus courte et permet de simplifier
l’évaluation d’un nombre constitué de beaucoup de chiffres.
La masse d’un électron : me = 0,000…00091094 kg on préfère
91094 * 10-31 kg
Dans la base binaire c’est pratiquement la même chose. Au
lieu d’écrire les nombres réels avec une virgule fixe qui sépare
deux blocs de 0 et de 1, on préfère une écriture semblable à
l’écriture scientifique utilisée en base 10.
94. Reproduction interdite
Système de numération
103
Soit : (12,625)10, = (1100, 101)2
Rendons le code binaire semblable à l’écriture scientifique
du décimal. On fait en sorte de mettre un chiffre 1 dans la
partie entière et tout le reste dans la partie fractionnaire.
1100,101 = 1,100101 * 23, déplacement de la virgule de 3
positions vers la gauche c’est pourquoi le nombre
binaire résultant est multiplier par 2 élevé à la
puissance 3
De la même manière (0,375)10 = (0, 011)2 est équivalent à
1,1*2-2. En effet il y a le chiffre 1 à gauche de la virgule et tout
reste sur sa droite, la virgule a été déplacée de 2 positions
sur la droite ce qui est équivalent à la puissance négative -2.
95. Reproduction interdite
Système de numération
104
Comme c’est le cas pour les nombres négatifs contenant le
signe moins (-) inconnu des ordinateurs et qu’on a ensuite
transformé en nombres signés ne contenant que des 0 et des
1, un nombre réel représenté avec l’écriture
scientifique contient des symboles autres que des 0 et
des 1.
Ce qui signifie que les ordinateurs auront du mal à
l’interpréter, c’est là que la norme IEEE 54 intervient.
96. Reproduction interdite
Système de numération
105
IEEE signifie Institute of Electrical and Electronics Engineers ou
institut des ingénieurs électriciens et électroniciens.
C’est une organisation qui a pour mission de promouvoir la
connaissance dans le domaine de l’ingénierie liée à
l’électricité, l’électronique, les télécommunications et
l’informatique.
Elle a pour but de fixer les standards ou les normes utilisées
dans ces différentes disciplines.
IEEE a établi des règles qu’il faut suivre pour représenter les
nombres réels afin que les ordinateurs puissent les
comprendre de manière uniforme.
97. Reproduction interdite
Système de numération
106
Cette norme a été identifiée par le numéro 754 d’où le nom IEEE 754
et elle décrit la virgule flottante.
Contrairement à une virgule fixe, la virgule flottante peut se déplacer
à droite ou à gauche et sa position est compensée par la valeur de
l’exposant qui change par conséquent.
IEEE 754 décrit le nombre format pour représenter un nombre à
virgule flottante.
Les plus connus sont :
Simple précision (32 bits)
Double précision (64 bits)
98. Reproduction interdite
Système de numération
107
Simple & double précision :
Le nombre binaire résultant est codé sur 32(resp. 64) bits.
Cette séquence de 32 (resp. 64) bits est divisée sur 3 blocs :
A gauche le bit de signe
Au milieu l’exposant codé sur 8 (resp. 11) bits
A droite la mantisse codée sur 23 (resp. 52) bits
Le bit de signe peut avoir la valeur 0 ou 1
0 : positif
1 : négatif
99. Reproduction interdite
Système de numération
108
N = (-1)s * (1,M) * 2E+127 (resp. E+1023)
S : Signe
M : Mantisse sur 23 (resp. 52) bits
E : Exposant sur 8 (resp. 11) bits avec un décalage
(biais) maximum de : 28-1-1 = 127 (resp. 211-1-1 =
1023)
100. Reproduction interdite
Système de numération
109
L’exposant contient la valeur de la puissance qui élève le nombre 2
résultant du déplacement de la virgule
La mantisse est la partie fractionnaire du nombre binaire écrit
avec la notation scientifique.
Le chiffre 1 de la partie entière est implicite, donc il n’est pas
inclus dans la représentation du nombre avec la norme IEEE 754
Prenons l’exemple du nombre réel (12,625)10,
Sa représentation binaire en virgule fixe donne : (1100,101)2
Sa représentation en notation scientifique correspond à : 1,100101 *
23
NB : Il faut toujours laisser le chiffre 1 dans la partie entière.
101. Reproduction interdite
Système de numération
110
Si on veut représenter le nombre résultant (1,100101 * 23) à
l’aide de la norme IEEE 754, on procède ainsi :
Puisque le nombre est positif, 0 est le bit de signe.
L’exposant vaut 3, E = 3+127 = 130 = (10000010)2
La mantisse est constituée de 23 bits :
La partie fractionnaire de notre nombre binaire
représenté en notation scientifique complété par des 0.
0 10000010 10010100000000000000000
104. Reproduction interdite
Système de numération
113
Différents types de codes :
Jusque-là, nous avons travaillé avec le code binaire dit naturel
qui est le plus simple et le plus pratique pour effectuer des
opérations arithmétiques, mais, en informatique, il existe
différentes façons de représenter les nombres selon les besoins
et les contraintes. En voici quelques-unes.
Le code Gray (code binaire réfléchi) :
En code binaire naturel, quand on passe de 7 à 8, donc de 0111
à 1000, les 4 bits changent à la fois. Cela peut être gênant car
les changements ne sont jamais totalement simultanés et des
très faibles écarts peuvent entrainer des erreurs. Le Code Gray
élimine ce risque car, dans ce code, 1 seul bit change à la fois
entre deux valeurs consécutives. On parle de code à distance
unité.
107. Reproduction interdite
Système de numération
118
Le code BCD (Binary Coded Decimal) :
Pour l’affichage des nombres, le code binaire naturel n’est pas
pratique : en effet, 13 se code en binaire naturel 1101 mais pour
l’afficher par exemple sur une calculatrice, il faut séparer le 1 du 3 et
envoyer chaque chiffre sur l’afficheur à cristaux liquides
correspondant.
D’où l’idée qui consiste à coder chaque chiffre décimal sur 4 bits
: c’est le code BCD. C’est le même que le code binaire naturel mais
il s’arrête à 9. Pour coder 10, on code le 1 puis le 0 sur 4 bits :
1010 = 0001 0000 en BCD
Exemple : 3509 = 0011 0101 0000 1001
Remarque : les « 0 » apparaissent même en poids fort car chaque
chiffre décimal doit être codé sur 4 bits. Par contre ce code n’est pas
adapté aux calculs numériques.
108. Reproduction interdite
Système de numération
119
Le code ASCII (American Standard Code for Information Interchange) :
C’est un standard universel pour normaliser les échanges entre
machines.
Exemple :
a = 01100001
A = 01000001
0 = 00110000
ESC(ape) = 00001011
Autres codes :
Il existe d’autres codes qui ont chacun leur utilité.
Par exemple le code EXCESS 3 (qui consiste à ajouter 3 au code
BCD) a été utilisé pour faire des calculs numériques
directement en BCD.
Les codes détecteurs d’erreurs ou détecteurs et correcteurs
d’erreurs sont très utilisés dans les transmissions.
110. Reproduction interdite
PRESENTATION
121
Nous avons vu les composants physiques d’un ordinateur.
Ces composants échangent des informations sous forme de
bits, c’est-à-dire de suite de 0 et de 1, et réalisent des actions
demandées par l’homme (enregistrement de données,
calculs, lecture de vidéo…).
La gestion de ces transferts d’informations ou opérations est
très complexe.
111. Reproduction interdite
PRESENTATION
122
Pour en donner un aperçu, détaillons ce qui se passe lorsque l’on
souhaite enregistrer sur disque dur un curriculum vitae :
La machine doit déterminer un secteur libre sur le disque dur,
Déplacer le bras d’écriture,
Gérer le démarrage du moteur et son arrêt,
Vérifier la bonne écriture du document, etc.
112. Reproduction interdite
PRESENTATION
123
Pourtant lorsqu’on enregistre le CV, on ne se préoccupe pas de
toutes ces contraintes : il suffit de cliquer sur l’icône «
enregistrer » et c’est fait.
Si ce processus semble si simple, c’est parce qu’un ensemble de
programmes s’occupe de gérer tout cela à notre place : c’est le
système d’exploitation de l’ordinateur.
113. Reproduction interdite
définition
124
Le système d’exploitation (ou operating System – OS
– en anglais) est l’ensemble des programmes indispensables
au fonctionnement de l’ordinateur.
Il permet l’interaction entre l’homme et la machine en
proposant une interface facile d’utilisation (souvent
graphique) et en gérant l’accès aux ressources matérielles
et numériques.
On peut en citer plusieurs : Windows 10, Windows 11, Linux,
Debian, mac OS X…
114. Reproduction interdite
Principales fonctions d’un os
125
Quel que soit le système d’exploitation utilisé, il a pour rôle :
Gérer l’allocation du processeur aux parties de programmes
en cours d’exécution (aussi appelées processus). En effet, lors
de l’exécution d’un programme, le processeur n’est pas utilisé
en permanence. Par exemple lorsqu’il est en attente de
données ou après les avoir renvoyées, il ne travaille pas sur le
programme.
Au lieu de laisser le processeur inactif pendant ces opérations
d’entrées/sorties, le système d’exploitation le fait travailler
sur un autre processus, ce qui permet de limiter le temps
d’attente lors de l’exécution de plusieurs programmes. On
parle alors de multiprogrammation.
115. Reproduction interdite
Principales fonctions d’un os
126
Gérer les interruptions de processus dues soit à une action
extérieure (demande de l’utilisateur) soit à la détection d’une
erreur.
Gérer la mémoire. Par exemple, c’est le système d’exploitation qui
assure l’optimisation de l’espace mémoire utilisée par les
données numériques. Il s’occupe également du transfert des
données (et du respect de leur intégrité) entre les différentes
mémoires de l’ordinateur lors de l’exécution d’un programme.
En effet toutes les mémoires ne sont pas équivalentes et ont
chacune des utilisations spécifiques. Ainsi, lors de l’exécution d’un
programme, des informations s’échangent entre ces différentes
mémoires afin de minimiser le temps d’attente.
116. Reproduction interdite
Principales fonctions d’un os
127
Organiser les entrées/sorties. Il s’agit de l’ensemble des
échanges d’informations entre l’homme et la machine ou entre
l’unité centrale et les périphériques.
Par exemple, le système d’exploitation doit être capable
d’attribuer à une imprimante libre la tâche à exécuter ou à mettre
en attente si toutes les imprimantes sont occupées.
117. Reproduction interdite
Principales fonctions d’un os
128
Gérer les fichiers. L’utilisateur doit pouvoir s’y retrouver
parmi les multitudes de fichiers enregistrés sans avoir besoin de
connaître leur adresse réelle (adresse indiquant la position du
fichier sur le disque dur par exemple).
Le système d’exploitation permet cela en faisant le lien entre
l’enregistrement logique (celui compréhensible par
l’utilisateur) et l’enregistrement physique des fichiers.
C’est également le système d’exploitation qui s’occupe de la
destruction, de la copie, du déplacement et des droits
d’accès d’un fichier.
118. Reproduction interdite
Principales fonctions d’un os
129
Planifier le travail. Le système d’exploitation coordonne
les différentes tâches que doit réaliser la machine pour
satisfaire la demande de l’utilisateur et il veille à disposer de
ressources matérielles suffisantes pour y répondre en temps
raisonnable.
Ainsi la demande d’enregistrement d’un fichier nécessite, entre
autres de trouver un emplacement en mémoire libre, d’établir des
droits d’accès au fichier, de lui donner un nom, etc. ces
différentes tâches vont se dérouler dans un ordre établi par le
système d’exploitation et celui-ci s’assurera, par exemple qu’il y a
assez de place disponible pour enregistrer le fichier.
119. Reproduction interdite
Principales fonctions d’un os
130
Gérer la communication avec l’utilisateur. Cette
communication peut se faire de plusieurs façons.
La façon la plus ancienne est l’entrée des directives de
l’utilisateur, directement au clavier, sous forme d’un
langage de commande spécifique au système d’exploitation
utilisé.
Ces commandes sont tapées dans un interpréteur de
commande géré par le système d’exploitation. Sous Windows,
il est appelé invite de commande (la commande calc permet
d’ouvrir la calculatrice)
120. Reproduction interdite
Principales fonctions d’un os
131
L’utilisation d’une interface graphique se répand dans les
années 1980, simplifiant beaucoup l’utilisation d’un
ordinateur puisque le jargon informatique n’est plus
nécessaire pour utiliser la machine. Il suffit alors de déplacer un
curseur sur un écran et de lui faire sélectionner l’action désirée.
Les notions de souris, fenêtre, menu déroulant… font leur
apparition. Cette façon d’interagir avec la machine est à présent la
plus connue.
La communication avec la machine peut également se faire par
l’intermédiaire d’un écran tactile
Actuellement se développe l’utilisation de la reconnaissance
vocale pour communiquer avec une machine numérique.
121. Reproduction interdite
Structure d’un os
132
Pour réaliser l’interface entre la machine et l’utilisateur, un
système d’exploitation est composé d’un grand nombre de
programmes que l’on peut classer suivant leur fonction.
On obtient alors la représentation en couches fonctionnelles de
la figure suivante :
Utilisateur
Interface utilisateur – interpréteur de commandes
Planification du travail et allocation de ressources
Gestion des fichiers
Organisation des entrées/sorties
Gestion de la mémoire
Noyau : gestion des processus – gestion des interruptions – allocation du processeur
Machine
122. Reproduction interdite
Structure d’un os
133
Chaque couche représentée utilise les fonctions des
couches qui sont en dessous.
La couche la plus basse interagit directement avec la
machine, la couche la plus haute interagit avec
l’utilisateur.
Le système d’exploitation est donc un ensemble énorme de
programmes sans lequel un ordinateur ne peut pas
fonctionner.
123. Reproduction interdite
Gestion des ressources
134
En tant qu’utilisateur, on sait qu’un ordinateur peut lire des
vidéos, afficher des images, émettre des sons, enregistrer des
textes… tous ces objets constituent autant de ressources
différentes que doit gérer l’ordinateur.
Si, nous, nous faisons facilement la différence entre un son, un
texte, une image ou une vidéo, pour la machine c’est plutôt
compliqué car chacun de ces objets n’est en réalité qu’une
suite plus ou moins grande de 0 et de 1 à laquelle on a donné
un nom. C’est ce que l’on appelle un fichier.
124. Reproduction interdite
Gestion des ressources
135
Par exemple si on nomme « exemple » la suite de bit suivante
:
01100101 01111000 01100101 01110000 01101100
01100101
Cet objet constitue un fichier mais comment savoir s’il s’agit
d’un texte que l’on doit décoder en utilisant le code ASCII, ou
bien s’il s’agit d’un son codé en MP3 ou en WMA ?
Pour répondre à cette question, le nom du fichier est suivi de ce
que l’on appelle une extension, qui précise le format du
fichier, c’est-à-dire le code à utiliser pour lire ou écrire ce
fichier.
125. Reproduction interdite
Gestion des ressources
136
Ainsi, si le fichier précédent est noté « exemple.txt », il
s’agit d’un texte en ASCII, s’il est noté « exemple.mp3 », il
s’agit d’un son enregistré au format MP3, etc. on dit que .txt et
.mp3 constituent des extensions du fichier « exemple ».
Voici quelques exemples d’extensions :
Pour les images : .jpg, .png,
Pour les sons : .wma, .mp3,
Pour les textes : .odt, .doc, .docx, .txt,
Pour les feuilles de calculs : .xls, .xlsx, .csv, .ods,
Pour les exécutables : .exe,
Pour les vidéos : .avi, .divx, .wmv.
126. Reproduction interdite
Gestion des ressources
137
Le choix du format d’enregistrement n’est pas anodin, si on
tape son CV sous un traitement de texte qui a un format qui lui
est spécifique (par exemple Word 2010 dont l’extension est
.docx) et si on l’enregistre dans ce format, alors seule une
personne ayant le même traitement de texte pourra le lire
correctement.
Dans le cadre d’une recherche d’emploi, par exemple, cela peut
poser problème si le recruteur n’arrive pas à lire le CV d’un
candidat parce que ce dernier n’a pas pensé à l’enregistrer sous
un format plus universel tel que le format PDF.
127. Reproduction interdite
EXEMPLE DE CODEAGE : TEXTE
138
Un code souvent utilisé pour écrire un texte en binaire est le code
ASCII : chaque caractère y est codé par un mot de 8 bits, le
premier bit étant toujours un zéro.
On peut donc coder au maximum 27 = 128 caractères, chaque
caractère étant ainsi associé à un nombre entre 0 et 127 que l’on
écrit en binaire.
la table ASCII est donnée dans les pages suivantes
On voit par exemple que la lettre C est codée par le nombre 67
et la lettre c par 99.
128. Reproduction interdite
EXEMPLE DE CODEAGE : TEXTE
139
Si on suppose que le texte suivant codé en ASCII signifie
« curriculum vitae ».
0110001101110101011100100111001001101001010001101110101011011000
111010101101101001000000111011001101001011101000110000101100101
Si on peut décoder correctement ce texte, c’est parce que
l’on sait qu’il est écrit en ASCII. Sans cette information, on
ne peut pas le faire.
En informatique, c’est l’extension du fichier qui permet de
connaître le code utilisé pour écrire le fichier et donc de le
déchiffrer. Ici l’extension est .txt
130. Reproduction interdite
EXEMPLE DE CODEAGE : image
141
Une image sur un écran est une juxtaposition de carrés appelés
pixels. Pour une image en couleur, dans le système rouge-vert-bleu
(en anglais RGB pour Red-Green-Blue), à chacun de ces pixels sont
associés trois zones de couleurs respectives rouge, verte et
bleue.
Suivant la couleur que l’on souhaite donner au pixel, les intensités de
rouge, vert et bleu associées ne sont pas les mêmes.
Par exemple pour obtenir la couleur blanche il faut que les trois zones
aient la même intensité lumineuse maximale alors que si on veut une
couleur jaune il faut que le vert et le rouge aient la même intensité et
que la zone bleue soit éteinte.
Ainsi coder une image consiste à indiquer la valeur de l’intensité de
chaque zone, de chaque pixel.
131. Reproduction interdite
L’arborescence des fichiers
142
Les fichiers contenus dans un périphérique de stockage sont
représentés par des images appelées icônes, qui changent en
fonction du format du fichier.
132. Reproduction interdite
L’arborescence des fichiers
143
Les capacités de stockage sont telles qu’un périphérique
de stockage contient très rapidement des milliers de
fichiers.
Pour s’y retrouver dans cette jungle de ressources, les fichiers
sont classés sous forme d’une arborescence, c’est-à-dire que
les fichiers sont regroupés en catégories homogènes
auxquelles on donne un nom significatif.
133. Reproduction interdite
L’arborescence des fichiers
144
Par exemple, on regroupe toutes les photos de vacances dans
un dossier « saison2023 ». Ces dossiers peuvent être eux-
mêmes regroupés en catégories homogènes et ainsi de suite.
Ainsi le dossier « saison2023 » est situé dans le dossier
« photos2023 » lui-même situé dans le dossier « photo »
lui-même situé dans le disque dur « C : »
135. Reproduction interdite
L’arborescence des fichiers
146
La représentation schématique de cette organisation est celle d’un arbre
dont la racine est le disque dur, les branches partent de la racine vers
les dossiers qui contiennent des objets (fichiers ou dossiers) et
ainsi de suite.
C’est pourquoi on parle d’une organisation arborescente. Les
différents objets contenus dans un arbre sont appelés des nœuds.
Le chemin d’accès à un fichier est donné en listant les noms des
dossiers rencontrés en suivant la branche allant de la racine au
fichier recherché.
Les dossiers sont représentés par des boites rectangulaires et les
fichiers par des ellipses.
Le chemin du fichier DM1.pdf est :
disque/cours/informatique/DM1.pdf
136. Reproduction interdite
Droit d’accès d’un fichier
147
Lors de recherches sur internet par exemple, on rencontre des
fichiers qu’il est possible de lire mais pas de modifier.
Ceci vient du fait que l’auteur du fichier a choisi certains
paramètres d’accès pour son fichier.
Ces choix dépendent de l’utilisation que l’on veut faire du
fichier. Par exemple lors d’un travail en groupe, chaque élève
souhaite que ses camarades puissent accéder au compte rendu
et le modifier.
137. Reproduction interdite
Droit d’accès d’un fichier
148
Il faut donc enregistrer le fichier en autorisant son accès en
lecture et en écriture. Par contre, si on envoie son CV à
quelqu’un, on ne désire certainement pas qu’il puisse le
modifier, mais seulement qu’il puisse le lire. On choisit alors
l’accès en lecture seule.
La procédure pour paramétrer les droits d’accès est plus ou
moins simple suivant le système d’exploitation. Sous les
systèmes Windows il faut aller dans les propriétés du fichier,
Sécurité, Modifier, puis cocher l’accès refusé.
139. Reproduction interdite
changement d’extension d’un fichier
150
Pour changer l’extension d’un fichier, on peut le renommer en
modifiant son extension (il faut pour cela que l’extension apparaisse
dans le nom, ce qui n’est pas toujours le cas avec Windows) ; cela
peut forcer une application à lire un fichier dont il ne reconnaissait pas
l’extension.
Mais attention, modifier ainsi l’extension ne modifie pas la façon dont
le fichier a été encodé.
Par conséquent, l’application peut mal lire ou ne pas y arriver même si
l’extension est la bonne. Pour changer correctement un .doc en
.pdf, par exemple, il faut l’ouvrir avec un logiciel lisant les .doc et
l’enregistrer à partir de ce logiciel en .pdf pour que la façon
d’encoder le fichier soit aussi modifiée.
140. Reproduction interdite
Compression d’un fichier
151
Un album de music enregistré au format WAV est numérisé
avec une très grande qualité puisqu’il n’y a presque aucune
perte d’information par rapport à la version de l’audio.
L’ennui, c’est qu’un album sous ce format nécessite environ 1
Go de mémoire. Cela signifie que sur un téléphone portable
ou un lecteur MP3 ayant une capacité d’environ 8 Go, on ne
peut mémoriser avec ce format que 8 albums.
On est très loin des centaines ou des milliers de titres que l’on
souhaite conserver dans nos appareils numériques.
141. Reproduction interdite
Compression d’un fichier
152
En fait les audios que nous écoutons le plus souvent ou les images
que nous voyons sont dans un format compressé, c’est-à-dire que le
fichier de départ subit des modifications qui permettent de réduire
sa taille.
En effet, pour que les fichiers soit moins volumineux en termes de
mémoire, il faut éliminer de petites informations qui ne gênent pas
la compréhension ou ne modifient pas trop l’aspect du fichier.
Par exemple, si le fichier est une image représentant un rectangle
rouge, avec un pixel noir, l’observateur à l’œil nu ne verra pas de
grande différence si l’on représente cette image par un rectangle
complètement rouge, la perte d’information est minime, mais le
gain de place est important car coder un rectangle constitué de
pixels identiques prend peu de place.
142. Reproduction interdite
Compression d’un fichier
153
C’est l’idée sur laquelle est basée la compression d’un son au
format MP3 ou d’une image au format JPG.
Ce type de compression engendre donc une légère baisse de
qualité du fichier, qui sera d’autant plus grande que la
compression sera importante. Le degré de compression dépendra
ainsi de l’usage et de la qualité souhaités pour le fichier.
Un mélomane préfèrera un format non compressé alors qu’une
personne lambda ne verra pas la différence entre le fichier non
compressé et le fichier compressé.
144. Reproduction interdite
INTRODUCTION GENERALE
155
Cours initie à la notion d’algorithmique, ses concepts et ses
fondements de base.
L’accent est mis également sur les structures de données
nécessaires au développement algorithmique tout en insistant
sur le côté pratique à travers des exemples et des exercices.
Le côté programmation est aussi fort présent dans ce support à
travers des exemples typiques de travaux pratiques. Le langage
Python sera utilisé à cette fin pour sa simplicité convenable aux
étudiants en phase d’initiation à la programmation.
145. Reproduction interdite
ALGORITHME
156
La notion d'algorithme est à la base de toute la programmation
informatique.
La définition la plus simple que l’on peut associer à cette notion
est qu’un algorithme est une suite ordonnée d’instructions qui
indique la démarche à suivre pour résoudre un problème ou
effectuer une tâche.
Le mot algorithme vient du nom latinisé du mathématicien perse
AlKhawarizmi, surnommé « le père de l'algèbre ».
146. Reproduction interdite 157
L’algorithmique est la science des algorithmes. Elle s’intéresse à
l’art de construire des algorithmes ainsi qu’à déterminer leur
validité, leur robustesse, leur réutilisabilité, leur complexité ou
leur efficacité.
L’algorithmique permet ainsi de passer d’un problème à
résoudre à un algorithme qui décrit la démarche de résolution du
problème.
Par conséquent, la programmation consiste à traduire un
algorithme dans un langage « compréhensible » par l’ordinateur
afin qu’il puisse être exécuté automatiquement.
ALGORITHME
148. Reproduction interdite
ALGORITHMIQUE
159
La figure ci-dessus illustre les deux phases nécessaires pour
obtenir un code source :
Phase d’algorithmique qui implique la recherche et l’écriture
d’un algorithme ;
Phase de programmation qui consiste à traduire l’algorithme
obtenu en un programme à l’aide d’un langage de
programmation (C, Java, Python,…).
Dans la première phase, on doit définir les données qu’on
dispose et les objectifs qu’on souhaite atteindre, ainsi que
prévoir des réponses à tous les cas possibles.
149. Reproduction interdite
ALGORITHMIQUE
160
Exemple : résolution d’une équation de second degré ax2+bx+c =
0
→ Les données sont a, b et c
→ Les sorties sont x1 et x2
→ Les cas : a=0 et b≠0, a = 0 et b = 0, a ≠0 , ……
150. Reproduction interdite 161
Principe général
Le traitement automatique de l’information consiste à
exécuter des instructions (opérations élémentaires et
complexes) sur des données d’entrée afin de générer
d’autres informations appelées résultats ou données de
sortie.
TRAITEMENT
Données Résultats
Entrée
(Input)
Sortie
(Output)
Principe du traitement automatisé.
ALGORITHMIQUE
151. Reproduction interdite 162
Exemple : Calcul de la moyenne d’un étudiant
Supposons qu’on doit calculer la moyenne d’un étudiant
pour un ensemble de matières.
On doit donc :
1) Définir le nombre des matières concernées ainsi que
les notes et les coefficients ;
2) Réaliser les opérations suivantes :
Multiplier chaque note d’une matière par son
coefficient,
Calculer la somme des résultats des multiplications,
Diviser la somme obtenue par le total des
coefficients,
3) Afficher le la moyenne de l’étudiant (résultat final).
ALGORITHMIQUE
152. Reproduction interdite 163
Remarque :
Lorsqu’on écrit un algorithme, les questions suivantes
doivent être considérées :
Quel est le résultat attendu ?
Quelles sont les données nécessaires (informations
requises) ?
Comment faire (le traitement à réaliser) ?
ALGORITHMIQUE
153. Reproduction interdite 164
Caractéristiques des algorithmes :
Structure générale
Un algorithme se compose généralement de deux parties :
Partie déclarative : appelée aussi entête de
l’algorithme, elle contient généralement les
déclarations (des constantes, des variables, etc.).
Partie corps de l’algorithme : constituée d’une ou
plusieurs séquences d’instructions faisant appel à des
opérations de base à exécuter par l’ordinateur.
ALGORITHMIQUE
154. Reproduction interdite 165
Algorithme <Nom de l’algorithme>
La partie
déclarative
Le corps de
l’algorithme
Constante
<Liste des constantes avec leurs valeurs>
Variable
<Liste de variables suivis de leurs types>
DEBUT
FIN
<Séquence d’instruction>
L’entête
ALGORITHMIQUE
155. Reproduction interdite 166
Les variables et les constantes
L’élément unitaire de stockage de l’information est appelé
bit. Un bit ne peut avoir que deux états distincts : 0 ou 1
(vrai ou faux dans la logique).
Dans la mémoire de l’ordinateur, les données sont
manipulées par groupes de 8 bits (octets), ou plus (mots
de 16, 32, 64 bits,…).
Une case mémoire est donc appelée mot et pour que l’unité
centrale puisse stocker une information et la retrouver
dans la mémoire, chaque mot est repéré par une adresse.
ALGORITHMIQUE
156. Reproduction interdite 167
Dans la programmation, les adresses mémoire sont représentées
par des noms. Le programmeur ne connait pas donc l’adresse
d’une case mais plutôt son nom.
Il y a donc deux façons de voir la mémoire centrale de l’ordinateur
: côté programmeur et côté ordinateur tel qu’il est illustré, à titre
d’exemple, dans le schéma suivant.
ALGORITHMIQUE
158. Reproduction interdite 169
Les variables
Une variable est une case mémoire destiné à contenir des
valeurs de type défini au préalable (nombres, caractères,
chaînes de caractères,…). [a-z], [A-Z], [0, 9], "_"
Elle possède un nom, un type, et un contenu qui peut être
modifié au cours de l’exécution de l’algorithme. Une
variable ne doit pas commencer par un chiffre.
Le mot clé est : Variable
ALGORITHMIQUE
159. Reproduction interdite 170
Les constantes
La définition d’une constante est la même que celle d’une
variable à la différence que sa valeur reste inchangée tout au
long du déroulement (exécution) de l’algorithme.
Le mot clé est : Constante
ALGORITHMIQUE
160. Reproduction interdite 171
Les variables et les constantes sont déclarées selon la syntaxe
suivante :
Syntaxe :
Variable <nom_variable> : type
Constante <nom_constante> = valeur
Remarque :
Dans la partie déclarative, les variables et les constantes
sont caractérisées essentiellement par :
Un identificateur : est un nom attribué à la variable ou
à la constante, qui peut être composé de lettres et de
chiffres mais sans espaces.
Un type : qui définit la nature et la taille de la variable.
ALGORITHMIQUE
161. Reproduction interdite 172
Exemple :
Variable x, y : entier
Constante alpha = 0.5
Dans cet exemple, nous avons déclaré :
Deux variables (x et y) de type entier, ce type est décrit
dans la sous-section suivante.
Une constante (alpha) égale à la valeur 0.5 à titre
d’exemple.
ALGORITHMIQUE
162. Reproduction interdite 173
Les types de base :
Le type d’une variable définit l’ensemble des valeurs que
peut prendre la variable, ainsi que l’ensemble des
opérations que l’on peut appliquer sur cette variable.
Il existe des types simples prédéfinis tels que : entier,
réel, caractère, booléen et chaîne de caractères
ALGORITHMIQUE
163. Reproduction interdite 174
Type entier :
C’est un type numérique représentant l’ensemble des
entiers relatifs, tels que : -9, 0, 31, ….
Les opérations permises sur ce type sont : +, - , *, div
(division entière) et mod (modulo ou reste de la division
entière).
Le mot clé est : entier
Exemple : Variable x : entier
ALGORITHMIQUE
164. Reproduction interdite 175
Type réel :
C’est un type numérique aussi représentant l’ensemble des
nombres réels, tels que : 0.25, -1.33, 2.5 e+10,… .
Les opérations permises sur ce type sont : +, -, * et /.
Le mot clé est : réel
Exemple : Variable y : réel
ALGORITHMIQUE
165. Reproduction interdite
ALGORITHMIQUE
176
Type caractère :
Ce type représente tous les caractères alphanumériques tels que :
′a′, ′A′, ′3′, ′%′, ′ ′, …
Les opérations supportées par ce type sont : =, ≠, <, <=, >,
>=.
Le mot clé est : caractère
Exemple : Variable a : caractère
166. Reproduction interdite 177
Type booléen :
Ce type est utilisé dans la logique pour représenter les deux
valeurs : vrai et faux.
Les opérations prises en charge sont : NON, ET, OU.
Le mot clé est : booléen
Exemple : Variable b : booléen
ALGORITHMIQUE
167. Reproduction interdite 178
Type Chaîne de caractères :
Ce type représente les mots et les phrases tels que
"Algorithmique", "Cours", etc.
Le mot clé utilisé est : chaîne
Exemple : Variable c : chaîne
Globalement, la partie déclarative d’un algorithme peut
être représentée comme suit.
ALGORITHMIQUE
168. Reproduction interdite 179
Exemple :
Variable x, y : entier
z, w : réel
lettre : caractère
nom : chaîne
Etat : booléen
Constante N = 100
arobase = ′@′
mot = "bonjour"
ALGORITHMIQUE
169. Reproduction interdite
CONCLUSION
180
Ce chapitre constitue une initiation aux notions basiques de
l’écriture des algorithmes.
La syntaxe d’un algorithme, la notion de variable et de
constante, ainsi que leurs types sont définies et expliqués à
travers des exemples simples.
Ceci constitue pour le lecteur un prérequis de base qui lui
permettra de comprendre la notion d’instructions
algorithmiques dans les prochains chapitres.
171. Reproduction interdite
INTRODUCTION
182
Un algorithme, par définition, est un ensemble
d’instructions qui peuvent être simples ou
complexes.
Dans ce chapitre, on s’intéressera aux instructions
simples notamment : les instructions d’affectation,
de lecture et d’écriture.
172. Reproduction interdite
L’INSTRUCTION D’AFFECTATION
183
Cette instruction est élémentaire en algorithmique, elle
permet d’assigner une valeur à une variable selon la syntaxe
suivante :
variable expression
Une instruction d’affectation est exécutée comme suit :
évaluation de l’expression située à droite de
l’instruction,
et affectation du résultat à la variable située à gauche de
l’instruction.
L’expression peut être :
une constante : c 10
une variable : v x
une expression arithmétique : e x + y
une expression logique : d a OU b
173. Reproduction interdite
L’INSTRUCTION D’AFFECTATION
184
Remarque :
Une constante ne figure jamais à gauche d’une instruction
d’affectation.
Exemple d’instruction fausse :
Constante z = 1
z 2 « Faux »
Après une affectation, l’ancien contenu d’une variable est
substitué (écrasé) par le nouveau contenu.
Exemple : Variable a : entier
a 1
a 2
Après la deuxième affectation, la valeur de a est devenue 2
(la valeur 1 est écrasée).
174. Reproduction interdite
L’INSTRUCTION D’AFFECTATION
185
Une instruction d’affectation doit se faire entre deux types
compatibles.
Exemple : Variable x, y : entier z : réel a, b : caractère
Instructions correctes Instructions incorrectes
x y
y x
z x
a b
b a
x z
x a
b y
a z
175. Reproduction interdite
L’INSTRUCTION D’AFFECTATION
186
Les expressions arithmétiques ou logiques sont composées
d’au moins deux termes reliés par un ou plusieurs opérateurs
dont on peut distinguer :
a) Les opérateurs arithmétiques (par ordre de
priorité) :
^ : Puissance
* , / , mod, div : Multiplication, Division, Reste de la
division entière (Modulo), Quotient de la division entière
+ , - : Addition et Soustraction
178. Reproduction interdite
L’INSTRUCTION D’AFFECTATION
189
c) Les opérateurs de comparaison ou relationnels :
> , >= : supérieur et supérieur ou égal
< , <= : inférieur et inférieur ou égal
= , ≠ (ou <>) : égal et différent
Remarque :
Les expressions logiques peuvent être composées des opérateurs
logiques et/ou relationnels.
Par exemple, (A < 20) ET (B >= 10) est Vrai si A est inférieur à
20 et B est égal ou supérieur à 10, et faux sinon.
179. Reproduction interdite
L’INSTRUCTION de lecture
190
Cette instruction est très primordiale dans un
algorithme.
Elle permet de lire des valeurs en entrée (input) et les
affecter aux variables stockées dans la mémoire.
Les valeurs affectées sont souvent des données
introduites à partir d’un périphérique d’entrée tel que le
clavier.
Syntaxe : Lire(var1, var2,…)
Exemple :
Lire(x) : lit et stocke une valeur donnée dans la case
mémoire associée à x.
Lire(x,y) : lit et stocke deux valeurs, la première dans x
et la deuxième dans y.
181. Reproduction interdite
L’INSTRUCTION D’ecriture
192
Cette instruction est aussi d’une grande importance dans
les algorithmes.
Elle permet d’écrire en sortie (output) les données résultant
d’un traitement effectué par l’algorithme (valeur, texte, …)
en les affichant par exemple sur un périphérique de sortie
tel que l’écran.
Syntaxe :
Ecrire(var1, var2, expr1, expr2, …)
182. Reproduction interdite
L’INSTRUCTION D’ecriture
193
Remarque :
Dans le cas d’écriture d’une expression, c'est le résultat
d’évaluation de cette expression qui est affiché et non pas
l’expression elle-même.
Par exemple :
Soient deux variables x et y tel que x = 5 et y = 7,
l’instruction : Ecrire(x + y)
Affiche en sortie le résultat d’addition de x et y (soit 12).
188. Reproduction interdite 199
Algorithme
Moyenne_deux_réels
Variable x, y, z : réel
Début
Ecrire(″Donner deux
valeurs : ″)
Lire(x, y)
...
Ecrire (″La moyenne est :
″, z)
Fin
EXEMPLE
Analyse 2 :
1. Faire la somme de
x et y
2. La diviser par 2
3. L’affecter dans z
189. Reproduction interdite 200
Algorithme Moyenne_deux_réels
Variable x, y, z : réel
Début
Ecrire(″Donner deux valeurs: ″)
Lire(x, y)
z (x + y)/2
Ecrire (″La moyenne est : ″, z)
Fin
EXEMPLE
190. Reproduction interdite 201
Algorithme Moyenne_deux_réels
Variable x, y, z : réel
Début
Ecrire(″Donner deux valeurs : ″)
Lire(x, y)
z (x + y)/2
Ecrire (″La moyenne est : ″, z)
{ On peut remplacer les deux dernières instructions
par une seule : }
Ecrire (″La moyenne est : ″, (x + y)/2 ) { dans ce
cas, pas besoin de z }
Fin
Dans cet algorithme, si l’utilisateur introduit 10 pour x et
20 pour y alors l’affichage sera : La moyenne est : 15
EXEMPLE
191. Reproduction interdite
CONCLUSION
202
Dans ce chapitre, nous avons présenté les instructions
algorithmiques fondamentales à savoir l’affectation, la
lecture et l’écriture.
Ces trois instructions simples sont incontournables dans
l’écriture d’un algorithme et constituent l’un des moyens les
plus simples qui permettent au programmeur d’interagir
avec son ordinateur à travers des actions
d’entrées/sorties.
193. Reproduction interdite
INTRODUCTION
204
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.
194. Reproduction interdite
Structure d’un test : forme simple
205
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.
196. Reproduction interdite 207
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
197. Reproduction interdite 208
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
198. Reproduction interdite 209
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
199. Reproduction interdite 210
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
200. Reproduction interdite 211
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
201. Reproduction interdite 212
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
202. Reproduction interdite 213
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
203. Reproduction interdite 214
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
204. Reproduction interdite 215
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
205. Reproduction interdite 216
…
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
206. Reproduction interdite 217
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
207. Reproduction interdite 218
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
208. Reproduction interdite 219
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
209. Reproduction interdite 220
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
210. Reproduction interdite 221
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
211. Reproduction interdite 222
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
212. Reproduction interdite 223
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
213. Reproduction interdite 224
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
214. Reproduction interdite 225
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
216. Reproduction interdite 227
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
217. Reproduction interdite 228
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
218. Reproduction interdite 229
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
219. Reproduction interdite 230
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 »
220. Reproduction interdite 231
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 »
222. Reproduction interdite 233
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
223. Reproduction interdite 234
L’instruction « Tant que … faire »
Cette instruction permet de tester une condition et répéter
le traitement associé tant que cette condition est vérifiée.
Tant que (condition)
Faire
Instruction(s)
Fintq
224. Reproduction interdite 235
L’instruction « Tant que … faire »
Exemple : Réécrivons l’algorithme précédent avec cette
instruction.
Variable i : entier
Début
i 1
Tant que (i<=100) Faire
Ecrire(i)
i i+1
Fintq
Fin
225. Reproduction interdite 236
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)
226. Reproduction interdite 237
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
227. Reproduction interdite 238
L’instruction « Répéter … jusqu’à »
Les instructions encadrées par les mots répéter et jusqu’à
constituent le bloc de la boucle qu’il faut répéter jusqu’à ce
que la condition (n=0) soit vérifiée.
Donc le nombre de répétitions de cette boucle dépend des
données fournies par l’utilisateur.
Question ?
Réécrire l’algorithme précédent avec « Tant que … Faire
» puis avec « Pour … Faire ».
228. Reproduction interdite 239
L’instruction « Répéter … jusqu’à »
Remarque :
Dans la boucle « Répéter … Jusqu’à », la condition
constitue une condition d’arrêt de la boucle.
Dans la boucle « Tant que … Faire », la condition est
une condition de réalisation de la boucle.
229. Reproduction interdite 240
La notion dE compteur
Un compteur est une variable associée à la boucle dont la
valeur est incrémentée de un (1) à chaque itération.
Elle sert donc à compter le nombre d’itérations
(répétitions) de la boucle.
La notion du compteur est associée particulièrement aux deux
boucles : « Répéter … Jusqu’à » et « Tant que … Faire
».
Par contre, dans la boucle « Pour … Faire », c’est l’indice
qui joue le rôle du compteur.
230. Reproduction interdite 241
La notion dE compteur
cpt 0
Répéter
instruction(s)
…
cpt cpt + 1
Jusqu’à (condition)
cpt 0
Tant que (condition) Faire
instruction(s)
…
cpt cpt + 1
FinTq
Bloc de la
boucle
231. Reproduction interdite 242
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.
232. Reproduction interdite 243
La notion dE compteur
Exemple :
i 0
Répéter
Ecrire(i)
i i+1
Jusqu’à (i=5)
i 0
Tant que (i<5) Faire
Ecrire(i)
i i+1
FinTq
Résultat d’exécution : 0, 1, 2, 3, 4, 5 Résultat
d’exécution : 0, 1, 2, 3, 4
233. Reproduction interdite 244
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.
234. Reproduction interdite 245
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
235. Reproduction interdite 246
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
236. Reproduction interdite 247
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
237. Reproduction interdite 248
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 :
238. Reproduction interdite 249
Les boucles imbriquées
Variables i, j : entier
Début
i1
j1
Répéter
Écrire(i)
Répéter
Écrire(j)
ii+1
Jusqu’à (i>2)
jj+1
Jusqu’à (j>3)
Fin
239. Reproduction interdite 250
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.