Vous êtes sur la page 1sur 18

J.

Ghassoun Algorithmique 2014-2015

III. Qu’est-ce que l’algorithmique?


a) Algorithmique et pseudo-code

Définition :
Un algorithme est une suite finie d'instructions à appliquer
dans un ordre bien déterminé dans le but de résoudre un problème
donné.
Remarque :
Un algorithme est indépendant du langage de programmation
dans lequel on va l’exprimer et de l’ordinateur utilisé pour le faire
tourner.
En programmation, le pseudo-code est une façon de décrire un
algorithme sans référence à un langage de programmation. Aucun
compilateur ne peut transformer ce pseudo-code en programme
exécutable. L'écriture en pseudo-code permet souvent de bien prendre
en compte la difficulté de la mise en œuvre de l'algorithme, et de
développer une démarche structurée dans la construction de celui-ci.
Ce pseudo-code sera ensuite traduit et codé dans le langage de
programmation désiré.

b) Langage de programmation
Définition:
On appelle langage de programmation, un ensemble fini de mots
(syntaxes) qui permettent de traduire les instructions de l’algorithme
afin de l’exécuter par l’ordinateur.
Exemple:
Turbo Pascal, Cobol, Fortran, C, Visual Basic (VB), C++, Java
etc...

1
J. Ghassoun Algorithmique 2014-2015

III. 2. Les étapes de résolution d’un problème


Pour résoudre un problème donné on doit suivre les étapes suivantes :
Etape-1: comprendre la nature du problème à résoudre (lire et
comprendre bien l’énoncé du problème à résoudre: analyse du
problème).
Etape-2:
1. définir les résultats du problème (préciser les données de
sortie (output)) ;
2. définir les données du problème (préciser les données
d’entrée (input)).
3. définir le traitement (les relations permettant d’obtenir les
résultats à partir des données (les actions)).
Etape-3:
ecrire l’algorithme en respectant la structure pseudo-code.

Figure : Processus de programmation.

III.3. Les éléments de base d’un algorithme


On peut considérer un algorithme comme une machine
fonctionnant en trois étapes :
1. les éléments dont on part : les entrées.
2. les instructions (actions) à effectuer sur ces éléments : le traitement
3. les résultats obtenus : les sorties.
a. Les entrées
Dans cette partie figure ce qu’on appelle l’entrée des données,
qui peut se manifester par la saisie de caractères ou de nombres sur le
clavier, ou encore par la lecture d’un fichier contenant ces nombres ou
ces caractères.
Remarque:
2
J. Ghassoun Algorithmique 2014-2015

Il est parfois utile d’utiliser des variables auxiliaires pour ne pas


perturber les données initiales.
b. Le traitement
Il s’agit de déterminer toutes les étapes des traitements à faire et
donc des ≪ instructions ≫ à donner. Si ces instructions s’exécutent en
séquence, on parle d’algorithme séquentiel.
c. Les sorties
Les résultats obtenus peuvent être affichés sur l’écran, ou
imprimés sur papier, ou bien conservés dans un fichier.

Exemple:
On veut écrire l’algorithme qui permet de calculer la surface
d’un disque.
Quelles sont les données d’entrée nécessaires à ce calcul ?
La variable R qui contiendra le rayon du disque.
Quels sont les traitements à effectuer sur les données d’entrée ?
Pour calculer la surface d’un disque, on utilise la formule
mathématique : S = PIxR2 ou encore S = PI x R x R. PI est une
constante valant environ 3.14159.
Quelles seront les données de sortie ?
La valeur de la variable S sera la surface du disque.

3
J. Ghassoun Algorithmique 2014-2015

III.4.Structure d’un algorithme


On peut présenter un algorithme à l’aide d’un pseudo-code ou
d’un organigramme. Un algorithme écrit en pseudo code est composé
de trois parties :
1) L’en-tête : nom de l’algorithme.
2) La partie déclarative: déclaration des variables et des
constantes (noms et types) que l’on va utiliser.
3) Le corps: opérations sur les données (algorithme proprement dit),
délimité par les mots début et fin.
Les opérations sur les données utilisent des « instructions » :
affectations, opérateurs arithmétiques ou de comparaison, structures
(alternatives, répétitives). L’ensemble des instructions constituent ce
qu’on appelle le « corps de l’algorithme »
Un algorithme a la structure suivante :

A) L’en-tête d’un algorithme


L’en-tête est constitué du mot Algorithme, suivi d’un nom
identifiant l’algorithme.
Exemple :
-Algorithme Factorielle
-Algorithme Moyenne_Notes
B) La partie déclarative d’un algorithme
La partie déclarative comprend une liste des variables et des
constantes utilisées et manipulées dans le corps de l’algorithme. Se
sont les données d’un Algorithme.
C) Le corps d’un algorithme et notion de bloc

4
J. Ghassoun Algorithmique 2014-2015

Le corps d’un d’algorithme est une suite d’instructions ou des


tâches à exécuter. On dit que des actions s'enchaînent
séquentiellement, quand la fin d'une action déclenche l'exécution de
l'action suivante. On appelle bloc d'actions, un ensemble d'actions
enchaînées séquentiellement. L'exécution de ce bloc ne peut
commencer que par la première action et ne peut se terminer que par
la dernière.
Notation:
Début
Instruction 1
Instruction 2 Bloc d'actions (ou d’instructions)

……
Instruction n
Fin
Remarque:
Le plus important pour un algorithme sont les déclarations ainsi
que les instructions qui constituent le corps de l’algorithme. Il existe
des instructions qui ne servent qu’à la clarté de l’algorithme
(l’ordinateur les ignore complètement), ce sont les commentaires.
Un commentaire a la syntaxe suivante :
/* ceci est un commentaire */
ou bien on peut utiliser, // Ceci est un commentaire

IV. Les données d’un algorithme


Les données sont des informations nécessaires au bon
déroulement d’un algorithme. Pour chaque algorithme, on distingue:
• les données d’entrée: ce sont les données fournies à l’algorithme.
• les données de sortie: ce sont les résultats produits par
l’algorithme.

5
J. Ghassoun Algorithmique 2014-2015

• les données intermédiaires: (compteurs, données de stockage


des résultats intermédiaires, etc.).
On distingue deux catégories : les constantes et les variables.

IV.1. Variables et constantes


Elles sont caractérisées par un identificateur, une valeur et un type.
IV. 1.1. Les variables
Dans un programme informatique, on va avoir en permanence
besoin de stocker provisoirement des valeurs. Il peut s’agir de données
issues du disque dur, fournies par l’utilisateur (saisies au clavier). Ces
données peuvent être de plusieurs types : elles peuvent être des
nombres, du texte, etc. Dès que l’on a besoin de stocker une
information au cours d’un programme, on utilise une variable.
c/c
Une variable est quelque chose qui varie (la valeur peut être modifiée
durant l'exécution du programme). Elle peut être considérée comme
une boite dans laquelle on met des données que l’on peut lire ou
écrire.
IV.1. 2. Déclaration des variables
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.
Une variable ne peut être utilisée que si elle est déclarée.
Remarque:
Lorsqu’on déclare une variable, on lui attribue un nom
(identificateur) et on lui réserve un emplacement mémoire. La taille
de cet emplacement mémoire dépend du type de la variable. C’est

6
J. Ghassoun Algorithmique 2014-2015

pour cette raison qu’on doit préciser lors de la déclaration le type de


la variable.
En pratique, il n’y a ni boite ni étiquette dans l’ordinateur, mais une
adresse de la variable (par ex : 10010111).
La déclaration se fait par la donnée du nom de la variable et du
type de la variable. La syntaxe est :
Variable Nom_Variable : Type
ou
Variables Nom_Variable1, Nom_Variable2,… : Type
Remarques
Chaque variable manipulée dans le corps du programme doit
être déclarée.
Les variables du même type peuvent être déclarées dans une
même ligne et séparées par des virgules.
Chaque ligne du corps du programme doit contenir une seule
instruction.
Exemple : Variable Age : entier
Variables A, B, C : réel
IV. 1.3. Les différents types de variables
Lorsqu’on déclare une variable, il ne suffit pas de créer une boîte
(réserver un emplacement mémoire); il faut préciser ce que l’on
voudra mettre dedans, car cela dépend de la taille de la boîte
(l’emplacement mémoire) et le type de codage utilisé. Nous pouvons
classer les données en trois grandes classes en fonction de la nature
des valeurs qu'elles peuvent prendre :
- les données numériques
- les données alphanumériques
- les données logiques (ou booléennes)
Les principaux types utilisés en algorithmique sont :
le type entier, exemple : age, numéro d’inscription….
le type réel, exemple : poids, taille, masse….

7
J. Ghassoun Algorithmique 2014-2015

le type caractère: lettres+chiffres+caractères spéciaux, exemple


: section d’études
le type chaîne de caractères, exemple : nom, prénom….
le type booléen (ou logique): peut prendre deux valeurs Vrai ou
Faux, exemple : pile ou face.
IV. 1.3. 1. Type numérique
Commençons par le cas très fréquent, celui d’une variable
destinée à recevoir des nombres. Généralement, les langages de
programmation offrent les types suivants :
a) Le type entier
Une variable est dite entière si elle prend ses valeurs dans Z
(ensemble des entiers relatifs). La syntaxe d’une déclaration est:
Variable nb_etudiant: entier
Variables i, j, k : entier
b) Le type réel
Le type réel comprend les variables numériques qui ont des
valeurs réelles.
Exemple : Variable note : réel
Variables x, y : réel
Remarque:
Le type de variable choisi pour un nombre va déterminer les
valeurs maximales et minimales des nombres pouvant être stockés
dans la variable. Par exemple, si on réserve un octet pour coder un
nombre (entier positif), on ne pourra coder que 28 = 256 valeurs
différentes. Si on réserve deux octets, on a droit à 216 =65 536
valeurs, etc.
IV. 1.3. 2. Type alphanumérique
On dispose donc également du type alphanumérique, également
appelé type caractère et type chaîne (en anglais, le type string). Dans
une variable de ce type, on stocke des caractères: lettres, de signes de

8
J. Ghassoun Algorithmique 2014-2015

ponctuation, d’espaces, ou même de chiffres. Un groupe de


caractères est appelé chaîne de caractères.
Exemple : Variable Opérateur : caractère
Variables nom, prénom : chaîne de caractères
En pseudo-code, une chaîne de caractères (ou texte) est écrite entre
guillemets (" ") (ex : "Bonjour !").
IV. 1.3. 3. Type booléen
Le dernier type de variables est le type booléen: on y stocke
uniquement les valeurs logiques Vrai ou Faux (en anglais (True ou
False).
Exemple: Variable etat : booléen
Le tableau suivant regroupe des exemples des différents types de
données.
Type de Numérique Alphanumérique Booléen
données Entier Réel Caractère Chaîne de
caractères
-121 -3 'A' ''Bonjour'' Vrai
Exemples 17 -12.36 '@' ''Mohamed'' Faux
2015 589. 3 '+'
'? '
Remarques :
- L'identificateur (nom de la variable), peut être composé de n'importe
quelle combinaison de lettres et de chiffres mais doit nécessairement
commencer par une lettre.
-Ne pas utiliser les mots clés du langage de programmation.
-Le nombre maximal de caractères qui composent le nom d’une
variable dépend du langage utilisé.
-Les lettres minuscules sont différenciées des majuscules ainsi somme
et SOMME sont deux identificateurs différents et peuvent être utilisés
dans le même programme.
IV. 2. Les constantes
9
J. Ghassoun Algorithmique 2014-2015

Une constante est une donnée fixe qui ne varie pas durant
l’exécution d’un algorithme. Une constante est caractérisée par son
nom et sa valeur (fixe). Les constantes sont déclarées comme suit :
Constante Nom _Constante ← valeur : type
Exemple :
Constante Pi ←3.14 : réel
Remarques :
-Parfois le type, des constantes, n’est pas forcément précisé
parce que la valeur qu’elles contiennent permet de savoir de quel type
elles sont.
-Toutes les variables et les constantes doivent être déclarées au
début de l’algorithme dans la section déclaration. Habituellement, on
sépare les constantes des variables en 2 sous-sections.
Exemple :
Algorithme exemple
// Déclaration
Constantes
PI ← 3.14
TVA ← 0.17
Variables
R : réel
i,j, k : entier
Nom, Prénom: chaînes de caractères
Début
…..Instructions…
Fin
V. Expressions et opérateurs
V .1. Expressions
Une expression est un ensemble de variables (ou valeurs) reliées
par des opérateurs et dont la valeur du résultat de cette combinaison
est unique. Les expressions peuvent être constituées de variables,
constantes, éléments de tableaux et références à des fonctions
combinés entre eux à l’aide d’opérateurs.

10
J. Ghassoun Algorithmique 2014-2015

Exemple :
5+4*x + 15 – y/2.
où x et y sont des variables numériques (réels ou entiers) .
V .2. Les opérateurs
Un opérateur est un signe qui relie deux variables pour produire
un résultat.
On distingue différentes catégories d’opérateurs:
• les opérateurs arithmétiques
• les opérateurs relationnels
• les opérateurs logiques
a) Opérateurs arithmétiques
Ils permettent d'écrire des expressions mathématiques mettant en jeu
des opérandes numériques. Exemple dans x+ y :
x est l’opérande gauche, + est l’opérateur ; y est l’opérande droite ;
x + y est appelé une expression.
Si par exemple x vaut 2 et y vaut 3, l’expression x + y vaut 5.

Opérateurs arithmétiques

Opération Signe Exemple

addition + s=a+b

soustraction - d=a-b

multiplication * p=a*b

division / q=a/b

Modulo (reste de la division) mod (ou % ) r = a mod b

Puissance ^ a=b^3

La division entière div a div b

11
J. Ghassoun Algorithmique 2014-2015

N.B :
Les opérateurs mod et div s’appliquent sur des données de type entier.
Exemple :
11 div 2 vaut 5
11 mod 2 vaut 1
11 / 2 vaut 5.5
11^2 vaut 121
b) Opérateurs relationnels ( ou de comparaison)
infériorité stricte <
infériorité large <=
supériorité stricte >
supériorité large >=
égalité =
inégalité < >
c) Opérateurs logiques
On distingue trois opérateurs logiques:
o le ET logique
o le OU logique
o le NON
Table de vérité : A et B sont deux variables booléennes.

Remarque:
- La valeur nulle ( 0 ) correspond à Faux
- Toute valeur non nulle correspond à Vrai.
Exemple :
- L’expression : 3 < 2 ET 3.14>2 est fausse
- L’expression : 3 >= 2 OU 3.14 < 2 est vraie
Lois de De Morgan :

12
J. Ghassoun Algorithmique 2014-2015

Les deux lois usuelles de logique qui sont particulièrement


importantes à connaître (voir les structures de contrôle) sont:
Non (A ET B) est identique à (Non A) OU (Non B)
Non (A OU B) est identique à (Non A) ET (Non B)
VI. Les instructions de base
VI.1. L’affectation
L’affectation est une opération qui consiste à attribuer une
valeur à une variable ou de changer sa valeur. Elle est représentée par
une flèche orientée à gauche. On la notera avec le signe ← .
Syntaxe :
Variable ← Valeur ; Variable ← Expression;
Variable1 ← Variable2 ou Variable ← constante.
A ← B se lit « A reçoit B »
Exemple :
Y ←2 // Y prend la valeur 2
X ←2*Y+1 // puis X la valeur 5 (* désigne le produit)
X ←3*X +2 // puis X prend la valeur 17
Remarque :
Le type de la valeur doit être du même type de la variable.
Exemple :
A ← 3 (A de type entier ou réel)
B ← 4*A+4.12 (B de type réel)
Lettre ← 'Z' (Lettre de type caractère)
Exemple :
A 3 signifie que le contenu de la variable A est 3,
après l'exécution de l'instruction.
Question : que se passe-t-il si la variable A contient déjà quelque chose ?
Réponse : le contenu de A sera effacé (écrasé, remplacé, perdu).
Exemple :
Algorithme puissance
Variable A : entier
Début
A 12^2
Fin
Cet algorithme nous donne le carré de 12 soit 144.

13
J. Ghassoun Algorithmique 2014-2015

Exercice :
Quelles seront les valeurs des variables A et B après exécution
des instructions suivantes ?
Algorithme exemple
Variables A, B : entier
Début
A←1
B←A+3
A←3
Fin
Réponse :
Instruction Valeur des variables après exécution
A←1 A=1 B= ?
B←A+3 A=1 B= 4
A←3 A=3 B= 4

VI.2. Instructions de lecture et d’écriture (Entrée/Sorties)


Pour bien, fonctionner, un algorithme doit en général acquérir
des données (entrées) sur un périphérique (exemple: clavier, disque) et
fournir en conséquence des résultats (sorties) sur un autre périphérique
(écran, imprimante). Les instructions d’Entrée/Sortie (ou de
Lecture/Ecriture) permettent d’introduire des données dans un
programme ou d’afficher des résultats à partir de celui-ci.

VI.2. 1. L’instruction d'entrée


L’instruction d’entrée ou de lecture permet à l’utilisateur de
saisir des données au clavier pour qu’elles soient utilisées par
l’algorithme.
Syntaxe : Lire (nom de la variable) ou Lire (identificateur)

Exemple : Lire (A)


Cette instruction permet à l’utilisateur de saisir une valeur au
clavier qui sera affectée à la variable A.
Lors d’une lecture, l’algorithme attend que l’utilisateur fournisse,
14
J. Ghassoun Algorithmique 2014-2015

à partir du clavier, les valeurs à affecter respectivement aux variables


dont les noms sont dans la liste de l’instruction Lire.
VI.2. 2. L’instruction de sortie
Instruction de sortie (d’écriture) permet d'afficher des
informations à l’utilisateur à travers l’écran.
Syntaxe : Ecrire (expression)
Expression peut être une valeur, un résultat, un message, le contenu
d’une variable…
Ecrire (variable)
Ecrire (''message'')
Ecrire (''message : '', variable)
Exemple :
Soit A est une variable.
Ecrire (A) : signifie afficher sur l’écran le contenu de la variable A.
Ecrire (''donnez votre nom : '') : signifie afficher sur l’écran le
message donnez votre nom :
Remarque :
On peut aussi afficher plusieurs messages et les contenus des
variables sur la même ligne :
Ecrire (''message1 :'', variable1, ''message2: '', variable2, …,''messagen: '',
variablen)
Exemple :
Ecrire un programme qui demande un nombre entier à
l’utilisateur, puis calcule et affiche le double de ce nombre.

15
J. Ghassoun Algorithmique 2014-2015

Figure : Instructions de lecture et d’écriture (Entrée/Sorties)


permettant le dialogue avec l'utilisateur.
Exemple :
Ecrire ('' Entrez trois valeurs : '')
Lire (A, B, C)
Somme ← A+B+C
Ecrire (''La somme vaut : '', Somme)
Ainsi, si l’utilisateur fournit les valeurs 12, 3 et 7, l’instruction Ecrire
affichera l’écriture suivante : La somme vaut : 22

Conseil: Avant de lire une variable, il est conseillé d’écrire des


messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit saisir.
Exercice : Un algorithme qui demande la valeur du rayon pour
calculer la surface d’un disque.
Rappel

Entête { A lg orithme nom de l' algorithme

 Constantes déclaratio n
Partie Déclarati ve 
 Variables déclaratio n

 Début
 Instructio n 1

 Instructio n 2
Corps 
 ...
 Instructio n n

 Fin

16
J. Ghassoun Algorithmique 2014-2015

Exemple :
Algorithme somme
Variables A, B, SOMME : entier
Début
Ecrire (''Entrer le premier nombre : '')
Lire (A)
Ecrire (''Entrer le deuxième nombre : '')
Lire (B)
SOMME ← A + B
Ecrire (''La somme de ces deux nombres est : '')
Ecrire (SOMME)
Fin

17
J. Ghassoun Algorithmique 2014-2015

Exemple :

Algorithme Somme
Variables A, B, S : entier
Début
Début
Ecrire (''Donner la valeur de A : '')
Lire (A) Ecrire (''Donner la valeur de A: '')
Ecrire (''Donner la valeur de B : '') Lire (A)
Lire (B) Ecrire (''Donner la valeur de B: '')
S←A+B Lire (B)
Ecrire ('' La somme est : '' , S)
Fin
S←A+B

Ecrire (''la somme est: '', S)

Fin

Organigramme
Remarque
Il existe certains caractères spéciaux (retour à la ligne, tabulation
etc..). Par exemple:
\n est un caractère spécial qui représente un retour à la ligne, cela est
plus commode pour l’affichage.
\t est un caractère spécial qui représente une tabulation horizontale.
Exemple :
Ecrire ('' Entrez trois valeurs : '')
Lire (A, B, C)
Somme ← A+B+C
Ecrire (''La somme vaut : \n'', Somme)
Ainsi, si l’utilisateur fournit les valeurs 12, 3 et 7, l’instruction Ecrire
affichera le message suivant : La somme vaut :
22

18

Vous aimerez peut-être aussi