LES PROCEDURES

71. Procédures sans paramètres

Ce nouvel objet très important permet au programmeur de traiter un problème sans s'embarasser dans un premier temps du règlement dans le détail des sous-programmes le composant, on améliore ainsi la lisibilité de l'algorithme général.

En effet à l'intérieur de celui-ci le traitement relatif à un sous-problème est simplement désigné par un identificateur qui est un appel de procédure.

Le détail de ce sous-traitement c'est-à-dire le corps de la procédure est décrit par ailleurs dans la partie déclaration de procédure.

Alors que jusqu'à présent un identificateur était associé à une valeur simple ou à un ensemble de valeurs, il est ici associé à une suite d'instructions.

L'intérêt méthodologique de ces procédures est donc essentiellement dans une première étape de décomposer le problème P en problèmes P1, P2, ..., Pn correspondant à autant de procédures.

L'éxécution de P revient à l'éxécution de P1, P2, ..., Pn.

L'écriture de ces procédures intervient dans une seconde étape.

Elle peut évidemment conduire également à une nouvelle décomposition en sous-problèmes et ainsi de suite.

L'utilisation offre un centre d'intérêt évident dans la résolution d'un problème où on est amené à résoudre plusieurs fois le même sous-problème. Et on utilise ainsi une procédure pour éviter d'écrire plusieurs fois la même suite d'instructions.

Enfin, il faut ajouter la plus grande facilité de mise au point et de maintenance des programmes écrit sous formes de procédures, voire la possibilité de faire écrire par plusieurs personnes les différentes parties d'un algorithme.

Syntaxe : Proc identificateur;

déclaration de constantes et de variables et procédures

Début

Fin;

Sémantique :

A chaque appel de procédure celle-ci est activée ce qui se caractérise par :

- création d'emplacements mémoires réservées aux variables locales,

- l'éxécution des instructions contenues dans le corps de la procédure.

Au retour de procédure : les emplacements mémoires réservés aux variables locales sont libérés et ces dernières sont ignorées par la suite dans le programme appelant.

L'éxécution se poursuit dans le programme appelant à l'instruction qui suit immédiatement l'appel de procédure.

72. Procédure avec paramètres fixes

Le plus souvent une procédure utilise des données fournies par le programme principal.

La procédure sera écrite avec des arguments fictifs appelés paramètres formels auxquels ont fera correspondre lors de l'appel les données appelées paramètres effectifs.

Syntaxe : Proc identificateur c'est fixe (liste de paramètres formels);

Appel : identificateur(liste des paramètres réels);

Sémantique :

- le nombre de paramètres effectifs doit être le même que le nombre de paramètres formels et chaque paramètre effectif correspond au paramètre de même rang dans la liste,

- les paramètres effectifs doivent avoir le même type que les paramètres formels auxquels ils correspondent,

- les paramètres effectifs spécifiés par fixe sont passés par valeur, c'est-à-dire que c'est leur valeur qui est transmise et non pas leur adresse,

- a l'appel de procédure les paramètres effectifs sont évalués et leurs valeurs transmisent aux paramètres formels correspondant,

- les paramètres effectifs peuvent être soit des constantes, des variables, des expressions.

73. Procédures fonctions

Il s'agit de procédures qui rendent un résultat.

Lorsqu'une procédure doit rendre un résultat unique, il est commode de définir cette procédure.

L'utilisation de la procédure fonction est analogue à celle des fonctions mathématiques.

La syntaxe est légèrement différente de celle des procédures précédentes, on précise en plus le type du résultat.

Proc identificateur(liste de paramètre) résult <type>

En effet, le nom de la procédure fonction doit être utilisé dans une expression comme un objet simple.

Le résultat de la procédure fonction rendu par l'instruction résul expression doit être du même type que le résultat précise dans l'entête de procédure.

Cette instruction résul doit apparaître comme dernière instruction exécutée par la procédure.

La procédure fonction peut être appelée dans une expression quelconque, en accord avec le type de son résultat.

74. Procédures avec paramètres modifiables

Alors qu'une procédure fonction ne rend qu'un seul résultat, il est intéressant d'avoir des procédures qui rendent plusieurs résultats.

Ceci se réalise à l'aide des procédures à paramètres modifiables.

Une telle procédure peut également avoir des paramètres fixes.

Syntaxe : Proc identificateur c'est fixe (liste de paramètres)

c'est mod (liste de paramètres);

Sémantique : le nombre de paramètres effectifs doit être le même que le nombre de paramètres formels et leurs types doivent correspondre et ceci dans les deux listes fixes et mod.

Les paramètres effectifs correspondant à mod sont passés par adresse c'est-à-dire que l'on communique à la procédure l'emplacement de la "boîte" qui le représente.

En conséquence, ces paramètres effectifs ne peuvent être que des variables car ils sont destinés à contenir des résultats et donc à être modifiés.