Vous êtes sur la page 1sur 12

Chapitre 1 : Introduction à l’Algorithmique DUT : GI

Chapitre 1: Introduction à l’Algorithmique


1. Introduction :
Algorithme est un terme d’origine arabe qui provient du nom du célèbre
mathématicien Abu Ja'far Mohammed Ben Mussa Al-Khwarismi).
Le mot algorithmique désigne la discipline qui étudie les algorithmes et leurs
applications dans le domaine informatique.
1.1. Définition :
Un algorithme est une suite ordonnée d’instructions (actions), qui indique la
démarche à suivre pour résoudre un problème.
1.2. Exemples :
Dans notre vie au quotidien nous utilisons inconsciemment des algorithmes,
pour bien comprendre cette notion nous vous proposons trois simples exemples des
algorithmes que nous pouvons rencontrer ou que nous avons déjà exécutés:
1.2.1. Exemple 1 : Lego : Comment monter un jouet ?
Pour monter un jouet en utilisant le Lego (pièces en plastique) il faut suivre les
étapes indiquées dans la notice de montage en respectant l’ordre de ces étapes.

Figure 1 : Notice de montage d’un Lego.

NB : La notice de montage d’un Lego est un algorithme.

Pr. Abderrahman CHEKRY Page 1 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

1.2.2. Exemple 2 : Comment poser une armoire?


Pour poser une armoire il faut suivre les étapes indiquées dans le guide de pose
dans le bon ordre :

Figure 2 : Guide de pose d’une armoire.

NB : Le guide de pose d’une armoire est aussi un algorithme.


1.2.3. Exemple 3 : Comment cuire le riz ?
Pour préparer le riz il faut suivre les étapes indiquées dans la recette ci-après
tout en respectant l’ordre exprimé :
1. remplir une casserole d'eau ;
2. y ajouter une pincée de sel ;
3. la mettre sur le feu ;
4. attendre l'ébullition de l'eau ;
5. mettre le riz dans la casserole;
6. le laisser cuire 10 à 15 minutes ;
7. égoutter le riz.

Figure 3 : Recette de préparation du riz.

NB : La recette de préparation du riz est un algorithme.

Pr. Abderrahman CHEKRY Page 2 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

Dans le cadre de notre cours nous nous intéressons aux algorithmes appliqués
au domaine de l’informatique.
1.3. Algorithme VS Programme :
Un programme est une suite d’instructions exécutables par une machine
(ordinateur, tablette, Smartphone,…), tandis qu’un algorithme n'est pas exécutable
directement par aucune machine, mais il s’agit d’un travail de programmation à visée
universelle qui ne dépend pas du langage de programmation (Un langage de
programmation est un langage compris par l'ordinateur).
Un algorithme exprime les instructions résolvant un problème donné
indépendamment des particularités de tel ou tel langage (le même algorithme peut être
implémenté sous les langages de programmation Java, C++ ou bien sous d’autres
langages de programmation).
NB :
 L’élaboration d’un algorithme est une étape qui précède l’étape de la
programmation;
 La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier.
2. Représentation d’un algorithme
Historiquement, il existe deux façons pour représenter un algorithme :
2.1. Un organigramme:
Parfois appelé Algorigramme, Logigramme ou plus rarement Ordinogramme,
il représente un algorithme sous forme d’un graphe avec des symboles (carrés,
losanges, etc.) normalisé (il existe un consensus sur l’utilisation des symboles du
graphe afin que chacun comprend la même chose).

non oui
Conditi

Bloc 2 Bloc 1

Suite de l’algorithme
Figure 4 : Exemple d’un Organigramme.

Pr. Abderrahman CHEKRY Page 3 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

Un organigramme offre une vue d’ensemble de l’algorithme, mais cette


représentation est quasiment abandonnée aujourd’hui car il présente des difficultés de
lecture pour un algorithme d’une grande taille.
2.2. Un pseudo-code:
Il représente un algorithme sous forme d’un texte avec une série de
conventions ressemblant à un langage de programmation.




Si (condition est vraie) Alors
Bloc 1 d’instructions
Sinon
Bloc 2 d’instructions
FinSi


Figure 5 : Exemple d’un pseudo-code.

Un pseudo-code est plus pratique, plus facile pour écrire un algorithme, en plus
c’est la représentation la plus utilisée car elle est facile à traduire en un langage de
programmation.
3. Processus de la programmation :
Pour développer un programme informatique résolvant un problème donné, il
est préférable de suivre le processus (l’enchainement des étapes) suivant :

Figure 6 : Processus de la programmation.

Pr. Abderrahman CHEKRY Page 4 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

3.1. Réflexion et analyse :


Au moment de cette étape nous analysons le problème et nous réfléchissons
aux différentes instructions qui peuvent conduire à la résolution du problème, le
résultat de cette étape est un algorithme qui résout le problème.
3.2. Codification :
Cette étape appelée aussi « implémentation », durant laquelle nous traduisons
l’algorithme obtenu dans l’étape de « réflexion et analyse » en un programme
informatique exécutable sur une machine, alors le résultat de cette étape est un
programme informatique.
3.3. Exécution :
Durant cette étape nous exécutons le programme obtenu dans l’étape
« codification » sur une machine afin d’obtenir des résultats.
3.4. Découverte des erreurs :
Cette étape appelée aussi « test », qui permet de détecter les éventuelles
erreurs.
Dans le cas où les résultats ne sont pas corrects, il faut revoir l’étape de
« réflexion et analyse » afin de corriger l’algorithme obtenu et de corriger les autres
étapes conduisant aux résultats.
4. Structure d’un algorithme :

Figure 7 : Structure d’un algorithme.

NB : Les instructions d'un algorithme sont exécutées une par une et en


séquence : c’est-à-dire une à la suite de l'autre de haut vers le bas.

Pr. Abderrahman CHEKRY Page 5 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

Passons maintenant à l’explication des parties de la structure d’un algorithme :


5.1. Partie entête :
Dans cette partie nous précisons le nom de l’algorithme, nous utilisons le mot
clé Algorithme suivi de son nom.
Elle permet aussi d’identifier un algorithme et de donner au lecteur une idée
générale sur ce dernier, ce qui requiert de donner des noms significatifs aux
algorithmes, mais cette partie ne change rien dans son exécution.
5.2. Partie déclaration des variables et des constantes :
La majorité des algorithmes utilisent des données élémentaires pour la
résolution des problèmes. Ces données élémentaires sont sous forment de "variables"
ou de "constantes" qui sont précisées (déclarées) dans la partie déclaration.
5.2.1. Variable VS Constante:
Une variable est une donnée dont la valeur peut changer au cours de
l’exécution de l’algorithme (d’où le nom « variable ») tandis qu’une constante est une
donnée fixe qui garde toujours la même valeur.
Une variable et une constante possède les trois attributs suivants:
 L’identificateur: son nom, exemples : Nom, Note, Moy_cl;
 La valeur: son contenu, exemples : Ahmed, 13.25, 12.71;
 Le type : l’ensemble de ses valeurs.
NB :
 Pour écrire des algorithmes lisibles, il faut choisir des identificateurs
significatifs qui décrivent les données manipulées ;
 Un identificateur ne doit contenir que les caractères suivants: [a-z]
[A-Z] [0-9] et { _ };
 En plus un identificateur ne doit pas commencer par un chiffre.
5.2.2. Types des variables/constantes:
Le type sert à déterminer l’ensemble des valeurs qui peut prendre une variable
ou une constante.
Dans un algorithme on utilise généralement les types suivants :

Numériques :

- Entier : les nombres entiers relatifs appartenant à l'ensemble , il contient


des nombres positifs et négatifs. Exemples: -103, -80, -19, 0, 76, 2019 …

Pr. Abderrahman CHEKRY Page 6 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

- Réel : les nombres réels sont les nombres appartenant à l'ensemble , il


contient alors les nombres décimaux (ayant la virgule) positifs et négatifs. Exemples :
-345.45, -213, 0, 8.013 …

Alphanumériques:

- Caractère: ce type il ne peut contenir qu’un seul caractère : soit une lettre
majuscule, une lettre minuscule, un chiffre ou bien un symbole (caractères spéciaux ou
les lettres accentuées utilisées en français…). Exemples : ‘X’, ‘y’, ‘1’, ‘?’ , ‘é’ , ‘_’…
- Chaîne de caractères: contrairement aux caractères ce type peut contenir
une suite de caractères (plusieurs caractères) à la fois. Exemples : "Hello", "Ahmed",
"2020_@dut"…

Booléen:

Ce type contient uniquement les deux valeurs logiques VRAI ou FAUX.


NB :
Toute variable ou constante utilisée dans un algorithme doit avoir fait l’objet
d’une déclaration préalable.
Exemples de déclarations :
Constantes
PI←3.14 : réel
MAXI←32 : entier
Variables
i, j, k : entier
x, y : réel
OK: booléen
Ch1, ch2 : chaîne de caractères

Figure 8 : Exemples de déclaration des variables et des constantes.

5.3. Partie corps :


Dans cette partie nous exprimons les instructions qui seront exécutées par notre
algorithme, elle est délimitée par le mot clé Début qui indique le début de l’exécution
de l’algorithme et le mot clé Fin qui indique la fin de l’exécution de l’algorithme.
5. Instructions de base :
Dans cette partie nous présentons les différentes instructions de base utilisées
dans le corps d’un algorithme.

Pr. Abderrahman CHEKRY Page 7 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

6.1. Opérateurs et Expressions :


6.1.1. Un opérateur :
Un opérateur est un signe qui relie deux variables/valeurs pour produire un
résultat. Il dépend du type de l'opération, il peut être :
 Opérateurs arithmétiques: +, -, *, /, Div (division entière),
Mod (reste de la division entière), ^ (Puissance), SQRT (racine
carrée);
 Operateurs de comparaison: >, <, >= , <=, =, < > (diffèrent);
 Operateurs logique: And (et logique), Or (ou logique);
 Opérateurs sur les chaînes: & (concaténation).
6.1.2. Une expression
Une expression est un ensemble de variables/valeurs reliées par des opérateurs
dont la valeur du résultat de cette combinaison est unique.
Exemples :
10+6 x + 13 – y/3 nom & prenom
Où x et y sont des variables de type numériques et nom et prenom sont des
variables de type chaînes de caractères.
6.1.3. Priorité des opérateurs :
Pour les opérateurs arithmétiques donnés ci-dessus et les parenthèses, l'ordre
de priorité est le suivant:

Figure 9 : Priorité des opérateurs.

Par exemple, l’expression 10 * 6 + 2 donne comme résultat 62, mais en cas de


besoin, nous pouvons utiliser les parenthèses pour indiquer les opérations à effectuer
en priorité. Par exemple, 10 * (6 + 2) donne comme résultat 80.

Pr. Abderrahman CHEKRY Page 8 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

6.2. L’instruction de l’affectation:


L’instruction de l’affection est l’opération qui consiste à attribuer une valeur à

une variable. On la notera par le signe ←.

VARIABLE ← valeur
Figure 10 : Instruction de l’affectation.

NB :
L’instruction de l’affectation ne modifie que ce qui est à gauche de la flèche.
Si dans une instruction d’affectation, la variable à laquelle on affecte la valeur
et la valeur affectée ont des types différents, cela provoquera une erreur.
Nous pouvons aussi attribuer à une variable la valeur d’une autre variable ou
d’une expression de façon générale.
VARIABLE ← Expression
Figure 11 : Affectation d’une expression.

Dans ce cas, l’instruction d’affectation sera exécutée comme suit:


 D’abord, nous calculons la valeur de l’expression ;
 Puis nous affectons la valeur calculée à la variable à gauche.
Exemples :
A←5
Figure 12 : Exemple d’une affectation d’une valeur.

Dans cet exemple nous affectons à la variable A la valeur 5.


B←A*6+2
Figure 13 : Exemple d’une affectation d’une expression.

Dans cet exemple nous affectons à la variable B le résultat de l’expression


A* 6 + 2 qui donne la valeur 32.
Remarque :
- Lors d’une affectation, l’expression à droite est évaluée et la valeur trouvée est
affectée à la variable à gauche. Ainsi, A ← B est différente de B ← A.
- L'affectation est différente d'une équation mathématique :
 A+1←3 n'est pas possible en algorithmique et n'est pas
équivalente à A←2;
 Les opérations A←A+1 (noté aussi A++) et A←A-1 (noté
aussi A- -) ont un sens en algorithmique et se nomment
respectivement incrémentation et décrémentation.

Pr. Abderrahman CHEKRY Page 9 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

Application :

Quelles seront les valeurs des variables A, B et C après exécution des


instructions suivantes ?
Algorithme Affectation
Variables
A, B, C : Entier
Début
A←5
B←3
C←A+B
A←2
C←B–A
Fin
Figure 14 : Exercice : application de l’affectation.

Solution :

Instruction Valeur de "A" Valeur de "B" Valeur de "C"

A←5 5 ? ?
B←3 5 3 ?
C←A+B 5 3 8
A←2 2 3 8
C←B–A 2 3 1

6.3. Les instructions de Lecture et Ecriture:


Soit l’algorithme suivant :
Algorithme Calcul_Carre
VARIABLES
A : entier
Début
A ← 11* 11
Fin
Figure 15 : Exemple : algorithme sans instructions de lecture et d’écriture.

Cet algorithme calcul le carré de 11, si nous voulons calculer le carré d’un
autre nombre, nous devons à chaque fois réécrire l’algorithme en modifiant le nombre.
En plus l’algorithme n’affiche pas le résultat à l’utilisateur.

Pr. Abderrahman CHEKRY Page 10 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

Solution :
Les instructions de lecture et d'écriture permettent à la machine de
communiquer avec l'utilisateur, elles sont aussi appelées les instructions
d’entrées/sorties.

6.3.1. L’instruction de lecture :


La lecture (instruction d’entrée) permet d'entrer des donnés à partir du
clavier(le clavier est l’entrée standard pour un ordinateur).

Lire (NomVariable)
Figure 16 : Syntaxe de l’instruction de lecture.

Lorsqu’un programme arrive (rencontre) à une instruction Lire, l’exécution de


ce dernier s’interrompt, attendant la saisie d’une valeur au clavier. Dès que l’on
frappe la touche ENTER, l’exécution reprend.

6.3.2. L’instruction d'écriture :


L'écriture (instruction de sortie) permet d'afficher des résultats ou la valeur
d’une variable sur l'écran (l’écran est la sortie standard pour un ordinateur).
.
Ecrire (NomVariable)
Figure 17 : Syntaxe de l’instruction d’écriture pour afficher le contenu d’une variable.

Ecrire (Expression)
Figure 18 : Syntaxe de l’instruction d’écriture pour afficher le résultat d’une expression.

Ecrire ("Hello DUT")


Figure 19 : Syntaxe de l’instruction d’écriture pour afficher un texte.

NB :
Avant de lire une variable, il est préférable d’afficher des messages sur l’écran,
indiquant à l’utilisateur ce qu’il doit entrer.

Application :

Écrire un algorithme qui demande à l'utilisateur de saisir deux nombres entiers,


ensuite calcule et affiche leur somme.

Pr. Abderrahman CHEKRY Page 11 A.U 2020/2021


Chapitre 1 : Introduction à l’Algorithmique DUT : GI

Solution :

Algorithme Somme
Variables
A, B,: Entier
Début
Ecrire ("Entrer un entier A :")
Lire (A)

Ecrire ("Entrer un entier B :")


Lire (B)

Ecrire ( A,"+", B, "=", A+B)


Fin
Figure 20 : Solution : application de Lecture/Ecriture.

Pr. Abderrahman CHEKRY Page 12 A.U 2020/2021

Vous aimerez peut-être aussi