Les procédures et les fonctions

publicité
Algorithmique et Structures de Données II
Année Universitaire 2006-2007
Chapitre 1
Les procédures et les fonctions
Introduction
La conception d'un algorithme procède en général par des affinements successifs : On décompose le
problème à résoudre en sous-problèmes, puis ces derniers à leur tour, jusqu'à obtenir des problèmes "faciles à
résoudre". Pour chaque sous-problème, on écrira un module.
Ainsi, la résolution du problème sera composée d'un algorithme principal et d'un certain nombre de modules.
L'algorithme principal a pour but d'organiser l'enchaînement des modules.
Un module est une unité fonctionnelle formée d'un bloc d'instructions, nommée et éventuellement paramétrée,
que l'on déclare afin de pouvoir l'appeler par son nom en affectant s'il y a lieu des valeurs à ses
paramètres. Les données fournies au module et les résultats produits par ce dernier sont appelés des
arguments ou des paramètres. Un module peut être une procédure ou une fonction.
I. LES PROCEDURES
1. Définition et déclaration
Une procédure est un module réalisant une action sur une partie des données de l'algorithme. La structure
d'une procédure est identique à celle d'un algorithme. Elle est constituée d'un en-tête, d'une partie déclarative et
d'un corps.
Dans l'algorithme, la procédure se présente sous la forme :
Procédure Nom_Procédure (paramètres)
Var déclarations
Début
Instructions…
Fin
•
•
•
L'identificateur Nom_Procédure est utilisé, dans l'algorithme appelant la procédure, comme
instruction d'appel ou d'activation de la procédure.
Les paramètres sont utilisés dans le cas où la communication des informations entre l'algorithme appelant
et la procédure devrait se réaliser sous une forme spécifique. Nous reviendrons plus tard sur les modes de
passage des paramètres. La liste de paramètres peut être vide.
La partie des déclarations et le corps de la procédure sont structurés respectivement comme la partie
déclarative et le corps d'un algorithme.
Application 1 :
Ecrire une procédure qui permet d’afficher un caractère un certain nombre de fois.
BEN MAHMOUD Chaker
Page 1 / 3
Algorithmique et Structures de Données II
Année Universitaire 2006-2007
Solution :
Procédure Afficher (C :caractère ; N :entier)
Var i : entier
Début
Pour i de 1 à N faire
Ecrire(c)
Fin pour
Fin
Suite Application : Ecrire un algorithme qui affiche sur l’écran :
*****
--2 année ESCEM
--*****
2. Déclaration et accès aux objets :
a. les objets locaux :Tous les objets (constantes, types, variables) déclarés dans un sous-programme sont
dits locaux à celui-ci. Les objets locaux sont accessibles et connus uniquement que dans
programme dans lequel ils sont déclarés
le sous-
b. les objets globaux : ce sont les objets qui sont déclarés dans le programme principal. Tout objet global
peut être utilisé par un sous-programme sans être déclaré dans celui-ci.
3. Paramètres des procédures
•
•
•
Les procédures appelante et appelée peuvent avoir besoin de se communiquer des informations.
Cette communication est établie à l’aide de paramètres qui vont apparaître à la fois dans
l’instruction d’appel et dans l’en-tête de la procédure appelée.
Lorsque l’en-tête de la procédure contient des paramètres, ceux-ci portent le nom de paramètres
formels (ou paramètres fictifs). Ils sont représentés par des identificateurs sur lesquels la
procédure va travailler et qui sont locaux à la procédure.
Lorsque l’instruction d’appel contient des paramètres, ceux-ci portent le nom de paramètres
effectifs (ou paramètres réels). Ils communiquent des informations à la procédure appelée, dans
laquelle ils viennent se substituer aux paramètres formels.
4. Passage de paramètre
Le passage d e par a mèt r e es t la substitution des paramètres effectifs aux paramètres formels.
8 Paramètres par valeur : Ce mode de passage indique que les objets qui sont transmis ne
seront pas modifiés après l’exécution du sous-programme. Ils gardent leurs valeurs.
Le sens de transfert est unique c.à.d du programme principale vers la procédure.
8 Paramètres par variable ou par référence : Les paramètres de ce mode retournent les résultats
d’exécution du sous programme. Le sens de transfert est dans le deux sens. Dans la structure de l’entête de la procédure, le mot réservé Var précède les paramètres formels.
Application 2 : Ecrire un algorithme qui permet la permutation de deux variables A et B.
BEN MAHMOUD Chaker
Page 2 / 3
Algorithmique et Structures de Données II
Année Universitaire 2006-2007
II. LES FONCTIONS
Définition et déclaration
Un sous programme « fonction » est une suite d’actions à la quelle est associée une désignation typée et
qui retourne un résultat unique.
Dans l'algorithme, la fonction se présente sous la forme :
Fonction Nom_Fonction (Paramètres) : Type_Résultat
Var déclarations
Début
…
Nom_Fonction ß (a)
Fin
§
§
Type_Résultat : c'est le type de la valeur retournée par la fonction.
(a) : c'est une instruction d'affectation de l'identificateur de la fonction. Ce dernier
(Nom_Fonction) doit impérativement prendre une valeur pour que la fonction puisse la
retourner dans l'expression du module appelant.
Appel : Le programme appelant appel la fonction en l’affectant à une variable de même type
Remarques :
• Les paramètres d'appel doivent correspondre en nombre, en type et en position aux paramètres
formels de la fonction.
• La liste des paramètres peut être vide mais elle comporte généralement au moins un paramètre.
• Une fonction peut se transformer en une procédure qui retourne le même résultat dans un
paramètre déclaré parmi la liste des paramètres de la procédure.
• Toute procédure, qui retourne un seul résultat, peut être remplacée par une fonction. Le résultat sera
récupéré dans l'identificateur de la fonction.
Application 3 :
Donner un algorithme qui permet la saisie de trois variable X (compris entre 10 et 20), variable Y (compris
entre 30 et 40) et variable Z (compris entre 50 et 60).
BEN MAHMOUD Chaker
Page 3 / 3
Téléchargement