Vous êtes sur la page 1sur 29

2 – Eléments de base d’un

algorithme

Notion d’objet
Types de données de base
 Expressions
Instructions élémentaires
Structure générale d’un algorithme

86
Notion d’objet
Un algorithme manipule des informations (données) pour produire
d’autres informations (résultats). Une information contenue dans un
algorithme est appelée objet.
L’ensemble des objets manipulés par un algorithme est appelé
environnement de l’algorithme.
Généralement à chaque objet correspond un emplacement en
mémoire. Un objet est caractérisé son adresse, son identificateur,
sa valeur, son type.
Adresse d’un objet
C'est l'adresse de l'emplacement correspondant à l'objet.
C’est un entier, affecté par le compilateur
Identificateur d’un objet
L'identificateur est une suite de caractères alphanumériques non
accentués, sans espace, commençant par une lettre.
C'est le nom donné à l'objet par le programmeur, permettant de sa
manipulation.
Le nom doit être unique et en rapport avec le contenu de l'objet.

87
Notion d’objet
Valeur d'un objet
C'est le contenu de l'objet (c’est à dire une valeur de l’information) à
un moment donné du déroulement de l'algorithme. Un objet ne peut
prendre qu'une valeur à un instant donné.
Au cours de l'exécution de l'algorithme, certains objets peuvent
changer de valeur: ce sont des variables ; d’autres objets au
contraire ne seront pas modifiables. Ce sont des constantes.
La manipulation d'un objet concerne sa valeur.
Type d'un objet
Le type d’un objet est la nature, la catégorie de l'objet. Le type d'un
objet détermine:
L'ensemble des valeurs que peut prendre l'objet.
La taille de l'objet c'est à dire de l'emplacement correspondant.
Les opérations applicables à l'objet
On distingue généralement deux catégories de types :
Les types élémentaires (ou simples ou de base): un type est dit
élémentaire si les actions qui manipulent un objet de ce type ne
peuvent l'accéder que dans sa totalité.
Les types structurés (ou complexes) qui sont définis à partir
d'autres types et dont les objets peuvent être accédés en partie 88
Types de données de base
Type Ensemble Constantes Opérateurs
Suite chiffres précédée ou -, +, -, *, div, mod, 
entier 
non de + ou - <, >, =, , ≥, ≤
5, 3.5, -10.67,… -, +, -, *,/, 
réel IR
-5.698e -12, 25e7,… <, >, =, , ≥, ≤
non, et, ou, xor
booléen {.vrai., .faux.} .vrai., .faux.
<, >, =, , ≥, ≤
caractère Ensemble de symboles Symbole entre quote () <, >, =, , ≥, ≤

Table de vérité
C1 C2 NON C1 C1 ET C2 C1 OU C2 C1 XOR C2
.VRAI. .VRAI. .FAUX. .VRAI. .VRAI. .FAUX.
.VRAI. .FAUX. .FAUX. .FAUX. .VRAI. .VRAI.
.FAUX. .VRAI. .VRAI. .FAUX. .VRAI. .VRAI.
.FAUX. .FAUX. .VRAI. .FAUX. .FAUX. .FAUX.

89
Expressions
Définition
Une expression est une suite bien formée d'opérateurs
portant sur des objets (variables ou constantes), des
constantes littérales, des appels de fonctions, appelés
opérandes, et qui a une valeur.
Une expression représente en fait un calcul que
l'ordinateur doit mener pour obtenir une valeur.
La valeur d'une expression est généralement utilisée:
affichée, affectée, utilisée pour appeler un sous-
programme ou dans une autre expression, ...
On peut utiliser des parenthèses dans une expression
pour former l'ordre d'évaluation dans l'expression.
90
Expressions
Priorité des opérateurs dans une expression
L’ordre d’exécution des différentes opérations dans une
expression:
1) Les parenthèses et on commence par les plus internes.
2) 
3) NON logique, et – (changement de signe)
4) *, /, MOD , DIV , ET logique
5) + , - , OU logique
6) ≠ , ≤, <, ≥, >, =
7) En cas d’égalité des priorités, on commence par
l’opérateur le plus à gauche.
Exemple:
Donner l’ordre d’évaluation des expressions suivantes :
a + 12 - 14 * 4 / 13 * ( c + 1 – ( b + 5 ) )
b*b-4*a*c
-9 + 5 * 6 / 2 91
Expressions
Type d’une expression
Le type d'une expression est le type de sa valeur. Ainsi on
distingue des expressions:
entières (type entier)
réelles (type réel)
numériques (type réel ou entier)
booléennes ou logiques (type booléen)
Exemple:
si a = 1; b = 2; c = 3
(b > 8) ou (c < 1) ?
(b > 0) ou (c > 1) ?
(b > 9) ou (c > 1) ?
(b > a) et (c > b) ?
(b > a) et (c < 0) ?
non (c < a) ?
non ((b > a) et (c > b)) ?
((b > a) et (c > b)) ou (a < 0) ?
92
Instructions élémentaires
Une action élémentaire est une action atomique dont est
capable l'ordinateur. Une instruction élémentaire est une
instruction d'action élémentaire.
Calcul
 Pour amener l’ordinateur à faire un calcul, il faut lui soumet une expression
Déclaration d’objet
La déclaration d'un objet est l'association d'un nom avec un objet
c'est à dire avec un emplacement.
Syntaxe en pseudo code
CONST<nom_const><val>:<type_const>;
VAR < nom_var1>, ..., <nom_varn>: <type_var>;
Fonctionnement
La première instruction va réserver en mémoire un emplacement, lui
donner le nom <nom_const> et y placer la valeur <val> qui ne changera
plus.
La deuxième instruction va réserver en mémoire des emplacements
destinés à contenir des valeurs de type <type_var>, et dont les noms
sont respectivement <nom_var1>, ..., <nom_var n>
Remarque: Tout objet avant d'être manipulé doit être déclaré.
93
Instructions élémentaires
Déclaration d’objet
La déclaration d'un objet est l'association d'un nom avec un objet
c'est à dire avec un emplacement.
Exemples
 Exemple 1: Déclarer les objets nécessaires au calcul de la
résistance équivalente de trois résistances dans un montage en
parallèle
1°) Déterminons l’environnement du traitement
Catégorie objet Type signification
Résultat Req Réel Résistance équivalente des trois résistances
R1 Réel 1ère résistance montée
Données R2 Réel 2è résistance montée
R3 Réel 3è résistance montée

2°) Déclaration des objets


VAR Req, R1, R2, R3: REEL;

94
Instructions élémentaires
Déclaration d’objet
La déclaration d'un objet est l'association d'un nom avec un objet
c'est à dire avec un emplacement.
Exemples
 Exemple 2: Déclarer les objets nécessaires au calcul de l’aire d’un
cercle de rayon donné
1°) Déterminons l’environnement du traitement
Catégorie objet Type signification
Résultat aire Réel L’aire d’un cercle de rayon connu
PI Réel Constante de calcul des aires fixée à 3,14
Données
rayon Réel Rayon du cercle

2°) Déclaration des objets


CONST PI 3.14 : REEL;
VAR aire, rayon: REEL;

95
Instructions élémentaires
Affectation
L'affectation consiste à placer une valeur dans une
variable. Le contenu précédent de la variable est
définitivement perdu.
Syntaxe en pseudo code
<nom_var><expression>;
Fonctionnement
L'instruction d'affectation s'exécute en deux étapes:
Evaluation de l'expression <expression>.
Assignation du résultat dans la variable <nom_var>.
L'expression et la variable doivent être de types
compatibles.
96
Instructions élémentaires
Affectation
Exemples
 Exemple 1: Ecrire la séquence d’instructions permettant de
l’aire du cercle de rayon 5,2.
CONST PI 3.14 : REEL;
VAR aire, rayon: REEL;
rayon  5.2;
aire  PI*rayon*rayon;

 Exemple 2: Ecrire la séquence permettant de permuter le


contenu de deux variables.
VAR x, y, tmp: ENTIER;
tmp  x;
x  y;
y  tmp;
97
Instructions élémentaires
Instructions d’entrée/sortie
Les instructions d’entrée/sortie permettent au programme
de communiquer avec l’extérieur.

Utilisateur
Ordinateur

Lecture de données
La lecture consiste à lire (à récupérer) une information
saisie depuis le clavier de l'ordinateur, à la convertir en
binaire et à la ranger en mémoire centrale dans une
variable.
L'instruction de lecture de données permet donc de
communiquer des données à l'algorithme.

98
Instructions élémentaires
Instructions d’entrée/sortie
Lecture de données
Syntaxe en pseudo code
Lire(<nom_var>);
Fonctionnement
L'instruction de lecture suspend le déroulement de
l'algorithme jusqu'à ce que l'utilisateur ait fini de taper au
clavier une valeur et assigne la valeur entrée à la variable
<nom_var>. Le type de la variable détermine ce que l'on
entre au clavier (entier, réel, ...).
Remarque:
On peut généraliser la syntaxe pour permettre la lecture de
plusieurs variables à la fois: Lire(<var1>,..., <varn> );
Comme pour l'affectation, on ne peut lire que des variables.
Toute variable déclarée doit être initialisée, c'est à dire recevoir une
valeur, avant son utilisation. L'initialisation s'effectue généralement au
début de l'algorithme, juste après les déclarations, sous forme de
simple affectation ou d'une lecture au clavier.
99
Instructions élémentaires
Instructions d’entrée/sortie
Ecriture de données
L'écriture de données consiste à communiquer sur l'écran
des résultats sous une forme directement compréhensible
par l'utilisateur.
Syntaxe en pseudo code
Ecrire(<expression>);
Fonctionnement
L'instruction va évaluer l'expression <expression> puis
afficher le résultat à l'écran.
Remarque:
On peut généraliser la syntaxe afin de permettre l'écriture
de plusieurs expressions: Ecrire(<exp1>, ..., <exp n>);

100
Instructions élémentaires
Instructions d’entrée/sortie
Exemple: Calculer et afficher les résistances équivalentes de trois résistances
montées respectivement en série et en parallèle.
A) Environnement du traitement
Catégorie objet Type signification
Reqs Réel Résistance équivalente des trois résistances en série
Résultats
Reqp Réel Résistance équivalente des trois résistances en parallèle
R1 Réel 1ère résistance montée
Données R2 Réel 2è résistance montée
R3 Réel 3è résistance montée

B) Logique de traitement
1° Obtenir R1, R2, R3
2° Calculer Reqs par Reqs = R1 + R2 + R3

3° Calculer Reqs par =

4° Afficher Reqs et Reqp

101
Instructions élémentaires
Instructions d’entrée/sortie
Exemple: Calculer et afficher les résistances équivalentes de trois résistances
montées respectivement en série et en parallèle.

C) Séquence d’instructions algorithmiques permettant le calcul et l’affichage des résistances


équivalentes
VAR Reqs, Reqp, R1, R2, R3: REEL;

ECRIRE(Entrer la première résistance :);


LIRE(R1);
ECRIRE(Entrer la deuxième résistance :);
LIRE(R2);
ECRIRE(Entrer la troisième résistance :);
LIRE(R3);
Reqs  R1 + R2 + R3;
Reqp  R1*R2*R3/(R1*R2 + R1*R3 + R2*R3);
ECRIRE(La résistance en série est : , Reqs);
ECRIRE(La résistance en parallèle est : , Reqp);

102
Instructions élémentaires
Appel de sous-programme
Un sous-programme est un ensemble d’instructions
nommé destinant à la réalisation d’une tache précises.
L'appel de sous-programme consiste à lancer l'exécution
des instructions du sous-programme, éventuellement
après lui avoir fourni des données appelées paramètres
Syntaxe en pseudo code
<nom_spr>([<par1>, ..., par n>])
On supposera disponibles les fonctions mathématiques:
alea(min, max) : retourne un nombre pseudo-aléatoire entre min et
max inclus, nombres entiers
sinus(angle) : retourne le sinus d’un angle exprimé en radians
cosinus(angle) : retourne le cosinus d’un angle exprimé en radians
racine(nombre) : retourne la racine carrée d’un nombre réel
puissance(nombre, exposant) : retourne la valeur de nombre élevée
à la puissance de exposant
103
Instructions élémentaires
mier point Appel
de sous-programme
 Exemple: Ecrire une suite d’instructions qui demande les coordonnées de
deux points dans le plan, calcule et affiche à l’écran la distance entre ces deux
points.
A) Environnement
Catégorie objet Type signification
Résultat distance Réel La distance entre deux points du plan
x1 Réel L’abscisse du premier point
y1 Réel L’ordonnée du premier point
Données
x2 Réel L’abscisse du deuxième point
y2 L’ordonnée du deuxième point

B) Logique de traitement

1° Obtenir x1, y1, x2, y2

2° Calculer distance par = − + −

3° Afficher distance

104
Instructions élémentaires
mier point Appel
de sous-programme
 Exemple: Ecrire une suite d’instructions qui demande les coordonnées de
deux points dans le plan, calcule et affiche à l’écran la distance entre ces deux
points.
C) Séquence d’instructions algorithmiques permettant le calcul et l’affichage de la distance de
deux points
VAR x1, y1, x2, y2, distance: REEL;

ECRIRE(Entrer l’abscisse du premier point:);


LIRE(x1);
ECRIRE(Entrer l’ordonnée du premier point:);
LIRE(y1);
ECRIRE(Entrer l’abscisse du deuxième point:);
LIRE(x2);
ECRIRE(Entrer l’ordonnée du deuxième point:);
LIRE(y2);
distance  racine(puissance(x2-x1,2), puissance(y2-y1,2);
ECRIRE(La distance entre ces points est : , distance);
105
Instructions élémentaires
Commentaire
Le commentaire est l'indication d'un texte à ignorer lors de
la traduction de l'algorithme.
Syntaxe en pseudo code
(* <texte à ignorer>*)

 Exemple
Un démarcheur à domicile est rémunéré avec un salaire
fixe de 100000 FCFA par mois. Il perçoit aussi une
commission qui représente 5% du montant des ventes qu'il
a réalisées. Le salaire ainsi obtenu (fixe et commission) est
augmenté de 10 % pour prendre en compte ses frais de
déplacement. Calculer et afficher son salaire en fonction
d'un montant des ventes réalisées qui sera demandé.
106
Instructions élémentaires
Commentaire
 Exemple
A) Environnement
Catégorie objet Type signification
Résultat salaire Réel Le salaire du démarcheur
SALFIXE Réel Le salaire fixe du démarcheur fixé à 100000
TAUXCOM Réel Le taux de la commission fixé 5%
Données
TAUXDEP Réel Le taux des frais de déplacement fixé à 10%
mntVente Réel Le montant des ventes réalisées

Données de mntCom Réel Le montant de la commission


travail (ou salBrut Réel Le salaire brut(fixe + commission)
intermédiaires) mntFrais Réel Le montant des frais de déplacement
B) Logique de traitement
1° Obtenir mntVente
2° Calculer mntCom par mntCom = TAUXCOM x mntVente
3° Calculer salBrut par salBrut = SALFIXE + mntCom
4° Calculer mntFrais par mntFrais = TAUXDEP x salBrut
5° Calculer salaire par salaire = salBrut + mntFrais
6° afficher salaire 107
Instructions
Commentaire élémentaires
 Exemple
C) Séquence d’instructions algorithmiques permettant le calcul et l’affichage du salaire

(* Déclaration de l’environnement *)
CONST SALFIXE  100000: REEL;
TAUXCOM  0.05: REEL;
TAUXDEP  0.1: REEL;
VAR salaire: REEL; (* Salaire net du démarcheur *)
mntVente, mntCom, salbrut, mntFrais: REEL;
(* Traduction de la logique de traitement sous forme d’indications pour l’ordinateur *)
ECRIRE(Entrer le montant des ventes réalisées:);
LIRE(mntVente);
mntCom  TAUXCOM * mntVente ;
salbrut  SALFIXE + mntCom ;
mntFrais  TAUXDEP * salBrut ;
salaire  salBrut + mntFrais ;
ECRIRE(Le salaire est : , salaire);

108
Structure générale d’un algorithme
ALGORITHME <nom_algo> Entête
CONST - - - - - - - - - -
TYPE - - - - - - - - - - - - Déclaration: description des objets
VAR - - - - - - - - - - - -
DEBUT
-------------
-------------
Corps: description des actions que
------------- l’ordinateur doit effectuer sur les objets
-------------
FIN

109
Structure générale d’un algorithme
Exemple: L’algorithme permettant le calcul et l’affichage du salaire
ALGORITHME salaire
CONST SALFIXE  100000: REEL;
TAUXCOM  0.05: REEL;
TAUXDEP  0.1: REEL;
VAR salaire: REEL; (* Salaire net du démarcheur *)
mntVente, mntCom, salbrut, mntFrais: REEL;
DEBUT
ECRIRE(Entrer le montant des ventes réalisées:);
LIRE(mntVente);
mntCom  TAUXCOM * mntVente ;
salbrut  SALFIXE + mntCom ;
mntFrais  TAUXDEP * salBrut ;
salaire  salBrut + mntFrais ;
ECRIRE(Le salaire est : , salaire);
FIN

110
Structure générale d’un algorithme
rappEl: EtapEs dE construction d’un algorithmE
I. Détermination de l’environnement
Il s’agit de décrire les objets (informations) nécessaires à la réalisation du traitement, en
les classant en objets en résultats ou en sortie, en objets en données ou en entrée, et en
objets intermédiaires ou de travail. La détermination de l’environnement est le résultat de
l’étape de spécification

II. Détermination de la logique de traitement


Il s’agit de déterminer les actions à faire (et leur ordre) afin réaliser le traitement. La
logique résulte de l’étape d’analyse

III. Rédaction de l’algorithme


Il s’agit de donner des indications, des instructions à l’ordinateur pour l’amener à faire les
actions déterminées dans la logique de traitement. Ces instructions sont exprimées en
pseudo codes et présentés sous la structure générale ci-dessus. La rédaction de
l’algorithme est le résultat de l’étape de conception

111
Structure générale d’un algorithme
Exercice 1:
On veut écrire l’algorithme permettant de calculer et d’afficher le
salaire net d’un employé sachant que :
Le salaire net = Salaire brut – Valeur de l’impôt – Valeur de CNSS
Salaire brut = (Salaire de base + Prime de technicité + Prime de
transport + Prime des enfants) * Taux de travail
Taux de travail = Nombre de jours travaillés / 26
Prime des enfants = Prime d’un enfant * Nombre d’enfants
Valeur de l’Impôt = Taux de l’Impôt * Salaire Brut
Valeur de CNSS = Taux de CNSS * Salaire Brut
Taux CNSS = 26,5%
Taux Impôt = 2%
1°) Donner l’environnement de l’algorithme
2°) Donner la logique du traitement
3°) Rédiger l’algorithme
112
Structure générale d’un algorithme
Exercice 2:
Dans une école un étudiant passe quatre matières à l’examen :
1ère matière écrite : coefficient =3
2ème matière écrite : coefficient =2
1ère matière orale : coefficient =4
2ème matière orale : coefficient =5
Le coefficient de l’écrit est 6, celui de l’oral est 1 dans le calcul de la
moyenne générale.
On veut écrire un algorithme permettant d’entrer toutes les notes et de
calculer et d’afficher la moyenne de l’écrit, celle de l’oral et la moyenne
générale.
1°) Donner l’environnement de l’algorithme
2°) Donner la logique du traitement
3°) Rédiger l’algorithme 113
Structure générale d’un algorithme
Exercice 3:
On souhaite écrire un algorithme qui transforme en heures, minutes et
secondes chacun des deux nombres nbs1 et nbs2 représentant deux
temps exprimés en secondes, et qui calcule et affiche leur somme à
partir des transformations effectuées.

1°) Donner l’environnement de l’algorithme


2°) Donner la logique du traitement
3°) Rédiger l’algorithme

114

Vous aimerez peut-être aussi