You are on page 1of 77

Ministère de l'Enseignement Supérieur, de la Recherche Scientique et

de la Formation des Cadres

POLYCOPIE DE COURS
destiné pour Enseignement à

l'École Nationale de Commerce et de


Gestion

Réalisé et édité par

Ouadoudi ZYTOUNE
le 30 octobre 2016

Informatique de Base C
O
Semestre 1
U
Niveau Classe :

ENCG Kénitra
Campus universitaire
B.P 1420, Kénitra 14000-Maroc, Tél : (+212) 5 37 32 93 22 Fax : (+212) 5 37 37 56 37.
R
S
TABLE DES MATI ÈRES

1 Introduction à l'informatique . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Les générations d'ordinateurs . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Les éléments de l'ordinateur . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Notion de Système d'exploitation . . . . . . . . . . . . . . . . . . . . . 12
1.4.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.2 Fonctionnalités . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.3 Classication des systèmes d'exploitation . . . . . . . . . . . . . 14
1.5 Logiciels d'application . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Notion de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Notions de codage d'information . . . . . . . . . . . . . . . . . . . . . . 19


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Systèmes de numération . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 Conversion décimal- binaire . . . . . . . . . . . . . . . . . . . . 20
2.2.2 Conversion binaire-décimal . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Conversion binaire-hexadécimal . . . . . . . . . . . . . . . . . . 21
2.2.4 Conversion hexadécimal-binaire . . . . . . . . . . . . . . . . . . 21
2.3 Représentation des nombres entiers . . . . . . . . . . . . . . . . . . . . 22
2.3.1 Représentation d'un entier naturel . . . . . . . . . . . . . . . . . 22
2.3.2 Représentation d'un entier relatif . . . . . . . . . . . . . . . . . 22
ii

2.3.3 Représentation des nombres réels . . . . . . . . . . . . . . . . . 23


2.4 Représentation des caractères . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Algorithmique et Programmation . . . . . . . . . . . . . . . . . . . . . 27
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Langage informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Dénition de l'Algorithmique . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Représentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5 Éléments d'algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5.1 Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5.2 Types de variables . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.3 Déclaration des variables . . . . . . . . . . . . . . . . . . . . . . 32
3.5.4 Aectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5.5 Expressions et opérateurs . . . . . . . . . . . . . . . . . . . . . 33
3.5.6 Instructions d'entrée-sortie . . . . . . . . . . . . . . . . . . . . . 34
3.5.7 Les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.8 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.9 Procédures et Fonctions . . . . . . . . . . . . . . . . . . . . . . 39
3.5.10 Portée des variables . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.5.11 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.12 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.13 Quelques algorithmes pour les tableaux . . . . . . . . . . . . . . 46
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4 Introduction aux Réseaux et Internet . . . . . . . . . . . . . . . . . . . 53


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2 Topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3 Classications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4 Modèles des réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.5 Architectures réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6 Réseau Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.1 Notion d'adressage . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.2 Protocoles de l'Internet . . . . . . . . . . . . . . . . . . . . . . . 60
4.7 Éléments d'interconnexion . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
iii

A Notion de fonctions logiques . . . . . . . . . . . . . . . . . . . . . . . . 67


A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.2 Variable et fonction logiques . . . . . . . . . . . . . . . . . . . . . . . . 67
A.3 Table de vérité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
A.4 Théorèmes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
A.5 Représentation graphique . . . . . . . . . . . . . . . . . . . . . . . . . 69
Chapitre

1
I NTRODUCTION À L’ INFORMATIQUE

1.1 Introduction
Dans ce chapitre on donnera des notions de base sur l'informatique. Ainsi, les dé-
nitions relatives à l'informatique seront avancées. Par la suite, on donnera les étapes
d'évolution de l'ordinateur puis sa composition et on nira par l'exposition du système
d'exploitation.

1.1.1 dénitions
 Information : Élément de connaissance représenté à l'aide de conventions en vue
d'être conservé, traité et communiqué Diérentes formes : son, image, texte, vidéo
...
 Traitement : Passer d'informations appelées données à d'autres informations dites
résultats Exemples : addition, robot, traduction...
 Informatique : Contraction de INFORmation et autoMATIQUE. L'informatique dé-
signe alors, l'automatisation du traitement de l'information par un système, concret
(machine) ou abstrait.
 Ordinateur : Machine qui permet de traiter de l'information : d'acquérir et de conser-
ver de l'information (acquisition, stockage) d'eectuer des traitements (calcul), de
restituer les informations stockées (résultat) Diérents types d'informations : valeurs
numériques, textes, images, sons,... : tout cela avec des 0 ou 1 Est une machine
capable d'eectuer toute sorte d'opérations arithmétiques et logiques tel que des
calculs, traitement de textes et d'images par exemple. Toute machine capable de
2 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

manipuler des informations binaires peut être qualiée d'ordinateur. Toutefois, la


plupart des personnes pensent à un ordinateur personnel (PC).
Contrairement à toutes les autres réalisations humaines, l'ordinateur n'a pas géné-
ralement, d'utilité pré-déterminée. En eet, son comportement est dénit par pro-
gramme, et celui-ci peut être modié à (presque) tout moment.

Aujourd'hui, l'informatique a envahi tous les domaines de la vie. Sur la suite de ce


paragraphe, on donnera quelques utilisations de l'informatique :

 Bureautique (traitement de texte, tableur) : c'est une utilisation très simple de l'in-
formatique (l'ordinateur devient une machine à écrire perfectionnée) ;
 Mathématiques : balistique, prévisions d'élections, météo ;
 Jeux : Intelligence Articielle, graphisme, son, ction interactive et génération de
textes, ...
 Communication : Internet , Intranet, télétravail
 Graphisme : Reconnaissance de forme , météo, reconnaissance de code postal, géné-
ration d'images ;
 Cinéma : Image numérique, montage, dessin animé ;
 Physique : Simulation (centrale nucléaire, bombe atomique), résistance des maté-
riaux, train, voiture...
 Médecine : Génome humain, imagerie médicale, opérations guidées par ordinateur,
apprentissage ;
 Gestion des ux : Arrivées départs dans les aéroports (les gares, périphérique) ; Ro-
botique : robot autonome (robot sur Mars, footballeurs) semi-autonome, télécom-
mandé ;
 Calculs massifs : clusters, machines parallèles ...
 Informatique de gestion : Est le domaine de l'informatique se concentrant sur la
programmation de logiciels tournés vers la gestion : comptabilité, nances, ressources
humaines, gestion des stocks, logistique, gestion de la production,... C'est le domaine
plus  traditionnel  de l'informatique. (Web, multimédia, bases de données, etc.).
Elle est en grande partie à l'origine des méthodes modernes de conception et de
réalisation.
1.2. LES GÉNÉRATIONS D’ORDINATEURS 3

1.2 Les générations d'ordinateurs

Informatique de gestion : Est le domaine de l'informatique se concentrant sur la pro-


grammation de logiciels tournés vers la gestion : comptabilité, nances, ressources
humaines, gestion des stocks, logistique, gestion de la production,... C'est le domaine
plus  traditionnel  de l'informatique. (Web, multimédia, bases de données, etc.). Elle
est en grande partie à l'origine des méthodes modernes de conception et de réalisation.

 1ière génération(1944-1954) Au milieu des années 40, les ordinateurs ou "Moteurs


de calcul" utilisant des relais mécaniques dont le temps de basculement est en lent
faisant que temps de cycles de l'ordinateur est en secondes. Ces relais mécaniques
furent remplacés ensuite par des tubes à vide ce qui donne des machines énormes
que l'on programmait en basculant des interrupteurs. Pour améliorer la program-
mation de ces machines, John Von Neumann proposa en 1946 l'architecture interne
d'un calculateur universel (ordinateur), appelée désormais "architecture de Von Neu-
mann". Cette architecture décompose l'ordinateur en 4 parties distinctes comme le
représente la gure 1.1 :
 L'unité arithmétique et logique (UAL) ou unité de traitement qui eectue les
opérations de base ;
 L'unité de contrôle, chargée de l'ordonnancement des opérations ;
 La mémoire qui contient à la fois les données et le programme qui dira à l'unité
de contrôle quels calculs faire sur ces données.
 Les dispositifs d'entrée-sortie, qui permettent à la machine de communiquer avec
le monde extérieur.
C'est en 1950 que les cartes perforées ont été introduites pour permettre l'écriture
de programmes. La gure 1.2 en donne un exemple. Cependant, l'utilisation de ces
ordinateurs était si compliquée que :
Concepteur = constructeur = programmeur = Opérateur.

Cette génération a été en eet, l'informatique scientique et militaire. Vu son prix,


seules les très grandes nations possèdent l'outil informatique.
 2ième génération (1955-1965) : Cette époque a connu un progrès technologique mar-
quant avec l'apparition du transistor qui a remplacé les lampes à vide permettant
une amélioration de la abilité et de l'encombrement de la consommation électrique.
4 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

Figure 1.1  Architecture de von neumann

Figure 1.2  Exemple de carte perforée

L'invention de la bande magnétique a permis de remplacer les cartes perforées et per-


mettre ainsi de sauvegarder les programmes. C'était encore l'ère d'invention des lan-
gages de programmation. En eet, dans la période 1954 et 1965 a connu l'apparition
de plusieurs langages de programmation permettant de faciliter la programmation
de l'ordinateur :
 Assembleur.
 FORTRAN ( FORmula TRANslation) : langage adapté au calcul scientique.
 COBOL (COmmon Business Oriented Language) : Langage adapté au traitement
d ?information de gestion et de comptabilité
 BASIC : Beginner's All-purpose Symbolic Instruction Code. Conçu pour permettre
aux étudiants des lières non scientiques d'utiliser les ordinateurs
Avec ces langages, on a pu séparer entre les constructeurs, opérateurs et les pro-
1.2. LES GÉNÉRATIONS D’ORDINATEURS 5

Figure 1.3  L'ENIAC(Electronic Numerical Integrator and Computer) : une Machine


qui pesait 30 tonnes, contenait 18000 tubes à vide et occupait un espace de 10m x 17m.

Figure 1.4  PDP-8 de chez Digital Equipment de 1m2 avec 1MHz de fréquence

grammeurs de l'ordinateur. Les ordinateurs deviennent susamment ables pour


être produits et vendus. A cette époque naissait l'informatique de gestion. Mais,
l'ordinateur reste encore un équipement trop cher. Seules les nations riches et les
très grandes entreprises accèdent à l'outil informatique.
 3ième génération(1965-1980) Cette génération est caractérisée par la naissance des
circuits intégrés et l'apparition des disques magnétiques qui sont plus rapide que les
lecteurs de bandes magnétiques. Ainsi, Intel a lancé le premier microprocesseur dans
le monde qui est le I4004 qui permet un calcul à 90000Instructions/s à une vitesse
6 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

Figure 1.5  Premier microprocesseur industriel

de 740KHz. Puis, en 1978 Intel a lancé le 8086 de 0.33 à 0.75MIPS(Millions d'Ins-


tructions Par Seconde). Pendant cette ère, l'ordinateur devient un système interactif
grâce à l'introduction du clavier et du moniteur (écran). L'ordinateur devient de
plus en plus abandon et les PME et PMI de tous les pays peuvent se procurer des
matériels informatiques.
 4ième génération Depuis 1980 Les circuits LSI (Large Scale Integration ciruit) conte-
nant des milliers de transistors par mm2 a conduit à la fabrication de ce qu'on appe-
lait les micro-ordinateurs. Ce qui a favorisé l'apparition des micro-ordinateurs grand
public. L'ordinateur devient alors également un outil de distraction avec l'apparition
des consoles de jeu. De plus, l'introduction des systèmes d'exploitation portables
avec interface graphique et la baisse des prix ont contribué à la démocratisation de
l'informatique.

Actuellement, il existe diérentes catégories d'ordinateurs. Une classication suivant


les performances de ces machines est donnée si-dessous :

 macro-ordinateurs(mainframe) : Utilisés pour les calculs scientiques et également


comme serveurs. Leur prix est trop élevé (plusieurs dizaines de millions de Dh. Par
exemple le mainframe le plus puissant est le Tianhe-2 : vitesse 33,9 péta-ops(1015
oating points operations per seconds) a un prix qui dépasse U S$300 millions
 mini-ordinateurs : idem en moins grand. Ils peuvent avoir de nombreux terminaux
(clavier+écran) qui leur sont reliés. Par exemple : HP superdrome X a un prix entre
400 000 à quelque millions de dollars US(prix 2015).
 station de travail : puissants ordinateurs individuels. Technologie diérente des micro-
ordinateurs : multiprocesseurs, processeurs plus puissants. Exemple,le HP Z840 4GB
RAM a un prix qui dépasse les 4000$US (prix 2016)
 Micro-ordinateur : Ordinateur de petit format dont l'unité centrale comprend un
1.3. LES ÉLÉMENTS DE L’ORDINATEUR 7

Figure 1.6  Forme classique d'un micro-ordinateur

Figure 1.7  Diérentes formes d'ordinateurs modernes

micro-processeur.
Généralement, le terme P C est utilisé pour désigner un micro-ordinateur. En eet, le
Sigle signie P ersonal Computer est le nom du premier micro-ordinateur de marque
IBM né en 1981. Le nom PC est à présent le terme générique désignant sa famille de
descendants, ordinateurs personnels embarquant un processeur de type Intel, AMD...
Vu que IBM propose des normes pour son PC à la n des années 80. Ces normes
ne sont pas légalement protégées, ainsi d'autres constructeurs peuvent les suivre, ils
créent des ordinateurs  compatibles PC .

1.3 Les éléments de l'ordinateur


Un ordinateur est classiquement composé d'une unité centrale et de périphériques ma-
tériels (écran, clavier, souris, disques durs, imprimantes/scanner, ...). Les interfaces
ou périphériques permettent l'interaction avec l'environnement extérieur (utilisateurs
ou autres). La gure 1.6 donne la forme classique minimale d'un ordinateur person-
nel. Cependant, les ordinateurs modernes sont de formes très variées,et ils remplissent
des tâches très variées. Par exemple, la gure 1.7 montre diérents types d'ordina-
teurs(téléphone, fauteuil dentaire...). Au c÷ur d'un ordinateur on trouve l'unité cen-
trale qui est principalement constituée du (ou des) processeur(s) ainsi que de la mé-
8 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

Figure 1.8  Organisation de la carte mère

moire vive (RAM). L'unité centrale de la plupart des ordinateurs est conçue sur une
architecture connue sous le nom d'architecture de Von Neumann.

 Carte mère (MotherBoard) : L'élément autour duquel est réalisé l'unité centrale
est la carte mère. C'est elle qui accueille l'ensemble des composants internes de
l'ordinateur (processeur, mémoire,...) et permet de gérer les diérentes interfaces
avec les périphériques en proposant des prises(ou connecteurs ou ports) pour les
éléments internes et des ports pour les périphériques externes(voir gure 1.8). En
eet, c'est de sa qualité que dépend la stabilité du système. Elle impose le type de
processeur (AMD : Athlon, Athlon XP ; INTEL : Pentium IV ; Celeron...), le type
de mémoire (EDO, SDRAM, DDR, DDRII...), le type de disque dur (IDE, SATA,
SATA II, SCSI) ainsi que la connectique de la carte vidéo si celle-ci n'est pas intégré
(AGP, PCI, PCI express). La carte mère intègre également un jeu de puce (circuit
intégré) important , il s'agit du chipset.
 Chipset : C'est un circuit électronique chargé de coordonner les échanges de données
entre les divers composants de l'ordinateur (processeur, mémoire ; ...).
 Processeur(microprocesseur) : On le qualie de cerveau de l'ordinateur, le processeur
permet de manipuler et de traiter les données qui lui sont fournies. Le processeur
est composé de deux éléments essentiels : Une unité de commande qui donne les
ordres et synchronise les opérations et une unité de traitement qui eectue les
opérations (arithmétiques, logiques,...). La gure 1.9 donne la photo d'un micropro-
cesseur commercial.
1.3. LES ÉLÉMENTS DE L’ORDINATEUR 9

Figure 1.9  Photo d'un microprocesseur

 Mémoire vive : Appelée aussi RAM(Random Access Memory) ou mémoire centrale.


Elle stocke temporairement les données à traiter par le processeur. Ainsi, plus il y a
de mémoire de disponible, plus il est possible d'y conserver des données temporai-
rement (ce qui évite d'accéder au disque dur qui est plus lent). La mémoire RAM
perd son contenu à chaque arrêt ou redémarrage de l'ordinateur. l'unité de stockage
élémentaire étant le BIT (Binary DigIT). Toutes les informations sont codées sous
forme de nombres binaires composés de 0 et de 1. Ces bits sont regroupés en octets (8
bits). Selon le processeur, un mot mémoire est composé de 2 (16 bits) de 4 (32 bits)
octets ou de 8(64bits). la capacité de stockage de la mémoire est le nombre d'octets
qu'elle peut contenir. Ainsi on a déni les unités suivantes : 1Kio (kilo binary octet)
= 210 octets, 1Mio(Mebi octet)= 220 octets, 1Gio(Gibi Octet)= 230 octets, 1Tio(Tébi
Octect)= 240 octets), 1Pébioctet (Pio) =250 octets, 1Exbioctet (Eio) = 260 octets,
1Zébioctet (Zio) = 270 octets, 1Yobioctet (Yio) = 280 octets.
Remarque : De plus en plus(le IEC a normalisé ces unités en 1998) on utilise les
préxes ko comme 1000octets, Mo=1000000 Octets, etc.
 Disque dur : Contrairement à la mémoire RAM, il permet de garder son contenu en
absence d'alimentation électrique. Il possède une capacité de stockage beaucoup plus
importante que la mémoire RAM. C'est pour cette raison on l'appel mémoire de
masse ou secondaire ou auxiliaire. C'est le lieu de stockage des logiciels installés
et des données personnelles(exemples de disques sont donnés dans la gure 1.11). Il
se distingue par :
 La taille (capacité de stockage),
 L'interface (type de connectique) IDE, SATA ou SCSI inuant directement sur les
10 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

Figure 1.10  Exemple de barrettes RAM de 4Go.

performances (rapidité d'écriture et de lecture). Le choix s'eectue en fonction de


la carte-mère qui dispose ou non des connectiques ad'hoc.
 La vitesse de rotation, 5400tr/mn 7200tr/mn (vitesse standard), 10000tr/mn ou
15000tr/mn en professionnel, qui inue directement sur les performances.
 la quantité de mémoire tampon (cache) 2, 8, 16 Mo ou même à 128Mo (plus il y
en a, mieux est le disque).
Si les SSD sont de plus en plus utilisés, le disque dur mécanique reste toujours un
périphérique de choix vu le rapport capacité/prix qu'ils présentent. Un ordinateur
peut généralement accueillir plusieurs disques durs pour augmenter la capacité de
stockage.

(a) Disque dure (HDD : hard disk drive) (b) Solid State Drive (SSD)

Figure 1.11  Exemples de disques de stockage

 Mémoire virtuelle : Est un espace du disque dur interne d'un ordinateur qui vient
1.3. LES ÉLÉMENTS DE L’ORDINATEUR 11

compléter la mémoire RAM. Elle sert à augmenter articiellement la RAM et per-


mettre d'exécuter plus de programmes. Cependant, elle est moins performante que
la RAM parce que les accès au disque sont moins rapides que l'accès à la RAM.
 Le BIOS (Basic Input/Output System) : C'est un petit programme situé sur la carte
mère dans une ROM. Il est le premier programme chargé en mémoire lorsqu'on
démarre l'ordinateur. Il assure plusieurs fonctions dont :
 POST (Power-On Self-Tests) : Ensemble des tests eectués le démarrage du sys-
tème d'exploitation :
 vérier que la carte mère fonctionne bien (barrettes mémoire, contrôleurs de
ports USB, IDE...)
 vérier que les périphériques basiques connectés à la carte mère fonctionnent
bien (clavier, carte graphique, disques dur, lecteur de CD...)
 paramétrer la carte mère à partir des informations stockées dans la mémoire
CMOS. La CMOS est une mémoire vive qui garde les informations de congu-
ration de l'ordinateur. Elle est alimentée lorsque l'ordinateur est éteint par une
pile dite pile CMOS.
 Chercher un disque sur lequel il y a un système d'exploitation prêt à démarrer. Le
BIOS peut également rendre des services au système d'exploitation en assurant
la communication entre les logiciels et les périphériques, mais seulement pour les
périphérique basiques comme le clavier et écran.
Le BIOS contient aussi généralement un programme qui permet de modier les
paramètres de la carte mère. Ce programme est appelé setup.
 Les périphériques : C'est l'environnement autour de l'ordinateur. Ils sont chargés
de réaliser des tâches d'entrées et/ou de sortie de l'information. On peut classer ces
périphérique en trois types :
 Périphériques d'entrée : Clavier, souris, crayon optique, écran tactile, stylo code
barre, carte son, scanner, caméra, etc.
 Périphériques de sortie : Écran, imprimante, table traçante, carte son, télécopie,
etc.
 Périphériques d'entrée sortie : Mémoire auxiliaire(Stockage de masse sur disque dur
ou mémoire ash, graveur de disque) ou équipements réseau(MoDem, Switch...).
12 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

Figure 1.12  Position de l'OS.

1.4 Notion de Système d'exploitation


Au l des années de l'utilisation de l'ordinateur, une spécialisation progressive des
logiciels s'est instaurée :
 logiciels d'application : Permettent la résolution de problèmes spéciques (traitement
de textes, tableurs, logiciels de comptabilité...)
 logiciels utilitaires : Ce sont des logiciels qui servent au développement des applica-
tions (assembleur, compilateurs, librairie de dessin, outils de communications...)
 logiciels systèmes : regroupés dans le système d'exploitation.

1.4.1 Dénition
Un système d'exploitation(Operating System) est un ensemble des programmes de
base qui sert d'interface entre le matériel et les logiciels applicatifs. C'est le premier
programme que peut contenir un ordinateur. Il permet de gérer le matériel et les autres
logiciels. La gure 1.12 positionne le système d'exploitation dans son environnement.
Le système d'exploitation est composé(gure 1.13) :
 d'un noyau(kernel) : qui assure la gestion des processus : C'est le c÷ur du système. Il
est de plus en plus restreint à sa fonction principale. On parle alors de micro noyau.
A noter que processus ou job/tâche est un programme en cours d'exécution,
 d'autres composants logiciels assurant les fonctions du système : Comme la gestion
de chiers, la gestion de mémoire, la gestion des entrées-sorties, l'interpréteur de
commande...
1.4. NOTION DE SYSTÈME D’EXPLOITATION 13

Figure 1.13  OS en couche.

Les fonctions principales du noyau d'un système d'exploitation multi-tâches sont :

 Gestion du processeur : reposant sur une allocation (dispatcher) responsable de la


répartition du temps processeur entre les diérents processus, et un planicateur
(scheduler) déterminant les processus à activer, en fonction du contexte.
 Gestion des interruptions : les interruptions sont des signaux envoyés par le matériel,
à destination du logiciel, pour signaler un évènement.
 Gestion du multi-tâches : Permet principalement de simuler la simultanéité des pro-
cessus coopératifs (i.e. les processus devant se synchroniser pour échanger des don-
nées) et de gérer les accès concurrents aux ressources (chiers, imprimantes, ...)

Une des couche du système d'exploitation est le système de Fichiers. Le système


de chier ore à l'utilisateur une vision homogène et structurée des données et des
ressources : disques, mémoires, périphériques. Il gère la création des chiers, leur des-
truction, leur correspondance avec les dispositifs physiques, ainsi qu'un certain nombre
d'autres caractéristiques, telles que la protection . Le concept de chiers est une struc-
ture adaptée aux mémoires secondaires ou de masse permettant de regrouper des don-
nées en général, en une structure arborescente(1.14). Le système de chiers ore à
l'utilisateur une vue abstraite sur ses données et permet de les localiser à partir d'un
chemin d'accès.
Pour l'organisation de stockage dans la mémoire secondaire le système d'exploitation
utilise :

 Fichier (le) : ensemble d'information manipulables par l'ordinateur ; nom unique


dans un répertoire ; taille en octets
 Répertoire : dossier ou directory or folder ; regroupement de chiers ; nom unique
 Racine (root) : dossier situé au plus haut niveau
14 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

Figure 1.14  Organisation de stockage des données dans le disque.

 Chemin d'accès (path) : liste des répertoires permettant d'atteindre un chier à


partir de la racine

1.4.2 Fonctionnalités
le système d'exploitation ore une large gamme de services utilisés par les logiciels :
Gestion des périphériques (achage à l'écran, lecture du clavier, pilotage d'une im-
primante...) ; gestion des utilisateurs et de leurs données (comptes, partage des res-
sources, gestion des chiers et répertoires,...) ; Interface avec l'utilisateur (textuelle ou
graphique) : Interprétation des commandes ; Contrôle des programmes (découpage en
tâches, partage du temps processeur,...).

1.4.3 Classication des systèmes d'exploitation


Actuellement, il existe un nombre important de systèmes d'exploitation. Cependant,
la tendance actuelle est toutefois à la standardisation, en se conformant aux systèmes
existants.
On peut classer les systèmes d'exploitation suivant plusieurs critères.
 Parallélisme :
 Le système mono-tâche : Il ne gère qu'une seule tâche à la fois (un seul programme).
Quand le programme est lancé, il utilise seul les ressources de la machine et ne
rend la main au système d'exploitation qu'en n d'exécution, ou en cas d'erreur.
1.4. NOTION DE SYSTÈME D’EXPLOITATION 15

Mono-tâche Multi-tâches
A tout instant, un seul Plusieurs processus (i.e. un programme en cours
programme est exécuté ; un d'exécution) peuvent s'exécuter simultanément (sys-
autre programme ne démar- tèmes multi-processeurs) ou en quasi-parallélisme (sys-
rera, sauf conditions excep- tèmes à temps partagé)
tionnelles, que lorsque le
premier sera terminé.
mono-session multi-session
Au plus un utilisateur à la fois sur une machine. Les sys- Plusieurs utilisateurs
tèmes réseaux permettent de diérencier plusieurs utili- peuvent travailler simul-
sateurs, mais chacun d'eux utilise de manière exclusive tanément sur la même
la machine (multi-utilisateurs, mono-session) machine.
Exemple : MS-DOS Exemple : Windows Exemple : UNIX, VMS

Table 1.1  Comparaison entre systèmes d'exploitation.

 Le système multi-tâche : Il gère simultanément plusieurs programmes sur une


même machine. Il permet de partager le temps du processeur pour plusieurs pro-
grammes, ainsi ceux-ci sembleront s'exécuter simultanément. Le principe est d'al-
louer du temps à diérents programmes (tâches ou processus) fonctionnant si-
multanément. Ces tâches seront tour à tour actives, en attente, suspendues ou
détruites, suivant la priorité qui leur est associée. Le temps alloué peut être xe
ou variable suivant le type de partage géré par le SE.
 Utilisateur :
 Le système multi-utilisateur : De tel système donne accès à plusieurs utilisateurs en
même temps sur la même machine. Alors que le mono-utilisateur n'accepte qu'un
seul utilisateur. Pour un système multi-utilisateurs, il est caractérisé par la gestion
d'environnement propre à chaque utilisateur(identication,ressources propres), la
sécurité d'accès aux programmes et aux données et la notion de droits d'accès.

Le tableau 1.1 donne une comparaison entre les systèmes d'exploitation.


16 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

1.5 Logiciels d'application

Un logiciel est un ensemble de programmes permettant à un système informatique


d'assurer une tâche ou une fonction en particulier. Le terme logiciel est souvent employé
pour désigner un programme informatique, et inversement, bien qu'un logiciel puisse
être composé d'un seul ou d'une suite de programmes. Une application est un ensemble
de logiciels nécessaire pour une tâche donnée (par exemple, un navigateur web est une
application alors que Firefox est un logiciel).

On donnera dans ce qui suit des exemples de logiciels pour des applications spéciées.

 Éditeur de texte : Pour permettre de créer des documents contenant du texte au


codage ASCII ou d'outil du système d'exploitation (chiers de conguration, notices,
...) : Bloc-notes pour windows ; emac, nano, gedit... pour linux, text edit pour
mac OS...
 Traitement de texte : Pour créer des documents contenant du texte mis en forme : po-
lice et styles de caractères, style et alignement des paragraphes, organisation du texte
(sections, hiérarchisation, en-tête et pied de page, table des matières...) : WordPad,
WordPerfect Corel Oce et Word pour windows Word pour Mac OS ; Ope-
nOce Writer pour linux et Mac OS.
N.B. : OpenOce est une suite bureautique gratuite.
 Tableur :Pour créer des documents contenant des feuilles de calcul constituées de
cellules, organisées en ligne x colonne, pouvant contenir des informations sous dié-
rents formats (texte, nombres, dates...) ou des formules de calcul. Contient des outils
d'analyse de ces informations permettant une visualisation sous forme de courbes ou
diagrammes divers : Excel pour Win/Mac OS et OpenOce Calc pour Linux,
Mac OS et Windows.
 Gestion des bases de données : Créer des documents contenant des tables d'articles
hiérarchisées ou liées par des champs communs (relations). Contient des outils d'ana-
lyse des tables permettant d'en extraire des informations à l'aide de requêtes.
Access pour Windows, OpenOce Base pour Win/Mac OS et Linux.
 Navigateur : visualiser des pages écrites en langage HTML et disponibles sur le réseau
Internet : Netscape, refox, goole Chrome...
Po-
 Présentation : Acher une suite de pages à l'écran sous forme de diaporama.
werPoint, OpenOce Impress pour Windows et Mac OS, OpenOce Impress
1.6. NOTION DE VIRTUALISATION 17

Figure 1.15  Organisation de la virtualisation.

pour linux.

1.6 Notion de virtualisation


On appelle virtualisation l'ensemble des techniques matérielles et/ou logicielles qui
permettent de faire fonctionner plusieurs systèmes d'exploitation sur une même ma-
chine, séparément les uns des autres, comme s'ils fonctionnaient sur des machines phy-
siques distinctes. Il s'agit alors de mapper des ressources virtuelles à partir de ressources
réelles. La gure 1.15 illustre un exemple de virtualsation de systèmes. Les avantages
de la virtualisation sont nombreux. On peut les résumer comme suit :
 Rentabilisation de l'utilisation des ressources des serveurs : Au lieu d'utiliser la CPU
et la RAM à des fractions faibles, on l'utilise à 90% de performance.
 Réduction du coût d'électricité et de climatisation(Un seul serveur physique au lieu
de plusieurs).
 Rapidité pour monter un nouveau serveur, car c'est seulement logiciel.
 Facilité et rapidité de se relever de pannes.
 Moyen facile de monter un environnement de test peu couteux et complet.
Des exemples d'outils de virtualisation : VMware, VirtualBox, Hyper-V.

1.7 Conclusion
Dans ce chapitre, on a présenté quelques dénitions de base de l'informatique. Les
diérentes générations de l'ordinateur ont été également explicitées. Les principaux
composants de l'ordinateur ont fait également l'objet de ce chapitre. Dans le chapitre
18 CHAPITRE 1. INTRODUCTION À L’INFORMATIQUE

suivant, on présentera les principes de codage de l'information dans les systèmes infor-
matiques.
Chapitre

2
N OTIONS DE CODAGE D ’ INFORMATION

Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Systèmes de numération . . . . . . . . . . . . . . . . . . . . 20
2.2.1 Conversion décimal- binaire . . . . . . . . . . . . . . . . . . . 20
2.2.2 Conversion binaire-décimal . . . . . . . . . . . . . . . . . . . 21
2.2.3 Conversion binaire-hexadécimal . . . . . . . . . . . . . . . . . 21
2.2.4 Conversion hexadécimal-binaire . . . . . . . . . . . . . . . . . 21
2.3 Représentation des nombres entiers . . . . . . . . . . . . . 22
2.3.1 Représentation d'un entier naturel . . . . . . . . . . . . . . . 22
2.3.2 Représentation d'un entier relatif . . . . . . . . . . . . . . . . 22
2.3.3 Représentation des nombres réels . . . . . . . . . . . . . . . . 23
2.4 Représentation des caractères . . . . . . . . . . . . . . . . . 23
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
20 CHAPITRE 2. NOTIONS DE CODAGE D’INFORMATION

2.1 Introduction
La nature de l'information traitée par un ordinateur peut être très variée(image, son,
texte, vidéo). Cependant, l'information est toujours représentée sous la forme d'un
ensemble de nombres binaires utilisant les chires 0 et 1. Le bit (binary digit, chire
binaire) est la plus petite unité d'information manipulable par une machine numérique.

2.2 Systèmes de numération


Dans notre vie courante, on utilise le système décimal (base 10). Ce système est basé
sur dix symboles(chires) de 0 à 9. C'est un système positionnel, où l'endroit où se
trouve le chire dénit son poids(sa valeur). Ainsi, le chire 2 de 920 n'a pas le même
poids que le 2 de 632. En fait, 920 est la représentation du 9102 + 2101 + 0100 . Ce même
principe est utilisé pour dénir tous les systèmes de numération. En informatique, on
utilise le système binaire (de base 2) et le système hexadécimal (base 16) du fait de sa
simplicité d'utilisation et de représentation. Pour le système hexadécimal, on a besoin
de 16 chires. On utilise ainsi, les dix chires écimaux et six symboles supplémentaires :
A (qui représente le 10), B (11), C (12), D (13), E (14) et F (15). On considère l'écri-
ture suivante qui permet de donner la valeur équivalente d'un nombre écrit dans une
base b : (an−1 an−2 ...a0 )b = an−1 × bn−1 + an−2 × bn−2 + + a0 × b0 qu'on peut écrire
encore : (an−1 an−2 ...a0 )b = Σn−1
i=0 ai × b . C'est la représentation polynômiale du nombre
i

(an−1 an−2 ...a0 )b dans la base b.

2.2.1 Conversion décimal- binaire


Le principe général de codage est alors le suivant : si (an−1 , an−2 , ..., a0 )2 dénote un
nombre en base 2, sa valeur décimale est :an−1 × 2n−1 + an−2 × 2n−2 + + a0 × 20 Le bit
à la position 0, dit bit de poids faible(LSB, Least Signicant Bit), détermine à lui seul
la parité de l'entier à représenté : s'il vaut 0, le nombre est pair, s'il vaut 1, le nombre
est impair. soit par exemple le nombre décimal 13 qu'on veut écrire en binaire. On doit
écrire ce nombre en somme de puissance de 2. Soit : 13 = 6 × 2 + 1 = (3 × 2) × 2 + 1 =
((1 × 2 + 1) × 2) × 2 + 1 = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 . Ceci peut être vu sur la
gure 2.1. Donc, la représentation binaire du nombre (13)10 = (1101)2 .
2.2. SYSTÈMES DE NUMÉRATION 21

Figure 2.1  Décomposition en puissance de 2.

2.2.2 Conversion binaire-décimal


Il s'agit d'écrire le nombre binaire sous forme polynômiale et de réaliser la somme
classique dans la base 10.

Soit par exemple à écrire le nombre binaire (11001)2 en décimal.


On a (11001)2 = 1 × 24 + 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = (25)10 .

2.2.3 Conversion binaire-hexadécimal


Elle se fait en écrivant chaque quatre bits avec le chire hexadécimal correspondant.
Le tableau de la gure 2.2 donne la représentation de chaque quarter(4bits).

Supposant qu'on veut écrire en hexadécimal le nombre binaire 1101010. On commence


alors, de la droite car les zéros à gauche sans non-signicatifs. On prend les quatre bits
de la droite 1010, ils leur correspond le chire A. Par la suite les bits 0110, qui leur
correspond 6. Soit, donc, (1101010)2 = (6A)16 .

2.2.4 Conversion hexadécimal-binaire


On utilise le même principe de conversion précédente. Alors, chaque chire hexadé-
cimal est représenté par quatre bits binaires correspondant. Exemple : (A30)16 =
(101000110000)2 .
22 CHAPITRE 2. NOTIONS DE CODAGE D’INFORMATION

Figure 2.2  Valeur des chires hexadécimaux en décimal et en binaire.

2.3 Représentation des nombres entiers


2.3.1 Représentation d'un entier naturel
Un entier naturel est un nombre entier positif ou nul(∈ N). Le choix de nombre de
bits de représentation dépend de la l'étendue des nombres que l'on désire coder. D'une
manière générale un codage sur n bits pourra permettre de représenter des nombres
entiers naturels compris entre 0 et 2n − 1.

2.3.2 Représentation d'un entier relatif


Un entier relatif est un entier pouvant être négatif (∈ Z). Il faut donc coder le nombre
de telle façon que l'on puisse savoir s'il s'agit d'un nombre positif ou d'un nombre
négatif, et il faut de plus que les règles d'addition soient conservées. L'astuce consiste
à utiliser un codage que l'on appelle complément à deux. Cette représentation permet
d'eectuer les opérations arithmétiques usuelles naturellement. Un entier relatif positif
ou nul sera représenté en binaire (base 2) comme un entier naturel, à la seule diérence
que le bit de poids fort (le bit situé à l'extrême gauche) représente le signe. Il faut donc
s'assurer pour un entier positif ou nul qu'il est à zéro (0 correspond à un signe positif,
1 à un signe négatif). Ainsi, si on code un entier naturel sur 4 bits, le nombre.
2.4. REPRÉSENTATION DES CARACTÈRES 23

Un entier relatif négatif sera représenté grâce au codage en complément à deux. Pour
trouver le complément à deux d'un nombre, on suit les étapes suivantes :

1. Écrire la valeur absolue du nombre en base 2. Le bit de poids fort doit être égal
à 0.

2. Inverser les bits : les 0 deviennent des 1 et vice versa. On fait ce qu'on appelle le
complément à un.

3. On ajoute le nombre 1 au résultat. Les dépassements pouvant survenir pendant


l'addition sont ignorés.

2.3.3 Représentation des nombres réels


Si on considère par exemple le nombre décimal suivant : 213.45. Il correspond alors à
la valeur :

583.49 = 5 × 102 + 8 × 101 + 3 × 100 + 4 × 10−1 + 9 × 10−2

Cette même règle est valable pour toutes les bases.

2.4 Représentation des caractères


Pour le codage des textes, les caractères doivent évidemment être codés sous une forme
numérique qu'on appelle le code ASCII (American Standard Code for Information
Interchange : code standard américain pour l'échange d'informations). Ce code utilise
7bits pour coder l'ensemble des caractères de l'alphabet anglophones(gure 2.3). Le
code ASCII a été étendu pour intégrer les lettres accentuées et des symboles scienti-
ques et graphiques. Ainsi, on a considéré un codage sur 8bits. Les codes de 0 à 127
restent les même. Le tableau de la gure 2.4 donne le code correspondant de chaque
caractère de 128 à 255.
Il existe d'autres façon de coder les textes, mais le code ASCII est le plus répandu dans
le monde. Une combinaison de 8 bits= 1 Octet soit 28 = 256 possibilités qui permettent
de coder tous les caractères alphabétiques(latin-1 : Europe occidentale), numériques,
et symboles tels que ?,*,&, ...
Le code ASCII ne permet pas de coder tous les caractères internationaux(alphabet
arabe, asiatiques...) Ce qui a imposé l'utilisation de d'autres codes (Unicode, UTF-8...).
24 CHAPITRE 2. NOTIONS DE CODAGE D’INFORMATION

Figure 2.3  Code ASCII des caractères de l'aphabet.

2.5 Conclusion
Dans ce chapitre, on a présenté les principes de codage des informations dans un
système informatique. Ainsi, la représentation des nombres entiers et décimaux a été
évoquée. Par la suite, on a traité la représentation des caractères.
Le chapitre suivant fera une introduction à la programmation.
2.5. CONCLUSION 25

Figure 2.4  Code ASCII étendu.


Chapitre

3
A LGORITHMIQUE ET P ROGRAMMATION

Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Langage informatique . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Dénition de l'Algorithmique . . . . . . . . . . . . . . . . . 29
3.4 Représentation . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5 Éléments d'algorithme . . . . . . . . . . . . . . . . . . . . . 31
3.5.1 Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5.2 Types de variables . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.3 Déclaration des variables . . . . . . . . . . . . . . . . . . . . . 32
3.5.4 Aectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5.5 Expressions et opérateurs . . . . . . . . . . . . . . . . . . . . 33
3.5.6 Instructions d'entrée-sortie . . . . . . . . . . . . . . . . . . . 34
3.5.7 Les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.8 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.9 Procédures et Fonctions . . . . . . . . . . . . . . . . . . . . . 39
3.5.10 Portée des variables . . . . . . . . . . . . . . . . . . . . . . . 43
3.5.11 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.12 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.13 Quelques algorithmes pour les tableaux . . . . . . . . . . . . 46
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
28 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

3.1 Introduction
L'ordinateur est présent dans tous les domaines de la vie. En eet, il permet de réaliser
les tâches répétitives ou complexes. Pour résoudre les problèmes, l'ordinateur exécute
un programme. Un programme correspond à la description d'une méthode de résolution
pour un problème donné. Cette description est eectuée par une suite d'instructions
d'un langage de programmation. A noter qu'un programme n'est pas une solution d'un
problème donné mais une méthode à suivre pour en trouver la résolution.

3.2 Langage informatique


Un langage informatique est un outil permettant de donner des ordres (instructions) à
la machine. A chaque instruction correspond une action du processeur. l'intérêt étant
d'écrire des programmes (suite consécutive d'instructions) destinés à eectuer une tâche
donnée(par exemple : un programme de gestion de comptes bancaires). L'ordinateur
traite les instructions d'un programme passées en langage machine. C'est un code
écrit en binaire pour représenter les opérations et les données. Il est alors très dicile
pour les humains de comprendre et de manipuler les programmes dans ce langage d'au-
tant plus que ce langage est propre à chaque famille d'ordinateurs.
C'est ainsi qu'on a essayé de développer des langages plus faciles. L'idée consistait
à créer un langage compréhensible par l'homme qui sera ensuite converti en langage
machine. L'assembleur fût le 1er langage de programmation. Celui-ci permet d'expri-
mer les instructions élémentaires de façon symbolique qu'on appelle Mnémoniques. Par
ADD A, 4
LOAD B
exemple MOV A, OUT
...

Grâce à un traducteur(logiciel assembleur)on génère le langage machine.


En eet, c'est un pas vers la simplication de la programmation vu qu'il est moins dif-
cile de manipuler des instructions ayant des noms signicatifs que d'utiliser un code
binaire ! Cependant, l'assembleur est fortement lié au type de la machine, de ce fait il
n'est pas portable. Les programmes sont écrits spéciquement pour une machine ou
une famille de machines nécessitent des modications pour fonctionner sur d'autres ma-
chines. De plus, il n'est pas assez ecace pour développer des applications complexes.
3.3. DÉFINITION DE L’ALGORITHMIQUE 29

Ceci a poussé vers l'apparition des langages évolués. Ces langages dits de haut niveau
s'approchent plus de l'humain et permettent de faciliter grandement la programmation
en assurant une grande portabilité.
Plusieurs classications sont possibles pour les langages informatiques. Une des clas-
sications courantes est relative au moment de génération du code machine. On parle
alors de langage interprété contre un langage compilé.
 Langage interprété : Étant donné qu'un langage informatique est diérent du langage
machine,il faut le traduire pour le rendre compréhensible par processeur. Ainsi, un
programme écrit dans un langage interprété a besoin d'un programme auxiliaire
(l'interpréteur) pour traduire en langage machine. Cette traduction se fait au fur
et à mesure de l'exécution des instructions du programme.
 Langage compilé : Un programme écrit dans un langage compilé est traduit en totalité
par un programme annexe, appelé compilateur, pour générer un nouveau chier
autonome(qui ne nécessite plus le programme pour s'exécuter). Ce chier on l'appelle
chier exécutable.
La traduction d'un programme écrit dans un langage compilé étant faite une fois pour
toute, il est donc plus rapide à l'exécution par rapport à un programme d'un langage
interprété. Cependant, il est moins souple qu'un programme écrit avec un langage inter-
prété car après compilation le chier exécutable n'est pas modiable. Les modications
peuvent s'eectuer dans le chier source (chier contenant les instructions tapées par
le programmeur) et il faut recompiler le programme pour que les modications soient
prises en considération. Le tableau 3.1 donne une liste de quelques langages informa-
tiques.

3.3 Dénition de l'Algorithmique


La gure 3.1 donne les étapes de développement de logiciels en utilisant un langage
compilé. On peut voir que l'algorithme s'intercale entre l'analyse et la génération du
programme. En eet, la notion précise d'algorithme a été découverte en l'an 825 par le
mathématicien arabe Mohammmad ibn Musa al-Kharezmi et qui est un Moyen d'au-
tomatisation et d'économie de la pensée.
En informatique, on peut dénir l'algorithme comme une description complète et dé-
taillée des actions à eectuer et de leur séquencement pour arriver à un résultat donné.
30 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

Langage Domaine d'application Compilé/interprété


BASIC Programmation basique à interprété
but éducatif
C/C++ Programmation système compilé
Java Programmation orientée in- intermédiaire entre compilé et inter-
ternet prété
PHP Développement de sites web interprété
dynamiques
Cobol Gestion compilé
LISP Intelligence articielle intermédiaire
MATLAB Calcul mathématique interprété

Table 3.1  Quelques langage de programmation.

Figure 3.1  Étapes de développement de logiciels.

L'intérêt pour la programmation étant la séparation de l'analyse du codage pour ne


pas se préoccuper de syntaxe et de se concentrer sur la résolution du problème. Cepen-
dant, plusieurs algorithmes peuvent être possibles pour traiter un problème donné. On
qualie alors un algorithme par son exactitude (fournit-il le résultat souhaité ?), son
ecacité (temps d'exécution, mémoire occupée), sa clarté (compréhensible), sa géné-
ralisation (traite t-il le plus grand nombre de cas possibles ?)...
L'algorithmique désigne désigne l'ensemble des méthodes permettant de d'étudier et
de créer des algorithmes.
3.4. REPRÉSENTATION 31

3.4 Représentation

Historiquement, il existe deux façons pour représenter un algorithme :

 L'organigramme : représentation graphique avec des symboles (carrés, losanges, etc.).


Il ore une vue d'ensemble de l'algorithme. Cette représentation est quasiment aban-
donnée aujourd'hui.
 Le pseudo-code : représentation textuelle avec une série de conventions ressemblant
à un langage de programmation (sans les problèmes de syntaxe). c'est une méthode
plus pratique et facile pour écrire un algorithme dans un langage naturel. D'ailleurs,
c'est la représentation qui est largement utilisée.

3.5 Éléments d'algorithme

3.5.1 Variable

Une variable est un objet informatique qui permet d'associer un nom à une valeur qui
varie éventuellement au cours du temps(pendant l'exécution). Le nom d'une variables
est un identicateur arbitraire, qui doit être de préférence court mais signicatif pour
exprimer clairement ce que la variable référence. Le choix des noms de variables est
soumis à quelques règles qui varient selon le langage, mais en général, un nom doit :

 commencer par une lettre alphabétique. Un exemple de nom de variable valide : A1


Alors que 1A est invalide.
 être constitué uniquement de lettres, de chires et du caractère de soulignement(_).
On évite l'utilisation des caractères de ponctuation et les espaces. Voici des noms de
variables valides : SM2017, SM_2017, alors que SM 2017, SM-2017, SMP ;2007 sont
non valides.
 être diérent des mots réservés du langage du programmation qui sera utilisé par
la suite pour éviter d'être dans l'obligation de changer ces nom lors du passage au
programme (par exemple dans le cas du langage C, les noms suivants ne sont pas
utilisables : int, oat, else, switch, case, default, for, main, return,...)
 avoir une longueur raisonnable pour éviter l'ennui de saisie.
32 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

3.5.2 Types de variables


Le type d'une variable détermine l'ensemble des valeurs qu'elle peut prendre. Autre-
ment dit, il correspond au domaine de dénition de la variable. Les types de variables
sont nombreux, mais, les types oerts par la plus part des langages de programmation
sont :
 Booléen, représentant une valeur logique binaire oui ou non, ouvert ou fermé, vrai
ou faux... Par convention, on utilise Vrai/Faux.
 Numérique, représentant un nombre quelconque : On peut distinguer entre les sous-
types entier et réel ;
 Caractère, représentant un caractère seul. Par convention, le contenu d'une variable
de ce type est mis entre apostrophe : exemple sexe='F'.
 Chaîne de caractères, représentant un texte de zéro, un ou plusieurs caractères. Par
convention, le contenu de variables de ce type est mis entre deux guillemets : exemple
nom="Said".
 De plus, le type de contenu peut être une structure d'objet personnalisée (par exemple
un type Personne comprenant son nom, prénom...)

3.5.3 Déclaration des variables


Toute variable utilisée dans un programme fait l'objet d'une déclaration préalable. Ce
qui permet au système de réserver de l'espace mémoire pour stocker la valeur de la
variable. Cette condition n'est pas susante pour les langages interprétés, mais elle
permet d'améliorer la lisibilité des programmes.
En pseudo-code, on va adopter la forme suivante pour la déclaration :

Variables liste_d'identicateurs : type

Exemple de déclarations :

Variables i, j,k : entier


x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères

Remarque : En eet, pour le type numérique, il existe plusieurs variantes, on va se


limiter aux entiers et réels sans considérer les sous types des entiers et des réels.
3.5. ÉLÉMENTS D’ALGORITHME 33

3.5.4 Aectation
L'aectation suit la déclaration, il s'agit d'attribuer des valeurs (constantes ou variables
également) ou des expressions à une variable. La syntaxe adoptée pour l'aectation est :

variable ← valeur ou expression

Par exemple :
prix ← 2000

signie que la variable prix reçoit valeur 2000.

3.5.5 Expressions et opérateurs


Une expression est un ensemble de valeurs ou variables, reliées par des opérateurs, et
équivalent, après évaluation, à une seule valeur.
Un opérateur est un symbole qui relie deux valeurs, pour produire un résultat.
Les opérateurs possibles dépendent du type des valeurs qui forment l'expression.
 Opérateurs numériques : sont les opérateurs arithmétiques :
 + : addition
 - : soustraction
 * : multiplication
 / : division
 éventuellement, on peut utiliser les opérateurs % pour le modulo ou reste de divi-
sion et le p
our la puissance.
 Opérateur alphanumérique : & qui permet de concaténer deux chaînes de caractères.
 Opérateurs logiques (ou booléens) : Il s'agit du ET, du OU, du NON et éventuelle-
ment de XOR.
 Pour réaliser une proposition logique, on peut utiliser les opérateurs relationnels ou
de comparaison : =, 6= , <, >, ≤, ≥.
Généralement, une expression est évaluée de gauche à droite en tenant compte de priori-
tés des opérateurs. Ces priorités sont les mêmes que celles des opérateurs arithmétiques
classiques. Pour les opérateurs arithmétiques, l'ordre de priorité est le suivant (du plus
prioritaire au moins prioritaire) :

1.  : (élévation à la puissance)

2. * , / (multiplication, division)
34 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

3. % (modulo)

4. + , - (addition, soustraction)

Exemple : 2 + 3 * 7 vaut 23
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations
à eectuer en priorité : Exemple : (2 + 3) * 7 vaut 35

3.5.6 Instructions d'entrée-sortie


Les instructions d'entrée-sortie appelées également instructions de lecture et d'écriture
permettent à la machine de communiquer avec l'utilisateur. La lecture permet d'entrer
des donnés au système. Classiquement, l'organe d'entrée par défaut étant le clavier.
En pseudo-code, on utilisera la notation : lire (var) L'exécution de cette instruction
permet de mettre la valeur entrée au clavier dans la zone mémoire nommée var. Lorsque
le programme est entrain de s'exécuter, il s'arrête lorsqu'il rencontre une instruction
de lecture et ne se poursuit qu'après la saisie d'une valeur au clavier et l'appui sur la
touche Entrée.
L'écriture permet d'acher des résultats sur la sortie standard qui est l'écran(Elle peut
également écrire le résultat dans un chier).
En pseudo-code, on adoptera la notation : écrire (var).
A l'exécution de l'instruction de sortie, le contenu de la zone mémoire var est aché.
Remarque : Avant de lire une variable, il est fortement conseillé d'écrire des messages
à l'écran, an de prévenir l'utilisateur de ce qu'il doit saisir.
Exemple d'algorithme : L'algorithme suivant demande un nombre entier à l'utili-
sateur, puis calcule et ache le double de ce nombre :

Algorithm Calcul_double
variables A, B : entier
Début
écrire("entrer le nombre ")
lire(A)
B ←2∗A
écrire("le double de ", A, "est :", B)
Fin

Exercice : Écrire un algorithme qui vous demande de saisir votre nom puis votre
3.5. ÉLÉMENTS D’ALGORITHME 35

prénom et qui ache ensuite votre nom suivi par votre prénom.

3.5.7 Les tests


Normalement, les instructions s'exécutent linéairement dans l'ordre de leur écriture.
Les instructions conditionnelles servent à n'exécuter une instruction ou une séquence
d'instructions que si une condition est vériée. Elles permettent donc un déroutement
de l'exécution des instructions. On utilisera la forme suivante :

Algorithm Test
Si condition Alors
Instruction1
Instructioni
Sinon
instructionj
instructionn
Fin Si

Explication : La condition ne peut être que vraie ou fausse. Si la condition est vraie, se
sont les instructions1 et instructionsi qui seront exécutées. Si la condition est fausse,
se sont les instructionsj et instructionsn qui seront exécutées. la condition peut être
une condition simple ou une condition composée de plusieurs conditions.
La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition est
fausse, aucun traitement n'est réalisé. On utilisera dans ce cas la forme simpliée sui-
vante :

Algorithm Test
Si condition Alors
Instruction1
Instructioni
Fin Si

Exemple :
36 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

Algorithm AchageValeurAbsolue
V ariable x : reel
Début
ecrire "Entrez un réel :"
Lire(x)
Si x < 0 Alors
ecrire "la valeur absolue de ", x, "est :",-x
Sinon
ecrire "la valeur absolue de ", x, "est :",x
Fin Si
Fin

Les tests peuvent être imbriqués (un test à l'intérieur d'un autre). Le degré d'imbrica-
tions peut être quelconque.
Exemple :

Algorithm SigneNombre
V ariable x : reel
Début
ecrire "Entrez un réel x :"
Lire(x)
Si x < 0 Alors
ecrire "Ce nombre est négatif"
Sinon
Si x > 0 Alors
ecrire "Ce nombre est positif"
Sinon
ecrire "Ce nombre est nul"
Fin Si
Fin Si
Fin

Remarque : Condition composée Une condition composée est une condition for-
mée de plusieurs conditions simples reliées par des opérateurs logiques : ET, OU, OU
exclusif (XOR) et NON
3.5. ÉLÉMENTS D’ALGORITHME 37

Exemples : x compris entre 2 et 6 : (x > 2) ET (x < 6)


n est divisible par 3 ou par 2 : (n%3 = 0) OU (n%2 = 0)
deux valeurs et deux seulement sont identiques parmi a, b et c : (a=b) XOR (a=c)
XOR (b=c)
Les tableaux suivants(Table A.3) rappellent les résultats des opérateurs logiques de
base. Le nom C pour désigner une condition.

(a) ET(AND) (b) OU (OR)

C1 C2 C1 ET C2 C1 C2 C1 OU C2
Faux Faux Faux Faux Faux Faux
Faux Vrai Faux Faux Vrai Vrai
Vrai Faux Faux Vrai Faux Vrai
Vrai Vrai Vrai Vrai Vrai Vrai

(c) XOR (d) NON(NOT)

C1 C2 C1 XOR C2 C NON C
Faux Faux Faux Faux Vrai
Faux Vrai Vrai Vrai Faux
Vrai Faux Vrai
Vrai Vrai Faux

Table 3.2  Tables de vérité des diérents opérateurs logiques.

3.5.8 Les boucles


Parfois, on doit répéter une même opération ou un ensemble d'opérations pour un
nombre de fois. Ainsi, au lieu de réécrire l'instruction ou le bloc d'instructions plusieurs
fois, on utilise une structure dite itérative. Une boucle permet, alors, de répéter un
traitement un certain nombre de fois. On distingue trois sortes de boucles en langages
de programmation :
 Les boucles tant que : on y répète des instructions tant qu'une certaine condition est
réalisée
 Les boucles jusqu'à : on y répète des instructions jusqu'à ce qu'une certaine condition
soit réalisée
 Les boucles pour ou avec compteur : on y répète des instructions en faisant évoluer
38 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

un compteur (variable particulière) entre une valeur initiale et une valeur nale
On présentera dans ce qui suit ces boucles.

1. La boucle TANT QUE : L'utilisateur ne connaît que la condition de sortie. Il


ignore a priori le nombre d'itérations nécessaires pour y parvenir. La structure
de cette boucle est :

Algorithm SyntaxeTantQue
...
...
Tant que Condition faire
instructionsrep
Fin Tant que
...

La condition (dite condition de contrôle de la boucle) est évaluée avant chaque


itération. Si la condition est vraie, on exécute les instructionsrep qu'on appelle
corps de la boucle, puis, on retourne tester la condition. Si elle est encore vraie, on
répète l'exécution,... Si la condition est fausse, on sort de la boucle et on exécute
l'instruction après FinTantQue.
Une des instructions du corps de la boucle doit absolument changer la valeur
de condition pour qu'elle devienne fausse (après un certain nombre d'itérations),
sinon le programme tourne indéniment(plantage dans la boucle).

2. Quand le nombre de répétition est connu au moment de l'exécution, c'est la


boucle P our qui est préférable. Sa syntaxe est la suivante :

Algorithm SyntaxePour
...
...
Pour Compteur = Initial jusqu'à F inal par pas p faire
Instructionrep
Fin Pour

Compteur est une variable de type entier ou caractère. Elle doit être déclarée. Le
pas est un entier qui peut être positif ou négatif qu'on peut ne pas être mentionné
s'il a une valeur est égal à 1. Initial et F inal peuvent être des valeurs, des
3.5. ÉLÉMENTS D’ALGORITHME 39

variables dénies avant le début de la boucle ou des expressions de même type


que compteur. L'exécution de du bloc de la boucle P our se déroule comme suit :
Tout d'abord, la valeur Initial est aectée à la variable compteur. On compare
la valeur du compteur à la valeur F inal.
Si compteur > F inal dans le cas où pas > 0 (ou si compteur < F inal pour
pas < 0), on quitte la boucle et on continue avec l'instruction qui suit F inP our.
Si compteur ≤ F inal pour pas positif (ou si compteur ≥ F inal pour pas < 0),
le bloc d'instructions Instructionrep sera exécuté. Ensuite, la valeur de compteur
est incrémentée de la valeur du pas si pas > 0 (ou décrémenté si pas < 0). On
recommence la comparaison entre compteur et F inal, et ainsi de suite...

3. La boucle Répéter jusqu'à est utilisée si le nombre de répétitions n'est pas connu.
La diérence par rapport à T ant que est que le corps de la boucle est exécuté
au moins une seule fois, puisque l'évaluation de la condition se fait à la n de la
boucle.

Algorithm Répéter...Jusqu'à
...
...
repeter
Instructionrep
jusque Condition
...

3.5.9 Procédures et Fonctions


Certains problèmes conduisent à des programmes longs, diciles à écrire et à com-
prendre. On les découpe en des parties appelées sous-programmes ou modules. Les
fonctions et les procédures sont des modules indépendants désignés par un nom qui est
utilisé pour les invoquer dans le programme ou dans des modules. Elles ont plusieurs
intérêts :
 Permettre de "factoriser" les programmes, c.à.d. de mettre en commun les parties
qui se répètent ;
 Permettre une structuration et une meilleure lisibilité des programmes ;
 Faciliter la maintenance du code (il sut de modier une seule fois) ;
 ces procédures et fonctions peuvent éventuellement être réutilisées dans d'autres
40 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

programmes.
La fonction: Le rôle d'une fonction en programmation est similaire à celui d'une
fonction en mathématique : elle retourne un résultat à partir des valeurs des paramètres.
Une fonction s'écrit en dehors du programme principal sous la forme :

Fonction nomfonction(paramètres et leurs types) : typeResultat


Instructions constituant le corps de la fonction
Retourne Résultat
FinFonction

Pour le choix d'un nom de fonction il faut respecter les mêmes règles que celles pour les
noms de variables typeResultat est le type du résultat retourné. L'instruction retourne
sert à retourner la valeur du résultat.
Exemple : La fonction suivante, permet de retourner le maximum de trois entiers
passés en paramètre.

Fonction Max3(x, y, z : entiers) : Entier


Variable max : entier
Si x > y Alors
Si z > x Alors
max ← z
Sinon
max ← x
Fin Si
Sinon
Si z > y Alors
max ← z
Sinon
max ← y
Fin Si
Fin Si
Retourne max
FinFonction

L'appel à une fonction se fait par aectation du nom de la fonction à une variable dans
le programme appelant. Pour appeler la fonction M ax3 dans un algorithme donné, on
3.5. ÉLÉMENTS D’ALGORITHME 41

procède comme suit :

Algorithm AlgoAppelant
Variables a, b, c, d : entiers
Début
a ← 12
b ← 300
ecrire Entrez un nombre
Lire(c)
d ← M ax3(a, b, c)
ecrire "Le maximum est",d
Fin

Les paramètres d'entrées de la fonction : x, y, z sont appelés les paramètres formels de


la fonction M ax3(x, y, z). Ces paramètres sont abstraits, n'ayant pas d'existence phy-
sique, car ils pointent sur les paramètres d'appel. Lors de l'appel de la fonction max3,
les valeurs des arguments d'appel a, b et c, qu'on appelle paramètres eectifs, sont
transmises aux paramètres x, y, z dans le même ordre d'appel. Ainsi, x correspondra
à a, y à b...

La procédure: Dans certains cas, on a besoin de répéter une tâche dans plusieurs
endroits du programme, mais que dans cette tâche on ne calcule pas de résultats ou
qu'on calcule plusieurs résultats à la fois. Dans ces cas on ne peut utiliser une fonction,
mais plutôt on utilise une procédure.
Une procédure est un sous-programme semblable à une fonction mais qui ne retourne
pas de résultat. Une procédure s'écrit en dehors du programme principal sous la forme :

Procedure NomProcedure(paramètres et leurs types)


Instructions constituant le corps de la procédure
...
FinProcedure

Remarque : Une procédure peut ne pas demander de paramètres.


Exemple : Considérons une procédure M axP rocedure qui permet d'acher le maxi-
mum de deux entiers passés en paramètre.
42 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

Procedure MaxProcedure(x,y :entiers)


Si x > y Alors
ecrire "Le maximum est",x
Sinon
ecrire "Le maximum est",y
Fin Si
FinProcedure

Et l'appelle à cette procédure se fait par exemple :

Algorithm AlgoAppelant
Variables a, b : entiers
Début
ecrire Entrez le nombre a
Lire(a)
ecrire Entrez le nombre b
Lire(b)
M axP rocedure(a, b)
Fin

Passage de paramètres : Il existe deux modes de transmission de paramètres dans


les langages de programmation.

1. Transmission par valeur : les valeurs des paramètres eectifs sont aectées aux
paramètres formels correspondants au moment de l'appel de la procédure. Dans
ce mode le paramètre eectif ne subit aucune modication

2. Transmission par adresse (ou par référence) : les adresses des paramètres eec-
tifs sont transmises à la procédure appelée. Dans ce mode, le paramètre eectif
subit les mêmes modications que le paramètre formel lors de l'exécution de la
procédure

Remarque : le paramètre eectif doit être une variable (et non une valeur) lorsqu'il
s'agit d'une transmission par adresse.
En pseudo-code, on va préciser explicitement le mode de transmission dans la déclara-
tion de la procédure. Si on ne le spécie pas, alors, il s'agit de transmission par valeur.
Exemple :
3.5. ÉLÉMENTS D’ALGORITHME 43

Procedure Incrementer(x entier par valeur, y entier par adresse)

x←x+1
y ←y+1
Finrocedure

Algorithm AlgoAppelant
Variables a, b : entiers
Début
a←3
b←3
incrementer(a, b)
ecrire "la valeur de a=", a
ecrire "la valeur de b=", b
Fin

On obtient comme résultat : a = 3 et b = 4.


Remarque : Un module (fonction ou procédure) peut s'appeler lui-même : on dit que
c'est un module récursif. Cependant, pour éviter une récursivité à l'inni, tout module
récursif doit posséder un cas limite (cas trivial) qui arrête cette récursivité.
La fonction suivante permet de calculer le factoriel d'un entier passé en paramètre par
la méthode de récursivité. A noter que la condition pour quitter la récursivité est le
cas où on veut calculer le factoriel de 0.

Fonction Factoriel(n : entier) : entier


Si n=0 Alors
Retourne (1)
Sinon
Retourne (n × F actoriel(n − 1))
Fin Si
FinFonction

3.5.10 Portée des variables


On peut manipuler deux types de variables dans un module (procédure ou fonction) :
des variables locales et des variables globales. Elles se distinguent par ce qu'on appelle
44 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

leur portée (leur "champ de dénition", leur "durée de vie").


Une variable locale n'est connue qu'à l'intérieur du module ou elle a été dénie. Elle
est créée à l'appel du module et détruite à la n de son exécution. Alors, qu'une
variable globale est connue par l'ensemble des modules et le programme principal. Elle
est dénie durant toute l'application et peut être utilisée et modiée par les diérents
modules du programme.
La manière de distinguer la déclaration des variables locales et globales dière selon
le langage. En général, les variables déclarées à l'intérieur d'une fonction ou procédure
sont considérées comme variables locales. En pseudo-code, on va adopter cette règle
pour les variables locales et on déclarera les variables globales dans le programme
principal. A noter qu'il faut utiliser autant que possible des variables locales plutôt que
des variables globales. Ceci permet d'économiser la mémoire et d'assurer l'indépendance
de la procédure ou de la fonction.

3.5.11 Les tableaux


Soit à écrire un programme qui permet de calculer la moyenne de prix d'un article sur un
mois. Supposons qu'un mois fait 30Jours. Il faut alors imaginer déclarer 30 variables,
qu'on peut appeler par exemple prix1, prix2,..,prix30. Imaginons si ces prix seront
demandés à l'opérateur. Il faut alors écrire 30 instructions d'entrée, puis il faut écrire
une longue expression de calcul de moyenne moy ← (prix1 + prix2 + ... + prix30)/30.
On peut imaginer la diculté de saisie de programme si on s'intéresse par exemple à
une moyenne annuelle !
Heureusement, il y a les tableaux.

3.5.12 Dénition
Un tableau est un ensemble de valeurs de même type portant le même nom de variable
et repérées par un nombre qu'on appelle indice.
Chaque élément du tableau est désigné par le nom du tableau suivi par l'indice de
l'élément (ou le numéro de la case dans le tableau) entre parenthèses ou parfois entre
crochets.
La déclaration d'un tableau s'eectue en précisant le type de ses éléments et sa dimen-
sion (le nombre de ses éléments) :
3.5. ÉLÉMENTS D’ALGORITHME 45

variable tableau identicateur[dimension] : type

Exemple : Déclaration d'un tableau notes de 30 cases de réels.

variable tableau notes[30] : réel

Caractéristiques
On peut dénir des tableaux de tous types : tableaux d'entiers, de réels, de caractères,
de booléens, de chaînes de caractères...
L'accès à un élément du tableau se fait au moyen de l'indice. Selon les langages, le
premier indice du tableau est soit 0, ou 1. Le plus souvent c'est 0 ; c'est ce qu'on va
adopter en pseudo-code.
Notons que l'avantage le plus important des tableaux est qu'on peut traiter les données
qui y sont stockées de façon simple en utilisant des boucles.
Exemple : Soit l'algorithme suivant qui permet de calculer le nombre d'étudiants
ayant une note supérieure ou égale à 10 sur une classe de 30 étudiants. On suppose ici
que les notes sont déjà saisies.

Algorithm NbValidation
Variables i, nb : entiers
Tableau notes[30] : réels
Début
nb ← 0
Pour i = 0 jusqu'à 29 faire
Si notes[i] ≥ 10 Alors
nb ← nb + 1
Fin Si
Fin Pour
ecrire "le nombre de notes supérieurs à 10 est :", nb
Fin

On peut déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices.
Ceci est utile par exemple pour représenter des matrices. En pseudo code, un tableau
à deux dimensions se déclare ainsi :

variable tableau identicateur[dimension1] [dimension2] : type


46 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

Exemple : Une matrice A de 3 lignes et 4 colonnes dont les éléments sont réels se
déclare de la manière suivante :

variable tableau A[3][4] : réel

A[i][j] permet d'accéder à l'élément de la matrice qui se trouve à l'intersection de la


ligne i et de la colonne j .

3.5.13 Quelques algorithmes pour les tableaux


Recherche d'élément

Pour trouver un élément dans un tableau, on parle de recherche d'élément. On donnera


ici deux algorithmes de recherche.

1. Recherche séquentielle : Consiste à parcourir le tableau de la première à la dernière


case et eectuer la comparaison de la valeur recherchée par rapport au contenu
des cases. Dans ce qui suit on donne une fonction qui retourne V rai si la valeur
recherchée existe dans le tableau. La valeur recherchée x, le tableau T et la
longueur utile du tableau N sont passés en paramètre à cette fonction.

Fonction Recherche(x : réel, N : entier, T : réel) : booléen


Variable i : entier
Pour i = 0 jusqu'à N − 1 faire
Si T [i] = x Alors
Retourne (V rai)
Fin Si
Fin Pour
Retourne (F aux)
FinFonction

2. Recherche dichotomique : C'est une méthode très rapide par rapport à la pré-
cédente. Pour pouvoir être utilisée, elle demande que le contenu du tableau soit
préalablement classé par ordre croissant.
3.5. ÉLÉMENTS D’ALGORITHME 47

Fonction RechercheDicho(x : réel, N : entier, T : réel) : booléen

Variable i, inf, sup, milieu : entier


T rouve : Booléen

inf ← 0
sup ← N − 1
T rouve ← F aux
Tant que (inf ≤ sup) ET (T rouve = F aux) faire
milieu ← (inf + sup)div2
Si T [milieu] = x Alors
T rouve ← V rai
Retourne (V rai)
Sinon
Si x > T [milieu] Alors
inf ← milieu + 1
Sinon
sup ← milieu − 1
Fin Si
Fin Si
Fin Tant que
Retourne (T rouve)
FinFonction

Ici, la fonction div est une division entière.


Une caractéristique importante pour la qualication des algorithmes est ce qu'on ap-
pelle complexité. Ainsi, on peut évaluer l'ecacité d'un algorithme en calculant sa
complexité. La mesure de la complexité revient à quantier le temps d'exécution et
l'espace mémoire nécessaire occupée par l'algorithme. En eet, le temps d'exécution
est proportionnel au nombre des opérations eectuées. Par conséquent, pour mesurer
la complexité en temps, on met en évidence certaines opérations fondamentales, puis
on les compte. Généralement, le nombre d'opérations dépend généralement du nombre
de données à traiter. Ainsi, la complexité est une fonction de la taille des données. On
s'intéresse souvent à son ordre de grandeur asymptotique En général, on s'intéresse
48 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

à la complexité dans le pire des cas. Une comparaison de complexité entre les deux
algorithmes précédents donne :
Pour la recherche séquentielle, le pire des cas correspond au cas où x n'est pas dans le
tableau T. Si x n'est pas dans le tableau, on eectue 3N tests ( on répète N fois les
tests (i < N ), (T rouve = F aux) et (T [i] = x)). La complexité dans le pire des cas est
d'ordre N , (on note O(N )).
Pour la recherche dichotomique, la complexité dans le pire des cas est d'ordre log2 N .
Ainsi, l'écart de performances entre la recherche séquentielle et la recherche dichoto-
mique est considérable pour les grandes valeurs de N .
Par exemple : au lieu de N = 1milion  220 opérations à eectuer avec une recherche
séquentielle il sut de 20 opérations avec une recherche dichotomique.
Remarque : On n'a pas considéré pour la dichotomie, la complexité de classement
des éléments du tableau.

Tri des éléments d'un tableau à une seule dimension


Le tri consiste à ordonner les éléments du tableau dans l'ordre croissant ou décroissant.

1. Tri par sélection : le principe de l'algorithme consiste à chaque étape i, à sélec-


tionner le plus petit élément parmi les (N − i + 1) éléments du tableau les plus
à droite(N étant la taille du tableau) et de l'échanger ensuite avec l'élément i du
tableau. Soit par exemple le tableau suivant : 9 4 1 7 3
 Étape 1 : on cherche le plus petit parmi les 5 éléments du tableau. On l'identie
en troisième position, et on l'échange alors avec l'élément numéro 1. Le tableau
devient : 1 4 9 7 3
 Étape 2 : on cherche le plus petit élément, mais cette fois à partir du deuxième
élément. On le trouve en dernière position, on l'échange avec le deuxième. Le
tableau devient : 1 3 9 7 4
 Étape 3 : on cherche maintenant le plus petit élément, à partir du troisième
élément. On le trouve en dernière position, on l'échange avec le troisième. Le
tableau devient : 1 3 4 7 9
 Étape 4 : on cherche maintenant le plus petit élément, à partir du quatrième
élément. Le quatrième élément est bien le plus petit. On arrête, le tableau est
maintenant trié.
1 3 4 7 9
3.5. ÉLÉMENTS D’ALGORITHME 49

Une procédure réalisant le tri par sélection est donné ci-après. Cette procédure
exige le nombre de cases (la taille) du tableau. Le tableau est rempli par des
réels. Ici, on considère que le tableau est passé par adresse. En eet, lorsqu'on
passe le nom du tableau, il correspond automatiquement au passage de son
adresse. Il n'est pas donc obligatoire de spécier un passage par adresse.

Procedure TriSelection(N : entier, tableau T : réel)


Variable i : entier
Pour i = 0 jusqu'à N − 2 faire
Pour j = i + 1 jusqu'à N − 1 faire
Si T [i] > T [j] Alors
tempo ← 8T [i]
T [i] ← T [j]
T [j] ← tempo
Fin Si
Fin Pour
Fin Pour
FinProcedure

2. Tri rapide : est un tri récursif basé sur l'approche "diviser pour régner". Son
principe est le suivant :

 on considère un élément du tableau qu'on appelle pivot


 on partitionne le tableau en 2 sous tableaux : les éléments inférieurs ou égaux
au pivot et les éléments supérieurs au pivot. On peut placer ainsi la valeur du
pivot à sa place dénitive entre les deux sous tableaux
 on répète récursivement ce partitionnement sur chacun des sous tableaux crées
jusqu'à ce qu'ils soient réduits à un à un seul élément
50 CHAPITRE 3. ALGORITHMIQUE ET PROGRAMMATION

Fonction partition(tableau T, entier premier, entier dernier) : entier


Variables compteur, pivot, i, tempo : entier

compteur ← premier
pivot ← T (premier)
Pour i = premier + 1 jusqu'à dernier faire
Si T [i] < pivot Alors
compteur ← compteur + 1
tempo ← T [i]
T [i] ← T [compteur]
T [compteur] ← tempo
Fin Si
Fin Pour
tempo ← T [premier]
T [premier] ← T [compteur]
T [compteur] ← tempo
Retourne(compteur)
FinFonction

Procedure TriRapideBis(tableau T, entier premier, entier dernier)


Variable pivot : entier

Si premier < dernier Alors


pivot ← partition(T, premier, dernier
T riRapideBis(T, premier, pivot − 1)
T riRapideBis(T, pivot + 1, dernier)
Fin Si
FinProcedure
3.6. CONCLUSION 51

Algorithm TriRapide(tableau T, entier premier, entier dernier)


Variable pivot, taille : entier
T ableau table(10) : entier
Debut
SaisieT able(table, taille)
T riRapideBis(table, 0, taille − 1)
Af f icheT able(table, taille)
F in

Remarque : La complexité du tri par sélection est d'ordre N 2 au pire des cas et en
moyenne. La complexité du tri rapide au pire cas est N 2 et la complexité moyenne est
N logN .
Soit par exemple une machine qui réalise 109 instructions par seconde. Une approxima-
tion du temps moyen nécessaire pour les deux algorithmes est donnée dans le tableau
N 103 106 109
suivant : Tri par sélection 1ms 16mn40s 109 s = 31.7ans
Tri rapide 7µs 1.6s 38mn21s

3.6 Conclusion
Ce chapitre a été consacré pour la programmation. Ainsi, après avoir donné les déni-
tions essentielles, on a donné les éléments et la structure d'algorithme. Les instructions
de base ont été présentées. On a traité par la suite les procédures et les fonctions. Et,
nalement, on a évoqué et traité les tableaux.
Le chapitre suivant, donnera quelques notions de base sur les réseaux informatiques et
sur l'Internet.
Chapitre

4
I NTRODUCTION AUX R ÉSEAUX ET I NTERNET

Sommaire
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2 Topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3 Classications . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4 Modèles des réseaux . . . . . . . . . . . . . . . . . . . . . . . 56
4.5 Architectures réseaux . . . . . . . . . . . . . . . . . . . . . . 58
4.6 Réseau Internet . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.1 Notion d'adressage . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.2 Protocoles de l'Internet . . . . . . . . . . . . . . . . . . . . . 60
4.7 Éléments d'interconnexion . . . . . . . . . . . . . . . . . . . 63
4.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
54 CHAPITRE 4. INTRODUCTION AUX RÉSEAUX ET INTERNET

4.1 Introduction
Un réseau est la connexion de plusieurs machines entre elles, pour que les utilisateurs
et les applications puissent échanger des informations. Les Réseaux informatiques sont
d'utilité importante vu qu'ils permettent à leur usagers :
 De partager les chiers : on peut alors travailler sur des données simultanément sur
des ordinateurs diérents qui peuvent être éloignés.
 Le transfert de chier entre ordinateurs.
 Le partage d'applications telles que compilateur, système de gestion de base de don-
née (SGBD) de manière à réduire le coût d'achat de logiciels.
 Partage d'imprimante pour rentabiliser l'utilisation de ressources.
 L'interaction avec les utilisateurs connectés : messagerie électronique, conférence
électronique, Talk, téléphonie et télévision ...

4.2 Topologies
Un réseau informatique est constitué d'ordinateurs reliés entre eux grâce à des lignes
de communication (câbles ou liaisons sans l) et des éléments matériels (cartes réseau,
ainsi que d'autres équipements permettant d'assurer la bonne circulation des données).
L'organisation physique ou la conguration spatiale du réseau est appelé topologie
physique. On distingue les topologies suivantes : bus, étoile, anneau et maillé.
 la topologie en bus : consiste à utiliser un câble unique sur lequel sont connectées
toutes les machines du réseau. C'est le modèle le plus simple avec lequel les premiers
réseaux étaient constitués. Ce câble peut être nommé "bus" car c'est par lui que
toutes les informations passent en tous points.
 la topologie en étoile : la communication entre deux n÷uds du réseau se fait par
l'intermédiaire d'un élément central. Les réseaux de cette topologie sont très utilisés
dans les réseaux domestiques ou de petite entreprise. L'élément centrale est alors un
hub ou un switch. Comme il demeure rare que les hubs ou switches subissent des
défaillances, le coût de mise en place est faible à cette échelle.
 la topologie en anneau : tout ordinateur est connecté à deux autres. Les machines
communiquent chacune à son tour ce qui permet d'éviter le problème majeur de la
topologie en bus qui est la collision des données.
 la topologie maillée : Consiste à relier tous les ordinateurs entre eux ce qui permet
4.3. CLASSIFICATIONS 55

d'éviter une panne générale mais le nombre de liaisons peut devenir rapidement très
élevé. Cette topologie n'est pas la plus pratique ni la plus facile à mettre en place.
La gure 4.1 donne les quatre topologies les plus rencontrées.

Figure 4.1  Diérentes topologies des réseaux.

4.3 Classications
On distingue diérents types de réseaux selon leur taille (en terme de nombre de ma-
chines), leur vitesse de transfert des données ainsi que leur étendue. En considérant
l'envergure, quatre classes sont possibles :
 Les PAN (Personal Area Network) ou réseaux personnels,
 Les LAN (Local Area Network : réseaux locaux) à l'intérieur d'un immeuble, ou
d'une supercie inférieure à 10 Kilomètres.
 Les MAN (Metropolitan Area Network) circoncis à une ville, comme par exemple,
le réseau d'une université.
 Les WAN (Wide Area Network) ont au moins la dimension d'un pays, et ils englobent
souvent la planète entière.
La gure 4.2 illustre une classication des réseaux.
56 CHAPITRE 4. INTRODUCTION AUX RÉSEAUX ET INTERNET

Figure 4.2  Diérentes topologies des réseaux.

4.4 Modèles des réseaux


Il existe deux types de modèles de réseau de base : Le modèle OSI (Open Systems
Interconnection) est un modèle de référence normalisé créé par l'ISO (International
Organization for Standardization). Il décrit la manière dont les diérents composants
logiciels et matériels impliqués dans une communication en réseau se répartissent les
tâches et interagissent les uns avec les autres.

 Niveau 7 (application) : Joue le rôle d'une interface d'accès des applications au


réseau. Elle concerne les applications réseaux qui s'exécutent sur un poste (TELNET,
FTP,navigateur...), et correspond à l'interface de l'utilisateur. .
 Niveau 6 (présentation) : Cette couche s'intéresse à la syntaxe et à la sémantique des
données transmises : c'est elle qui traite l'information de manière à la rendre compa-
tible entre tâches communicantes. Elle va assurer l'indépendance entre l'utilisateur
et le transport de l'information. Elle peut convertir les données, les reformater, les
crypter et les compresser
 Niveau 5 (session) : gère l'établissement, la gestion et coordination des communica-
tions
 Niveau 4 (transport) : s'assure que les paquets ont été reçus dans l'ordre, sans erreurs,
sans pertes, ni duplication. Elle gère l'empaquetage et le réassemblage des paquets
ainsi que le contrôle des erreurs.
 Niveau 3 (réseau) : sélectionne les routes de transport (routage) et s'occupe du
4.4. MODÈLES DES RÉSEAUX 57

traitement et du transfert des messages : gère par exemple les protocoles IP (adresse
et le masque de sous-réseau) et ICMP.
 Niveau 2 (liaison de données) : Elle est responsable de l'acheminement des trames en
assurant la meilleure qualité de transmission possible. Une trame est une structure
logique et organisée dans laquelle sont placées les données. La structure d'une trame
est toujours la même. La trame est constituée de plusieurs éléments et dans un ordre
précis. utilise les adresses de niveau 2 dites MAC.
 Niveau 1 (physique) : La couche physique s'occupe de la transmission des bits de
façon brute sur un canal de communication. Elle gère les connexions matérielles et la
transmission, dénit la façon dont les données sont converties en signaux numériques.

Le modèle TCP/IP est un modèle pratique. La gure 4.3 donne une comparaison entre
le modèle OSI et TCP/IP.

Figure 4.3  Correspondance entre le modèle OSI et TCP/IP.

L gure 4.4 transpose le modèle en couche pour la communication par courrier entre
deux entreprises. Elle permet d'appréhender le principe de communication sur un ré-
seau.
58 CHAPITRE 4. INTRODUCTION AUX RÉSEAUX ET INTERNET

Figure 4.4  Exemple de communication entre entreprises en utilisant le courrier.


Copiée sur le site http ://csud.educanet2.ch/3oc-info/3_Internet/3_Reseaux/

4.5 Architectures réseaux


En élargissant le contexte de la dénition du réseau aux services qu'il apporte, il est
possible de distinguer deux modes de fonctionnement :
l'architecture d'égal à égal (peer to peer, parfois appelée  poste à poste ), dans lequel
il n'y a pas d'ordinateur central et chaque ordinateur joue un rôle similaire,
l'architecture de type client-serveur, où un ordinateur (serveur) fournit des services
réseau aux ordinateurs clients.

4.6 Réseau Internet


4.6.1 Notion d'adressage
A chaque machine est associée un mot de 32 bits en IPv4 (soit 128 bits en IPv6) appelé
adresse internet (ou adresse IP) qui est utilisée pour toutes les communications avec
cette machine.
Chaque adresse de 32 bits est en fait un couple {netid, hostid} :netid correspond à un
réseau alors que hostid correspond à une machine connectée à ce réseau. Au par-avant,
l'adressage IP se fait en classe qui devient actuellement obsolète au prot d'un adressage
CIDR (Classless InterDomain Routing). Sur la gure 4.5, on représente les diérentes
classes d'adresses avec la partie réservée pour le réseau et celle pour la machine.
4.6. RÉSEAU INTERNET 59

Figure 4.5  Les diérentes classes d'adresses IPv4.

La représentation se fait en décimal pointé. Ainsi, chaque octet est écrit en décimal
suivi d'un point. A chaque adresse IP est associé un masque réseau (netmask) se
présente également sous la forme de 4 octets séparés par des points. L'intérêt d'un
masque de sous-réseau est de permettre d'identier le réseau associé à une adresse IP.
En eet, le masque est formé de bits mis à zéro dans la partie machine est des bits à
un dans la partie réseau. Un ET logique entre une adresse IP et un masque permet
d'annuler la partie machine.
Exemple : Soit une machine avec l'adresse 129.0.0.1 avec le masque : 255.0.0.0

10000001 00000000 00000000 00000001


11111111 00000000 00000000 00000000
10000001 00000000 00000000 00000000
L'adresse du réseau de cette machine est 129.0.0.0

Adresses particulières
L'ICANN(Internet Corporation for Assigned Names and Numbers) a réservé des plages
d'adresses dans chaque classe pour permettre d'aecter une adresse IP aux ordinateurs
d'un réseau local relié à internet(intranet) sans risquer de créer des conits d'adresses
IP. Il s'agit des adresses suivantes appelées adresses privées :
 classe A de 10.0.0.0 à 10.255.255.255,
 classe B de 172.16.0.0 à 172.31.255.255
60 CHAPITRE 4. INTRODUCTION AUX RÉSEAUX ET INTERNET

 et classe C de 192.168.0.0 à 192.168.255.255


En plus, il existe des adresses dites particulières :
 0.0.0.0 est utilisée par une machine pour connaître sa propre adresse IP
 < id.reseau > . < id.machine − nul > n'est jamais aectée à une machine, elle
permet de désigner le réseau lui-même
 < id.reseau > . < id.machine − tous − bits − a − 1 > est une adresse de diusion
ou de broadcast : toutes les machines du réseau concerné.
 255.255.255.255 est une adresse de diusion locale car elle désigne toutes les machines
du réseau.
 127.X.Y.Z est une adresse de boucle locale qui est utilisée pour permettre les com-
munications inter-processus sur un même ordinateur ou réaliser des tests de logiciels.

4.6.2 Protocoles de l'Internet


La gure 4.6 donne la pile de protocoles d'Internet.

Figure 4.6  Pile des protocoles TCP/IP.

 Couche de transport :
Protocole UDP - User Datagram Protocol : Permet à un processus exécuté sur un
hôte d'envoyer des paquets à un processus exécuté sur un autre hôte. Autrement dit,
il est déni pour fournir une communication par paquet entre deux processus dans
un environnement réseau. Il suppose l'utilisation du protocole IP comme support de
base à la communication. UDP est transactionnel, et ne garantit ni la délivrance du
message, ni son éventuelle duplication(gure 4.7).
4.6. RÉSEAU INTERNET 61

Figure 4.7  Protocole de transport UDP.

 Protocole TCP - Transmission Control Protocol : Permet une communication able


entre les processus s'exécutant sur des hôtes distincts. Il assure le transport able
de ots de données, en mode bidirectionnel connecté. Ainsi, un accusé de réception
conrme la transmission. Il eectue la numérotation de paquet et permet le ré-
ordonnancement des données, et rejette les duplications. Le TCP fournit un contrôle
de ux dynamique pour éviter les étranglement (gure 4.8).

Figure 4.8  Protocoles TCP

Les numéros de ports sont utilisés dans la couche de transport. Un numéro de port
est représenté sur 16 bits et permet l'identication des applications. Les ports réser-
vés appelés Well-known ports sont de 1 à 1023. Ils sont gérés par IANA (Internet
62 CHAPITRE 4. INTRODUCTION AUX RÉSEAUX ET INTERNET

Assigned Numbers Authority). Les numéros 1024 à 65536 sont des ports libres. Par
exemple : TCP/80 et TCP/443 pour le HTTP/HTTPS,TCP/UDP 53 pour le DNS.
 Protocoles de la couche application :

1. File Transfert Protocol (FTP) : se base sur TCP avec le port 21, il permet un
partage de chier entre machines sur le réseau. Il permet le transfert de chiers
de manière ecace indépendamment des système de chiers des machines.

2. Trivial File Transfer Protocol (TFTP) : Protocole simplié de transfert de -


chiers. Il utilise UDP sur le port 69. En eet, UDP n'est pas able ce qui
implique que le client et le serveur doivent gérer eux-mêmes une éventuelle
perte de paquets. TFTP ne gère pas le listage de chiers, et ne dispose pas
de mécanismes d'authentication, ni de chirement. Ainsi, il faut connaître à
l'avance le nom du chier que l'on veut récupérer. Vu ses limitations, TFTP est
réservé généralement pour le transfert de chiers dans réseau local.

3. Telnet est un protocole permettant l'interfaçage de terminaux et d'applications


à travers Internet. Il fournit les règles de base pour permettre de relier un client
(système composé d'un achage et d'un clavier) à un interpréteur de commande
(côté serveur). Telnet et également un programme qui permet d'accéder à une
machine distante protégée ou non par un mot de passe. Telnet se base sur
TCP/23.

4. HTTP - Hypertext Transfer Protocol : Est un système(Ensemble de règles)


hypertexte public fonctionnant sur Internet qui permet de consulter, avec un
navigateur, des pages accessibles sur des sites. Le principe de base étant l'hy-
pertexte : en cliquant sur du texte mis en évidence, il est possible d'acher un
autre document.

5. DHCP : Dynamic Host Conguration Protocol : Est un protocole qui permet


à un ordinateur qui se connecte sur un réseau d'obtenir dynamiquement (c'est-
à-dire sans intervention particulière) sa conguration (principalement, sa con-
guration réseau). On n'a qu'à spécier à l'ordinateur de chercher lui même une
adresse IP par DHCP. Le but principal étant la simplication de l'administra-
tion d'un réseau.

6. DNS - Domain Name System : Traduit des noms de domaines en adresses IP

7. SMTP - Simple Mail Transfer Protocol : Permet aux clients d'envoyer un e-mail
4.7. ÉLÉMENTS D’INTERCONNEXION 63

à un serveur de messagerie. Permet aux serveurs d'envoyer un e-mail à d'autres


serveurs.

8. POP3 - Post Oce Protocol version 3 : Permet aux clients de récupérer des
e-mails sur un serveur de messagerie. Télécharge les e-mails du serveur de mes-
sagerie sur la machine du client.

9. IMAP- Internet Message Access Protocol : Permet aux clients d'accéder aux e-
mails stockés sur un serveur de messagerie. Conserve les messages sur le serveur.
La gure 4.9 positionne les diérents protocoles sur le schéma de communication
par messagerie.

Figure 4.9  Utilisation des protocoles de messagerie.

4.7 Éléments d'interconnexion


 Le répéteur : Permet de régénérer le signal d'un même réseau. Il permet de répéter les
bloc d'informations d'un segment à l'autre et de régénérer du signal pour compenser
l'aaiblissement.
 Le concentrateur (Hub partagé) : Permet de connecter plusieurs hôtes entre eux . Il
s'agit d'un répéteur à plusieurs ports. Ces fonctions sont les même qu'un répéteur en
64 CHAPITRE 4. INTRODUCTION AUX RÉSEAUX ET INTERNET

plus de Concentrer plusieurs lignes en une seule. Le répéteur et le hub fonctionnent


à la couche physique du modèle OSI.
 Commutateur ou Switch : Il réalise l'interconnexion de stations ou de segments d'un
réseau LAN en leur attribuant l'intégralité de la bande passante ; le débit disponible
n'est pas partagé entre les utilisateurs comme pour le Hub. Le switch permet de ltrer
et laisser passer seulement l'information destinée à un port spécique. Il fonctionne
à la couche deux du modèle de référence.
Remarque : On parle de Commutateur dans le cas d'Ethernet. En général, on
parle de pont qui est l'équipement qui permet de connecter deux réseaux de même
protocole et qui peuvent avoir des supports de transmission diérents.
 Routeur : Permet de relier de nombreux réseaux de manière à permettre la circulation
de données d'un réseau à un autre. Il permet de choisir un chemin à travers le réseau
pour véhiculer les paquet sur le réseau. Il fonctionne à la couche trois du modèle
OSI.
 Passerelle(gateway) : Permet de relier des réseaux diérents. Elle fonctionne sur les
couches supérieurs à 3. Le plus souvent, elle sert de pare-feu ou de proxy.

La gure 4.10 positionne chaque équipement réseau sur la couche du modèle de réfé-
rence OSI.

Figure 4.10  Eléments d'interconnexion dans les réseaux


4.8. CONCLUSION 65

Le médium signie le support de transmission (câble, sans l, bre optique...)


Remarque : Le terme Passerelle est utilisé couramment pour désigner les équipements
d'interconnexion des réseaux locaux à l'Internet et plus spéciquement les modem-
routeurs.

4.8 Conclusion
Dans ce chapitre, on a donné des notions sur les réseaux informatiques. Des classica-
tions on été explicitées. Par la suite, on a donné les principaux protocoles de l'Internet.
Et nalement, on a donné les diérents équipements d'interconnexion dans les réseaux.
Annexe

A
N OTION DE FONCTIONS LOGIQUES

A.1 Introduction
Le mathématicien anglais, George Boole, a développé en 19ième siècle, une algèbre per-
mettant de manipuler les propositions logiques au moyen d'équations mathématiques.
Ainsi, les propositions VRAI et FAUX sont représentés par les valeurs 1 et 0 et, la
manipulation des valeurs repose sur trois opérateurs de base : ET, OU, NON. Cette
algèbre est nommée Algèbre de Boole.

A.2 Variable et fonction logiques


Une variable logique (ou booléenne ) est une variable qui ne peut prendre que la valeur
0 ou 1. Généralement elle est exprimée par un seul caractère alphabétique( A , B, S...).
Une fonction logique est une fonction qui lie N variables logiques avec un ensemble
d'opérateurs logiques de base(NON , ET , OU).
Les symboles(opérateurs) utilisés en algèbre de Boole sont similaire à ceux des mathématiques(+
et ·). Le symbole "+" se lit "OU" et l'expression a + b = 1 se lit a ou b égal à 1. Le
symbole "· " se lit "et " et l'expression " a · b = 1" se lit " a et b égal à 1 ". La variable
" ā " se lit " a barre" ou Complément de a. Elle prend la valeur opposée de a.
La valeur d'une fonction logique est égale à 1 ou 0 selon les valeurs des variables lo-
giques qui la composent. Une fonction booléenne à N variables logiques possèdent 2n
combinaisons possibles des ses variables(chaque variable a deux état) et pour chaque
combinaison, la fonction possède une valeur (0 ou 1).
68 ANNEXE A. NOTION DE FONCTIONS LOGIQUES

A.3 Table de vérité


C'est une table qui donne les diérentes valeurs d'une fonction pour les diérentes
valeurs des entrées. Le nombre de colonne d'une table de vérité est égal au nombre
d'entrées et de sorties. Le nombre de lignes est 2N avec N est le nombre de variables
d'entrées. On donne ci-après les tables de vérité des fonctions de base de l'algèbre de
Boole.
(a) ET(AND) (b) OU (OR) (c) XOR

A B F =A·B A B F =A+B A B F =A⊕B


0 0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 1 1
1 0 0 1 0 1 1 0 1
1 1 1 1 1 1 1 1 0

(d) NON(NOT)

A F = Ā
0 1
1 0

Table A.1  Tables de vérité des fonctions logiques de base.

Remarque : A ⊕ B = A.B̄ + Ā.B

A.4 Théorèmes de base


Le tableau suivant donne les théorèmes de base de l'algèbre de Boole.

Forme 1 Forme 2 Nom de la forme


¯=a
ā _ Involution
a+a=a a.a=a Idempotence
a+1=1 a.0=0 Élément absorbant
a+a.b=a a.(a+b)=a Absorption
a + b = ā.b̄ a.b = ā + b̄ De Morgan
a + ā.b = a + b a.(ā + b) = a.b

Table A.2  Théorèmes de base.


A.5. REPRÉSENTATION GRAPHIQUE 69

A.5 Représentation graphique


On peut représenter graphiquement les fonctions logiques. Les symboles graphiques
sont standards. La gure suivante donne les diérents opérateurs logiques.

Figure A.1  Les symboles graphiques des fonctions logiques

Exercice :

 Démontrer les formules précédentes. On peut utiliser les tables de vérité.


 Soit la fonction logique F = abc + abc̄ + ab̄c + āb̄c + ab̄c̄.
Simplier la en utilisant les théorèmes de base.
 On considère la fonction f dont la table de vérité est donnée dans la gure suivante.
En utilisant le tableau de Karnaugh, simplier la fonction f .
70 ANNEXE A. NOTION DE FONCTIONS LOGIQUES

Figure A.2  Résolution de problèmes à l'aide du tableau de Karnaugh

Remarque : Simplication par tableau de Karnaugh


Le tableau est une table à deux entrées (lignes-colonnes). On équilibre les variables sur
les lignes et les colonnes pour s'approcher d'un tableau carré. Les numéros des lignes
et des colonnes sont codées en code GRAY(un code binaire qui présente un seul chan-
gement de bits en passant d'une combinaison à la suivante. On peut voir les gures
suivantes qui donne la règle de génération de ce code ainsi que la correspondance entre
ce code et le code binaire naturel et le décimal). Chaque case de ce tableau, contient
l'état de la sortie (0 ou 1) pour les entrées correspondantes.
Une fois le tableau est rempli, on constitue des groupe de  1  de taille maximale,
ayant un format carré ou rectangulaire. Ils doivent contenir un nombre de cases égal à
une puissance de deux. On considère que les bords de la table sont adjacents. Sur l'ex-
pression nale de la fonction, on ne retient que les variables dont l'état logique d'entrée
n'est pas modié à l'intérieur du groupement. Les variables d'un même groupement
sont liées par la fonction ET , alors que les groupements sont liés par des fonctions OU.
A.5. REPRÉSENTATION GRAPHIQUE 71

Figure A.3  Règle de construction du code Gray.

Figure A.4  Correspondance Binaire naturel et code Gray pour le cas de 4bits.

You might also like