Les algorithmes Un algorithme est une suite ordonnée d`instructions

publicité
1 / 13
Les algorithmes
Un algorithme est une suite ordonnée d’instructions ou d’opérations dont l’application permet
de résoudre un problème ou d’obtenir un résultat.
A l’origine, les algorithmes sont des outils utilisés pour résoudre des problèmes de
mathématiques (ce sont des méthodes de calcul et de résolution d’équations).
En informatique, les algorithmes sont utilisés pour concevoir des programmes pour les
ordinateurs. Un programme informatique (un logiciel ou une fonction d’un logiciel) permet à
l’ordinateur de traiter des données afin d’obtenir le résultat souhaité. Les algorithmes
décrivent les traitements à effectuer par l’ordinateur. Ils constituent une étape préalable de
réflexion avant l’écriture d’un programme dans un langage informatique de programmation
(par un informaticien).
I- La structure générale d’un algorithme
Un algorithme n’est pas un langage informatique, il n’y a pas de règles strictes lors de la
rédaction d’un algorithme. Il s’agit toutefois d’un langage structuré avec des mots clés et des
règles de présentation communément admises.
Un algorithme est généralement constitué de deux parties : la déclaration des variables et le
corps de l’algorithme.
A) La déclaration (ou définition) des variables (et des constantes)
Une variable est une donnée qui peut prendre des valeurs différentes au cours de l’exécution
de l’algorithme (exemple : le CA annuel réalisé avec chaque client).
On distingue deux catégories de variables :
•
Les variables d'entrée : ce sont les données de départ, on les fournit au programme pour
qu’il puisse exécuter les traitements attendus. Elles sont saisies ou lues dans un fichier
existant.
•
Les variables de sortie : ce sont celles que le programme doit obtenir, calculer, après
exécution des traitements sur les données de départ.
Pour chaque variable on définit le type de données des valeurs qu’elle peut prendre :
numérique (entier ou réel), texte, date, monétaire, type booléen (2 valeurs, par exemple : Vrai
/ Faux ; Oui / Non) …
Un algorithme peut également contenir des constantes : ce sont des données qui ne prennent
qu’une seule valeur au cours de l’exécution de l’algorithme (par exemple un taux de remise de
5 % applicable à partir d’un niveau donné de CA).
2 / 13
B) Le corps de l’algorithme
Dans cette partie, on définit l’ensemble des opérations (ou instructions) à suivre dans un
ordre logique afin d’obtenir le résultat désiré et l’afficher à l’écran.
On commence toujours par la saisie des variables de départ (par l’utilisateur du programme)
ou leur lecture dans un fichier (le programme ne peut pas s’exécuter à partir de rien !).
Puis, on définit les instructions à qui doivent être exécutées ainsi que leur enchaînement.
Les instructions peuvent être exécutées dans tous les cas, les unes après les autres (on parle
alors d’instructions ou de structures séquentielles) ou seulement si une condition est vérifiée
(instructions ou structures conditionnelles ou alternatives).
Les instructions peuvent être exécutées une seule fois ou plusieurs fois (instructions ou
structures répétitives ou itératives ou « boucles »).
Enfin, on affiche les résultats attendus du programme.
C) Exemples simples
1) Algorithme qui affiche le résultat de l’addition de 2 nombres entiers
Déclaration des variables
Nb1 : entier
Nb2 : entier
Résultat : entier
Premier nombre de l’addition
Deuxième nombre de l’addition
Résultat de l’addition des deux nombres
DEBUT
SAISIR Nb1
(ou : LIRE Nb1 si le nombre est extrait d’un fichier existant)
SAISIR Nb2
Résultat ← Nb1 + Nb2
AFFICHER Résultat
FIN
La valeur obtenue par l’addition est affectée à la variable Résultat. L’instruction d’affectation
est représentée par une flèche « ← » (ou simplement par le signe égal « = »).
Cf. Document : « Plusieurs versions d’un même algorithme »
3 / 13
2) Algorithme qui calcule et affiche le montant d’une remise
Une entreprise accorde une ristourne de fin d’année de 2 % sur le chiffre d’affaires HT réalisé
avec ses clients. Elle souhaite automatiser le calcul de la ristourne.
Déclaration des variables et des constantes
NomClient : texte (ou chaîne de caractères)
CA : réel (ou monétaire)
Ristourne : réel (ou monétaire)
Taux : réel
Nom du client
CA annuel réalisé avec le client
Montant de la ristourne accordée
Pourcentage de la ristourne
DEBUT
SAISIR NomClient
SAISIR CA
Taux ← 0,02
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
FIN
Ou, plus simplement, en indiquant dans la déclaration des variables : Taux = 2 %
DEBUT
SAISIR NomClient
SAISIR CA
Ristourne ← CA × 0,02
AFFICHER NomClient, Ristourne
FIN
Cet algorithme ne prend pas en compte le fait que le taux de ristourne dépend généralement
du niveau du CA (Cf. structures conditionnelles) et il ne précise pas le nombre de fois qu’il
doit être exécuté (Cf. structures répétitives).
4 / 13
II- Les structures conditionnelles (ou alternatives)
Lorsque le traitement à effectuer est fonction d’une ou plusieurs conditions (conditions qui
portent sur les valeurs prisent par les variables), il est nécessaire d’utiliser une instruction
conditionnelle : SI … ALORS / SINON
Structure alternative simple :
SI Condition
ALORS Instruction 1
SINON Instruction 2
FIN SI
L’instruction 1 est exécutée seulement si la condition est vérifiée (ou vraie). Si la condition
n’est pas vérifiée, c’est l’instruction 2 qui est exécutée par l’ordinateur.
Structure alternative réduite ou « appauvrie » :
SI Condition
ALORS Instruction
FIN SI
L’instruction est exécutée seulement si la condition est vérifiée. Si la condition n’est pas
vérifiée, il n’y a aucun traitement à effectuer.
Structures alternatives imbriquées :
SI Condition 1
ALORS Instruction 1
SINON SI Condition 2
ALORS Instruction 2
SINON Instruction 3
FIN SI
FIN SI
L’instruction 1 est exécutée si la condition 1 est vérifiée. L’instruction 2 est exécutée si la
condition 1 n’est pas vérifiée et si la condition 2 est vérifiée. L’instruction 3 est exécutée
seulement si les conditions 1 et 2 ne sont pas vérifiées.
SI Condition 1
ALORS SI Condition 2
ALORS Instruction 1
SINON Instruction 2
FIN SI
SINON Instruction 3
FIN SI
Si conditions 1 et 2 : Vrai
Si 1 : Vrai et 2 : Faux
Si 1 : Faux
Il est possible d’imbriquer un grand nombre d’instructions conditionnelles…
5 / 13
Exemple :
Le taux de la ristourne accordée dépend du niveau du CA réalisé avec les clients.
Montant du CA annuel
Moins de 10 000 €
De 10 000 € à moins de 50 000 €
A partir de 50 000 €
Taux de ristourne
Pas de ristourne
2%
5%
Algorithme Calcul de la ristourne :
Déclaration des variables et des constantes
NomClient : texte (ou chaîne de caractères)
CA : réel (ou monétaire)
Ristourne : réel (ou monétaire)
Taux1 = 0 ; Taux2 = 0,02 ; Taux3 = 0,05
Nom du client
CA annuel réalisé avec le client
Montant de la ristourne accordée
Pourcentages de la ristourne
DEBUT
SAISIR NomClient
SAISIR CA
SI CA < 10 000
ALORS Ristourne ← 0
SINON SI CA < 50 000
ALORS Ristourne ← CA × 0,02
SINON Ristourne ← CA × 0,05
FIN SI
FIN SI
AFFICHER NomClient, Ristourne
FIN
Autre solution, en considérant que le taux est une variable qui prend 3 valeurs :
DEBUT
SAISIR NomClient
SAISIR CA
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
FIN
6 / 13
III- Les structures répétitives ou itératives (ou « boucles »)
Lorsqu’un traitement nécessite d’être effectué plusieurs fois, il faut utiliser des instructions
répétitives : POUR …, REPETER … ou TANT QUE …
A) L’instruction POUR
Cette instruction s'utilise pour les cas où l'on connaît le nombre de fois que l'on veut répéter
les instructions.
Elle nécessite de définir une variable de type compteur qui est automatiquement incrémentée
de 1.
POUR Compteur DE … A ... FAIRE
Instruction 1
Instruction 2
…
FIN POUR
(L’instruction FAIRE peut être omise)
Exemple (suite) : Algorithme Calcul de la ristourne
Déclaration des variables
NomClient : texte (ou chaîne de caractères)
CA : réel (ou monétaire)
Ristourne : réel (ou monétaire)
Taux : réel
NbClients : entier
Compteur : entier
Nom du client
CA annuel réalisé avec le client
Montant de la ristourne accordée
Pourcentage de la ristourne
Nombre de clients
Compteur du nombre d’exécutions
DEBUT
SAISIR NbClients
POUR Compteur DE 1 A NbClients (FAIRE)
SAISIR NomClient
SAISIR CA
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
FIN POUR
FIN
7 / 13
B) L’instruction REPETER
Cette instruction s’utilise quand on ne connaît pas par avance le nombre de répétitions du
traitement à effectuer.
Les instructions (qui suivent l’instruction REPETER) sont répétées jusqu’à ce qu’une
condition soit satisfaite (en pratique : jusqu’à ce qu’il n’y ait plus de traitement à effectuer !).
REPETER
Instruction 1
Instruction 2
…
Etat de la condition ?
JUSQU’A Condition satisfaite
Pas de condition pour démarrer
Répétition si la condition n’est pas satisfaite
Condition pour arrêter (sortir de la boucle)
L’instruction REPETER s’utilise en général avec une variable Réponse de type booléen : Oui
(pour relancer le traitement), Non (pour arrêter les répétitions).
Exemple (suite) : Algorithme Calcul de la ristourne
Déclaration des variables
NomClient : texte (ou chaîne de caractères)
CA : réel (ou monétaire)
Ristourne : réel (ou monétaire)
Taux : réel
Réponse : texte
Nom du client
CA annuel réalisé avec le client
Montant de la ristourne accordée
Pourcentage de la ristourne
Oui (pour répéter), Non (pour arrêter)
DEBUT
REPETER
SAISIR NomClient
SAISIR CA
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
SAISIR « Voulez-vous relancer le programme pour un autre client ? », Réponse
JUSQU’A Réponse = « Non »
FIN
8 / 13
Exemple (suite) : Algorithme Calcul de la ristourne – Lecture des données
On suppose que les données nécessaires au traitement (Nom du client et CA) ont été extraites
d’une base de données à l’aide d’une requête et donc qu’elles sont disponibles sous la forme
d’une table :
N° du client
411001
411002
…
Nom du Client
Pierre
Paul
CA annuel
8 500,00
40 250,00
Il suffit alors de lire les enregistrements de la table du premier jusqu’au dernier :
DEBUT
LIRE N°Client du premier enregistrement de la table
REPETER
LIRE NomClient
LIRE CA
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
LIRE N°Client de l’enregistrement suivant de la table
JUSQU’AU N°Client du dernier enregistrement de la table
FIN
C) L’instruction TANT QUE
Comme REPETER, l’instruction TANT QUE s’utilise quand on ne connaît pas par avance le
nombre de répétitions du traitement.
Les instructions (qui suivent l’instruction TANT QUE) sont exécutées (lancées) et répétées
tant qu’une condition est satisfaite (en pratique : tant qu’il y a des traitements à effectuer !).
TANT QUE Condition satisfaite FAIRE
Instruction 1
Instruction 2
…
Etat de la condition ?
FIN TANT QUE
Condition pour démarrer
Répétition si la condition reste satisfaite
9 / 13
Exemple (suite) : Algorithme Calcul de la ristourne
Déclaration des variables : Idem REPETER (Cf. B) sauf Réponse
NomClient : texte (ou chaîne de caractères)
CA : réel (ou monétaire)
Ristourne : réel (ou monétaire)
Taux : réel
Réponse : texte
Nom du client
CA annuel réalisé avec le client
Montant de la ristourne accordée
Pourcentage de la ristourne
Oui (pour démarrer et répéter), Non (pour
arrêter)
DEBUT
Réponse ← Oui
(Initialisation pour que l’ordinateur puisse exécuter l’instruction)
TANT QUE Réponse = « Oui » FAIRE
SAISIR NomClient
SAISIR CA
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
SAISIR « Voulez-vous relancer le programme pour un autre client ? », Réponse
FIN TANT QUE
FIN
Avec l’initialisation, l’instruction TANT QUE est identique à l’instruction REPETER. En
revanche, dans un algorithme plus important, avec des instructions avant TANT QUE et
REPETER, il peut y avoir une différence :
REPETER : Les instructions (qui suivent REPETER) seront exécutées au moins une fois sans
condition, ensuite elles seront éventuellement répétées (jusqu’à ce que la condition soit
satisfaite).
TANT QUE : Les instructions peuvent ne pas être exécutées (elles seront « sautées » si la
condition n’est pas vérifiée), ensuite, si elles sont exécutées une première fois, elles seront
éventuellement répétées (tant que la condition reste satisfaite).
Exemple (suite) : Algorithme Calcul de la ristourne – Lecture des données
On suppose que les données nécessaires au traitement (Nom du client et CA) ont été extraites
d’une base de données à l’aide d’une requête
10 / 13
DEBUT
LIRE N°Client du premier enregistrement de la table
TANT QUE N°Client ≠ 0 FAIRE
(Tant qu’il y a des clients !)
LIRE NomClient
LIRE CA
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
LIRE N°Client de l’enregistrement suivant de la table
FIN TANT QUE
FIN
D) Les variables de type Compteur et les variables de type Cumul
Dans les structures répétitives, il est possible d’ajouter une variable de type Compteur pour
compter le nombre de répétitions des instructions :
Compteur ← Compteur + 1
Le programme ajoutera 1 à chaque exécution.
On peut également ajouter une variable de type Cumul pour cumuler (ajouter) les valeurs
prises par une variable à chaque itération :
Cumul_Variable ← Cumul_Variable + Variable
Le programme ajoutera la valeur de la variable au cumul précédent à chaque itération.
Exemple (suite) : Algorithme Calcul de la ristourne – Lecture des données
Déclaration des variables
NomClient : texte (ou chaîne de caractères)
CA : réel (ou monétaire)
Ristourne : réel (ou monétaire)
Taux : réel
Compteur : entier
CumulRistourne : réel
Nom du client
CA annuel réalisé avec le client
Montant de la ristourne accordée
Pourcentage de la ristourne
Compteur du nombre d’exécutions
Montant total des ristournes accordées
11 / 13
DEBUT
Compteur ← 0
CumulRistourne ← 0
(Initialisation pour l’ordinateur : les variables ont
comme valeur de départ 0)
LIRE N°Client du premier enregistrement de la table
TANT QUE N°Client ≠ 0 FAIRE
LIRE NomClient
LIRE CA
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
AFFICHER NomClient, Ristourne
Compteur ← Compteur + 1
(0 + 1 à la 1re exécution, 1 + 1 à la 2e …)
CumulRistourne ← CumulRistourne + Ristourne
LIRE N°Client de l’enregistrement suivant de la table
FIN TANT QUE
AFFICHER Compteur, CumulRistourne
FIN
NB : Dans cet exemple, le compteur indiquera le nombre total de clients traités (donc tous les
clients de la table, qu’ils obtiennent ou non une ristourne…)
IV- Les algorithmes des fonctions
Dans un programme informatique, les fonctions sont des sous-programmes qui effectuent des
opérations particulières.
Une fonction effectue des traitements sur une ou plusieurs variables du programme principal
et renvoie une valeur pour une variable de ce programme principal.
FONCTION NOM_FONCTION (Var 1, Var 2,…)
Déclaration des variables locales
Instruction 1
Instruction 2
…
Retourner Variable
FIN FONCTION
Variables du programme principal
Variables spécifiques à la fonction
Pour renvoyer une valeur de cette
variable au programme principal
12 / 13
Exemple (suite) : Algorithme Calcul de la ristourne – Lecture des données
Algorithme du programme principal :
Déclaration des variables
NomClient : texte (ou chaîne de caractères)
CA : réel (ou monétaire)
Ristourne : réel (ou monétaire)
Compteur : entier
CumulRistourne : réel
Nom du client
CA annuel réalisé avec le client
Montant de la ristourne accordée
Compteur du nombre d’exécutions
Montant total des ristournes accordées
DEBUT
Compteur ← 0
CumulRistourne ← 0
LIRE N°Client du premier enregistrement de la table
TANT QUE N°Client ≠ 0 FAIRE
LIRE NomClient
LIRE CA
Ristourne ← RISTOURNE (CA)
(« Appel » de la fonction)
AFFICHER NomClient, Ristourne
Compteur ← Compteur + 1
CumulRistourne ← CumulRistourne + Ristourne
LIRE N°Client de l’enregistrement suivant de la table
FIN TANT QUE
AFFICHER Compteur, CumulRistourne
FIN
Algorithme de la fonction Calcul de la ristourne :
FONCTION RISTOURNE (CA : réel) : réel
Déclaration de la variable
Taux : réel
Pourcentage de la ristourne
SI CA < 10 000
ALORS Taux ← 0
SINON SI CA < 50 000
ALORS Taux ← 0,02
SINON Taux ← 0,05
FIN SI
FIN SI
Ristourne ← CA × Taux
Retourner Ristourne
FIN FONCTION
13 / 13
Remarque : Création de fonctions personnalisées en VBA avec Excel
VBA (Visual Basic pour Applications) est un langage informatique de programmation qui est
intégré dans toutes les applications de Microsoft Office (c’est un langage dérivé du langage de
programmation VB de Microsoft qui permet de créer des applications autonomes).
Microsoft Excel permet de créer des fonctions personnalisées programmées en code VBA et
placées dans un module. Elles sont ensuite accessibles dans la bibliothèque de fonction
(Insertion / Fonction / Personnalisée).
Exemples :
-
Une fonction Taux_RISTOURNE pour afficher le taux :
-
Une fonction RISTOURNE pour calculer directement la ristourne
Le code VBA est une traduction des instructions de l’algorithme :
IF ⇔ SI ; THEN ⇔ ALORS ; ELSE ⇔ SINON ; END IF ⇔ FIN SI
Téléchargement