Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 2
LE PSEUDO-CODE
ALGORITHMIQUE 2
chapitre 2
DÉFINITIONS
ALGORITHMIQUE 3
chapitre 2
MISE EN FORME D’UN ALGORITHME
Le modèle à respecter
ALGORITHMIQUE 4
chapitre 2
LES VARIABLES 1/3
ALGORITHMIQUE 5
chapitre 2
LES VARIABLES 2/3
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
ALGORITHMIQUE 6
chapitre 2
LES VARIABLES 3/3
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)
ALGORITHMIQUE 7
chapitre 2
AFFECTATION
ALGORITHMIQUE 8
chapitre 2
LECTURE / AFFICHAGE
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.
ALGORITHMIQUE 9
chapitre 2
LES COMMENTAIRES
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.
ALGORITHMIQUE 10
chapitre 2
LES OPÉRATIONS 1/5
OU Vrai si
20+x>10 L’addition + est plus prioritaire que >.
ET x>10
ALGORITHMIQUE 14
chapitre 2
LES OPÉRATIONS 5/5
ALGORITHMIQUE 15
chapitre 2
EXÉCUTION CONDITIONNELLE 1/13
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.
ALGORITHMIQUE 16
chapitre 2
EXÉCUTION CONDITIONNELLE 2/13
ALGORITHMIQUE 17
chapitre 2
EXÉCUTION CONDITIONNELLE 3/13
ALGORITHMIQUE 18
chapitre 2
EXÉCUTION CONDITIONNELLE 4/13
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*/
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
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. ALGORITHMIQUE 21
chapitre 2
EXÉCUTION CONDITIONNELLE 7/13
Organigramme de l’algorithme
ALGORITHMIQUE 22
chapitre 2
EXÉCUTION CONDITIONNELLE 8/13
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
ALGORITHMIQUE 23
chapitre 2
EXÉCUTION CONDITIONNELLE 9/13
ALGORITHMIQUE 25
chapitre 2
EXÉCUTION CONDITIONNELLE 11/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
ALGORITHMIQUE 26
chapitre 2
EXÉCUTION CONDITIONNELLE 12/13
SINON :
Instructions
FINSELON ALGORITHMIQUE 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")
LIRE(a,b)
l’utilisateur une liste choix d’opération. Il y’a 3 valeurs 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
FIN chapitre 2
EXÉCUTION RÉPÉTITIVE – ITÉRATION 1/10
ALGORITHMIQUE 30
chapitre 2
EXÉCUTION RÉPÉTITIVE – ITÉRATION 3/10
ALGORITHMIQUE 32
chapitre 2
EXÉCUTION RÉPÉTITIVE – ITÉRATION 5/10
ALGORITHMIQUE 33
chapitre 2
EXÉCUTION RÉPÉTITIVE – ITÉRATION 6/10
ALGORITHMIQUE 36
chapitre 2
EXÉCUTION RÉPÉTITIVE – ITÉRATION 9/10
ALGORITHMIQUE 37
chapitre 2
EXÉCUTION RÉPÉTITIVE – ITÉRATION 10/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)
FIN ALGORITHMIQUE 43
chapitre 2
LES TABLEAUX 6/7
Multi-dimension Tableau à deux dimensions
L’élément tab[3][2]
ALGORITHMIQUE 44
chapitre 2
LES TABLEAUX 7/7
Multi-dimension Somme des éléments
ALGORITHME Moy_note_2
tab[10][10],S : REEL /*déclaration d’un tableaux 2 dimensions de
L’exemple ci-contre, montre comment 10x10 valeurs réels*/
manipuler les élément d’in tableau dans le but i,j,N,M : ENTIER
DEBUT
de remplir un tableau de 2 dimensions, puis de AFFICHER("entrez le nombre de lignes et le nombre de colonnes ")
l’afficher et ensuite calculer la somme de ses LIRE(N,M)
POUR(i ← 0, i<N, i ← i+1) /* Double boucle 1 :parcourt des éléments pour
éléments. POUR(j ← 0, j<M, j ← j+1) remplir le tableau tab*/
LIRE(tab[i][j])
Noter que pour parcourir les éléments du FINPOUR
tableau tab nous avons besoin de deux boucles FINPOUR
imbriquées, chacune a son propre indice de POUR(i ← 0, i<N, i ← i+1) /* Double boucle 2 : parcourt des éléments pour
POUR(j ← 0, j<M, j ← j+1) afficher le tableau tab*/
parcourt (i et j), il faut faire attention au sens AFFICHER(tab[i][j])
des indices pour ils ne soient pas mélangés FINPOUR
dans les boucles imbriquées. FINPOUR
S ← 0
Noter aussi que nous pourront réutiliser les POUR(i ← 0, i<N, i ← i+1) /* Double boucle 3 : parcourt des éléments pour
POUR(j ← 0, j<M, j ← j+1) calculer la somme des éléments du tableau tab*/
indices dans les autres Double boucles, car ils S ← S+tab[i][j])
sont indépendantes cette fois-ci. FINPOUR
FINPOUR
AFFICHER(“la somme des elements = ”,S)
FIN
ALGORITHMIQUE 45
chapitre 2
LES SOUS-PROGRAMMES OU FONCTIONS
Définition
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.
.
ALGORITHMIQUE 46
chapitre 2
LES SOUS-ALGORITHMES OU FONCTIONS
Les notions
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)
ALGORITHMIQUE 47
chapitre 2
LES SOUS-PROGRAMMES OU FONCTIONS
Intérêt des sous-programmes
ALGORITHMIQUE 49
chapitre 2
LES SOUS-PROGRAMMES OU FONCTIONS
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.
ALGORITHMIQUE 50
chapitre 2
LES SOUS-PROGRAMMES OU FONCTIONS
L’entête d’une fonction et la
valeur retourner L’entête de la fonction
L’entête de la fonction comporte le nom de la fonction
qui doit être significatif en vérifiant les mêmes règles
de nomination des variables. FONCTION nom_de_fonction(«liste entrées avec leurs types»):type
de la sortie
Entre les parenthèses nous mettons la liste des « Déclarations des variables »
variables requises pour que la fonction réalise les DEBUT
tâches désirées. Pour chaque variable de cette liste on « instructions »
doit écrire sont type. RETOURNER (« la valeurs ou la variable à retourner »)
ALGORITHMIQUE 53
chapitre 2