Syllabus Cours Algo
Syllabus Cours Algo
Chapitre I : Introduction
La notion d’algorithme remonte à l’antiquité. Cela s’est précisé dans le domaine des
mathématiques par l’emploi de variables. L’algorithme au sens informatique apparait avec
l’invention de premières machines dotées d’automatismes.
Le mot algorithme vient du nom du mathématicien perse du VIII ième siècle (AJC)
Abu Abdullah Muhammad ibn Musa al-Khwarizmi. Le mot algorisme se référait à l’origine
uniquement aux règles d’arithmétique utilisant les chiffres indo-arabes numéraux mais cela
a évolué par la traduction en latin européen du nom Al-Khwarizmi’s en algorithme au 18ième
siècle. L’utilisation du mot a évolué pour inclure toutes les procédures définies pour résoudre
un problème ou accomplir une tâche.
Avez-vous déjà indiqué un chemin à une personne égarée ? Avez-vous fait chercher un objet
à quelqu’un par téléphone ? Si oui, vous avez déjà fabriqué – et fait exécuter – des
algorithmes.
Un algorithme, c’est une suite d’instructions logiques et chronologiques, qui une fois exécutée
correctement, conduit à un résultat donné. Pour fonctionner, un algorithme doit donc contenir
uniquement des instructions compréhensibles par celui qui devra l’exécuter.
En effet, si l’algorithme, comme on vient de le dire, n’est qu’une suite d’instructions menant
celui qui l’exécute à résoudre un problème, En informatique, heureusement, les choses
auxquelles ont doit donner des instructions sont les ordinateurs.
1. il faut être méthodique et rigoureux. En effet, chaque fois qu’on écrit une série
d’instructions qu’on croit justes, il faut systématiquement se mettre mentalement à la
place de la machine qui va les exécuter, armé d’un papier et d’un crayon, afin de
vérifier si le résultat obtenu est bien celui que l’on voulait.
2. il faut avoir une certaine intuition, car aucune recette ne permet de savoir a priori
quelles instructions permettront d’obtenir le résultat voulu.
2
3. Objectif du cours
Ces objectifs démontrent que l’algorithme est universel et ne nécessite pas la connaissance
préalable du langage. Il amène l’étudiant à mieux raisonner sur un problème dans une forme
plus proche des langages des ordinateurs.
4. Notion de programmation
La programmation dans le domaine informatique est l’ensemble des activités qui permettent
l’écriture des programmes informatiques. C’est une étape importante de la conception de
logiciel ; qui consiste à partir d’un problème posé, de trouver des actions élémentaires
nécessaires, et en suite procéder à une succession finie de ces actions élémentaires.
La personne chargée de cette étape est appelée programmeur. Pour accomplir cette mission si
délicate, il doit justifier des connaissances sur :
Il est à noter qu’il existe une nette indépendance entre l’algorithme et la programmation.
L’algorithme est un pré requis aux enseignements des langages de programmations.
3
L’information seule n’est pas un savoir. Pour qu’elle le devienne, il lui faut des structures
conceptuelles qui la supportent et lui donnent du sens.
Elle n’est pas figée. Le temps et le contexte dans lesquels elle est échangée et analysée
peuvent modifier sa valeur et l’interprétation qu’on en donne.
- C’est une nouvelle, un renseignement, une documentation sur quelque chose ou sur
quelqu’un, portés à la connaissance de quelqu’un. Exemple : un bulletin
- C’est l’actualité, les nouvelles diffusées par les médias. Exemple : presse, radio,
télévision, Internet…etc.
- C’est tout ce qui peut soit se dire, soit s’écrire, soit se représenter en vue d’engendrer
une action.
3. Concepts de Base
- Le Contexte
- La Donnée
a) Contexte
b) Donnée
Une donnée est un élément fondamental (un fait, une notion, un chiffre, une instruction,
un indice…) prélevé à partir d’une expérience. Elle est la valeur d’une information.
Exemple :
Tomate
Matungulu
Résume :
Noms Prix (intitulés ou contextes)
Tomate 20
Matungulu 25 (valeurs ou données)
Makayabu 30
Fumbwa 50
I. Le type
II. La taille
III. L’enregistrement
IV. Le fichier
V. Le support
I. Types de données
Alphabétique
Alphanumérique
Numérique
a) Donnée alphabétique
Exemple :
Noms Post Noms
Tomate Pipipili
Matungulu Safi
Makayabu Mwamini
Fumbwa Tembo
Exemple : tomate
Notation : A(6) : signifie six (6) caractères alphabétiques
6
b) Donnée alphanumérique
Exemple :
La notation X(7) signifie sept (7) caractères alphanumériques pour le nom N’DJILI
c) Donnée numérique
C’est la valeur d’une information constituée des chiffres et utilisés dans les calculs.
Conventionnellement, elle est exprimée par le chiffre 9.
Exemple :
Prix Taux Total
500 5 2500
1000 10 10.000
La notation 9 (3) signifie trois caractères numériques. Ici, soulignons que hormis ces trois
types classiques, il existe des types :
Date
Booléen ou logique
Mémo
Texte
Monnaie
Etc…
II. La taille
La donnée, pour son traitement, exige une mémorisation ou un stockage sur un support. Cela
nécessité une situation géographique bien définie. Généralement cette taille est le nombre
maximal des caractères qu’une donnée pourrait porter.
7
Octet
Kilo octet
Mega octet
Giga octet
III. Enregistrement
Exemple :
001 WEWA M
Enregistrement
Par exemple, un enregistrement d’un fichier contenant la description des clients d’une
entreprise contiendra plusieurs informations sur un client : son numéro de client, son nom, son
adresse postale, son numéro de téléphone, etc…
IV. Fichier
Par exemple :
Il s’agit d’un ensemble d’enregistrements ayant un même objet et possédant les mêmes
informations, c’est-à-dire ayant une même structure.
La structure d’un fichier est le reflet des structures des enregistrements regroupés
ensemble parce que partageant un même objet.
8
C’est aussi une suite de données structurée (souvent sous la forme d'une liste
d'enregistrements suivant un même format), portant un nom et codé sur un support.
V. Le support
Le support d'information est l'objet matériel sur lequel sont stockés les informations ou les
données.
Le Papier : c’est un support des livres, des fiches, des affiches, des documents
administratifs imprimés (bons de commande, bons de livraison, factures,...).
Une information est une donnée observée par un acteur qui se rapporte toujours à un individu
ayant une existence propre dans un univers du discours.
Prenons une école prise comme univers du discours. On y trouve comme individus : Etudiant,
Matière, Classe, Professeur, Examen, etc. chaque individu est caractérisé par des attributs qui
permettent de l’identifier.
5. Traitement de l’information :
On appelle traitement de l’information tout processus durant lequel l’utilisateur introduit des
données, ensuite sous contrôle d’un programme (logiciel) celui-ci restitue les résultats via une
unité de sortie.
Exemples :
- Logiciel de calcul des salaires des employés d’une entreprise
- Logiciels de traitement des textes, dessins, images, feuilles de calcul.
6. Les Variables
Une variable est une case en mémoire créée dans un algorithme pour stocker des données.
Elle doit avoir un nom qui permet de la désigner, une valeur initiale dans sa création et doit
avoir un type, une taille comme annoncée dans le type de donnée.
Notons que le nom d’une variable est donné par le programmeur en respectant les principes
suivants :
10
Il doit être constitué des lettres, des chiffres ou d’autres caractères éventuellement
accentué mais ne devant pas porter un point ;
Le premier caractère est forcement une lettre ;
Les lettres majuscules et minuscules sont équivalentes ;
Il ne doit pas dépasser 255 caractères ;
Les mots réservés ne peuvent être utilisées
Un nom de variable doit être unique dans une portée.
Nous l’appelons variable parce que c’est une zone susceptible de prendre plusieurs valeurs les
unes après les autres selon le déroulement de l’algorithme. Dans son fonctionnement, la
dernière valeur introduite remplace automatiquement la première valeur trouvée qui disparaît.
Plusieurs appellations sont données par rapport au rôle que la variable joue dans l’algorithme :
La première chose à faire avant de pouvoir utiliser une variable est de créer la boîte et de lui
coller une étiquette. Ceci se fait tout au début de l’algorithme, avant même les instructions
proprement dites. C’est ce qu’on appelle la déclaration des variables.
Notons qu’il existe des déclarations qui sont dites explicites et des déclarations implicites.
Toutefois, la déclaration explicite est fortement recommandée.
7. Constante
Une constante est une grandeur dont la valeur est fixée par convention ou par calcul,
indépendamment du problème dans lequel elle est rencontrée. Cette notion s'oppose ainsi à
celle de variable, dont la valeur peut changer au cours d'un même problème.
En informatique, une constante est un identificateur associé à une valeur fixe. Concrètement
cet identificateur a tous les aspects d'une variable. Cependant, il n'est possible de lui affecter
une valeur qu'une seule fois, généralement au moment du lancement du programme.
8. Expressions arithmétiques
9. Expressions conditionnelles
A ce niveau, il y a des
11
Lorsque le traitement porte sur une donnée et comporte un choix entre deux ou plusieurs
possibilités, la structure de l’algorithme est alternative :
- Un ordinateur est un appareil électronique doté d'une unité de traitement lui permettant
d'exécuter des programmes enregistrés.
- C’est toute machine automatique de traitement de l'information, permettant de
conserver, d'élaborer et de restituer des données sans intervention humaine en
effectuant sous le contrôle de programme enregistrés des opérations arithmétiques et
logiques.
- C’est un appareil électronique qui est capable, en appliquant des instructions
prédéfinies (programme), d'effectuer des traitements automatisés de données et
d'interagir avec l'environnement grâce à des périphériques (écran, clavier…)
1) Structure
a) Périphérique d’entrée
b) Périphérique de sortie
Il ne peut que recevoir de l'information depuis l'ordinateur. Exemple : écran, imprimante.
c) Unité Centrale
Le boîtier d'un ordinateur de bureau contenant la carte mère, le processeur, la mémoire vive,
l'alimentation, les périphériques de stockage peut se nommer unité centrale. Cette unité est
reliée à l'extérieur par des branchements et des voies d'insertion (disquettes, CD, DVD, etc).
2) Fonctionnement
Dès sa mise sous tension, un ordinateur exécute, l'une après l'autre, des instructions qui lui
font lire, manipuler, puis réécrire un ensemble de données auquel il a accès. On n’aurait pas
tort de comparer le fonctionnement d’un ordinateur au fonctionnement du cerveau humain,
ce qui justifie l’appellation de cerveau électronique.
a) Unité d’entrée
b) Unité de sortie
Après traitement des données stockées en mémoire principale et éventuellement des mémoires
auxiliaires, les résultats sont fournis à l’unité de sortie sous la forme demandée par les
utilisateurs soit par l’affichage (moniteur) soit par l’impression (imprimante).
c) Unité centrale
14
L'unité centrale (UC) est le "cerveau" de l'ordinateur. Son rôle est d'exécuter les programmes
stockés en mémoire centrale en chargeant les instructions, en les décodant et en les exécutant
l'une après l'autre. L'UC est composée d'une unité de commande qui charge les instructions
et les décode, et d'une unité arithmétique et logique (UAL) qui exécute des opérations et de
la mémoire centrale.
a) Unité de commande
L’unité de commande (unité de contrôle) est constituée de plusieurs organes qui permettent la
recherche en mémoire et le décodage d’une instruction.
On trouve :
L'Unité de commande comprend une mémoire très rapide qui lui permet de stocker des
résultats temporaires ou des informations de commande. Cette mémoire est formée de
quelques registres, chaque registre ayant une fonction particulière.
Le registre le plus important est le compteur ordinal (CO) qui pointe sur la prochaine
instruction à exécuter. On trouve aussi le registre instruction (RI) qui contient l'instruction en
cours d'exécution. La plupart des ordinateurs contiennent également d'autres registres qui
permettent aux programmeurs de stocker des résultats intermédiaires.
L'exécution d'une instruction par l'UC passe par les étapes suivantes :
15
C'est l'UAL qui exécute les additions, les soustractions et toutes les opérations simples sur ses
entrées, et qui produit un résultat placé dans le registre de sortie. Le contenu du registre de
sortie peut alors être placé dans un autre registre avant de rejoindre, si nécessaire, la mémoire.
3) La mémoire centrale
La mémoire est la partie de l'ordinateur dans laquelle programmes et données sont rangés.
Sans mémoire, dans laquelle le processeur lit et écrit de l'information, il n'y aurait pas
d'ordinateurs tels que nous les connaissons.
Une mémoire est formée d'un certain nombre de cellules (ou cases), chacune de ces cellules
contenant une certaine quantité d'informations. Chaque cellule a un numéro, que nous
appellerons son adresse, qui permet à un programme de la référencer. Si une mémoire a n
cellules, les adresses iront de 0 à n-1. Toutes les cases de la mémoire contiennent le même
nombre de bits, par exemple k bits, ce qui permet de représenter 2k combinaisons différentes.
Elle est organisée de façon matricielle par des transistors où chacun d'eux se trouve à
l’intersection d’une ligne et d’une colonne. Elle ne peut contenir que deux types
d’information, les instructions et les données.
La mémoire est organisée de façon à respecter une certaine hiérarchie dictée essentiellement
par la rapidité de ses composants. On peut donc les classer de la manière suivante :
Registre du CPU : Ils servent au stockage des opérandes et des résultats intermédiaires
16
L'informatique couvre aujourd'hui à peu près toutes les branches de l'activité humaine.
Elle a pour objet le traitement d'informations, codées dans les ordinateurs sous une forme
binaire à l'aide de bits (0 ou 1). L'ensemble des organes physiques qui servent à ce traitement
est appelé matériel (en anglais hardware), par opposition au logiciel, ensemble des
programmes, des langages et des systèmes d'exploitation (en anglais software).
L'organe principal d'un ordinateur est l'unité centrale, dans laquelle sont exécutées les
instructions des programmes et s'effectuent les calculs, par opposition aux périphériques
(organes d'entrée-sortie). Les ordinateurs ont des utilisations très variées (traitement de texte,
gestion, calcul scientifique, commande d'installations en temps réel) qui nécessitent d'utiliser
des langages de programmation adaptés à l'application envisagée. Le principal avantage de
l'ordinateur est sa rapidité de calcul et d'accès aux informations.
a. Représentation textuelle
Symbole de l’affichage
Symbole du traitement
Symbole de renvoi
Début
Ouvrir la classe
18
Fermer la classe
fin
les programmes structurés ou pseudo code permettent de lister de manière ordonnée les
fonctions que doit accomplir les programmes.
Analyse du problème :
1. Résultats = objectifs à atteindre : que doit-on obtenir ?
2. Données = ce qu’il faut pour calculer (obtenir) les résultats, les informations à traiter
(nombre, type, format, rôle…).
3. Algorithme = méthode pour fabriquer les résultats à partir des données. Si on n’a pas les
données nécessaires, on ne peut pas trouver d’algorithme, donc pas écrire le programme.
Exemple :
1. Résultats : je mangerais bien une mousse au chocolat (miam !).
2. Données : est-ce que j’ai du chocolat, des œufs… ?
3. Algorithme : recette de cuisine.
Plus sérieux : si je veux calculer ma moyenne de l’année il faut que j’aie toutes mes notes, les
19
Coefficients…
L'analyse descendante consiste à décomposer le problème en sous-problèmes plus faciles à
résoudre ... jusqu'à obtenir des fonctions simples et des instructions de base (actions
élémentaires) : "diviser pour régner".
La dernière étape est la validation de l'algorithme : les jeux de test (très important : il faut
trouver tous les cas particuliers).
Langage algorithmique
Algorithme de principe en langage naturel : permet d’expliquer les grandes lignes de la
solution, on l’appelle aussi stratégie.
algorithme détaillé :
langage algorithmique : plus précis, plus simple que le langage naturel.
organigramme (représentation graphique).
Le langage algorithmique est souvent plus lisible que les langages de programmation (en tout
cas, il est indépendant de ceux-ci) et puis cela permet de travailler dans une autre langue que
l’anglais.
Remarque : il n'y a pas forcément qu'un seul algorithme pour un problème donné. En
général, on peut les classer suivant différents critères (performance, occupation mémoire,
facilité de compréhension ou de modification...).
Malgré les apparences (trompeuses) un ordinateur est une machine très bête qui obéit
aveuglément à tout ce que prescrit le programme (donc le programmeur).
20
LA DÉMARCHE INFORMATIQUE
21