CHAPITRE IV ALGORITHME
SOMMAIRE
• 4.1. : INTRODUCTION
• 4.2. : LES VARIABLES ET LES CONSTANTES
• 4.3. : ACTIONS ÉLÉMENTAIRES
• 4.4. LES STRUCTURES DE CONTROLE
• 4.5. LES STRUCTURES REPETITIVES
5.1. : INTRODUCTION
la réalisation d'un programme passe par trois étapes :
• L'analyse du problème qui doit permettre de formuler ce qu'il faut
résoudre. Elle spécifie les données et les résultats à obtenir.
• L'algorithme définit la structure des données, l'enchaînement et
l'organisation des traitements.
• La programmation, finalement, est la concrétisation des étapes
précédentes. Cette dernière partie permet de finaliser le projet.
5.1.1. DEFINITION DE L’ALGORITHME
C’est une suite finie d’instructions non ambiguës dans un langage
pseudo-naturel simple permettant de décrire une méthode pour
répondre à un problème en un temps fini en s’affranchissant des
aspects matériels de mise en œuvre (type de machine, langage de
programmation utilisé, …)
Le "langage algorithmique" que nous utilisons est un compromis
entre un langage naturel et un langage de programmation
5.1.1. DEFINITION DE L’ALGORITHME
En étudiant cette définition, on peut ainsi voir trois parties fondamentales
que l'on peut décomposer de la manière suivante : le problème et ses
données, le résultat, la manière d'obtenir le résultat
Données
Problème Algorithme Programme Solutions
EXEMPLE D’ALGORITHME
Algorithme Recettes
Données en
Ingrédients
entrée
Algorithme Recettes
Résultats Plats
(sortie)
5.1.2. FORMALISE DE L’ALGORITHME
• Un algorithme doit être lisible et compréhensible par plusieurs
personnes.
• Il doit donc suivre des règles. Il est composé d'une entête et d'un corps.
▪ L'entête comprend :
✓ Nom : le nom de l'algorithme
✓ variables : la déclaration des variables utilisées dans l’algorithme
• Le corps :
✓ il est délimité par les mots clés début et fin.
✓ Contient les instructions
5.1.2. FORMALISE DE L’ALGORITHME
• Par convention, tous les identifiants de variables seront notés
en minuscule et auront un nom mnémonique
• Il en va de même pour les fonctions, dont l'identifiant doit être
le plus explicite sur son rôle. Ce dernier peut être une
contraction de plusieurs mots, par conséquent pour rendre la
lecture plus facile, la première lettre de chaque mot est mis en
majuscule
(exemple : CalculerAireRectangle).
5.2. : LES VARIABLES ET LES CONSTANTES
5.2.1. Définition d’une variable
La mémoire de l’ordinateur se compose d’une série de cellules répondant
chacune à une adresse en mémoire. Ces cellules dont la taille dépend du
type d’ordinateur, contiennent des données accessibles par l’intermédiaire
de noms symboliques appelés variables. Une variable est donc un nom
donné à une adresse en mémoire permettant ainsi de consulter ou de
modifier le contenu de cette dernière.
5.2.1. Définition d’une variable
une variable est caractérisée par trois informations :
• Son nom : composé uniquement de lettres minuscules,
majuscules, de chiffres et du caractère souligné, il permet
d’identifier la variable. On parle d’« identificateur ». Ce
nom doit être significatif (refléter le rôle de la variable).
Un compromis doit bien sûr être trouvé entre
expressivité et longueur. On peut par exemple appeler
prix_unitaire une variable qui représente le prix unitaire
d’un article.
5.2.1. Définition d’une variable
• Son type : une variable est utilisée pour représenter
des données qui sont manipulées par le programme.
Un type est utilisé pour caractériser l’ensemble des
valeurs qu’une variable peut prendre. Par exemple le
prix unitaire représente le prix d’un article exprimé en
francs CFA.
5.2.1. Définition d’une variable
• Sa valeur : La variable contient une information qui
peut varier au cours de l’exécution d’un programme.
C’est cette information que l’on appelle valeur de la
variable. La valeur d’une variable doit correspondre au
type de la variable
5.2.1. Définition d’une variable
le nom et le type sont des informations statiques
qui doivent être précisées lors de la déclaration
de la variable. En revanche, la valeur est une
information dynamique qui changera au cours de
l’exécution du programme. Le tout est stocké dans
la mémoire de l’ordinateur.
5.2.2. Les différents types de variables
[Link] les entiers
On les utilise pour représenter les entiers relatifs. Les opérations
utilisables sur les entiers sont :
• Les opérateurs arithmétiques classiques : + (addition), - (soustraction), *
(produit)
• La division entière, notée ÷ ou DIV : n DIV p donne la partie entière du
quotient de la division entière de n par p
• Le modulo, (MOD) : n MOD p donne le reste de la division entière de n par p
• Les opérateurs de comparaison classiques : <, >, =, ...
5.2.2. Les différents types de variables
Exemples : Déclaration d’une variable entière
Variable nombre : ENTIER
Quelques exemples d’entiers :
10, 0, -10
Quelques exemples d’utilisation d’opérateurs :
10 Mod 3 ---------= 1 (le reste de la division entière de 10 par 3)
10 Div 3 ----------- = 3 (le quotient de la division entière de 10 par 3)
1 Div 2 ------------ = 0 (le quotient de la division entière de 1 par 2)
Abs(-5) ----------- = 5 (la valeur absolue de -5)
5.2.2. Les différents types de variables
• les opérateurs ont des priorités.
Par exemple * et / sont prioritaires sur + et -
Pour les booléens, la priorité des opérateurs est non, et,
ouExclusif et ou
• Pour clarifier les choses (ou pour dans certains cas supprimer
toutes ambiguïtés) on peut utiliser des parenthèses
5.2.2. Les différents types de variables
[Link] les réels
Les opérations utilisables sur les réels sont :
• Les opérations arithmétiques classiques : + (addition), -
(soustraction), * (produit), / (division)
• Les opérateurs de comparaison classiques : <, >, =, ...
Exemple : Déclaration d’une variable réelle
Variable Moyenne : REEL
Exemple de représentants des réels
• 10.0, 0.0
Les différents types de variables
[Link]. Le type logique
Une variable de type logique (booléen) peut prendre deux valeurs
VRAIE ou FAUSSE. Les opérations sont Et, Ou et Non qui sont définies
par la table de vérité suivante
Exemple : Déclaration d’une variable booléenne
Variable existe : BOOLEEN
Les opérations principales les plus utilisées sont :
• Les opérateurs logiques : NON, ET, OU
• Opérateurs de comparaison : = , ≤ , ≥ , ≠
5.2.2. Les différents types de variables
[Link]. Le type caractère
Il s'agit du domaine constitué des caractères alphabétiques et
numériques. Une variable de ce type ne peut contenir qu'un seul et
unique caractère. Les opérations élémentaires réalisables sont les
comparaisons : <, >, =, ...
Exemple : Déclaration d’une variable de type caractère
Variable C : CARACTERE
Exemple de représentants des caractères
• ’a’ -------- le caractère a
5.2.2. Les différents types de variables
[Link]. Le type chaine de caractères
Une chaine de caractère est un objet qui peut contenir plusieurs
caractères de manière ordonnée(permet de manipuler des chaînes de
caractères pour représenter des mots ou des phrases).
Exemple : Déclaration d’une variable de type chaine de caractère
Variable NOM : CHAINE[30] → Chaine de 30 caractères
maximum
• "Une chaîne de caractères" -- un exemple de Chaîne
• "Une chaîne avec Guillement (\")" -- un exemple de Chaîne
5.2.2. Les différents types de variables
[Link]. Les constantes
Une constante est un objet dont l'état reste inchangé durant toute
l'exécution d'un programme. On ne peut jamais modifier sa valeur et
celle-ci doit donc être précisée lors de la définition de l'objet.
Exemple : Déclaration d’une variable constante
CONST PI=3.14
5.3. MANIPULATION DES VARIABLES
On peut faire deux choses avec une variable
5.3.1. Affectation et obtention de la valeur d’une variable
1°) L'affectation permet de donner une valeur à une variable.
A 28 « reçoit » 28 ; si A avait une valeur auparavant, cette valeur
disparaît : elle est écrasée par 28
Syntaxe : <id_variable> <expression>
A « l'exécution » : l'expression est évaluée (calculée) et sa valeur est
rangée dans la variable.
Donc les types <id_variable> et <expression> doivent être compatibles.
CHAPITRE 3 :MANIPULATION DES VARIABLES
B°) obtenir son contenu
Cela s’effectue simplement en nommant la variable
Exemple :
Par exemple l’expression c ← a + b se comprend de la façon suivante :
On prend la valeur contenue dans la variable a
On prend la valeur contenue dans la variable b
On additionne ces deux valeurs
On met ce résultat dans la variable c
Si c avait auparavant une valeur, cette dernière est perdue !
CHAPITRE 3 :MANIPULATION DES VARIABLES
5.3.2. Les opérations entrées / sorties
Un algorithme peut avoir des interactions avec l’utilisateur
• Il peut afficher un résultat, qui peut être du texte ou le contenu d’une
variable(Ecriture )
• demander à l’utilisateur de saisir une information afin de la stocker dans une
variable (Lecture)
Exemple :somme de deux entiers
Variable A, B, C : ENTIER ou Variable A, B : ENTIER
DEBUT DEBUT
LIRE (A) LIRE (A)
LIRE (B) LIRE (A)
C ← A+B ECRIRE (A+B)
ECRIRE(C) FIN
FIN
Exemple sur les opérations entrées / sorties :
Exemple 1 : calculer la moyenne deux notes et afficher le résultat
Algorithme calcul_moyenne()
Variable note1 : réel
Variable coef1 : réel
Variable coef2 : réel
Variable note2 : réel
Variable moyenne : réel
Début
Ecrire « voulez-vous saisir la première note ? »
Lire(note1)
Ecrire « voulez-vous saisir le premier coefficient ? »
Lire(coef1)
Ecrire « voulez-vous saisir la deuxième note ? »
Lire(note2)
Ecrire « voulez-vous saisir le deuxième coefficient ? »
Lire(coef2)
moyenne ← (note1*coef1+note2*coef2)/(coef1+coef2)
Ecrire (« la moyenne est égale à: » & moyenne)
Fin
CHAPITRE 4 :LES STRUCTURES DE CONTROLE
On entend par structure de contrôle, la possibilité
d'orienter un algorithme en fonction de choix
particuliers. Il en existe deux :
• instructions conditionnelles
• les structures répétitives
CHAPITRE 4 :LES STRUCTURES DE CONTROLE
4.1 instructions conditionnelles
4.1.1 Conditionnelle SI-ALORS-FINSI
Elle permet d'exprimer une condition simple (binaire). L'évaluation de
la condition va déterminer la suite du déroulement de l'algorithme.
Syntaxe :
SI (condition) ALORS
Action_1
SINON
Action_2
FIN SI
Action_3
CHAPITRE 4 :LES STRUCTURES DE CONTROLE
4.1.1 Conditionnelle SI-ALORS-FINSI
Une seule des deux actions peut être exécutée (action_1 ou
action_2), l'algorithme continue ensuite son déroulement
normal (action_3). Si la condition évaluée est vraie, c'est
l'action 1 qui est effectuée, sinon (si l'évaluation est fausse),
l'action 2 est exécutée. On indique en général la fin de
l'instruction conditionnelle pour bien délimiter son champ
d'action.
CHAPITRE 4 :LES STRUCTURES DE CONTROLE
4.1.2 Conditionnelle SI-ALORS-SINONSI-FINSI
Ici, nous avons des instructions conditionnelles imbriquées.
Syntaxe :
SI instructions ALORS
action 1
action 2….
SINON
SI instructions ALORS
action 1
action 2….
SINON
action 1
action 2….
FIN SI
FIN SI
Exemple1 : Ecrire un algorithme qui calcule le maximum entre 2 nombres
Début
Variable Nombre_1 : numérique
Variable Nombre_2 : numérique
Ecrire « voulez-vous saisir le premier nombre »
LIRE nombre_1
Ecrire « voulez-vous saisir le deuxieme nombre »
LIRE nombre_2
SI (nombre_1 > nombre_2)
ALORS
ECRIRE nombre_1
SINON
SI (nombre_1 < nombre_2)
ALORS
ECRIRE nombre_2
SINON
ECRIRE "Les nombres sont identiques"
FIN SI
FIN SI
Fin
On suppose que si le premier nombre n'est pas supérieur au second et inversement, c'est qu'ils doivent être
Exemple 2 : Réduction selon l’âge
Si la personne est âgée de moins de 25 ans, elle a droit à une réduction pour « jeune »
• Si la personne est âgée de 65 ans et plus, elle a droit à une réduction pour « troisième age »
• Sinon la personne paie le « tarif plein »
Algorithme : Reduction
DEBUT
Variable Age : numérique
Ecrire "Entrer votre âge"
Lire Age
Si Age < 25 alors
écrire "Vous avez droit à une réduction pour jeunes"
sinon
Si Age >= 65 alors
écrire "Vous avez droit à une réduction troisième âge"
sinon
écrire "Vous payez le prix plein"
finsi
finsi
écrire "Votre âge est de ", age, " ans "
FIN
Exemple 3 : Saisir une note comprise entre 1 et 6 et selon la note saisie, afficher le message suivant :
Note Commentaire
vide Pas de résultat
1 Résultat exécrable
2 Mauvais résultat
3 Résultat médiocre
4 Résultat satisfaisant
5 Bon résultat
6 Excellent résultat
ALGORITHME
Début
Variable nombre : entier
Ecrire « saisissez un nombre »
Lire nombre
Si nombre =1 alors
Ecrire « "Résultat exécrable" »
Sinon
Si nombre =2 alors
Ecrire « " Mauvais Résultat »
Sinon
Si nombre =3 alors
Ecrire « " "Résultat insatisfaisant »
Sinon
Si nombre =4 alors
Ecrire « Résultat satisfaisant »
Sinon
Si nombre =5 alors
Ecrire « Bon résultat »
Sinon
Si nombre = 6 alors
Ecrire « Excellent résultat »
Sinon
Ecrire « Aucun résultat »
Fin si
Fin si
Fin si
Fin si
Fin si
Fin si
Fin
CHAPITRE 4 :LES STRUCTURES DE CONTROLE
4.2 SELON QUE
Cette forme conditionnelle permet de mettre en place des choix multiples.
SELON QUE
(Condition_1):
Action_1
(Condition_2):
Action_2
...
(Condition_n):
Action_n
SINON
Action
FIN SELON
CHAPITRE 4 :LES STRUCTURES DE CONTROLE
4.2 SELON QUE
Les conditions sont évaluées dans l'ordre, les unes après les autres, et
dès qu'une de celles-ci est vérifiée, l'action associée est exécutée.
Après quoi on passe au FIN SELON pour continuer avec la suite de
l'algorithme. On peut utiliser une instruction SINON (facultative), dont
l'action sera exécutée si aucune des conditions évaluées n'a été
remplie.
Exemple 1 :
Algorithme commentaires notes
Début
Variable note : entier
Ecrire « voulez-vous saisir une note ? »
Lire note
Selon note
Note =5 ' <= si la valeur = 5
écrire "Bon résultat"
Note =4 ' <= si la valeur = 4
écrire "Résultat satisfaisant"
Note =3 ' <= si la valeur = 3
écrire "Résultat insatisfaisant"
Note =2 ' <= si la valeur = 2
écrire "Mauvais résultat"
Note = 1 ' <= si la valeur = 1
écrire "Résultat exécrable"
Sinon ' <= si la valeur n'est égale à aucune des valeurs ci-dessus
écrire "Aucun résultat"
Fin selon
Fin
Exemple 2 : Écrire un programme qui demande à l’utilisateur de saisir un caractère et qui affiche « affirmatif
» si le caractère est un « o » (minuscule ou majuscule), « négatif » si c’est un « n » (minuscule ou majuscule)
et « Vous devez saisir O un N » dans les autres cas.
ALGORITHME
Algorithme répondre
debut
Variable réponse : chaine
Ecrire « Réponse affirmative ou négative (o/n) »
Lire Réponse
Selon Réponse
Réponse « o », « O »
Afficher « Affirmatif »
Réponse « n », « N »
Afficher « Négatif »
sinon
Afficher « Vous devez saisir O un N »
Fin selon
Fin
CHAPITRE 5 LES STRUCTURES REPETITIVES
5.1 TANT QUE
Cette instruction évalue une condition et tant que celle-ci est vérifiée,
les actions placées à l'intérieur sont alors effectuées. Pour sortir de la
boucle, il faut que la condition ne soit plus remplie (c'est la seule
possibilité admise en algorithmie).
TANT QUE (condition) FAIRE
action
FIN TANT QUE
CHAPITRE 5 LES STRUCTURES REPETITIVES
5.1 TANT QUE
Il est possible que la condition ne soit pas remplie lors de la première
évaluation, dans ce cas on passe à l'action qui se trouve après le FIN
TANT QUE.
A chaque fois que l'on arrive au FIN TANT QUE, on revient au début de
la boucle pour évaluer la condition. La condition doit utiliser une
variable qui sera alors modifiée par l'action effectuée, sinon il y a peu
de chance (voir aucune) pour que la boucle se termine.
Exemple : Afficher le message Tour N°1 jusqu’à Tour N° 10
Algorithme : tour
Variable n : entier
Variable tour : entier
DÉBUT
n=1
TANT QUE (tour < 11) FAIRE
écrire « tour N° » & tour
tour = tour + 1
FIN TANT QUE
FIN
CHAPITRE 5 LES STRUCTURES REPETITIVES
5.2 REPETER JUSQU’À
Cette instruction répète une action jusqu'à ce que la condition soit
remplie.
REPETER
action
JUSQU'A (condition)
La condition est évaluée après l'action. Donc, dans cette structure,
l'action est effectuée au moins une fois.
Exemple : Afficher le message Tour N°1 jusqu’à Tour N° 10
Algorithme : tour
Variable n : entier
Variable tour : entier
DÉBUT
n=1
REPETER
écrire « tour N° » & tour
tour = tour + 1
JUSQU’À (tour>10)
FIN
CHAPITRE 5 LES STRUCTURES REPETITIVES
5.3 POUR
Cette dernière instruction de répétition est la plus utilisée.
POUR valeur DE debut A fin [PAS] FAIRE
action
FIN POUR
Elle affecte une valeur de départ à une variable, exécute les actions
contenues dans la boucle, et l'incrémente jusqu'à la valeur de fin.
L'incrémentation est par défaut de 1, mais il est possible de la régler
avec l'instruction PAS.
Exemple1 : afficher un compteur de 1 à 10
Algorithme compteur
Variable compteur : entier
DEBUT
POUR compteur DE 1 à 10 PAS 1FAIRE
écrire « compteur N° » & compteur
FIN POUR
FIN
Exemple 2 : compte à rebours
Algorithme compte à rebours
Variable compteur : entier
DEBUT
POUR compteur DE 10 à 0 PAS -1FAIRE
écrire compteur
FIN POUR
écrire « BOOOOM!!!!!!! »
FIN