Académique Documents
Professionnel Documents
Culture Documents
Informatique de Base
Cours et exercices
Version 5.0
2
Chapitre 1. Architecture des ordinateurs
I. Informatique
Ce terme résulte du rapprochement de deux mots :
INFORMATION + AUTOMATIQUE
II. Ordinateur
C’est une machine programmable de grande capacité permet d’acquérir, de
stocker, de traiter et de restituer l’information d’une façon automatique.
Il est composé d’un ensemble d’éléments matériels constituant le hardware et
d’une partie logicielle (Software).
Remarque :
L'informatique désigne donc un concept, une science, tandis que l'ordinateur est un outil, une machine
conçue pour réaliser des opérations informatiques.
3
III. L’architecture de Von Neumann
Tous les ordinateurs utilisent les mêmes principes de fonctionnement qui ont été
posés en 1945 par Von Neumann (C’est un modèle de machine universelle).
Un micro-ordinateur = Une unité centrale + périphérique (éléments
matériels divers qui lui sont reliés)
1. L’unité centrale
L’unité centrale désigne la carte mère autour de laquelle les périphériques sont
centralisés.
La carte mère est le circuit imprimé principal qui se trouve au centre de votre
ordinateur. Sur cette carte tous les composants de votre PC sont connectés.
Deux principaux fabricants sur le marché : Asus et GigaByte.
4
Exemple d’une carte Asus :
La carte mère contient les connexions pour le processeur, la mémoire, les cartes
d'extension (graphique, son, réseau …) et les périphériques de stockage.
Remarque :
La performance des processeurs est évaluée en MIPS (millions d’instructions par secondes). Cette
dernière est évaluée par la fréquence de l’horloge se mesurant aujourd’hui en GHz (gigahertz).
6
Elle contient, lorsque l’ordinateur est allumé, le système d’exploitation ainsi que
les données et les programmes en cours d’exécution.
Caractéristiques :
• Volatile : elle s’efface lorsque l’ordinateur est éteint.
• Elle est limitée en taille
• Rapide d’accès en lecture ou en écriture
• Taille standard: 4Go / 32 Go
Attention: 1 ko = 1024 octets
1 Mo = 1024 ko
7
1.3.1.1. Mémoires magnétiques
Sur un support inerte, on dispose d’une couche d’oxyde magnétique grâce à une
tête de lecture et d’écriture
• Disque dur HDD : Il s’agit d’un périphérique de stockage qui stocke et
récupère des données à l’aide d’un stockage magnétique. Il s’agit d’un
périphérique de stockage non volatile qui peut être modifié ou supprimé n
nombre de fois sans aucun problème. La plupart des ordinateurs et
ordinateurs portables ont des disques durs comme périphérique de
stockage secondaire ;
• Carte magnétique : il s’agit d’une carte dans laquelle les données sont
stockées en modifiant ou en réarrangeant le magnétisme de minuscules
particules magnétiques à base de fer présentes sur la bande de la carte. l
8
est utilisé comme un mot de passe pour entrer dans une maison ou une
chambre d’hôtel, une carte de crédit, une carte d’identité, etc.
9
1.3.1.3. Les mémoires électroniques ou mémoires flash
• Pen Drive : Il est également connu comme un lecteur flash ou clé USB
(Universal Serial Bus) qui comprend une mémoire flash avec une
interface USB intégrée, capacité de 8 Go à 1 To
• Disque SSD (Solid State Drive) : c’est un nouveau type de disque dur, un
périphérique de stockage de masse. Il a besoin de moins d’énergie et a une
vitesse de lecture et d’écriture plus rapide et plus durable que les disques
durs.
10
1.3.2. Les périphériques d’entrée
Ensemble de dispositifs utilisés pour l’acquisition des données par l’ordinateur
• Clavier
• Souris
• Scanner : numériseur
• Micro
• Appareils photos / webcam
• Manettes de jeu
• Lecteurs de code barre
• Stylo optique
• …Etc.
11
• La carte réseau qui va permettre de connecter l'ordinateur à un réseau. La
vitesse du réseau dépendra de sa bande passante c'est à dire de la quantité
d'octets qui peut circuler sur le réseau en 1 seconde.
12
Un ordinateur est constitué de :
• Unité centrale de traitement (CPU : Central Processing Unit). L’UCT
est constituée :
✓ D’une unité arithmétique et logique (UAL, ALU : Arithmetic and
Logic Unit) : c’est l’organe de calcul du calculateur ;
✓ De registres : zones de stockage des données de travail de l’UAL
(opérandes, résultats intermédiaires) ;
✓ D’une unité de contrôle (UC, CU : Control Unit) : elle envoie les
ordres (ou commandes) à tous les autres éléments du calculateur
afin d’exécuter un programme.
• Mémoire centrale contient :
✓ Le programme à exécuter : suite d’instructions élémentaires ;
✓ Les données à traiter.
• Unité d’entrées/sorties (E/S) est un intermédiaire entre le calculateur et
le monde extérieur.
• Unité de transfert est le support matériel de la circulation des données.
Les échanges d’ordres et de données dans le calculateur sont synchronisés par
une horloge qui délivre des impulsions (signal d’horloge) à des intervalles de
temps fixes.
V. Les logiciels
Il existe trois grandes catégories de logiciels :
1. Les logiciels systèmes
On parle fréquemment de système d’exploitation. Ils sont chargés au démarrage
de la machine et jouent le rôle d’interface entre l’homme et le matériel. Ils
contrôlent l’ensemble de l’activité de l’ordinateur.
Exemples: MS Windows, UNIX, LINUX, Mac OS, Solaris, Android, iOS …etc.
13
2. Les logiciels de programmation
On parle également de langage de programmation. Ils servent à réaliser des
programmes qui sont des suites d’instructions destinées à faire exécuter un
certain nombre de tâches à l’ordinateur.
Exemples : Java, VB, C#, C, C++, Python, PHP, …
14
Chapitre 2. Codage de l'information
I. Introduction
L’homme ne comprend facilement que des langages humains et la machine
n’interprète que des états électriques (0 et 5 volts interprétés comme des 0 et 1
logiques), il en résulte que l’information saisie par l’opérateur sous sa forme
simple ne peut pas être traitée et analysée directement par une machine logique
telle que l’ordinateur, il faut donc transformer sa configuration en un langage
compréhensible facilement par l’ordinateur : c’est l’opération de codage /
décodage de l’information.
Les informations traitées par l’ordinateur sont de différents types mais elles sont
toujours représentées sous forme binaire. Une information élémentaire
correspond donc à un chiffre binaire (0 ou 1) appelé bit (binary digit). Une
information plus complexe, telle qu’une chaîne de caractère ou un nombre se
ramène à un ensemble de bits.
Définition
Opération effective qui consiste à établir une correspondance entre la
représentation externe facile (le caractère A ou le nombre 36, par exemple) et sa
représentation interne qui est une suite de bits.
15
II. Unités de codage
1. Bit (binary digit)
Information la plus élémentaire que l’ordinateur peut renfermer dans la mémoire
ou traitée au sein de l’unité centrale, deux valeurs possibles 0 ou 1 (plus petite
unité d'information manipulable par une machine numérique). En codage, le bit
présente le rôle d’un témoin de validité d’une information transmise.
2. Octet (byte)
Une unité d'information composée de 8 bits. Il permet par exemple de stocker un
caractère, tel qu'une lettre ou un chiffre.
3. Mot (word)
Groupement de bits constituant une unité d’information adressable, la longueur
d’un mot varie d’une machine à l’autre, par exemple 1, 4, 8, 12, 16, 24, 32, 48,
64 bits, les valeurs 32 et 64 tendent à se généraliser dans la plus part des
ordinateurs.
4. Kilooctet, Mégaoctet, Gigaoctet, Téraoctet …
• Un kilooctet (ko) = 1024 octets
• Un Mégaoctet (Mo) = 1024 ko = 1 048 576 octets
• Un Gigaoctet (Go) = 1024 Mo = 1 073 741 824 octets
• Un Téraoctet (To) = 1024 Go = 1 099 511 627 776 octets
16
1. Code BCD (binary coded decimal)
Chaque caractère est codé sur 6 bits
Exemple :
17
✓ Codes de 32 à 127 correspondent aux caractères usuels figurant
directement sur le clavier.
✓ Codes de 128 à 255 correspondent sa aux caractères graphiques ou semi-
graphiques.
18
V. Les systèmes de numération
Système de numération décrit la façon avec laquelle les nombres sont
représentés.
1. La base d’un système de numération
La base d’un système de numération est le nombre de chiffre dans ce système.
Dans un système de numération à base B>1, un nombre X IR peut s’écrire
sous la forme :
X= ap Bp + ap-1 Bp-1 +.......+ a0 B0 + a-1 B-1 +....... a-q B-q
avec ai {0, 1, 2, ..., B-2, B-1} et p, q entiers positifs
Exemples :
5A7F)16 = 5*163 + 10*162 + 7*161 + 15*160 = 23167)10
3BC)16 =3*162 + 11*161 + 12*160 = 956)10
17)16 = 1*161 + 7*160
AB)16 =10*161 + 11*160
Résumé
• Dans une base X, on utilise x symboles distincts pour représenter les
nombres;
• La valeur de chaque symbole doit être strictement inférieur à la base X;
• Chaque nombre dans une base X peut être écrit sous sa forme
polynomiale.
20
3. Conversion d'une base X à la base 10
Cette conversion est assez simple puisque il suffit de faire le développement en
polynôme de ce nombre dans la base X, et de faire la somme par la suite.
Exemple :
1101)2 = 1*23 + 1*22 + 0*21 + 1*20 = 13)10
1A7)16 =1*162 + 10*161 + 7*160 = 423)10
1101,101)2 = 1*23 + 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 =
13,625)10
43,2)5 = 4*51 + 3*50 + 2*5-1 = 23,4)10
Exercices :
Effectuer les transformations suivantes à la base 10 :
123)6 = ?)10
45,76)8 = ?)10
1100,11)2 = ?)10
1ABC)16 = ?)10
21
5. Conversion de la base 10 à la base 2 : cas d'un nombre réel
Un nombre réel est constitué de deux parties : la partie entière et la partie
fractionnelle.
La partie entière est transformée en effectuant des divisions successives.
La partie fractionnelle est transformée en effectuant des multiplications
successives par 2.
Exercice :
Effectuer les transformations suivantes :
43)10 = ?)2 = ?)5 = ?)8 = ?)16
22
7. Conversion de la base 2 à la base 8
En octal, chaque symbole de la base s'écrit sur 3 bits en binaire.
L'idée de base est de remplacer chaque symbole dans la base octal par sa valeur
en binaire sur 3 bits (faire des éclatements sur 3 bits)
Exemples:
345)8 = 011 100 101)2
65,76)8 = 110 101, 111 110)2
35,34)8 = 011 101, 011 100)2
Remarque : Le remplacement se fait de droite à gauche pour la partie entière et de gauche à droite
pour la partie fractionnelle.
Remarque: Le regroupement se fiat de droite à gauche pour la partie entière et de gauche à droite
pour la partie fractionnelle.
23
10. Conversion de la base 2 à la base 16
L'idée de base est de faire des regroupements de 4 bits à partir du poids faible.
Par la suite remplacer chaque regroupement par la valeur Hexa correspondante.
Exemples:
11001010100110)2 = 0011 0010 1010 0110)2 = 32A6)16
110010100,10101)2 = 0001 1001 0100, 1010 1000)2 = 194, A8)16
VI. Opérations arithmétiques
1. Opérations arithmétiques en binaire
I. Introduction
Les opérations que peut exécuter un ordinateur doivent être communiquées de
façon précise dans un langage qu’il comprendra. Le problème principal de
l’utilisateur est donc de lui décrire la suite des actions élémentaires permettant
d’obtenir, à partir des données fournies, les résultats escomptés. Cette
description doit être précise, envisager le moindre détail et prévoir les diverses
possibilités de données. Elle porte le nom d’algorithme.
II. Qu'est-ce qu'un algorithme ?
Un algorithme est une procédure de résolution du problème qui prend en entrée
une valeur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un
ensemble de valeurs.
Un algorithme est une méthode de résolution du problème énoncée dans un
langage bien défini, sous la forme d’une série d’opérations à effectuer en vue de
l’obtention de résultat.
Encore une autre définition, plus générale
Un algorithme est une suite d'instructions, qui une fois exécutée correctement,
conduit à un résultat donné.
Exemples d'algorithmes :
• indiquer un chemin à un touriste égaré ;
• rédiger une recette de cuisine ;
• élaborer un mode d'emploi pour faire fonctionner un magnétoscope ;
• etc.
Remarque :
1. On désigne par algorithmique l'ensemble des activités logiques qui
relèvent des algorithmes.
2. Pour fonctionner, un algorithme doit contenir uniquement des instructions
compréhensibles par celui qui devra l'exécuter.
25
Pour être bon en algorithmique
La maîtrise de l'algorithmique requiert trois qualités :
1. Il faut être méthodique. Avant d‘écrire les instructions d'un algorithme,
il faut analyser le problème à résoudre. Il faut ensuite définir les entrées
et les sorties de l'algorithme.
2. Il faut avoir de l'intuition. Aucune recette ne permet de savoir à priori
quelles instructions permettront d'obtenir le résultat voulu. Les réflexes du
raisonnement algorithmique deviennent spontanés avec l'expérience.
3. Il faut être rigoureux. Chaque fois qu'on écrit une série d'instructions, il
faut systématiquement se mettre mentalement à la place de la machine qui
va les exécuter. Si nécessaire, il faut avoir recours à une simulation sur
papier.
III. Les origines historiques de l'algorithmique
• XVIIIème siècle av. J.-C. : les Babyloniens ont défini des descriptions
exhaustives d'algorithmes pour des calculs concernant le commerce et les
impôts ;
• IIIème siècle av. J.-C. : Euclide a introduit (dans son ouvrage les
Éléments) le célèbre algorithme qui permet de trouver le plus grand
diviseur commun (PGCD) de deux nombres ;
• IXème siècle : Al Khuwarizmi été le premier qui a formalisé la notion
d'algorithme dans son ouvrage L'algèbre et le balancement;
• XIIème siècle : Adelard de Bath a introduit le terme latin de algorismus
(par référence au nom de Al Khuwarizmi). Ce mot donne algorithme en
français en 1554.
IV. Algorithme et programmation
L'écriture d'un programme n'est qu'une étape dans le processus de
programmation.
26
Les différentes étapes du processus de programmation
L'analyse d'un problème posé consiste à définir les différentes étapes de sa
résolution. C'est la partie essentielle dans le processus de programmation. Elle
permet de définir le contenu d'un programme en termes de données et d’actions.
La phase suivante consiste à traduire l’algorithme dans un langage de
programmation donné. Ce travail, quoiqu’il semble facile, exige le respect strict
de la syntaxe du langage.
Lors de l’étape d’exécution, le programme produit des résultats qui
correspondent à ceux escomptés.
Donc, La réalisation de programmes passe par l’écriture d’algorithmes →
D’où l’intérêt de l’Algorithmique
V. Représentation d'un algorithme
Historiquement, plusieurs types de notations ont été utilisés pour représenter des
algorithmes :
❑ Descriptions littéraires
❑ Organigrammes
❑ Pseudo-codes
Exemple
Calcul de l'intérêt et de la valeur acquise par une somme placée pendant un an à
intérêt simple
L'énoncé du problème indique :
✓ Les données fournies: deux nombres représentant les valeurs de la somme
placée et du taux d'intérêt
✓ Les résultats désirés: deux nombres représentant l'intérêt fourni par la
somme placée ainsi que la valeur obtenue après placement d'un an.
27
Règle: Pour obtenir l’intérêt fourni par la somme, il suffit de multiplier la
somme par le taux d’intérêt divisé par cent, la valeur acquise s’obtient en
additionnant ce dernier montant et la somme initiale.
Descriptions littéraires
1. prendre connaissance de la somme initiale et du taux d'intérêt
2. multiplier la somme par le taux; diviser ce produit par 100; le quotient
obtenu est l'intérêt
3. additionner ce montant et la somme initiale; cette somme est la valeur
acquise
4. afficher les valeurs de l'intérêt et de la valeur acquise.
1. Pseudo-codes
Un pseudo-code est une série de conventions qui ressemble à un langage de
programmation authentique dont on aurait évacue la plupart des problèmes de
syntaxe.
Exemple :
Remarque
Un pseudo-code est susceptible de varier d'une référence à une autre. En effet, un pseudo-code est
purement conventionnel. Aucune machine n'est censée le reconnaître.
28
1.1. Convention LDA à adopter : squelette d'un algorithme
1.2. Méthodologie :
Trois étapes qui caractérisent la résolution d’un problème sur un ordinateur :
1. Préparation du traitement : déclaration des données nécessaires à la
résolution du problème
2. Traitement : résolution pas à pas, après décomposition en sous-
problèmes si nécessaire
3. Affichage des résultats : impression à l’écran, dans un fichier, etc.
Remarque
Un algorithme informatique se ramène toujours à la combinaison de ces quatre types d'instruction. Il
peut y en avoir quelques-unes, quelques dizaines, et jusqu‘à plusieurs centaines de milliers.
29
1. Déclaration des variables et des constantes
Avant de présenter les différentes opérations utilisées dans l'écriture d'un
algorithme, il faut d'abord découvrir les éléments sur lesquels elles portent,
nommés "données".
Une donnée peut être considérée comme une boîte, portant une étiquette (nom),
d'une certaine forme (type) et qui contient une information (valeur). Pour avoir
accès au contenu de la boîte, il suffit de la désigner par son étiquette.
Une donnée peut être :
❑ soit une variable si sa valeur est susceptible de changer durant
l’exécution du programme
❑ soit une constante si sa valeur ne change jamais durant l’exécution du
programme ;
1.1. Déclaration des variables
La partie déclarative est placée (généralement) en tête de l'algorithme sous la
forme
Notation :
Type nom_variable
Algorithme Jeu
entier na,nb,reste
Début
Lire na,nb
reste (na + nb) mod 2
si reste = 0 alors
écrire "Le joueur A a gagné."
sinon
écrire "Le joueur B a gagné."
fsi
écrire "Fin du jeu"
Fin
33
6. La structure itérative (Boucle)
Une structure itérative permet de répéter une suite d’instruction autant de fois
que l’on veut (notion de boucle).
Différentes structures permettent de réaliser cette forme de traitement :
✓ Pour
✓ Tant que
✓ Répéter, jusqu'à ce que
Exercice :
Ecrire un algorithme qui demande à l’utilisateur de saisir le mot de passe «
abcdef » jusqu’à ce que la réponse convienne.
34
6.3. Structure itérative Répéter jusqu'à ce que
La boucle Répéter permet d’exécuter le traitement au moins une fois et
réexécutée chaque fois jusqu'à ce que la condition soit vérifiée.
Répéter
<Traitement>
<mise_à_jour_condition_arrêt>
Jusqu'à (Condition_Arrêt_Atteinte)
Exercice :
Ecrire un algorithme qui demande à l’utilisateur de saisir un nombre positif
jusqu’à ce que la réponse convienne.
REPETER
LIRE nombre
JUSQU'A (nombre > 0)
VII. Organigramme
C’est une représentation graphique d’un algorithme ou programme. Il est utilisé
pour organiser et structurer un programme.
Dans un organigramme on met chaque opération, instruction ou série
d’instructions dans une boite et on indique le passage du contrôle par des lignes
fléchées entre ces boites.
Pour début et fin et déclaration
Ovale
des données
Pour un calcul, opération autre
Rectangle
qu’une question
35
Exemple :
Exercice :
a) Ecrire un algorithme qui permet de calculer et d’afficher le PGCD de
deux nombres entiers m et n.
b) Donner l’organigramme de l’algorithme précédant.
36
Travaux Dirigés
Exercice 1
Donner les valeurs des variables à la fin de l’exécution des 6 algorithmes
suivants.
Exercice 2
Ecrire un algorithme qui demande un nombre à l’utilisateur, puis qui calcule et
affiche son carré.
Exercice 3
Ecrire un algorithme qui permet de calculer le quotient de la division de deux
entiers A et B.
Exercice 4
Ecrire un algorithme qui permet de calculer le reste de la division de deux
entiers A et B.
37
Exercice 5 :
Ecrire un algorithme qui lit Trois notes d’un étudiant Note1, Note2, Note3 puis
il calcule et affiche sa Moyenne.
Exercice 6 :
Reprendre l’exercice 5 en introduisant des coefficients fixes (5, 4, 3)
respectivement pour chaque matière (utiliser les constantes).
Exercice 7 :
Ecrire un algorithme qui demande à l’utilisateur le prix HT (hors taxe) d’un
article, le nombre d’articles vendus et le taux de TVA (Taxe sur la Valeur
Ajoutée), et qui affiche le prix total TTC (Toutes Taxes Comprises) de tous les
articles.
Pour rappel, prix TTC = prix HT + prix HT × TVA /100
Exercice 8
Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite
si ce nombre est strictement positif ou non (on considère 0 comme positif).
Exercice 9
Ecrire un algorithme qui prend deux nombres réels en entrée et qui l’informe
l’utilisateur si leur produit est négatif ou positif (on considère 0 comme positif).
Exercice 10
Ecrire un algorithme qui lit deux entiers différents A et B, et affiche le plus
grand.
Exercice 11
Ecrire un algorithme qui lit trois entiers différents A, B et C, et affiche le plus
grand.
38
Exercice 12
Ecrire un algorithme qui donne la mention selon la moyenne générale obtenue
par un étudiant
✓ Si moyenne < 10 : Ajourné
✓ Si 10 < moyenne < 12 : Passable
✓ Si 12 < moyenne < 14 : Assez bien
✓ Si 14 < moyenne < 16 : Bien
✓ Si moyenne > 16 : Très bien
Exercice 13
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il
l’informe de sa catégorie : "Poussin" de 6 à 7 ans, "Pupille" de 8 à 9 ans,
"Minime" de 10 à 11 ans, "Cadet" après 12 ans
Exercice 14 :
Écrire un algorithme qui affiche 100 fois la phrase : "je ne dois pas arriver en
retard en classe".
Exercice 15 :
Écrire un algorithme qui affiche les entiers de 1 à 100.
Exercice 16 :
Pour chacune des algorithmes suivants, indiquer la valeur de m en fin de boucle
Algorithme algo1 Algorithme algo2 Algorithme algo3
Entier m,i Entier m,i Entier m,i
Début Début Début
m 2; m 2; m 2;
pour i allant de 1 à 10 faire pour i allant de 1 à 10 faire i1
m m +2; m m+i; Tantque i <= 10 faire
suivant i suivant i m m+i;
Fin Fin i i+1
Ftantque
Fin
39
Exercice 17
Ecrire un algorithme qui demande un entier de départ, et qui ensuite affiche les
dix nombres suivants.
Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les
nombres de 18 à 27.
Exercice 19 :
Écrire un algorithme qui affiche les entiers pairs de 1 à 10.
Exercice 20
Ecrire un algorithme qui demande un nombre entier à l’utilisateur. L’ordinateur
affiche ensuite le message "Ce nombre est pair" ou "Ce nombre est impair"
selon le cas.
Exercice 21
Ecrire un algorithme qui échange la valeur de deux variables. Exemple, si a = 2
et
b = 5, le programme donnera a = 5 et b = 2.
Exercice 22
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce
que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaitre
un message : Plus petit ! , et inversement, Plus grand ! si le nombre est inférieur
à 10.
Exercice 23
Ecrire un algorithme qui demande un nombre, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8! , vaut 1x2x3x4x5x6x7x8
40
Exercice 24
Concevoir un algorithme qui imprime l’ensemble des tables de multiplication
par 1, 2, . . ., 10.
Exercice 25
Ecrire un algorithme qui demande à l’utilisateur de saisir un caractère, et tant
que l’utilisateur ne saisit pas « p », redemande à l’utilisateur de saisir le
caractère sachant qu’il ne soit pas possible de saisir plus de 3 fois un caractère
incorrect.
41