Chapitre 6: Les procédures et les fonctions I- Introduction II- Les procédures 1- Activité 2- Syntaxe 3- Remarques 4- Types de paramètres 5- Types de passage III- Les Fonctions
I- Introduction Un programme complexe est souvent composé d’un ensemble de tâches distinctes. Il est donc préférable de présenter ces tâches en plusieurs modules ou sous programmes, c’est l’analyse modulaire. Un sous programme peut être une procédure ou une fonction.
II- Les procédures 1-Activité : Ecrire une analyse d’un programme qui permet de multiplier tous les éléments d’un tableau T de N entiers ( N compris entre 0 et 50) par l’élément d’indice K du même tableau T (K<=N). N,T et K seront saisie par l’utilisateur.
Nom = MULTIPLICATION S L.D.E O.U Analyse : Nom = MULTIPLICATION S L.D.E O.U 5 4 3 2 1 6 Résultat = Aff Aff = [] pour i de 1 à N répéter écrire (t[i]) Fin pour ************************************************ T= [nb T[k]] pour i de 1 à N répéter T[i] t[i]*nb T= [] pour i de 1 à n répéter t[i]=donnée Fin Pour K=[] répéter k= donnée (« saisir l’indice k ») jusqu’à ( k dans [1..N]) N = []répéter N= donnée (« saisir la dimension du tableau : ») jusqu’à (N dans [1..50]) Fin MULTIPLICATION N, i, T K, nb
T.D.O N, K, nb, i : entiers T:tableau de 50 entiers Remarque : On peut diviser notre programme en trois modules : Lecture, Calcul et affichage 2- Définition : Les procédures sont des modules ou sous programmes qui peuvent avoir plusieurs résultats
Grille d’analyse du programme principal Nom = Multiplication S L.D.E O.U 3 2 1 4 Résultat = aff Aff = Proc Affichage (N,T) Proc calcul (N,K,T) Proc lecture (N,K,T) Fin Multiplication Affichage N T Calcul K, Lecture Tableau de déclaration des objets Globaux N,K :Entiers T : tab Affichage, Calcul, Lecture : Procédure
Analyse des modules DEF PROC Lecture (var n, k : entier ; var T: tab) S L.D.E O.U 3 2 1 4 Résultat = lec Lec = T= [] pour i de 1 à n répéter t[i]=donnée Fin Pour K=[] répéter k= donnée (« saisir l’indice k ») jusqu’à ( k dans [1..N]) N = []répéter N= donnée (« saisir la dimension du tableau : ») jusqu’à (N dans [1..50]) Fin Lecture i Tableau de déclaration des objets locaux : i : entier
DEF Proc Calcul (n , K :entier ; var T :Tab) S L.D.E O.U 1 2 Résultat = calc Calc = T= [nb T[k]] pour i de 1 à N répéter T[i] t[i]*nb Fin pour Fin Calcul Nb, i Tableau de déclaration des objets locaux : nb, i : entier DEF Proc Affichage ( n :entier; T:tab) S L.D.E O.U 1 2 Résultat = aff Aff = [] pour i de 1 à N répéter écrire (t[i]) Fin pour Fin affichage i Tableau de déclaration des objets locaux : i : entier
3- Syntaxe : 4- Remarques : 0) Def Proc Nom_proc(paramètres formels) Au niveau de l’algorithme : 0) Def Proc Nom_proc(paramètres formels) 1)…………….. ………….. N) Fin Nom_proc Au Niveau du Pascal : Procedure nom_proc (paramétres formels) Var ……….{déclaration des variables locales} Begin………. End; 4- Remarques : Tout objet déclaré au niveau du programme principal est appelé objet global. Tout objet déclaré au niveau des sous programmes est appelé objet Local Les objets globaux sont reconnus par tous les modules, contrairement aux objets locaux, ils ne sont reconnus qu’au niveau du sous programme qu’il les contient Les procédures Lecture, Affichage et Calcul sont dites appelées. Le programme Principal est dit appelant.
5- Les types de paramètres : L’entête d’une procédure contient son nom suivi de la liste des paramètres. Pour chaqu’un on doit définir son type et son mode de passage. 5- Les types de paramètres : Il existe deux types de paramètres : paramètres formels définis dans l’entête de la procédure, et les paramètres effectifs définis lors de son appel. Déclaration : def proc Affichage (n: entier; T:tab) Appel : Proc affichage(n, T) Lors de l’appel les paramètres formels seront remplacés par les paramètres effectifs Les paramètres effectifs et les paramètres formels doivent s’accorder au point de vue type, ordre et nombre. 6- Types de passage : Un paramètre formel peut être passer par valeur ou par variable . Un paramètre formel est passé par valeur lorsque le module appelant envoie des informations à la procédure. Programme appelant procédure Un paramètre formel est passé par variable lorsque le module appelant envoie des informations à la procédure et inversement. Programme appelant procédure