Vous êtes sur la page 1sur 84

INTRODUCTION A L’ALGORITHME

Chapitre 1: Les variables


Semestre : 1
Licence Informatique : 1
Sommaire
1.1. Qu’est-ce qu’un algorithme ?

1.2. A quoi servent les variables (objets algorithmiques) ?

1.2.1. Déclaration des variables

1.2.2. Les types de base

1.2.3. Syntaxe de déclaration de variables

1.3. L'instruction d'affectation

 Syntaxe, signification et ordre des instructions

1.4. Expressions et opérateurs


11/01/2022 2
1.1. Qu’est ce qu’un algorithme ?
Origine et Définition
 Le mot algorithme vient du nom d’un grand mathématicien Person:
Muhammad Ibn Mūsā al-Khuwārizmī, généralement simplifié en Al-
Khwarizmi, né dans les années 780, originaire de Khiva dans la région
du Khwarezm qui lui a donné son nom, dans l'actuel Ouzbékistan,
mort vers 850 à Bagdad. Il est également le père l’algèbre.

 Un algorithme est une suite finie d’instructions que l’on applique à un nombre fini de
données dans un ordre précis pour arriver à un résultat.

 L’algorithmique est la science qui étudie les algorithmes.


Elle s’intéresse à l’art de construire des algorithmes ainsi qu’a caractériser leur validité,
leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité.

11/01/2022 3
1.1. Qu’est ce qu’un algorithme ?
Exemples
a) Dans la vie de tout les jours b) Un programme de calcul
1- Le réveil sonne 1- Choisir un nombre
2- Je me lève 2- Lui ajouter 5
3- J’enlève mon pyjama 3- Multiplier la somme obtenue par
4- Je me douche le nombre choisi
5- Je m’habille 4- Ajouter 4 à ce produit
6- Je prépare le café 5- Ecrire le résultat
7- Je déjeune
8- Je prend mes affaires
9- J’ouvre la porte
10- Je sors
11- Je referme la porte
11/01/2022 4
1.1. Qu’est ce qu’un algorithme ?
Exemples
c) Une recette de cuisine

11/01/2022 5
1.1. Qu’est ce qu’un algorithme ?
Exemples
d) Trouver son chemin
Extrait d’un dialogue entre un touriste égaré et un autochtone.
– Pourriez-vous m’indiquer le chemin de la gare, s’il vous plait ?
– Oui bien sûr : vous allez tout droit jusqu’au prochain carrefour, vous prenez à gauche au carrefour et
ensuite la troisième à droite, et vous verrez la gare juste en face de vous.
– Merci.

Dans ce dialogue, la réponse de l’autochtone est la description d’une suite ordonnée d’instructions
(allez tout droit, prenez à gauche, prenez la troisième à droite) qui manipulent des
données (carrefour, rues) pour réaliser la tâche désirée (aller à la gare). Ici encore, chacun a
déjà été confronté à ce genre de situation et donc, consciemment ou non, a déjà construit un
algorithme dans sa tête (ie. définir la suite d’instructions pour réaliser une tâche). Mais quand
on définit un algorithme, celui-ci ne doit contenir que des instructions compréhensibles par celui

11/01/2022 qui devra l’exécuter. 6


1.1. Qu’est ce qu’un algorithme ?
Propriétés
 Validité d’un algorithme
La validité d’un algorithme est son aptitude à réaliser exactement la tâche pour laquelle il a été conçu.
Si l’on reprend l’exemple d) de l’algorithme de recherche du chemin de la gare, l’étude de sa validité consiste à
s’assurer qu’on arrive effectivement à la gare en exécutant scrupuleusement les instructions dans l’ordre annoncé.

 Robustesse d’un algorithme


La robustesse d’un algorithme est son aptitude à se protéger de conditions anormales d’utilisation.
Dans l’exemple d), la question de la robustesse de l’algorithme se pose par exemple si le chemin proposé a été
pensé pour un piéton, alors que le « touriste égaré » est en voiture et que la « troisième à droite » est en sens interdit.

 Réutilisabilité d’un algorithme


La réutilisabilité d’un algorithme est son aptitude à être réutilisé pour résoudre des tâches équivalentes à celle pour
laquelle il a été conçu.
L’algorithme de recherche du chemin de la gare est-il réutilisable tel quel pour se rendre à la mairie ? A priori non,
sauf si la mairie est juste à côté de la gare.
11/01/2022 7
1.1. Qu’est ce qu’un algorithme ?
Propriétés
 Complexité d’un algorithme
La complexité d’un algorithme est le nombre d’instructions élémentaires à exécuter pour réaliser la tâche pour
laquelle il a été conçu.
Si le « touriste égaré » est un piéton, la complexité de l’algorithme de recherche de chemin peut se compter en
nombre de pas pour arriver à la gare.

 Efficacité d’un algorithme


L’efficacité d’un algorithme est son aptitude à utiliser de manière optimale les ressources du matériel qui l’exécute.

N’existerait-il pas un raccourci piétonnier pour arriver plus vite à la gare ?

11/01/2022 8
1.2. A quoi servent les variable?
Illustration
 Un ordinateur ou une calculatrice qui exécute un algorithme doit stocker
les données entrées par l’utilisateur et les résultats de ses calculs dans un
endroit de sa mémoire. C’est ce que l’on appellera une Variable.

 Une variable est un espace (case, boite) dans la mémoire (RAM) de


l’ordinateur destiné à stocker provisoirement de l’information.

 Elle associe un nom à une valeur qui peut éventuellement varier au cours
du temps.
Valeur 2 Valeur 3 Valeur 5

11/01/2022 Variable a Variable b Variable somme 9


1.2.1. Déclaration des variable?
La première chose à faire avant de pouvoir utiliser une variable est de créer la boîte et de lui coller une étiquette.
Ceci se fait tout au début de l’algorithme, avant même les instructions proprement dites. C’est ce qu’on appelle la
déclaration des variables.

Déclaration une variable reviens à :


1- Réserver un espace en mémoire (Type de la donnée ou créer la boîte )
2- Attribuer un nom (Identificateur ou étiquette)
Le nom de la variable obéit à des règles suivantes:
• Il comporter des lettres (a…z, A…Z) et des chiffres (0..9),
• Il doit toujours commence par une lettre,
• Il ne doit pas contenir d’espace, des caractères accentués, des signes de ponctuation et des
caractères spéciaux ( $, €, &, @, #, +,*, -, ?) etc.
• Seule le caractère _ (underscore) est accepté.
• La casse est significative: les caractères majuscules et minuscules sont distingués.
Par convention, on écrira l’essentiel des noms de variable en caractères minuscules (y compris la première
lettre). On n’utilisera les majuscules qu’à l’intérieur même du nom pour en augmenter éventuellement la
lisibilité.
11/01/2022 10
1.2.1. Déclaration des variable?
Remarques :
1. Une constante est une variable dont la valeur associée ne varie pas au cours du programme. Nous
pourrons l’écrire entièrement en majuscule, par exemple PI = 3.14

2. Pour déclarer une variable on utilise le mot clé Variables ou Var

3. Pour déclarer une constante on utilise le mot clé Constantes ou Const

Exemple: Désigner les noms de variables corrects

a mille +a m@rque Note_final nom m@rque


2b miLLe b ball note_final fête _prix_HT
note no5te note1 prix total note_Final Modèl surface_

11/01/2022 11
1.2.2. Les types de base
Il existe plusieurs type de variables, mais nous considérons cinq types de base :
Type Description Mot clé Exemple
Entier Permet de représenter des nombres entier 25, -318, 0, 15786
entiers signés ou pas signés.
Réel/décimal Permet de représenter des nombres en réel 45,78 ; -3,4 ;
virgule flottante.
59, 4*10 e -6
Caractère Permet de représenter des caractères. car 'a', 'b', '*','@', '! '
Chaîne de Permet de représenter des séquences chaîne ''informatique'',
caractère de caractères consécutifs.
''elle marche vite''

Booléen Ce type est utilisé pour représenter la


véracité d’une expression. Il ne peut booléen
prendre que deux valeurs possible: ou
VRAI ou FAUX.
bool
VRAI, FAUX

11/01/2022 12
1.2.3 Syntaxe de déclaration de variables
Syntaxe de déclaration d’une variable : NomVariable : Type

Exemple : Déclaration des variables et constantes

Variables :
a : entier volume : reel sexe : car test :booleen
age : entier prix_HT : reel nom : chaine trouve :bool
nombre : entier taille : reel prenom : chaine

Constantes :
PI : = 3,14
tempEbulEau : = 100

Remarque : une constante est initialisé dès sa déclaration.

11/01/2022 13
1.3. L’instruction d’affectation
 Syntaxe, signification et ordre des instructions
L’affectation est l’opération qui consiste à attribuer une valeur à une variable.
L’instruction d’affectation est notée := ou 

Variable := Valeur ou Variable  Valeur

Exemple : a 25
b:= -318 Valeur 25
PI := 3,14
N  59, 4*10 e -6
ville  ‘m’
module  ‟informatique”
Variable a
phrase  ‟elle marche vite”
existe := VRAI

Important: une variable ne peut contenir qu'une seule valeur a la fois.


11/01/2022 14
1.3. L’instruction d’affectation
 Syntaxe, signification et ordre des instructions
On peut sans aucun problème attribuer à une variable la valeur d’une autre variable, à condition qu’ils soient de
même type.
Exemple: chiffre 318
 Ordre des instructions:
note  chiffre
moyenne  note * 5 Il va de soi que l’ordre dans lequel les
instructions sont écrites va jouer un rôle essentiel
 Rôle des doubles cotes dans les chaînes: dans le résultat final.
Considérons les deux algorithmes suivants :
Comparons maintenant deux exemples suivants:

Exemple n°1 Exemple n°2 Exemple n°1 Exemple n°2

riri  "Loulou" riri ← "Loulou" prix 450 prix← 50


fifi  "riri" fifi ← riri prix 50 prix← 450

11/01/2022 15
Exercices d’application
Énoncé des Exercices

Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Entier
Début
A←1
B←A+3
A←3
Fin

11/01/2022 16
Exercices d’application
Énoncé des Exercices

Exercice 1.2
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C en Entier
Début
A←5
B←3
C←A+B
A←2
C←B–A
Fin

11/01/2022 17
Exercices d’application
Énoncé des Exercices

Exercice 1.3
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Entier
Début
A←5
B←A+4
A←A+1
B←A–4
Fin

11/01/2022 18
Exercices d’application
Énoncé des Exercices

Exercice 1.4
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C en Entier
Début
A←3
B ← 10
C←A+B
B←A+B
A←C
Fin

11/01/2022 19
Exercices d’application
Énoncé des Exercices

Exercice 1.5
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Entier
Début
A←5
B←2
A←B
B←A
Fin
Moralité : les deux dernières instructions permettent-elles d’échanger les deux valeurs de B et A ?
Si l’on inverse les deux dernières instructions, cela change-t-il quelque chose ?

11/01/2022 20
Exercices d’application
Énoncé des Exercices

Exercice 1.6
Plus difficile, mais c’est un classique absolu, qu’il faut absolument maîtriser : écrire un algorithme permettant
d’échanger les valeurs de deux variables A et B, et ce quel que soit leur contenu préalable.

Exercice 1.7
Une variante du précédent : on dispose de trois variables A, B et C. Ecrivez un algorithme transférant à B la
valeur de A, à C la valeur de B et à A la valeur de C (toujours quels que soient les contenus préalables de ces
variables).

11/01/2022 21
1.4. Expressions et opérateurs
Les expressions
Si on fait le point, on s’aperçoit que dans une instruction d’affectation, on trouve :

• à gauche de la flèche, un nom de variable, et uniquement cela. En ce monde rempli de doutes qu’est celui
de l’algorithmique, c’est une des rares règles d’or qui marche à tous les coups : si on voit à gauche d’une
flèche d’affectation autre chose qu’un nom de variable, on peut être certain à 100% qu’il s’agit d’une
erreur.
• à droite de la flèche, ce qu’on appelle une expression. Voilà encore un mot qui est trompeur ; en effet, ce
mot existe dans le langage courant, où il revêt bien des significations. Mais en informatique, le terme
d’expression ne désigne qu’une seule chose, et qui plus est une chose très précise :
Une expression est un ensemble de valeurs, reliées par des opérateurs, et équivalent à une seule valeur

Exemple: a  b² + c²
chiffre 364+2*3
note  chiffre *0,75 / 100
moyenne  note * 5 - chiffre
L’expression située à droite de la flèche doit être du même type que la
11/01/2022 variable située à gauche. 22
1.4. Expressions et opérateurs
Les opérateurs
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.

Les opérateurs possibles dépendent du type des valeurs qui sont en jeu.

1- Opérateurs sur les entiers et les réels

La multiplication et la division sont prioritaire sur l’addition et la soustraction.

11/01/2022 23
1.4. Expressions et opérateurs
Les opérateurs
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.

Les opérateurs possibles dépendent du type des valeurs qui sont en jeu.

2- Opérateurs sur les entiers et les booléens

11/01/2022 24
1.4. Expressions et opérateurs
Les opérateurs
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.

Les opérateurs possibles dépendent du type des valeurs qui sont en jeu.

2- Opérateurs sur les caractères et les chaîne de caractères

&

11/01/2022 25
1.4. Expressions et opérateurs
Les opérateurs

Exercice 1.8 Exercice 1.9


Que produit l’algorithme suivant ? Que produit l’algorithme suivant ?
Variables A, B, C en Caractères Variables A, B, C en Caractères
Début Début
A ← "423" A ← "423"
B ← "12" B ← "12"
C←A+B C←A&B
Fin Fin

11/01/2022 26
INTRODUCTION A L’ALGORITHME
Chapitre 2: Les opérations
d’Entrée/Sortie
Semestre : 1
Licence Informatique : 1
Sommaire

2.1. De quoi parle-t-on ?

2.2. Les instructions de lecture et écriture

2.3. Construction d’un algorithme simple

2.4. Langage naturel et langage algorithmique

11/01/2022 28
2.1. De quoi parle-t-on ?
Dans n’importe quel programme (Algorithme), des échanges d’information ont lieu entre l’utilisateur et la
machine. Ces échanges d’informations sont appelés opération d’entrée/sortie.

De nombreux algorithmes ont pour but de communiquer avec un utilisateur, cela se fait dans les deux sens, les
sorties sont des envois de messages a l'utilisateur, les entrées sont des informations fournies par l'utilisateur.

2.2. Les instructions de lecture et écriture


 Opération d’Entrée :
Cette opération est encore appelée Lecture ou Saisie, elle consiste à entrer les données dans la machine, elle
s’effectue généralement par la saisie au clavier.

Syntaxe: Lire (NomVariable) ; Saisie (NomVariable) ; Lire (NomVariable1, NomVariable2,… NomVariable1)

La saisie interrompt le programme jusqu'a ce que l'utilisateur ait saisi une valeur au clavier. Une fois cela fait,
la valeur saisie est placée dans la variable NomVariable. Il est possible de saisir plusieurs variables a la suite.

11/01/2022 29
2.2. Les instructions de lecture et écriture
Valeur
Exemple: Lire (A)
Lire (age)
Place les valeurs saisies par l'utilisateur dans les variables A, age.

 Opération de Sortie: age


Cette opération est encore appelée Ecriture ou Affichage, elle consiste à afficher les messages et les résultats
des traitements de données à l’écran.
""
Syntaxe: Ecrire (NomVariable) ; Affiche (NomVariable)

Exemple 1: Ecrire (A) Affiche les valeurs des variables A, age à l’écran.
Ecrire (age)
Exemple 2: Ecrire ("Bonjour le Monde")
Ecrire ("Vous avez", age)
Lorsque l'on combine messages et variables dans les instruction d'affichage, on les sépare par des virgules.
Notez bien que ce qui est délimité par les doubles cotes est affiché tel quel, alors tout ce qui n'est pas
délimité par les doubles cotes est considéré comme des variables.
11/01/2022 30
2.3. Construction d’un algorithme simple
Construire un algorithme consiste par convention:
 à lui donner un nom,
 identifier les constantes: les nommer et les initialiser,
 identifier les variables: les nommer et indiquer leur types,
 écrire le corps de l’algorithme encadré par les mots clé
« Début » et « Fin ».

Le corps de l’algorithme contiendra les opérations de lecture et d’écriture des variables


qui le nécessitent. L’usage veut que l’on indente toute séquence d’instructions en
décalant le début de chaque ligne pour faciliter la compréhension de l’algorithme.

11/01/2022 31
2.3. Construction d’un algorithme simple
Structure d’un algorithme simple
Algorithme Nom_Algorithme

Constantes:
Liste des constantes avec leurs valeurs
Variables : Partie déclarative
En entrées : Liste des variables avec leurs types
En sorties : Liste des variables avec leurs types

Début

Liste des instructions… Corps de


l’algorithme

Fin
Fin_Algorithme
11/01/2022 32
2.3. Construction d’un algorithme simple
Exemple: calcul de l’aire d’un cercle

Algorithme Calcul_AireCercle
Constantes :
PI = 3,14
Variables :
En entrées : rayon : réel
En sortie : surface : réel
Début
Ecrire (‘‘Entrez la valeur du rayon :’’)
Lire (rayon)
surface  PI * (rayon*rayon)
Ecrire (surface)
Fin
Fin de l’algorithme

11/01/2022 33
2.4. Langage naturel et langage algorithmique
Exemple :
Créer un algorithme qui calcule et affiche l’aire d’un rectangle après que l’utilisateur est entré les
dimensions du rectangle.
Algorithme Calcul_Aire_rectangle
Langage naturel: Variables :
longueur, largeur : entier
aire : entier
Entrer la longueur L
DEBUT
Entrer la largeur l Ecrire ("Entrer la longueur")
Aire = L*l Lire (longueur)
Afficher l’Aire Ecrire ("Entrer la largueur")
Lire (largeur)
aire  longueur * largeur
Ecrire (aire)

FIN
Fin de l’algorithme
11/01/2022 34
Exercices d’application
Énoncé des Exercices
Exercice 2.1
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carré de ce nombre.

Exercice 2.2
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA, et qui fournit le
prix total TTC correspondant. Faire en sorte que des libellés apparaissent clairement.

Exercice 2.3
Ecrire un algorithme permettant de saisir trois nombres, d’en effectuer la somme, le produit et la moyenne,
puis les afficher.

Exercice 2.4
Ecrire un algorithme permettant de saisir deux nombres, de les permuter, puis les afficher.

Exercice 2.5
Ecrire un algorithme utilisant des variables de type chaîne de caractères, et affichant quatre variantes
possibles de la célèbre « belle marquise, vos beaux yeux me font mourir d’amour ». On ne se soucie pas de la
ponctuation, ni des majuscules.

11/01/2022 35
INTRODUCTION A L’ALGORITHME
Chapitre 3: Les structures de
contrôle (les tests)
Semestre : 1
Licence Informatique : 1
Sommaire

3.1. De quoi s'agit-il ?


3.2. Structure d'un test
3.3. Tests imbriqués
3.4. De l'aiguillage à la gare de tri
3.5. Variables booléennes
3.6. Structure conditionnelle multiple (le choix)

11/01/2022 36
3.1. De quoi s'agit-il ?
Reprenons le cas de notre « algorithme du touriste égaré ». Normalement, l’algorithme ressemble à quelque
chose comme : « Allez tout droit jusqu’au prochain carrefour, puis prenez à droite et ensuite la deuxième à
gauche, et vous y êtes ».

Mais en cas de doute légitime de votre part, cela pourrait devenir : « Allez tout droit jusqu’au prochain
carrefour et là regardez à droite. Si la rue est autorisée à la circulation, alors prenez la et ensuite c’est la
deuxième à gauche. Mais si en revanche elle est en sens interdit, alors continuez jusqu’à la prochaine à
droite, prenez celle-là, et ensuite la première à droite ».

Comparez ces 2 algorithmes et dite lequel est meilleur ?

Le deuxième algorithme est meilleur que le premier du fait qu’il prévoit, en fonction d’une situation pouvant se
présenter de deux façons différentes, deux façons différentes d’agir. Cela suppose que l’interlocuteur (le touriste)
sache analyser la condition que nous avons fixée à son comportement (« la rue est-elle en sens interdit ? ») pour
effectuer la série d’actions correspondante.

11/01/2022 37
3.2. Structure d’un test
Encore appelée structure conditionnelle, un test permet d’exécuter une séquence d’instructions si une
condition est vérifiée.

Syntaxe d’une structure de test simple

Si (condition) Alors
<Séquence d’instructions>
FinSi

La structure simple d’un test est relativement claire, arrivé à la première ligne (Si… Alors) la machine
examine la valeur de la condition. Si la cette valeur est VRAI, elle exécute la séquence d’instructions.

Cette séquence d’instructions peut être très brève comme très longue, cela n’a aucune importance. En
revanche, dans le cas où la condition est FAUX, l'ordinateur saute directement aux instructions situées après
le FinSi.

11/01/2022 38
3.2. Structure d’un test
Qu'est-ce qu'une condition ?

Une condition s’exprime sous forme d’une expression logique (Booléenne). Elle peut être:
• simple (condition simple): VRAI , FAUX
• ou combinée (plusieurs conditions composées) avec des opérateurs logiques ET, OU, NON, et des
opérateurs de comparaison.

Syntaxe d’une structure de test composée


Si (condition) Alors Si la condition est vérifiée alors la
<Séquence d’instructions 1> <Séquence d’instruction 1> s’exécute.
Sinon
Dans le cas contraire, c’est la <Séquence
<Séquence d’instructions 2>
d’instruction 2> qui va s’exécuter.
FinSi

11/01/2022 39
Exercices d’application
Énoncé des Exercices

Exercice 3.1
Ecrire un algorithme qui permet d’afficher la valeur absolue d’un nombre saisi au clavier par un utilisateur.

Exercice 3.2
Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce nombre est positif ou
négatif (on laisse de côté le cas où le nombre vaut zéro).

Exercice 3.3
Ecrire un algorithme permettant de comparer deux nombres réels.

Exercice 3.4
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou
positif (on laisse de côté le cas où le produit est nul). Attention toutefois : on ne doit pas calculer le produit
des deux nombres.

11/01/2022 40
3.3. Tests imbriqués
Graphiquement, on peut très facilement représenter un SI comme un aiguillage de chemin de fer. Un SI ouvre donc
deux voies, correspondant à deux traitements différents. Mais il y a des tas de situations où deux voies ne suffisent
pas. Par exemple, un programme devant donner l’état de l’eau selon sa température doit pouvoir choisir
entre trois réponses possibles (solide, liquide ou gazeuse).
Algorithme Etat_Eau
Variable :
temp : Entier
Début
Ecrire ("Entrez la température de l’eau :")
Lire (temp) Note: Vous constaterez que c’est un peu laborieux. Les
Si (temp =< 0) Alors conditions se ressemblent plus ou moins, et surtout on
Ecrire ("C’est de la glace") oblige la machine à examiner trois tests successifs alors
FinSi que tous portent sur une même chose, la température de
Si (temp > 0 ET temp < 100) Alors l'eau (la valeur de la variable Temp).
Ecrire ("C’est du liquide")
Finsi
Si (temp > 100) Alors
Ecrire ("C’est de la vapeur")
Finsi
Fin
11/01/2022 FinAlgorithme 41
3.3. Tests imbriqués
Il serait ainsi bien plus rationnel d’imbriquer les tests de cette manière :

Algorithme Etat_Eau Nous avons fait des économies : au lieu de devoir


Variable taper trois conditions, dont une composée, nous
temp : Entier n’avons plus que deux conditions simples. Mais
Début aussi, et surtout, nous avons fait des économies sur
Ecrire "Entrez la température de l’eau :"
le temps d’exécution de l’ordinateur. Si la
Lire (temp)
Si (temp =< 0) Alors
température est inférieure à zéro, celui-ci écrit
Ecrire "C’est de la glace" dorénavant « C’est de la glace » et passe
Sinon Si (temp > 0 ET temp < 100) Alors directement à la fin, sans être ralenti par l’examen
Ecrire ("C’est du liquide") d’autres possibilités (qui sont forcément fausses).
Sinon
Ecrire ("C’est de la vapeur") Cette deuxième version n’est donc pas seulement
FinSi plus simple à écrire et plus lisible, elle est
FinSi également plus performante à l’exécution.
Fin
FinAlgorithme
Les structures de tests imbriqués sont donc un
outil indispensable à la simplification et à
l’optimisation des algorithmes.
11/01/2022 42
Exercices d’application
Énoncé des Exercices

Exercice 3.5
Ecrire un algorithme qui permet de déterminer le plus grand de trois nombres saisis au clavier.

Exercice 3.6
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si le produit est négatif ou
positif (on inclut cette fois le traitement du cas où le produit peut être nul). Attention toutefois, on ne doit
pas calculer le produit !

Exercice 3.7
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie :
• "Poussin" de 6 à 7 ans
• "Pupille" de 8 à 9 ans
• "Minime" de 10 à 11 ans
• "Cadet" après 12 ans

Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ?

11/01/2022 43
3.3. De l'aiguillage à la gare de tri
En effet, dans un programme, une structure SI peut être facilement comparée à un aiguillage de train. La
voie principale se sépare en deux, le train devant rouler ou sur l’une, ou sur l’autre, et les deux voies se
rejoignant tôt ou tard pour ne plus en former qu’une seule, lors du FinSi. On peut schématiser cela ainsi :

Si

FinSi

11/01/2022 44
3.3. De l'aiguillage à la gare de tri
Mais dans certains cas, ce ne sont pas deux voies qu’il nous faut, mais trois, ou même plus. Dans le cas de
l’état de l’eau, il nous faut trois voies pour notre « train », puisque l’eau peut être solide, liquide ou gazeuse.
Alors, nous n’avons pas eu le choix : pour deux voies, il nous fallait un aiguillage, pour trois voies il nous en
faut deux, imbriqués l’un dans l’autre.
Cette structure (telle que nous l’avons programmée à précédemment) devrait être schématisée comme suit :
Si

Vrai Condition Faux


1

Séquence 1 Vrai Condition Faux


2

Séquence 2 Séquence 3

FinSi
11/01/2022 FinSi 45
3.3. De l'aiguillage à la gare de tri
Ainsi, il est possible (mais non obligatoire), que l’algorithme initial :

Algorithme Etat_Eau Algorithme Etat_Eau


Variable : Variable :
temp : Entier temp : Entier
Début Début
Ecrire "Entrez la température de l’eau :" Ecrire "Entrez la température de l’eau :"
Lire (temp) Lire (temp)
Si (temp =< 0) Alors Si temp =< 0 Alors
Ecrire "C’est de la glace" Ecrire "C’est de la glace"
Sinon Si (temp < 100) Alors SinonSi (temp < 100) Alors
Ecrire "C’est du liquide" Ecrire "C’est du liquide"
Sinon Sinon
Ecrire "C’est de la vapeur" Ecrire "C’est de la vapeur"
FinSi FinSi
FinSi Fin
Fin FinAlgorithme
FinAlgorithme Dans le cas de tests imbriqués, le Sinon et le Si
peuvent être fusionnés en un SinonSi. On considère
alors qu’il s’agit d’un seul bloc de test, conclu par un
11/01/2022 seul FinSi 46
3.5. Variables booléennes
Jusqu’ici, pour écrire nos des tests, nous avons utilisé uniquement des conditions. Mais vous vous
rappelez qu’il existe un type de variables (les booléennes) susceptibles de stocker les valeurs VRAI ou
FAUX. En fait, on peut donc entrer des conditions dans ces variables, et tester ensuite la valeur de ces
variables.
Reprenons l’exemple de l’eau. On pourrait le réécrire ainsi :
Algorithme Etat_Eau
Variable :
temp : Entier
A, B : Booléen
Début
Ecrire "Entrez la température de l’eau :"
Lire (temp)
A temp =< 0
B temp < 100
Si A alors
Ecrire "C’est de la glace"
SinonSi B alors
Ecrire "C’est du liquide"
Sinon
Ecrire "C’est de la vapeur"
FinSi
Fin
11/01/2022 FinAlgorithme 47
3.6. Structure conditionnelle multiple (le choix)
Lorsque que l'on souhaite conditionner l'exécution de plusieurs ensembles d'instructions par la valeur que
prend une variable, plutôt que de faire des imbrications de Si a outrance, on préférera la structure
conditionnelle multiple. Elle se présente sous la forme suivante :

Suivant <valeur ou expression> faire


Valeur 1: <Séquence d’instructions 1>
Valeur 2: <Séquence d’instructions 2>
…………..
Valeur n: <Séquence d’instructions n>
Sinon <Séquence par défaut>
FinSuivant

Dans cette structure, on peut comparer un objet (variable ou expression) à toute une série de valeurs, et
d’exécuter , en fonction de la valeurs effective de l’objet, différentes séquence d’instructions. Une
séquence par défaut peut être prévu dans le cas où l’objet n’est égale à aucune des valeurs énumérées.

11/01/2022 48
3.6. Structure conditionnelle multiple (le choix)

Exercice 3.8
Ecrire un algorithme qui permettant à partir d’un menu affiché à l’écran, d’effectuer la somme ou le produit
ou la moyenne de trois nombres entré au clavier. Nous appelons « menu », l’association d’un numéro séquentiel
aux différent choix proposé par un programme.

11/01/2022 49
INTRODUCTION A L’ALGORITHME

Chapitre 4: Les structures


Semestre : 1
itératives (les boucles)
Licence Informatique : 1
Sommaire

4.1. De quoi s'agit-il ?


4.2. La boucle tant que… faire
4.3. La boucle répéter… jusqu’à
4.4. La boucle pour…faire
4.5. Les boucles imbriquées

11/01/2022 50
4.1. De quoi s’agit-il ?
contexte
Prenons le cas d’une saisie au clavier (une lecture), où par exemple, le programme pose une question à
laquelle l’utilisateur doit répondre par O (Oui) ou N (Non). Mais tôt ou tard, l’utilisateur, facétieux ou
maladroit, risque de taper autre chose que la réponse attendue. Dès lors, le programme peut planter soit par
une erreur d’exécution (parce que le type de réponse ne correspond pas au type de la variable attendu) soit
par une erreur fonctionnelle (il se déroule normalement jusqu’au bout, mais en produisant des résultats
fantaisistes).

Alors, dans tout programme un tant soit peu sérieux, on met en place ce qu’on appelle un contrôle de
saisie, afin de vérifier que les données entrées au clavier correspondent bien à celles attendues par
l’algorithme.

11/01/2022 51
4.1. De quoi s’agit-il ?
A vue de nez, on pourrait essayer avec un Si. Voyons voir ce que ça donne :

Algorithme Demande
Variable rep: Car C’est impeccable. Du moins tant que l’utilisateur a le bon
Début goût de ne se tromper qu’une seule fois, et d’entrer une
Ecrire « Voulez vous un café ? (O/N):" valeur correcte à la deuxième demande. Si l’on veut
Lire (rep) également bétonner en cas de deuxième erreur, il faudrait
Si (rep < > "O " OU
ET rep < > "N ") alors rajouter un Si. Et ainsi de suite, on peut rajouter des
Ecrire "Saisie erronée. Recommencez" centaines de Si, et écrire un algorithme aussi lourd
Lire (rep) qu’une blague des Grosses Têtes, on n’en sortira pas, il y
FinSi aura toujours moyen qu’un acharné flanque le programme
Fin
par terre.
FinAlgorithme

La solution consistant à aligner des Si … en pagaille est donc une impasse.

La seule issue possible est donc d’utiliser une structure de boucle.

11/01/2022 52
4.1. De quoi s’agit-il ?
Définition
Une boucle permet d'exécuter plusieurs fois de suite une même séquence d'instructions. Cette
ensemble d'instructions s'appelle le corps de la boucle. Chaque exécution du corps d'une boucle
s'appelle une itération, ou encore un passage dans la boucle. Il existe trois types de boucle :
 tant que … faire
 répéter ... jusqu’à
 pour … faire
Chacune de ces boucles a ses avantages et ses inconvénients. Nous les passerons en revue ultérieurement.

11/01/2022 53
4.2. La boucle tant que … faire
Syntaxe:

tant que (condition) faire


<Séquence d’instructions>
fin tant que

Le principe est simple : le programme arrive sur la ligne du tant que. Il examine alors la valeur de la
condition (qui, je le rappelle, peut être une variable booléenne ou une expression). Si cette valeur est
VRAI, le programme exécute les instructions qui suivent, jusqu’à ce qu’il rencontre la ligne fin tant que. Il
retourne ensuite sur la ligne du tant que, procède au même examen, et ainsi de suite. Le manège enchanté
ne s’arrête que lorsque la condition n’est plus vérifier (le booléen prend la valeur FAUX).

11/01/2022 54
4.2. La boucle tant que … faire
Illustration avec notre problème de contrôle de saisie. Une première approximation de la solution
consiste à écrire :
Amélioration
Algorithme Demande
Variable rep: Car Algorithme Demande
Début Variable rep: Car
Ecrire ("Voulez vous un café ? (O/N) : ") Début
Lire (rep) Ecrire (" Voulez vous un café ? (O/N) : ")
Tant que (rep < > "O " ET rep < > "N ") faire Lire (rep)
Lire (rep) Tant que (rep < > "O " ET rep < > "N") faire
Fin Tant que Ecrire ("Vous devez répondre par O ou N. Recommencez")
Fin Lire (rep)
FinAlgorithme Fin Tant que
Ecrire ("Saisie acceptée")
Fin
FinAlgorithme

NOTE : Une boucle tant que … faire n’est exécuter que si la condition est vérifier dès le départ.

11/01/2022 55
4.2. La boucle tant que … faire

Exercice 4.1
Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3 jusqu’à ce que la réponse
convienne.

Exercice 4.2
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne.
En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et inversement,
« Plus grand ! » si le nombre est inférieur à 10.

Exercice 4.3
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants.
Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.

11/01/2022 56
4.3. La boucle répéter … jusqu’à
Syntaxe:
répéter
<Séquence d’instructions>
jusqu’à (condition)

Le fonctionnement est analogue a celui de la boucle tant que a quelques détails près :
• la condition est évaluée après chaque passage dans la boucle.
• on exécute le corps de la boucle jusqu’à ce que la condition soit vérifiée, donc tant que la condition est
fausse.

NOTE : Une boucle répéter ... jusqu'a s’exécutée donc au moins une fois avant de tester la condition .

11/01/2022 57
4.3. La boucle répéter … jusqu’à
Reprenons l'exemple précédent avec une boucle répéter ... jusqu'a :

Algorithme Demande
Amélioration
Variable:
rep: Car
Algorithme Demande
Début
Variable:
Ecrire (" Voulez vous un café ? (O/N) : ") rep: Car
répéter Début
Lire (rep) Ecrire (" Voulez vous un café ? (O/N) : ")
Ecrire ("Vous devez répondre par O ou N. Recommencez" ) répéter
jusqu’à (rep = = "O" OU rep = = "N") Lire (rep)
Ecrire ("Saisie acceptée") Ecrire ("Vous devez répondre par O ou N. Recommencez ")
Fin jusqu’à (rep == "O" ET rep == "N")
FinAlgorithme Ecrire "Saisie acceptée"
Fin
FinAlgorithme

11/01/2022 58
4.4. La boucle pour … faire
Syntaxe:
Pour ( compteur : = valeur initiale à valeur finale) pas de < incrément> faire
<Séquence d’instructions>
Fin pour

Cette structure permet de répéter une séquence un nombre connu de fois.


Le compteur est une variable de type entier. La valeur initiale et la valeur finale sont des constantes ou
des variables de type entier. L’incrément (pas) est la valeur d’augmentation progressive du compteur. La
valeur par défaut du pas est de 1 (dans le cas où on ne le précise pas).

Si la valeur initiale est égale à la valeur finale, la séquence d’instruction définie est exécutée une seule fois.

Par contre, la séquence d’instruction n’est pas exécutée dans deux cas:

• Si la valeur initiale est strictement supérieure à la valeur finale alors que l’incrément est positif, ou bien

• Si la valeur initiale est strictement inférieure à la valeur finale alors que l’incrément est négatif.
11/01/2022 59
4.4. La boucle pour … faire
La structure pour … faire est une simplification de la structure suivante:

compteur  valeur initiale


Tant que (compteur < = valeur finale ) faire
<Séquence d’instructions>
compteur  compteur + incrément
Fin tant que

11/01/2022 60
4.5. Les boucles imbriquées
Les boucles peuvent être imbriquées les unes dans les autres. Une boucle « tant que …faire » peut contenir une
autre boucle « tant que … faire », ou une boucle « répéter… jusqu’à », ou une autre boucle « pour … faire », et
vice versa.
De plus une boucle peut contenir une autre boucle qui elle-même peut contenir une autre boucle et ainsi de suite.

NOTE : Une boucle peut contenir un test et vice versa.

Exemple:
Algorithme Tables_Multiplication
Ecrire un algorithme permettant d’effectuer et d’afficher Variables :
toutes les tables de multiplication par 1 jusqu’à 12. i , j : entier
Début
Ecrire (" Tables de multiplication : ")
Pour ( i := 1 à 12 ) faire
Pour ( j := 1 à 12 ) faire
Ecrire ( j, " * ", i , " = " , j * i )
Fin pour
Fin pour
Fin
Fin Algorithme
11/01/2022 61
Exercices d’application
Énoncé des Exercices
Exercice 4.4
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de
ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21

7 x 10 = 70

Exercice 4.5
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à ce
nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.

11/01/2022 62
Exercices d’application
Énoncé des Exercices
Exercice 4.6
Ecrire un algorithme qui permet de calculer le factoriel d’un nombre entier n strictement positif sachant
que: n ! = 1 x 2 x 3 x ..… x n , et que
0 ! = 1 par convention
NB : le factoriel de 5, notée 5 !, vaut 1 x 2 x 3 x 4 x 5 = 120
le factoriel d’un nombre négatif n’existe pas, il est donc nécessaire que votre algorithme vérifie si le
nombre donné n’est pas négatif.

Exercice 4.7
Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise ensuite quel était
le plus grand parmi ces 20 nombres :
Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14
etc.
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14
Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait été saisie ce
nombre :
C’était le nombre numéro 2
11/01/2022 63
Exercices d’application
Énoncé des Exercices
Exercice 4.8
Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas d’avance combien l’utilisateur
souhaite saisir de nombres. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.

Exercice 4.9
Ecrire l’algorithme qui permet de saisir une série de nombres entiers positifs puis qui propose
indéfiniment (en boucle) à l’utilisateur, par l’intermédiaire d’une sorte de menu à choix multiple,
d’afficher la valeur minimal, la valeur maximale, la somme ou la moyenne des nombres entrés, ou encore
de quitter le programme.

11/01/2022 64
INTRODUCTION A L’ALGORITHME

Chapitre 5: Les fonctions et


Semestre : 1
procédures
Licence Informatique : 1
Sommaire
1. Introduction

2. Qu’est ce qu’une fonction

3. Qu’est ce qu’une procédure

4. Appel à une fonction ou à une procédure

5. Les variables globales et les variables locales

6. Les paramètres et les passages de paramètres

7. Conclusion
11/01/2022 66
1. Introduction Problème de
Appel base Appel

Confronté à un problème complexe, Appel


retour retour
et donc difficile à appréhender dans sa
totalité, l’idée est de décomposer le Sous retour Sous
problème N°1 problème N°3
problème initial en sous problèmes de Sous Appel
moindre complexité. Appel problème N°2

Cette décomposition se poursuit au retour

niveau de chaque sous problème retour


Sous
jusqu’à l’obtention de sous problème N°4 retour

problème suffisamment simples Sous


problème N°5
pour être résolus sans difficulté à l’aide Appel

d’instructions.

11/01/2022 67
1. Introduction Programme
Appel principal Appel

Appel
Un programme écrit en un seul bloc
retour retour
devient difficile à comprendre dés
Sous Sous
qu’il dépasse un certain nombre de Programme
retour
Programme
lignes. Pour éviter un tel problème, N°1 Sous N°3
Programme Appel
il est vivement conseillé d’utiliser Appel N°2
des sous programmes. En effet, en
retour
algorithme il existe deux types de
déclarations qui sont : les fonctions Sous retour
Programme retour
et les procédures. N°4 Sous
Programme
Appel N°5

Note : Le niveau supérieur est appelé


11/01/2022
programme (algorithme) principal. 68
2. Qu’est ce qu’une fonction
Une fonction est un sous programme destiné à accomplir une tâche bien définie.
Les fonctions permettent de répondre à deux objectifs principaux :
 Eviter les répétitions, et
 Créer des modules accomplissant chacun une tâche spécifique.
Ces deux objectifs permettent de rendre les programmes plus lisibles et plus faciles à
maintenir (à corriger et à améliorer).
Une fonction peut être alors considérer comme une boite noire, qui en partant des
données (paramètres) d’entrées, exécute des actions (Traitement) et renvoie un résultat
en sortie (retour de la fonction). La fig. suivante représente une schématiquement une
fonction.

Entrées Fonction Sortie

11/01/2022 69
2. Qu’est ce qu’une fonction 2.1. Déclaration d’une fonction

 Syntaxe : Fonction NomFonction ( Paramètres ) : TypeRésultat

Note : La déclaration d’une fonction encore appelé prototype de la fonction s’effectue


dans le programme principal ou dans un autre programme.

 Signification :
Fonction : mot clé.
NomFonction : Nom de la fonction, permet de l’identifier de façon unique.
Paramètres : représente les entrées ou arguments de la fonction, il s’agit
simplement d’une déclaration de variables.
TypeRésultat : est la sortie et donc le type de retour de notre fonction.
11/01/2022 70
2. Qu’est ce qu’une fonction 2.2. Définition d’une fonction
Fonction NomFonction ( Paramètres ) : TypeRésultat
Constantes:
Liste des constantes avec leurs valeurs
Variables : Partie déclarative
En entrées : Liste des variables avec leurs types
En sorties : Liste des variables avec leurs types
Début
Liste des instructions… Corps de la
retourne (resultat) fonction
Fin
Fin_Fonction

Note : La dernière instruction d’une fonction est celle qui permet de renvoyer ou retourner le résultat,
elle est obligatoire. Cela est réalisable grâce au mot clé retourne.

retourne (resultat) est équivalent à NomFonction  resultat


<resultat> étant une variable locale à la fonction et de même type que la fonction.
11/01/2022 71
3. Qu’est ce qu’une procédure 3.1. Déclaration d’une procédure
Une procédure est un cas particulier de fonction, contrairement à une fonction,
une procédure ne renvoie aucun résultat (aucune valeur).

 Syntaxe : Procédure NomProcédure ( Paramètres )

Note : La déclaration d’une procédure encore appelé prototype de la procédure


s’effectue dans le programme principal ou dans un autre programme.

 Signification :
Procédure : mot clé.
NomProcédure : Nom de la procédure, permet de l’identifier de façon unique.
Paramètres : représente les entrées ou arguments de la procédure, il s’agit
simplement d’une déclaration de variables.
11/01/2022 72
3. Qu’est ce qu’une procédure 3.2. Définition d’une procédure

Procédure NomProcédure ( Paramètres )


Constantes:
Liste des constantes avec leurs valeurs
Variables : Partie déclarative
En entrées : Liste des variables avec leurs types
En sorties : Liste des variables avec leurs types
Début
Liste des instructions… Corps de la
Fin procédure
Fin_Fonction

11/01/2022 73
4. Appel à une fonction ou à une procédure
La déclaration et la définition d’un sous programme n’entraîne pas son exécution. Il sera exécuté lorsqu’il
sera appelé par l’algorithme (programme) principal ou par un autre sous programme.
Cet appel se fait en citant son nom de la manière suivante :

1er cas : pour les fonctions Variable  NomFonction (Paramètres)

 Où <Variable> est une variable de même type que la fonction appelée. Cette variable est déclarée dans le
programme principal ou dans le sous programme appelant. Son rôle est de recevoir le résultat retourné par la
fonction.
 L'appel a une fonction peut s'effectuer directement dans une instruction d'écriture : Ecrire ( NomFonction (Paramètres))

2éme cas : pour les procédures NomProcédure (Paramètres)


Les procédures sont appelées directement par leurs noms accompagnés des paramètres.

11/01/2022 74
4. Appel à une fonction ou à une procédure
L’appel a un sous programme entraîne le saut au début du sous programme appelé et l’exécution de toutes ses
instructions jusqu’à la dernière qui entraînera le retour au programme appelant.

Sous Programme
Note :
N°1
Algorithme Procédure TestNombre ( nbr : entier )
 Lors de l’appel, il faut respecter le nombre,
Constantes:
principal Liste des constantes avec leurs valeurs
Variables :
l’ordre et le type des paramètres;
Algorithme NomAlgo En entrées : Liste des variables avec leurs types
Constantes:
Appel : x En sorties : Liste des variables avec leurs types
Liste des constantes avec leurs valeurs
Variables :
Début  Un sous programme peut faire appel à un
Liste des instructions…
En entrées : x :entier Ecrire (nbr, "est ok") ou plusieurs autre sous programme
En sorties : fact : entier Fin
Début Fin_Procédure
Retour : rien
TestNombre(x)

fact  Factoriel(x) Appel : x Sous Programme


Fin N°2
Fin_Algo
Fonction Factoriel ( n : entier ) : entier
Constantes:
Liste des constantes avec leurs valeurs
Retour : resultat Variables :
En entrées : Liste des variables avec leurs types
En sorties : resultat : entier
Début
Liste des instructions…
retourne (resultat)
Fin
Fin_Fonction

11/01/2022 75
5. Les variables globales et les variables locales
Une variable globale est une variable déclarée dans le programme principal, et utilisée dans la fonction
ou la procédure. En revanche, une variable locale est variable déclarée et utilisée dans la fonction ou la
procédure.

Note 1: les paramètres d’une fonction ou d’une procédure sont considérés comme des variables locales.

Note 2: la durée de vie des variables locales est limitée au temps d’exécution du sous programme.

Note 3: Les variables déclarées dans le programme principal sont locales au programme principal, et les
variables déclarées dans un sous programme sont locales à ce sous programme, même si elles portent le
même nom. La portée d’une variable est locale au sous programme qui le contient.

Note 4:
• Dans un programme, une variable est définie par défaut comme locale;
• Une variable globale est précédée du mot clé Global lors de sa déclaration.

11/01/2022 76
5. Les variables globales et les variables locales
Algorithme Global_Local
X, Y
Variable : variables
Global X, Y : Entier globales Note 5: Une variable peut aussi être déclarée
A et B A, B : Entier globale dans un sous programme.
paramètres Procédure P ( A, B : Entiers)
de la Variable :
procédure Variables locales
max, min : Entiers Attention !!! : On déclare une variable globale
à la procédure
Début lorsque la donnés qu’elle contient est utilisée par
Fin un ensemble de fonctions ou/et procédures et
Fin Procédure qu’on ne souhaite pas passer cette données
comme paramètre d’un sous programme à
long et larg Fonction F (long, larg : Réels) : Réels l’autre. Toutefois, ceci peut constituer un danger,
paramètres Variable :
de la
car une même donnée manipulée par plusieurs
fonction
A, B : Réels sous programmes peut être source d’erreurs
Début Variables locales
à la fonction difficiles à localiser.
Fin
Fin Fonction
Début

Fin
Fin Algorithme

11/01/2022 77
6. Les paramètres et les passage de paramètres
Un sous programme utilise des paramètres ou arguments, c’est avec ces
paramètres qu’il doit être appelé. Les identificateurs représentants les
paramètres à la déclaration ne sont pas les mêmes à l’appel.

Il existe deux modes de passages ou transmissions de paramètres : Le


passage par valeurs et le passage par adresses (références)

Note : nous allons juste étudié le passage par valeurs, le passage par
adresses (références) est inscrit au cours d’algorithme avancé (2e année).

11/01/2022 78
6. Les paramètres et les passages de paramètres Algorithme PassageParValeur
X et Y variables
Variable :
Globale X, Y : Entier
globales
Procédure Echange ( A, B : Entier)
Le passage par valeur consiste à Variable : A et B
copier la valeur à transférer au sein C : Entier paramètres de la
Début procédure
du sous programme, cette dernière A X
travaille alors avec cette copie sans B Y Passage des
toucher à la valeur d’origine. C A valeurs
A B
Exemple : B C
Permutation des
X A valeurs
Y B
Fin
Note : à la place d’un argument transmis par valeur, Fin Procédure Restitution des
on peut indiquer une constante, une variable ou une Début valeurs après
expression. Ecrire ("Entrez X et Y : ") permutation
Lire (X,Y)
Echange (X,Y)
Fin
Fin Algorithme Appel de la
11/01/2022 procédure 79
7. Conclusion
Question : Quelle est l’intérêt d’utilité les sous programmes ?
Réponse :

On utilise la notion de sous programmes pour les raisons suivantes :


 Gain de temps ( temps CPU) ;
 Gain en espace mémoire (mémoire central) ;
 Lisibilité des programmes ;
 Réutilisabilité des sous programmes sans avoir à les redéclarer ;
 Facilité de la maintenance ou de la modification des programme.
La notion de sous programme est la base la programmation modulaire (à suivre).
11/01/2022 80
Exercices d’application
Énoncé des Exercices

11/01/2022 81
Exercices d’application
Énoncé des Exercices

11/01/2022 82

Vous aimerez peut-être aussi