Chapitre 1 - Introduction à lalgorithmique L2 MPI634-1

Chapitre 1 – INTRODUCTION A L'ALGORITHMIQUE
1. Notion d'algorithme
Un algorithme est la description d'une méthode de résolution d'un problème. Cette
description est sous la forme d'un ensemble d'instructions à exécuter pour aboutir à la
solution. Par exemple, un algorithme pour trouver le plus grand diviseur commun (pgdc) de
deux entiers est : retrancher le plus petit au plus grand tant que les deux entiers sont
différents; l'entier final obtenu est le pgdc. Si on exécute cet algorithme avec les nombres
(84 , 36), on aura les résultats intermédiaires (48 , 36 ) , (12, 36 ), (12 , 24 ) et le résultat
final (12, 12 ). Le pgdc de 84 et 36 est donc 12.
2. Représentation d’un algorithme
La représentation d'un algorithme doit se faire en utilisant une notation simple de manière à
ce qu’elle soit compréhensible de tous. Le langage algorithmique, aussi appelé pseudo-
langage, est la notation la plus simple. C'est un langage proche du langage courant mais qui
n'est pas standardisé, c'est pourquoi on peut rencontrer des différences selon les auteurs.
Un algorithme peut aussi être représenté en utilisant des symboles graphiques pour décrire
la suite d'instructions à exécuter. La représentation graphique est intéressante mais
seulement pour des algorithmes de petite taille. Un long algorithme nécessiterait un espace
important pour la représentation des symboles graphiques et ne serait ainsi pas très lisible.
Un algorithme peut également être représenté en utilisant un langage de programmation. Il
correspond alors à un programme informatique qu'un ordinateur pourra exécuter.
3. Les acteurs autour d’un algorithme
A priori, on peut distinguer deux acteurs : le concepteur de l'algorithme et l'exécutant.
Le concepteur de l'algorithme est une personne qui connaît la solution du problème à
résoudre et la décrit sous la forme d'un ensemble ordonné d'instructions.
L'exécutant est une personne ou une machine (un ordinateur par exemple) qui exécute les
instructions de l'algorithme pour aboutir à la solution du problème.
Dans le cas où l'exécutant est un ordinateur, il intervient souvent un troisième acteur appelé
utilisateur qui est une personne qui interagit avec l'ordinateur en lui fournissant des
informations et en recevant les résultats de l'exécution qui peuvent être des informations
affichées à l'écran. A noter qu'une même personne peut être concepteur puis utilisateur d'un
algorithme.
4. Les données d'un algorithme
Un algorithme de résolution d'un problème agit sur des informations également appelées
données et qui peuvent être de plusieurs types. Un type permet de caractériser des données
de même nature en déterminant les valeurs possibles pour ces informations ainsi que les
opérations qu'on peut leur appliquer.
Dr. Djamal Seck / L2 MPI 2018-2019 Chapitre 1 – Introduction à l'algorithmique 1 / 6
4-1. Les types de données de base
On distingue les types données de base suivants:
- entier ( valeurs possibles : les nombres entiers positifs ou négatifs)
- réel ( valeurs possibles : les nombres réels positifs ou négatifs)
- caractère ( valeurs possibles : lettre, chiffre, ponctuation, espace, etc. )
- chaîne (valeurs possibles : toute suite de 0 , un ou plusieurs caractères)
- booléen ( valeurs possibles : VRAI, FAUX)
Remarque
Une valeur de type caractère doit être entre apostrophes. Par exemple: 'A' , '3'
Une valeur de type chaîne doit être entre guillemets. Par exemple: "Bonjour" , "A"
4-2. Les variables et les constantes
Les variables et les constantes servent à contenir des informations utilisées dans un
algorithme. Une variable ou une constante est caractérisée par :
- un identificateur, qui est un nom unique qui permet de la désigner,
- un type, qui correspond au type de l'information qu'elle contient,
- une valeur, c'est à dire l'information qu'elle contient.
La valeur d'une variable peut être modifiée dans un algorithme contrairement à celle d'une
constante. Mais avant de les utiliser dans un algorithme il faut d'abord les déclarer.
On déclare une variable en donnant son identificateur et son type selon la syntaxe suivante :
id_variable : type
Un identificateur peut contenir des lettres, des chiffres et le caractère _ (souligné). Mais le
premier caractère ne peut pas être un chiffre.
Exemple
a : entier
On peut initialiser une variable (lui affecter une première valeur) lors de sa déclaration.
On peut aussi déclarer en même temps plusieurs variables de même type.
Exemple
x = 5 , y , z : entier
Pour déclarer une constante, on utilise la syntaxe suivante :
id_constante = valeur : type
Exemple
N = 100 : entier
5. Les opérations sur les données
Dans un algorithme, les opérations qu'on peut appliquer sur les donnéespendent de leurs
types. On distingue les opérations suivantes:
Dr. Djamal Seck / L2 MPI 2018-2019 Chapitre 1 – Introduction à l'algorithmique 2 / 6
- Opérations arithmétiques ( pour les types entier et réel ) :
addition ( + ) , soustraction ( - ) , multiplication ( × ) , division réelle ( / ) , division
entière ( div ) , modulo ( mod )
- Opérations de comparaison ( pour tous les types de base ) :
inférieur ( < ) , inférieur ou égal ( ), supérieur ( > ) , supérieur ou égal ( ) , égal
( == ) , différent ( ≠ )
- Opérations logiques ( pour le type booléen ) :
ET logique ( ET ) , OU logique ( OU ) , Négation ( NON )
Remarques
La division entière avec l'opérateur div est réservée aux nombres entiers et donne comme
résultat un nombre entier. Par exemple, 7 div 2 donne 3
L'opération modulo avec l'opérateur mod donne le reste de la division entière. Par exemple,
7 mod 2 donne 1
Les opérations de comparaison et les opérations logiques donnent comme résultat soit la
valeur VRAI soit la valeur FAUX.
L'opération logique ET est une opération binaire qui donne le résultat VRAI seulement si
ses deux membres ont pour valeur VRAI.
L'opération logique OU est une opération binaire qui donne le résultat VRAI si au moins un
de ses deux membres a pour valeur VRAI.
L'opération logique NON est une opération unaire qui donne le résultat FAUX si son unique
membre a pour valeur VRAI et le résultat VRAI dans le cas contraire.
6. Représentation d’un algorithme en pseudo-code
En pseudo-code, un algorithme est structuré de la manière suivante :
Algorithme Nom de l'algorithme
Constante
// Déclaration des constantes
Début
Variable
// Déclaration des variables
Instructions
Fin
On peut mettre des commentaires sur une ligne après les symboles // ou sur plusieurs lignes
entre les symboles /* et */.
Un commentaire ne fait pas partie d'un algorithme mais permet d'en faciliter la
compréhension.
Dr. Djamal Seck / L2 MPI 2018-2019 Chapitre 1 – Introduction à l'algorithmique 3 / 6
7. Les instructions de base
7-1. L’affectation
Avec l'instruction d'affectation l'ordinateur donne à une variable la valeur d'une expression.
Elle se fait avec l'opérateur = selon la syntaxe suivante :
id_variable = expression
où expression est:
- soit un identificateur de variable ou de constante ( par exemple : a , PI, r, age)
- soit une valeur (par exemple : 45, 'A', "bonjour"),
- une opération, c'est à dire une combinaison d'identificateurs, de valeurs et
d'opérateurs (par exemple : 2 × r × PI)
Une expression possède un type et une valeur. Par exemple, si r est une variable qui vaut 5.0
et PI une constante qui vaut 3.14 alors l'expression 2 × r × PI est de type réel et vaut 31.4
Avec l'instruction d'affectation, l'ordinateur évalue d'abord l'expression puis donne la valeur
trouvée à la variable. Ceci revient à remplacer l'ancienne valeur de la variable par la valeur
de l'expression.
Exemple
Variable
x , y : entier
x = 5 // x reçoit la valeur 5
y = x – 2 // y reçoit la valeur 3
x = x + 1 // x reçoit la valeur 6
Remarques
- A gauche de l'opérateur d'affectation doit se trouver l'identificateur de la variable à qui
l'ordinateur doit donner la valeur de l'expression située à droite. Ainsi, par exemple, les
instructions x – 2 = y et 5 = x n’ont pas de sens.
- L’instruction x = x + 1 a un sens car l'ordinateur évalue d'abord x + 1 avec la valeur de x
avant l'affectation et donne ensuite le résultat à x.
7-2. L'écriture
Avec l'instruction d'écriture, l'ordinateur affiche à l'écran des valeurs d'expressions. Sa
syntaxe est la suivante:
Ecrire( expression1 , expression2 , … , expressionN )
Exemple
Variable
a = 5 , b = 2 : entier
Ecrire( "La valeur de a est " , a , "et celle de b est " , b )
Dr. Djamal Seck / L2 MPI 2018-2019 Chapitre 1 – Introduction à l'algorithmique 4 / 6
7-3. La lecture
Avec l'instruction de lecture, l'ordinateur reçoit une ou plusieurs valeurs entrées au clavier
par l'utilisateur dans des variables données en paramètre. Sa syntaxe est la suivante:
Lire( id_variable1 , id_variable2 , … , id_variableN )
Il est conseillé de précéder l’instruction de lecture par une instruction d'écriture pour
l'affichage d'un message invitant l'utilisateur à entrer une ou des valeurs.
Exemple
Variable
x , y, z : entier
Ecrire( "Donnez un entier" )
Lire( x ) // x va contenir l'entier donné par l'utilisateur
Ecrire( "Donnez deux autres entiers" )
Lire( y , z ) // y et z vont contenir les deux entiers donnés par l'utilisateur
Ecrire( "Vous avez donné " , x , " puis " , y , " puis " , z )
8. Exemples d'algorithme
Exemple 1
Etant données deux variables x et y, on veut donner à x la valeur de y et à y celle de x.
Si on commence par l'instruction x = y on va perdre la valeur de x.
Idem, si on commence par l'instruction y = x on va perdre la valeur de y.
La solution consiste à utiliser une troisième variable pour garder d'abord la valeur de x.
Ensuite, on affecte à x la valeur de y. Enfin, on affecte à y la valeur de la troisième qui est
celle de x qu'on y avait gardée. D'où l'algorithme suivant:
Algorithme Echange
Début
Variable
x , y, tmp : entier
Ecrire( "Donnez les valeurs respectives des deux entiers x et y : " )
Lire(x , y)
Ecrire( "Avant échange : x vaut ", x , " et y vaut : " , y )
tmp = x
x = y
y = tmp
Ecrire( "Après échange : x vaut ", x , " et y vaut : ", y )
Fin
Dr. Djamal Seck / L2 MPI 2018-2019 Chapitre 1 – Introduction à l'algorithmique 5 / 6
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !