| | cours numéro 10 | Dim 16 Mar - 18:09 par Admin | Quatrième pas dans Pascal: Les Procédures et Les Fonctions
1) Introduction:
Pascal, ainsi que la majorité des langages de programmation, donne la possibi1ité de découper un programme en plusieurs parties (nommées souvent «modules »). Cette «programmation modulaire» se justifie pour différentes raisons :
*Dès qu'un programme dépasse une ou deux pages de texte, il devient difficile de le comprendre, et ainsi d'assurer sa maintenance (correction d'erreurs, modification, mise à jour).
Une écriture modulaire permet de diviser le programme en plusieurs parties fonctionnelles et de regrouper dans le «programme principal» les instructions qui décrivent l'enchaînement. Cette notion de découpage peut ensuite être appliqué à chacune des parties (modules) du Programme
ce qui permet d'avoir affaire toujours à des modules très simples qu'il est facile d’isoler et de réutiliser .
*La programmation modulaire permet d'éviter des Séquences d'instructions répétitives. En particulier, la notion d'argument permet de « paramétrer » les modules.
2) Notion de Procédure et de fonction :
Pascal permet la manipulation de deux types de modules: les procédures et les fonctions. Nous avons déjà eu l'occasion d'utiliser des « fonctions prédéfinies» telle que «ord, pred, succ, sqr ». Cette notion de fonction est très proche de la notion de fonction mathématique. Une fonction possède généralement un ou plusieurs arguments et elle fournit un résultat. Le corps d'une fonction à la même structure que le corps de tout programme Pascal.
La procédure peut être considéré comme une généralisation de la notion de fonction. Elle possède généralement des arguments et peut retourner un ou plusieurs résultats, ou même aucun. Pascal intègre un nombre très important de procédures, nous pouvons citer « read, write ».
Nous pouvons dire qu'en général une fonction permet de réaliser un calcul et une procédure permet de réaliser une action.
3) Une première procédure :
Pour illustrer cette notion de procédure nous allons traiter un premier exemple dans lequel il s’agit de réduire une fraction A/B (A et B sont des entiers). Rappelons que cette réduction consiste à calculer le plus grand diviseur commun des entiers A et B puis de les diviser par ce diviseur. Pour cela nous allons écrire une procédure réduction qui se chargera de la réduction.
Le programme principal se chargera de la lecture des données et de l’affichage des résultats.
Remarque :
*Le corps de la procédure est écrit dans la section de déclaration de procédures et fonctions
(après la section de déclaration de variables).
*L'exécution du programme débute toujours à la première instruction exécutable du programme principal.
*L'appel d'une procédure consiste à écrire sont nom au début d'une instruction.
*L'exécution de la procédure « Reduction » (ou d’une fonction) n'a lieu que lors de l'appel de celle-ci dans le programme principal.
*Après l'exécution d'une procédure, l'exécution reprend à l'instruction qui suit de la procédure.
Program PremiereProcedure;
Var
A, B, X, y : Integer ; (*Variables globales*)
Procedure Reduction;
Var
D: Integer; (*Variable locale à la procédure Reduction *)
Begin
(*Copie de A et B dans X et Y*)
X:=A;
Y:=B;
(* Calcul du PGCD de X et Y )
Repeat
D:=X mod Y;
X:=Y;
Y:=D
Until D=0;
(* Réduction de la fraction A/B*)
A := A div X;
B := B div X
End; (* Fin de la procédure Réduction *)
Begin (*Début du programme principal*)
Writeln (‘Donner la fraction A/B :') ;
Readln (A, B) ; (* Appel de la procédure Reduction*)
Reduction ;
(* Affichage du résultat *)
Writeln(‘La réduction de la fraction A/B a donné : ‘, A, '/’, B) ;
End. (* Fin du programme principal *)
4) Notion de variable locale et de variable globale :
Une procédure (ou une fonction) a la même structure qu'un programme Pascal. En particulier, elle contient, généralement, sa propre section de déclaration de variables. Dans cet exemple, les variables « A, B, X, y » sont des variables globales et la variable «D» est une variable locale à la procédure « Reduction ». D’une manière générale, les variables (locales et g1obales) obéissent aux règles suivantes :
* Une procédure ou fonction peut utiliser toutes les variables déclarées dans le programme
Principal (variables globales) et peut aussi contenir ses propres déclarations de variables (variables locales).
* La durée de vie d'une variable locale débute à l'instant où la procédure (ou fonction) est appelée et se termine quand l'exécution du corps de la procédure est achevée, alors que la durée de vie d'une variable globale commence au début de l'exécution du programme et se termine quand l'exécution du programme est totalement achevée.
* Une variable locale est une variable propre au bloc (procédure ou fonction) dan laquelle est définie et il est incorrect de l’utiliser en dehors de ce bloc. Ce bloc constitue la « portée » de cette variable.
* Lorsqu’une variable locale porte le même nom qu’une variable globale l'utilisation de ce nom de variable à l’intérieur de la procédure implique qu’il s’agit de la variable locale.
| | Commentaires: 0 |
| | Qui est en ligne ? | Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité
Utilisateurs enregistrés : Aucun
[ Voir toute la liste ] Le record du nombre d’utilisateurs en ligne est de 5 le Lun 26 Mai - 20:41
|
| Statistiques | Nous avons 16 membres enregistrés L’utilisateur enregistré le plus récent est HAKIKI MUSTAPHA YACINE
Nos membres ont posté un total de 58 messages dans 21 sujets
|
|