ALGORITHMIQUE 1
1ère Année Préparatoire, Semestre 1
2024-2025
Ecole Marocaine des Sciences de l’Ingénieur, Casablanca
Pr. Nadia BOUHRIZ
Objectifs du cours
Apprendre les concepts de base de l’algorithmique.
Être capable de mettre en œuvre ces concepts pour résoudre des problèmes.
2
Plan du cours
Introduction à l'algorithmique.
Variables et Affectation.
Lecture et Ecriture.
Structures conditionnelles.
Structures itératives.
3
Introduction à l'algorithmique
Algorithmique et Informatique
Tout d'abord, il est important de comprendre le lien entre l’algorithmique et l’informatique. En effet,
l’algorithmique constitue une composante essentielle de l’informatique.
Dans ce cadre, nous allons d'abord définir et présenter quelques concepts clés de l’informatique. Ensuite,
nous mettrons en lumière la place de l’algorithmique dans ce contexte global.
5
Informatique
L'informatique est la science qui étudie comment les informations peuvent être récupérées, traitées,
stockées et partagées automatiquement à l'aide de machines, principalement des ordinateurs, pour accomplir
différentes tâches ou encore résoudre des problèmes complexes.
Jouer à un jeu vidéo Naviguer sur internet Résoudre des problèmes
Rédiger un rapport mathématiques complexes.
6
Ordinateur
Un ordinateur est composé d'éléments matériels et logiciels qui travaillent ensemble pour lui permettre de
fonctionner et d'accomplir des tâches :
Composants matériels.
Mémoire
Périphériques Unité de Périphériques
d’entrée traitement de sortie
Unité centrale
Unité de (Processeur, RAM,
stockage disque dur, …)
Unité de traitement (processeur) : Ce composant réalise les calculs et exécute les instructions pour le Ecran
traitement des informations.
Clavier
Souris
Mémoire (RAM) : Elle stocke temporairement les informations en cours de traitement.
Scanner
Unité de stockage (disque dur) : Elle stocke les informations de manière permanente. Microphone
Hauts parleurs
Périphériques d'entrée/sortie : Permettent l'interaction entre l'ordinateur et l'utilisateur. Elles permettent ………
d'introduire et de restituer des informations.
7
Ordinateur
Composants Logiciels
Logiciels de base Logiciels d’application Logiciels de développement
BIOS (Basic Input/Output System) : Conçus pour des tâches particulières : Utilisés par les programmeurs pour
Permet d'initialiser le matériel de • Logiciels de bureautique. créer d'autres logiciels, souvent à l'aide
l'ordinateur, puis transmet le contrôle à • Navigateurs web. d'environnements de développement
un programme chargé de démarrer le • Logiciels de montage vidéo. intégrés (IDE). Exemples : Visual
système d'exploitation. • etc. Studio Code, PyCharm, etc.
Système d’exploitation : permet à
l'utilisateur d'interagir avec son
ordinateur, souvent via une interface Le rôle principal d'un programmeur est de
graphique. Exemples : Windows, comprendre les besoins des utilisateurs et
macOS, Linux. de créer des logiciels en écrivant des
programmes, permettant ainsi d'accomplir
diverses tâches sur un ordinateur ou un
appareil. 8
Programme
Un programme est une suite d’instructions à exécuter par un ordinateur, pour
traiter des données (informations à traiter) afin d’obtenir des résultats
(informations produites).
Instruction : désigne l’expression d’un ordre fourni à l’ordinateur.
Information : une connaissance humaine sous forme de texte, de
nombres, d’images, de vidéos, etc.
Donnée : Représentation binaire d'une information, stockée dans la
mémoire de l'ordinateur en vue de son traitement.
9
Langage de programmation
Un ordinateur ne comprend en effet que le langage binaire, qui est une suite de 0 et de 1. Ce langage est complexe et
difficile à utiliser directement par les humains. C'est pourquoi des langages de programmation ont été créés pour
faciliter la communication entre les humains et les ordinateurs.
Les langages de programmation permettent aux programmeurs d’écrire des instructions dans une syntaxe proche du
langage humain. Ces instructions sont ensuite traduites en langage binaire via des programmes spécifiques appelés
compilateurs ou interpréteurs, qui rendent le code compréhensible par l'ordinateur.
Exemples de langages de programmation : Python, C, C++, Java, Visual Basic, Fortran, etc.
Un programme est donc une suite d’instructions écrites dans un langage de programmation. Le programme ainsi obtenu
s’appelle un programme source (ou code source). Ce programme sera traduit en langage binaire, puis exécuté par
l’ordinateur.
10
Résolution informatique d'un problème
Avant de commencer à écrire un programme pour un problème spécifique, il est essentiel d'analyser le problème afin
de concevoir une solution adaptée, puis de traduire cette solution dans un langage de programmation, afin que la
machine puisse l'exécuter.
Ainsi, ce processus d'analyse, de conception et de traduction représente ce que nous appellerons dans ce cours la
résolution informatique d'un problème.
11
Résolution informatique d'un problème
Analyse du problème
Identification des données
Données d'entrée : Ce sont les informations que l'ordinateur va traiter, et constituent le point de départ pour effectuer des
calculs ou traitements. Exemple : Les dimensions d'une pièce (longueur et largeur).
Données de sortie ou résultats recherchés: Ce sont les informations ou résultats que l'ordinateur produit après avoir
traité les données d'entrée. Exemple : La superficie de la pièce calculée à partir des dimensions fournies.
Conception de la solution
Élaborer une solution en déterminant la suite des opérations élémentaires à suivre pour obtenir les résultats attendus.
Le résultat de cette phase d'analyse conduit à une solution théorique, indépendante de la machine, que l'on appelle un
«algorithme» .
Traduction de l'algorithme en programme
Convertir l'algorithme en un programme écrit dans un langage de programmation afin qu'il puisse être compris par l'ordinateur.
Exécution du programme
Lancer et exécuter le programme sur l’ordinateur afin de produire les résultats attendus à partir des données fournies. 12
Résolution informatique d'un problème
Exemple d'Analyse d'un problème
Analysons le problème suivant :
Etant données les dimensions d'une pièce, calculez sa superficie.
Identifions les données
Données d'entrée :
+ Longueur : Lo
+ Largeur : La
Donnée de sortie ou résultat recherché :
+ Superficie : S
Proposons une solution
1. Récupérer la valeur de Lo.
2. Récupérer la valeur de La.
3. Calculer la valeur de S = Lo x La.
4. Afficher la valeur de S.
13
Résolution informatique d'un problème
Exercice d'application
Analysez le problème suivant :
Etant données les notes obtenues par un élève dans 3 matières et leurs
coefficients, calculez la moyenne de l’élève.
14
Notion d’algorithme
Définition 1: Un algorithme est une suite ordonnée d’instructions qui indique la démarche à
suivre pour résoudre un problème donné.
Le mot algorithme vient du nom du mathématicien Al Khawarizmi (780-850) auteur d’un
ouvrage décrivant des méthodes de calculs algébriques.
Définition 2: L’algorithmique est la science qui s’intéresse à l’art de construire des
algorithmes ainsi qu’à caractériser leur validité, leur robustesse, leur réutilisabilité, leur
complexité et leur efficacité.
15
Algorithme Vs Programme
Tâches réalisées par le programmeur
Analyser Traduire
Problème Algorithme Programme
Exécuter
Résultats
Données
Tâches réalisées par l'utilisateur
16
Algorithme Vs programme
Un algorithme
Un programme
C'est une suite d'instructions logiques et
est la traduction de cet algorithme dans un
élémentaires, conçues pour traiter des données
langage de programmation.
d'entrée afin de produire des résultats ou données
de sortie, permettant ainsi de résoudre un problème
spécifique.
17
Exemples d'algorithmes utilisés dans la vie quotidienne
1. Recette de cuisine :
Données : les ingrédients et le matériel utilisé (poêle, couteau, etc.).
Instructions : Couper les légumes, mélanger les ingrédients, cuire à feu moyen pendant 10 minutes, etc., en suivant un
ordre précis pour obtenir le résultat final.
Résultat : le plat préparé.
2. Indication du chemin de la gare à une personne :
Données : les points de repère, carrefours, rues, etc.
Instructions : Allez tout droit sur 200 mètres, Prenez à gauche au carrefour, Prenez la troisième rue à droite.
Résultat : Arriver à la gare.
Remarque :
Lorsqu'on définit un algorithme, celui-ci ne doit contenir que des instructions compréhensibles par la personne qui devra
l'exécuter : des humains dans les deux exemples précédents.
Dans ce cours, nous apprendrons à définir des algorithmes qui seront compréhensibles, et donc exécutables par un ordinateur.
18
Les instructions que l'ordinateur peut exécuter
Dans un algorithme, les instructions représentent des ordres donnés à l'ordinateur pour qu'il les exécute.
Il est important de comprendre que l'ordinateur ne peut traiter et exécuter que quatre types d'instructions :
L'affectation.
La lecture/écriture.
Les structures conditionnelles.
Les structures itératives.
Chacune de ces instructions sera abordée en détail dans les sections suivantes de ce cours.
19
Représentation d’algorithme
Il y a deux façons pour représenter un algorithme :
1. L’organigramme : représentation graphique utilisant des symboles
tels que des carrés, des losanges, etc.
2. Le pseudo-code : représentation textuelle se situant à mi-chemin entre
le langage naturel et le langage de programmation.
Dans ce cours, nous allons utiliser le pseudo-code pour représenter nos algorithmes.
20
Structure d'algorithme en pseudo-code
Dans un algorithme représenté en pseudo-code, la structure se compose des éléments
suivants :
1. Une en-tête : Elle commence par le mot-clé «Variables» , où les données de
l’algorithme sont spécifiées : données d’entrée, données intermédiaires, et données de
sortie (Résultats).
2. Un corps, composé de :
Le mot-clé «Début» pour indiquer le début des instructions.
Une suite d’instructions indentées.
Le mot-clé «Fin» pour indiquer la fin des instructions.
21
Structure d'algorithme en pseudo-code
Voici la structure en pseudo-code que nous allons adopter dans ce cours :
Variables
Déclaration1
Déclaration2
…
Début
Instruction1
Instruction2
…
Fin
Exemple
Variables
Début
Ecrire("Bonjour")
Fin
22
Les commentaires
Les commentaires sont des phrases servant à clarifier les instructions de l’algorithme.
En général, les commentaires sont complétement ignorés au moment de l'exécution, car ils sont
destinés à un lecteur humain.
Pour placer un commentaire dans un algorithme, la syntaxe est la suivante :
// Commentaire
Exemple
Variables
// aucune variable nécessaire.
Début
Ecrire("Bonjour") // affiche bonjour à l’écran
Fin
23
Méthodologie de l’élaboration d’un algorithme
En résumé, voici les étapes à suivre pour élaborer un algorithme :
Identifier les données du problème (entrées, intermédiaires, recherchées).
Proposer une solution adaptée au problème en déterminant une suite ordonnée d'instructions.
Représenter l’algorithme en pseudo-code.
Pour apprendre à écrire ces algorithmes de manière complète, nous allons découvrir dans les prochaines
sections de ce cours les concepts de base suivants :
Variables et affectation : où nous apprendrons à stocker et manipuler les données.
Lecture et écriture : pour l'interaction avec les données d'entrée et de sortie.
Nous explorerons également les structures de contrôle suivantes :
Les structures conditionnelles : permettant de prendre des décisions dans le déroulement de l'algorithme.
Les structures itératives : permettant de répéter des actions en fonction de certaines conditions.
24