Vous êtes sur la page 1sur 41

UNIVERSITE MOHAMMED PREMIER

ECOLE NATIONALE DE COMMERCE ET DE GESTION


OUJDA

Niveau : 1ère Année


Tronc commun

Informatique de Base

Cours et exercices
Version 5.0

Pr. Redouane Esbai

Année universitaire 2023 - 2024


Sommaire

Chapitre 1. Architecture des ordinateurs ......................................................... 3


I. Informatique .............................................................................................. 3
II. Ordinateur.................................................................................................. 3
III. L’architecture de Von Neumann ............................................................... 4
IV. Principe de fonctionnement .................................................................... 12
V. Les logiciels ............................................................................................ 13
Chapitre 2. Codage de l'information ............................................................... 15
I. Introduction ............................................................................................. 15
II. Unités de codage ..................................................................................... 16
III. Codage des données non numériques ..................................................... 16
IV. Codage des données numériques ............................................................ 18
V. Les systèmes de numération ................................................................... 19
VI. Opérations arithmétiques ........................................................................ 24
Chapitre 3. Introduction à l’Algorithmique ................................................... 25
I. Introduction ............................................................................................. 25
II. Qu'est ce qu'un algorithme ? ................................................................... 25
III. Les origines historiques de l'algorithmique ............................................ 26
IV. Algorithme et programmation ................................................................. 26
V. Représentation d'un algorithme............................................................... 27
VI. Les instructions fondamentales ............................................................... 29
VII. Organigramme......................................................................................... 35
Travaux Dirigés ................................................................................................. 37

2
Chapitre 1. Architecture des ordinateurs

I. Informatique
Ce terme résulte du rapprochement de deux mots :
INFORMATION + AUTOMATIQUE

• L’informatique est une Science du traitement logique et automatique


rationnel de l’INFORMATION. Il existe différents types d'informatiques :
industrielle, de gestion…etc.
• Une information représente la signification et les interprétations qui
peuvent être tirées de l’examen ou du traitement d’une ou plusieurs
données.
• Une donnée est une caractéristique, une propriété, un comportement
concernant un objet du monde réel. Exemple : nom d’un client….
Remarque :
Quel que soit leurs types (sons, caractères, images…), toutes les données sont codées dans les
ordinateurs par l’intermédiaire de système binaires. Le langage binaire est donc le langage des
machines.

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.

1.1. L’unité de traitement (Le MicroProcesseur)


Il s'agit d'une puce électronique qui sert, d’une part, à exécuter toutes les
commandes demandées à l’ordinateur (comme le lancement d’un logiciel), et
d’autre part, à assurer la coordination entre tous les composants de la machine
(disque dur, mémoire RAM, carte graphique, etc.). Autrement dit, C’est le cœur
et le cerveau de l’ordinateur. C’est un circuit intégré contenant :
• Unité de contrôle ou commande : dont le rôle est de coordonner les
différentes étapes nécessaires à l’exécution d’un programme.
• Unité arithmétique et logique (UAL) : qui effectue les traitements en
fonction des instructions reçues.
Pour cela, le processeur a besoin d'effectuer un certain nombre d'opérations par
seconde. Cette puissance de calcul est exprimée en hertz – et désormais, dans la
grande majorité des cas, en GHz, soit des milliards d’instructions à la seconde.
5
Les deux principaux fabricants de processeurs sont AMD et INTEL. Chacun
propose des gammes de CPU bien distinctes. 80% des processeurs sur le marché
sont de marques INTEL.
Le premier processeur d’Intel dans les années 80 avait une fréquence de 4,77
MHz.
Aujourd’hui : Intel core i9 cadencé à plus de 5 GHz. (6 à 16 cœurs)
Exemple de marques et gammes :
Intel AMD Apple
Intel Core i9 AMD Ryzen 9 Apple M1
Intel Core i7 AMD Ryzen 7 Apple M2
Intel Core i5 AMD Ryzen 5
Intel Core i3 AMD Ryzen 3

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).

1.2. L’unité de mémoire (La mémoire centrale)


Cette mémoire est composée de deux types :
1.2.1. Mémoire vive
Appelée RAM pour Random Access Memory.

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

1.2.2. Mémoire morte


Appelée ROM pour Read Only Memory
Elle contient les commandes de mise en route de l’ordinateur et notamment le
programme initial de démarrage BIOS.
• Très limitée en taille
• Permanente
• Totalement inaccessible en écriture
Remarque:
BIOS n. masc. sing. (Sigle de anglais Basic Input‑Output System). Dispositif nécessaire au démarrage
de l'ordinateur et permettant la reconnaissance des principales unités le constituant.

1.3. Les périphériques


1.3.1. Les Périphériques de stockage (Les mémoires auxiliaires)
Dits aussi périphériques de sauvegarde.
Ils sont utilisés pour sauvegarder des données lorsque l’ordinateur est éteint. Il
s’agit d’une mémoire auxiliaire par opposition à la mémoire centrale.
Caractéristique :
• Très grande capacité de stockage
• Permanente
• Accès en lecture et écriture beaucoup moins rapide que pour la
mémoire centrale.

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 ;

• Disquette (1,44 Mo 3’’½) : Il est généralement utilisé sur un ordinateur


personnel pour stocker des données en externe. Une disquette est
constituée d’une cartouche en plastique et se fixe avec un étui de
protection. De nos jours, les disquettes sont remplacées par de nouveaux
périphériques de stockage efficaces comme l’USB.

• 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.

• Bande magnétique est employée comme mémoire de masse, c’est une


bande en forme de bobine libre, insérée dans des cassettes et des
cartouches, permettant le stockage et la récupération des données. Grâce à
sa très grande capacité, il stocke un gros volume de fichiers. Les données
stockées sur une bande magnétique peuvent y rester pendant 30 ans au
moins. Cette cartouche de stockage ne nécessite ni énergie électrique ni
refroidissement pour récupérer des fichiers. Les frais nécessaires pour
réaliser cette conservation sont très faibles.

1.3.1.2. Les mémoires optiques


Graveurs de disque optique numérique : l’écriture ou la lecture s’effectuent
grâce à un faisceau laser.
• CD : capacité d’environ 750 Mo.
• DVD : capacité de 8,5 Go (17,5 Go en théorie).
• Disque Blu-ray : C’est comme un CD et un DVD, mais la capacité de
stockage du Blu-ray peut aller de 25 Go jusqu’à 200 Go

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

• Cartes mémoires SD et micro SD : Il est généralement utilisé avec des


appareils électroniques comme les téléphones, les appareils photo
numériques, imprimantes, consoles de jeux etc.

• 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.

1.3.3. Les périphériques de sortie


Ils permettent de communiquer les informations contenues dans l’ordinateur.
• Ecran (ou moniteur)
• Imprimantes
• Haut-parleur
• …Etc.

1.3.4. Les périphériques d’entrée / sortie


Elles permettent à la fois d’entrer des informations et d’en sortir.
• Ecrans tactiles
• Manettes de jeu à retour de force (force feedback)
• Modem
• …Etc.
1.3.5. Les cartes d’extension
Les cartes d'extension ajoutent des capacités ou des fonctionnalités à un
ordinateur. Certaines cartes d'extension sont intégrées à la carte mère. Les plus
courantes sont :

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.

• La carte graphique qui va permettre à l'ordinateur de produire des images


affichables sur un écran.

• La carte son qui va permettre à l'ordinateur d'émettre du son grâce à des


hauts parleurs

IV. Principe de fonctionnement

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, …

3. Les Logiciels d’applications


On peut encore les répartir en deux classes
3.1. Les logiciels d’application spécialisés
Dans cette catégorie se trouvent principalement les logiciels de
comptabilité (CIEL, EBP, Sage comptabilité…), les logiciels de gestion
commerciale, les logiciels de paie, de gestion de stock…
La tendance actuelle va vers une intégration des logiciels : utilisation de
logiciels de type ERP (Enterprise Ressource planning) à savoir Odoo, SAP,
Dynamics...etc.

3.2. Les logiciels outils


Ce sont essentiellement des logiciels tableurs (Excel, Quattro, Lotus…), les
traitements de texte (Word, Word perfect, Easy writer…), les systèmes de
gestion de base de données (SGBD : Access, Paradox, Dbase…), les traitements
d'image (Adobe Photoshop) …

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.

Exemple : La plupart des circuits électriques possèdent deux états d’équilibre de


fonctionnement stables (bistables), fermé (on) et ouvert (off), auxquels on peut
associer les code 0 ou 1.

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

III. Codage des données non numériques


Les données non numériques correspondent aux caractères alphanumériques
✓ Alphabet : A, B, C...Z, a, b, c...z
✓ Chiffres : 0, 1, … 9
✓ Caractères spéciaux : ?, %, $, *, !, «, &, :, /.
✓ Etc.
Le codage de ces données est fait par une table de correspondance, propre à
chaque code utilisé. Parmi les codes les plus connus, on peut citer les codes :

16
1. Code BCD (binary coded decimal)
Chaque caractère est codé sur 6 bits
Exemple :

2. Code EBCDIC (extended binary coded decimal internal code)


Chaque caractère est codé sur 8 bits, ce code est utilisé pour les gros ordinateurs
Exemple :

3. Code ASCII (American Standard Code for Information Interchange)


C’est le code le plus répandu sur les micro-ordinateurs et les systèmes de
transmissions télégraphiques, chaque caractère est codé sur 7 bits mais on utilise
généralement une version étendue sur 8 bits. En effet, avec 8 bits il est possible
de coder 28 =256 informations différentes (chaque bit peut prendre soit 0 ou 1,
donc les 8 bits peuvent prendre 28 valeurs), ce qui est suffisant pour coder tous
les caractères alphanumériques, accentués, graphiques et spéciaux (~, [, ], @, ^,
\, %, $, ¤, £, {, },!, §, ?, :, etc).
Les codes ASCII des caractères, sont des nombres entiers compris entre 0 et 255
pour la représentation décimale (soit 0 et 11111111 en binaire ou 0 et FF en
hexadécimal) :
✓ Codes de 0 à 31 correspondent aux caractères de contrôle et de commande,
interprétés différemment selon les ordinateurs.

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.

IV. Codage des données numériques


Les données numériques sont de différents types :
✓ Entiers positifs ou nuls : 0; 1; 5; 1997
✓ Entiers négatifs : -1; -13; -1269
✓ Nombres fractionnaires : 3,1415; -0,512
✓ Nombres en notation scientifique : 2,999 108 ; 1.6 10-19.
Le codage des données numériques est réalisé à l’aide des systèmes de
numération.

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

Notation : X = ap ap-1 ...... a0 , a-1 ...... a-q )B


Exemple
base B=10
ai {0, 1, 2, ..., 9}

1997)10 = 1.103 +9.102 + 9.101 + 7.100 (p=3, q=0)


2,51)10 = 2.100 + 5.10-1 + 1.10-2 (p=0, q=2)

2. Les Systèmes Décimal, Binaire, Octal, hexadécimal


Il existe nombreuses bases, les plus utilisées sont :
➢ La base 10 (décimal) : les chiffres de bases sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;
➢ La base 2 (binaire) : les chiffres de bases sont 0 et 1 ;
➢ La base 8 (octal): les chiffre de bases sont 0 , 1, 2, 3, 4, 5, 6, 7 ;
➢ La base 16 : les chiffres de bases sont ceux de la base 10 + 6 lettres A, B, C,
D, E, F.
2.1. Le système binaire (base = 2)
Base B= 2 ai  {0, 1}
C’est avec ce système que fonctionnent les ordinateurs
Les chiffres dans ce système sont : 0 et 1, exemples : 1011 ; 11001 ; 1111 ;
1010
19
Exemples :
10101)2 = 1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 21)10
1,01)2 = 1*20 + 0*2-1 + 1*2-2 = 1,25)10

2.2. Le système octal (base = 8)


base B= 8 ai  {0, 1, 2, 3, 4, 5, 6, 7}
8 symboles sont utilisés dans ce système : { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 }
Exemples :
127)2 = 1*82 + 2*81 + 7*80
127,65)2 = 1*82 + 2*81 + 7*80 + 6*8-1 + 5*8-2

2.3. Le système hexadécimal (base 16)


Base B = 16
ai  {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13),
E(14), F(15)}
On utilise seize (16) symboles différents:

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

4. Conversion de la base 10 à la base 2


Le principe consiste à faire des divisions successives du nombre sur 2, et
prendre le reste des divisions dans l'ordre inverse.

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.

Remarque : Le nombre de bits après la virgule va déterminer la précision.

6. Conversion du décimal à une base X


La conversion se fait en prenant les restes des divisions successives sur la base
X dans le sens inverse.

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.

8. Conversion de la base 8 à la base 2


L'idée de base est de faire des regroupements de 3 bits à partir du poids faible.
Par la suite remplacer chaque regroupement par la valeur octal correspondante.
Exemples:
11001010010110)2 = 011 001 010 010 110)2 = 31226)8
110010100,10101)2 = 110 010 100, 101 010)2 = 624,51)8

Remarque: Le regroupement se fiat de droite à gauche pour la partie entière et de gauche à droite
pour la partie fractionnelle.

9. Conversion de la base 16 à la base 2


En Hexadécimal, chaque symbole de la base s'écrit sur
4 bits.
L'idée de base est de remplacer chaque symbole dans la
base Hexa par sa valeur en binaire sur 4 bits (faire des
éclatements sur 4 bits)
Exemples:
345B)16 = 0011 0100 0101 1011)2
AB3,4F6)16 = 1010 1011 0011, 0100 1111 0110)2

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

Le résultat final : 11101110)2

2. Opérations arithmétiques en octal

Le résultat final : 5036)8


3. Opérations arithmétiques en hexadécimal

Le résultat final : C2B6)16


24
Chapitre 3. Introduction à l’Algorithmique

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.

VI. Les instructions fondamentales


Les ordinateurs ne comprennent que quatre catégories d'instructions :
1. L'affectation de variables ;
2. La lecture/écriture ;
3. Les tests (les structures conditionnelles) ;
4. Les boucles (les structures itératives).

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

Il s’agit de créer la boîte et de lui coller une étiquette.


❑ Le nom de la variable (l’étiquette de la boîte) obéit à des impératifs
changeant selon les langages:
➢ Un nom de variable correct commence impérativement par une lettre.
➢ Comporte des lettres et des chiffres, mais qui exclut la plupart des
signes de ponctuation, en particulier les espaces.
❑ Le type de la boite précise ce que l’on voudra mettre dedans, car de cela
dépendent la taille de la boîte.
Les principaux types sont :
➢ Entier
➢ Réel
➢ Chaîne de caractères
➢ Booléen (valeur vraie ou fausse 0 ou 1)
30
1.1.1. Le type Entier
Représente les nombres entiers qui permettent d’effectuer des calculs entiers:
Exemple :
Entier a, b, r
a8
b5
r  a/b
Résultat r = 1
1.1.2. Le type Réel
Représente les nombres flottants.
Exemple :
Réel a, b, r
a  8.0
b  5.0
r  a/b
Résultat r = 1.6
1.1.3. Le type Chaine de caractère
Représente l’information sous forme textuelle (lettres, chiffre, symboles …)
Une chaîne de caractères est toujours notée entre guillemets
Exemple:
Chaine a, b
a  ‘‘ es.redouane@gmail.com’’
b  ‘‘ Informatique de Gestion 2’’

1.1.4. Le type Booléen


Les variables de type booléen ne peuvent prendre que deux valeurs Vrai ou
Faux.
Elles sont les résultats d’une expression logique ou de comparaison.
Exemple:
Booléen v
Entier a, b
v  (a<b)
Résultat : vrai si a < b et faux si a >= b
31
1.2. Déclaration des constantes
Il s’agit des données dont la valeur est fixée au début du traitement. Cette valeur
restera la même pendant toute l’exécution du traitement.
Notation :
Constante nom_constante  valeur_constante
Cette instruction permet de déclarer une constante quelque soit le type de sa
valeur.
Exemple :
Constante a  0.5
Remplacera a par 0.5 dans tout l’algorithme.
2. Instruction d’affectation
Affecter une variable consiste a lui donner une valeur. Cette valeur peut être soit
une constante, soit une valeur d’une autre variable, soit le résultat d’un calcul.
En pseudo-code, l'affectation se note avec le signe 
Notation :
var  e
Il s’agit d’attribuer la valeur de e à la variable var
❑ e : peut être une valeur, une autre variable ou une expression
❑ var et e doivent être de même type ou de types compatibles
❑ Une variable désigné doit être au préalable déclarée
Exemple :
Intérêt  somme_initiale * taux /100
valeur_acquise  somme_initiale + Intérêt
a 20
C  ‘‘ Bonjour’’

3. Instruction d’écriture (de sortie)


Indique l’affichage d’un message et/ ou contenu d’une variable (ou du résultat
d’un calcul)
Les expressions utilisées : « Sortir », « Afficher », « Imprimer », « Ecrire »
Exemple :
Écrire ‘‘ L’intérêt fourni est de ’’, intérêt, ‘‘ dirhams’’
32
4. Instruction de lecture (d’entrée)
L’entrée de la valeur d’une variable peut se faire par :
La saisie des données à partir d’une entrée (clavier, support de stockage, …)
Les expressions utilisées sont : « Entrer », « Saisir », « Lire »
Exemple :
Lire somme_ initiale
5. La structure alternative (conditionnelle)
Il s’agit d’un traitement qui ne peut s’exécuter que si une condition logique est
satisfaite ; dans le cas contraire, un autre traitement sera exécuté.
Si (Condition_Satisfaite) Alors
<Traitement1>
Sinon
<Traitement2>
Fsi
Exemple
Deux joueurs A et B se cachent la main droite derrière le dos, chacun choisit de
tendre un certain nombre de doigts (de 0 à 5), toujours la main derrière le dos.
Les deux joueurs se montrent la main droite en même temps. Si la somme des
nombres de doigts montrés est paire, le premier joueur a gagné, sinon c'est le
second. Le problème est de faire prendre la décision par l'ordinateur.
Remarque: Pour déterminer si un nombre est pair ou impair, il suffit de calculer le reste de la division
par 2 (.. modulo 2): il vaut 0 dans le premier cas et 1 dans le second.

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

6.1. Structure itérative Pour


On sait à l’avance combien de fois on veut itérer.
Pour i allant de n à m Faire
<Traitement>
Suivant i
Il faut donc connaître la valeur de départ n de i ainsi que sa valeur d’arrivée m.
A chaque tour de boucle, la variable i sera incrémentée (augmentée) de 1.
Exercice :
Ecrire un algorithme qui demande un nombre, et qui ensuite affiche la table de
multiplication de ce nombre

6.2. Structure itérative Tant que


La boucle Tant que permet d’exécuter le corps de la boucle lorsque la condition
d’exécution est vérifiée ; on s'arrêtera dès que la condition n’est plus vérifiée.
Initialisation des variables de la condition d’exécution
Tant que (Condition_exécution_vérifiée) Faire
<Traitement>
<mise_à_jour_condition_exécution>
FTant

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

Losange Pour une décision (test)

parallélogramme Pour une entrée ou une sortie

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.

Indication : L’algorithme d’Euclide permet de résoudre ce problème en prenant


d’abord le reste de la division de m par n, puis le reste de la division de n par ce
premier reste...etc. jusqu’à ce qu’on trouve un reste nul. Le dernier diviseur
utilisé est le PGCD de m et n.

36
Travaux Dirigés
Exercice 1
Donner les valeurs des variables à la fin de l’exécution des 6 algorithmes
suivants.

algorithme alg1 algorithme alg2 algorithme alg3


entier A, B entier A, B, C entier A, B
début début début
A ← 1 A ← 3 A ← 5
B ← A + 3 B ← 10 B ← 2
A ← 3 C ← A + B A ← B
fin B ← A + B B ← A
A ← C fin
fin
algorithme alg4 algorithme alg5 algorithme alg6
Entier A, B, C Entier A, B chaîne de caractères A, B, C
Début Début Début
A ← 8 A←2 A ← "565"
B ← 6 B←A+5 B ← "12"
C ← A + B A←A+B C←A&B
A ← 4 B←B+A Ecrire " C = ", C
C ← B – A A←B–A Fin
Fin Fin

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 i1
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 18 : Ecrire un algorithme qui demande une note d’étudiant comprise


entre 0 et 20, jusqu’à ce que la réponse convienne.

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

Vous aimerez peut-être aussi