Algorithmique 2
Algorithmique 2
Algorithmique 2
CHAPITRE 2
LE PSEUDO-CODE
Aeronautics and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 2
chapitre 2
DÉFINITIONS
Le modèle à respecter
Exemple de déclaration de
Les types de variables variables
ALGORITHME : Prix_du_pain
Nom : CHAINE
Types possibles de variables :
Nb : ENTIER
– ENTIER (ex : 14, -138) Prx, Qt, Tot : REEL
– REEL (ex : 3.14, 126.45) DEBUT
Les identificateurs
4. Certains noms sont réservés pour les
compilateurs des langages de
Un identificateur est un nom donné à une programmation et ne doivent pas être
variable pour la différencier de toutes les donnés à des identificateurs de variables
autres. Et ce nom, c’est au programmeur de le
choisir. Cependant, il y a quelques limitations à 5. Les identificateurs peuvent être aussi longs
ce choix : que l’on désire, toutefois certains
compilateurs ne tiendra compte que des 32
1. On ne peut utiliser que les 26 lettres de premiers caractères.
l’alphabet latin, les chiffres et le caractère
underscore ( _ ) : pas d’accents, pas de 6. Le nom d'un variable doit être significatif.
ponctuation ni d’espaces. On devrait savoir immédiatement, à partir
de son nom, à quoi sert la variable ou la
2. Un identificateur ne peut pas commencer constante, et quel sens donner à sa valeur
par un chiffre.
3. Deux variables ne peuvent avoir le même
identificateur (le même nom)
Aeronautics and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 7
chapitre 2
AFFECTATION
Définitions Exemple
ALGORITHME : Prix_du_pain
Prx, Qt, Tot : REEL
• Deux méthodes qui permettent de gérer les
DEBUT
entrés et sorties d’un algorithme sont : LIRE
et AFFICHER AFFICHER("donner la quantité de pains" )
LIRE(Qt)
• La méthode LIRE permet de lire des valeurs à
partir du clavier qui représente l’entrée d’un Prx 10.25
algorithme. Elle permet de récupérer la Qt 6
valeur taper au clavier et la stocker dans la
Tot Prx* Qt
variable entre les parenthéses.
AFFICHER ("le prix total est :",Tot)
• La méthode AFFICHER permet d’afficher les
FIN
messages ou des valeurs de variables à
l’écran qui représente la sortie.
Définitions Exemple
ALGORITHME : Prix_du_pain
Prx, Qt, Tot : REEL
• Les commentaires servent à donner des
DEBUT
explications à une partie de votre pseudo-
code. AFFICHER("donner la quantité de pains" )
LIRE(Qt)
• Un commentaire doit être mis entre /* et */, Ceci est un
tous ce qui se trouve entre ces deux Prx 10.25 /* le prix d’unité*/ commentaire sur une
symboles est considéré comme un Qt 6 seule ligne
commentaire.
Tot Prx* Qt /* ici nous calculons le
• Un commentaire n’affecte pas les prix totale*/
instructions de votre algorithme. AFFICHER ("le prix total est :",Tot)
Un commentaire sur
• Le commentaire peut s’écrire sur plusieurs FIN plusieurs lignes
lignes.
OU Vrai si
20+x>10 L’addition + est plus prioritaire que >.
ET x>10
Aeronautics
and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 14
chapitre 2
LES OPÉRATIONS 5/5
Qu’est-ce l’exécution
conditionnelle ?
• L’exécution conditionnelle permet de faire deux
choses différentes selon le cas qui se produit.
L’instruction ne sera exécutée que sous certaines
conditions. Plus précisément, le programme teste
une condition, si la condition est satisfaite le
programme fait une chose, dans le cas contraire,
le programme fait une autre chose. Une
instruction conditionnelle peut avoir plusieurs
formes.
Condition alternative :
Organigramme
si-alors sinon
• Une seconde forme plus intéressant est constituée
d’un second bloc d’instructions qui seront
exécutées lorsque la condition n’est pas vérifiée.
Elle aura pour forme :
SI (condition) ALORS
Instructions 1
SINON
Instructions 2
FINSI
Instructions 3 /* suite
d’instructions du programme hors
condition*/
Aeronautics and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 19
chapitre 2
EXÉCUTION CONDITIONNELLE 5/13
Condition alternative :
Exemple :
si-alors sinon
ALGORITHME note_valide Cette instruction ne
• L’algorithme ci-contre donne un exemple sera exécutée que si la
d’utilisation de SI en fonction d’une condition qui note :REEL
DEBUT condition note>=12
dépende de la valeur de la variable note. Les est vrai
instructions entre SI et FINSI serons exécutées que LIRE (note)
si la valeurs de note est supérieure à 12. les SI (note>=12) ALORS
AFFICHER("Module valide") Cette instruction ne
instructions qui sont à l’extérieur de ce bloc serons sera exécutée que si la
exécutées indépendamment de cette condition. SINON
AFFICHER("Module NON valide") condition note>=12
FINSI est Fausse
AFFICHER("Bon courage!")
FIN Cette instruction sera
exécutée car elle ne
dépende pas de la
condition. Elle est en
d’hors de la structure
SI
Aeronautics and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 20
chapitre 2
EXÉCUTION CONDITIONNELLE 6/13
Parfois l’expression d’une structure conditionnelle • Si Temp est entre 75 et 100 degrés alors il
peut contenir plusieurs situations. affiche que l’eau est Très chaud.
Prenons l’exemple d’un algorithme qui donne l’état • Si Temp est supérieure à 100 degrés alors il
de l’eau en fonction de sa température. Il prend en affiche que l’eau est Brûlant.
entrée une variable Temp qui représente la Une première stratégie consiste à utiliser
température de l’eau et puis il affiche des messages: linéairement (indépendamment) la structure
• Si la température est inférieure a 0 degrés alors il SI-ALORS plusieurs fois en combinant des
affiche que l’eau est Gelé. conditions à l’aide d’operateurs logiques.
• Si Temp est entre 0 et 12 degrés alors il affiche Voir l’organigramme suivant :
que l’eau est Froid.
• Si Temp est entre 12 et 25 degrés alors il affiche
que l’eau est Confortable.
• Si Temp est entre 25 et 75 degrés alors il affiche
que l’eau est Chaud.
Aeronautics and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 21
chapitre 2
EXÉCUTION CONDITIONNELLE 7/13
Organigramme de l’algorithme
L’algorithme de la structure
conditionnelle non-imbriquées
ALGORITHME Temp_Eau /*suite de l’algorithme*/
Temp :REEL SI ((Temp > 75) ET (Temp <= 100)) ALORS
DEBUT AFFICHER("C'est très chaud")
AFFICHER("Donner la température") FINSI
LIRE(Temp) SI (Temp > 100) ALORS
SI (Temp <= 0) ALORS AFFICHER("C'est brulant")
AFFICHER("C'est gelé") FINSI
FINSI FIN
SI ((Temp > 0) ET (Temp <= 12)) ALORS
AFFICHER("C'est froid")
FINSI
SI ((Temp > 12) ET (Temp <= 25)) ALORS
AFFICHER("C'est confortable")
FINSI
SI ((Temp > 25) ET (Temp <= 75)) ALORS
AFFICHER("C'est chaud")
FINSI
Aeronautics and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 23
chapitre 2
EXÉCUTION CONDITIONNELLE 9/13
Conditions imbriquées
ALGORITHME Temp_Eau /*suite de l’algorithme*/
Temp :REEL SI (Temp <= 100) ALORS
DEBUT AFFICHER("C'est très chaud")
AFFICHER("Donner la température") SINON
LIRE(Temp) AFFICHER("C'est brûlant")
SI (Temp <= 0) ALORS FINSI
AFFICHER("C'est gelé") FINSI
SINON FINSI
SI (Temp <= 12) ALORS FINSI
AFFICHER("C'est froid") FINSI
SINON FIN
SI (Temp <= 25) ALORS
AFFICHER("C'est confortable")
SINON
SI (Temp <= 75) ALORS Étudier combien d’opérations de
AFFICHER("C'est chaud") comparaison sont effectuées ?
SINON
Aeronautics and Aerospace club of ENSAM Casablanca ALGORITHMIQUE 26
chapitre 2
EXÉCUTION CONDITIONNELLE 12/13
SINON :
Instructions
FINSELON ALGORITHMIQUE
Aeronautics and Aerospace club of ENSAM Casablanca 27
chapitre 2
EXÉCUTION CONDITIONNELLE 13/13
Exemple
L’instruction SELON - CAS ALGORITHME Operations
Choix : ENTIER
a,b,C : REEL
L’exemple de l’algorithme suivant présente DEBUT
l’utilisation de SELON-CAS pour présenter à AFFICHER("donner Deux Valeurs a et b")
l’utilisateur une liste choix d’opération. Il y’a 3 valeurs LIRE(a,b)
AFFICHER("Taper 1 pour Additionner, 2 pour multiplier 3
1,2,3 que l’utilisateur doit tapé chacun dirige pour le modulo de a et b")
l’exécution vers le cas sélectionné. Noter que dans le LIRE(Choix)
cas ou l’utilisateur introduit une valeur outre que les SELON Choix
cas traité l’exécution se dirige directement au bloc CAS 1 :
SINON C ← a+b
AFFICHER("le resultat de l’operation choisie =",C)
CAS valeur 2 :
C ← a*b
AFFICHER("le resultat de l’operation choisie =",C)
CAS valeur 3 :
C ← a%b
AFFICHER("le resultat de l’operation choisie =",C)
SINON :
AFFICHER("Vous avez tapé un mauvais choix")
FINSELON ALGORITHMIQUE 28
Aeronautics and Aerospace club of ENSAM Casablanca FIN chapitre 2
EXÉCUTION RÉPÉTITIVE – ITÉRATION 1/10
Problème
algorithmes associés aux tableaux. En effet, de maxi :ENTIER /* stocke la valeur du maximum*/
tablval[50] :ENTIER /* un tableau stockant des valeurs*/
nombreux algorithmes relatifs au tableau Nb,i,j: ENTIER /* la taille utile du tableau et les indices de
nécessitent de parcourir les éléments du parcourt*/
DEBUT
tableau dans un certain ordre, le plus souvent AFFICHER("entrez le nombre d’elements du tableau ( taille max 50) ")
dans le sens des indices croissant. Le traitement LIRE(Nb)
POUR (i ← 0 , i< Nb , i ← i+1) FAIRE
de chacun des éléments étant souvent le
même, seule la valeur de l’indice est amenée à AFFICHER("entrez une valeur dans le tableau : ")
LIRE(tablval[i])
changer. Une boucle est donc parfaitement
FINPOUR
adaptée à ce genre de traitements. maxi ← tablval[0] /* pour l’instant, le plus grand est dans la case 0
cherchons case par case (de l’indice 1 à Nb)*/
Illustration par un algorithme de recherche de la
POUR (j ← 1 , j< Nb , j ← j+1) FAIRE
plus grande valeur stockée dans un tableau SI (tablval[j] > maxi) ALORS
d’entiers. Cet algorithme représente une maxi ← tablval[j] /* la valeur est mémorisée dans maxi*/
synthèse des notions rencontrées pour les
FINSI
tableaux. FINPOUR
AFFICHER("la valeur maximal de ce tableau: ", maxi)
L’élément tab[3][2]
Lorsque l'on progresse dans la conception d'un Le sous-algorithme est écrit séparément du
algorithme, ce dernier peut prendre une taille corps de l'algorithme principal et sera appelé
et une complexité croissante. De même des par celui-ci quand ceci sera nécessaire.
séquences d'instructions peuvent se répéter à
plusieurs endroits. Le sous-algorithme est une partie de
l’algorithme presque indépendante qui a un
Tout algorithme est associé à un système de nom et peut être appelée d’un autre sous-
transitions des instructions jusqu’à maintenant algorithme ou de l’algorithme principal.
séquentielles et monolithique. Un algorithme
écrit d'un seul tenant devient difficile à
comprendre et à gérer dès qu'il dépasse deux
pages. La solution consiste alors à découper
l'algorithme en plusieurs parties plus petites.
Ces parties sont appelées des sous-algorithmes.
.
Nous avons déjà utilisé des sous-algorithmes Ce sous-algorithme fonctionne en « boîte noire »
que nous avons supposé comme prédéfinis et vis-à-vis des autres sous-algorithmes, c’est-à-dire:
prêts à utiliser, tels que AFFICHER() LIRE(), ou
• Qu’ils n’en connaissent que les entrées
encore les fonctions mathématique telles que
(variables et valeurs qui sont fournies à la
RACINE(), SIN(),COS() …
fonction et sur lesquelles son traitement va
Voyons maintenant comment définir nos porter).
propres sous-algorithmes que nous allons
• Les variables déclarées et utilisées à l’intérieur
appelés souvent des fonctions.
de ces sous-algorithmes, ne sont pas reconnus
Une fonction sert à regrouper des instructions à l ’extérieur du sous-algorithme.
auxquelles on peut faire appel, c’est-à-dire
• La sortie qui peut être une valeur fournie par la
utiliser en cas de besoin. Il s’agit en réalité d’un
fonction, récupérée par les autres fonctions ou
petit algorithme qui sera utilisé par un
par l’algorithme principale. Il se peut que la
algorithme principal.
fonction n’a pas de sortie, elle ne retourne
aucune valeur (parfois l’utilité de la fonction
sert à afficher des messages tout simplement)
L’entête de la fonction
Définir une fonction
Comme de nombreuses entités en informatique, une FONCTION nom_de_fonction(«liste entrées avec leurs types»):type
fonction doit être définie avant d’être utilisée, c’est-à- de la sortie
dire que l’on doit indiquer quelles sont les instructions « Déclarations des variables »
DEBUT
qui la composent : il s’agit de la définition de la
« instructions »
fonction, où l’on associe les instructions à RETOURNER (« la valeurs ou la variable à retourner »)
l’identification de la fonction.
FINFCT
La fonction doit être définie et comporter : un en-tête,
pour l’identifier et un corps contenant ses
instructions, pour la définir.