29/11/2016
1
Algorithmique
et structure de données I
Cours 5: Les Fonctions et les Procédures
1
Dr. Jihène Tounsi
ISG de Sousse
Site web: http://www.jihenetounsi.com
Email: tounsi.jihene@yahoo.fr
Pourquoi des sous algorithmes
2
Un algorithme est un ensemble de sous-algorithmes
Décomposer un problème en sous problème
Facilité de résolution (Diviser pour régner)
Lisibilité de l’algorithme
La réutilisation des instructions sans les réécrire.
Algorithme Principal
Variables
….
Debut
Instruction1
Appel Sous-algo1
Appel sous-algo2
….
Fin
Sous-algo1
Sous-algo2
Sous-algo3
Dr. Jihène Tounsi
29/11/2016
2
Les sous-algorithmes
3
Un sous algorithme a la même
structure que l’algorithme principal.
L’algorithme principal fait appel à un sous-algorithme
Un sous-algorithme peut appeler un ou plusieurs autres
algorithmes
Entête sous-algorithme
Variables
//déclaration des variables
Début
Instructions
…
Fin …
Dr. Jihène Tounsi
Chronologie d’exécution
4
L’ordre d’exécution
1. Instruction 1
2. Sous_algo1
1. Instruction 1.1
2. Instruction 1.2
3. Instruction 2
Algorithme Principal
Variables
….
Debut
Instruction1
Appel Sous-algo1
Instruction 2
Fin
Sous-Algo1…
Variables
…
Début
Instruction 1.1
Instruction 1.2
Fin
Dr. Jihène Tounsi
29/11/2016
3
Communication d’information
5
Un algorithme envoie des données au sous-algorithme
La donnée est appelée un argument.
Un argument peut être une variable ou une valeur.
Dans l’entête d’un sous-algorithme les données sont
appelées des paramètres.
Les arguments sont envoyés aux paramètres.
L’ordre de l’envoi des arguments, doit correspondre à l’ordre
de déclaration des paramètres.
L’argument et le paramètre lui correspondant doivent être de
même type.
Dr. Jihène Tounsi
Passage des paramètres
6
Il existe deux modes de passage des arguments vers les
paramètres
Passage par valeur : les arguments ne sont pas modifiés lors de
l’exécution des instructions des sous-algorithmes.
Le paramètre récupère une copie de l’argument.
Ce passage est appliqué par défaut.
Passage par adresse : La modification des paramètres entraîne
la modification des arguments.
Le paramètre récupère l’adresse (ou la référence) de l’argument.
Après la déclaration du paramètre mettre le mot clé : par adresse.
Dr. Jihène Tounsi
29/11/2016
4
Exemple de passage des paramètres
7
Algorithme Principal
Variables
arg1:entier
arg2:chaîne
//déclaration du sous-Algo1
Debut
Instruction1
Sous-algo ( arg1 , arg2 )
Instruction 2
Fin
Sous-Algo1(paramètre1:entier, paramètre2: chaîne par adresse)
Variables
…
Début
…
Fin
Dr. Jihène Tounsi
Variables globales vs Variables locales
8
Les variables déclarées au niveau de l’algorithme principal
sont appelés des variables globales (V.G).
La portée de la V.G est totale : Elle est reconnue par tous les
sous-algorithmes de l’algorithme principal
Les variables déclarées au niveau d’un sous-algorithme
sont appelés des variables locales (V.L).
La portée de la V.L est restreinte : Elle est reconnue seulement
par le sous-algorithme où elle est déclarée.
Dans un sous algorithme lorsqu’une V.G a le même nom
qu’une V.L, la V.G est momentanément masquée.
Dr. Jihène Tounsi
29/11/2016
5
Les procédures
9
Une procédure est un sous algorithme qui effectue un
traitement spécifique
Une procédure peut prendre zéro ou n paramètres.
Une procédure effectue un traitement qui ne retourne
pas de résultat.
Une procédure peut modifier plusieurs variables en
même temps si le passage s’est fait par adresse.
Procédure
Paramètres en entrée
Dr. Jihène Tounsi
Syntaxe d’une procédure
10
Procédure nom_procédure (paramètre_1:type, …parmètre_n:type)
Variables
//déclaration des variables locales
Début
…
Instructions
Fin Procédure
//Appel d’une procédure dans l’algorithme
principal
Algorithme …;
Variables
….
//Déclaration de la procédure
Début
….
//Appel de la procédure
Nom_Procédure(argument_1,…,argument_n)
…
Fin
Déclaration de la procédure
Dr. Jihène Tounsi
1 / 8 100%