Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
POLYCOPIE DE COURS
destiné pour Enseignement à
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
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
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
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
Figure 1.4 PDP-8 de chez Digital Equipment de 1m2 avec 1MHz de fréquence
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 .
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
(a) Disque dure (HDD : hard disk drive) (b) Solid State Drive (SSD)
Mémoire virtuelle : Est un espace du disque dur interne d'un ordinateur qui vient
1.3. LES ÉLÉMENTS DE L’ORDINATEUR 11
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
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,...).
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
On donnera dans ce qui suit des exemples de logiciels pour des applications spéciées.
pour linux.
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.
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.
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
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.
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.4 Représentation
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 :
Exemple de déclarations :
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 :
Par exemple :
prix ← 2000
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
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.
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
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
C1 C2 C1 XOR C2 C NON C
Faux Faux Faux Faux Vrai
Faux Vrai Vrai Vrai Faux
Vrai Faux Vrai
Vrai Vrai Faux
un compteur (variable particulière) entre une valeur initiale et une valeur nale
On présentera dans ce qui suit ces boucles.
Algorithm SyntaxeTantQue
...
...
Tant que Condition faire
instructionsrep
Fin Tant que
...
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
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
...
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 :
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.
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
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
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 :
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
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
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
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
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 :
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 :
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
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
à 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.
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.
2. Tri rapide : est un tri récursif basé sur l'approche "diviser pour régner". Son
principe est le suivant :
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
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.
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
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.
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
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
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
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
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.
7. SMTP - Simple Mail Transfer Protocol : Permet aux clients d'envoyer un e-mail
4.7. ÉLÉMENTS D’INTERCONNEXION 63
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.
La gure 4.10 positionne chaque équipement réseau sur la couche du modèle de réfé-
rence OSI.
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.
(d) NON(NOT)
A F = Ā
0 1
1 0
Exercice :
Figure A.4 Correspondance Binaire naturel et code Gray pour le cas de 4bits.