Chapitre V

Telechargé par azemtai
CHAPITRE V- LES SOUS-PROGRAMMES
I- Introduction :
1- Principe:
- Tout problème peut être décomposé en un ensemble de sous-problèmes plus simples,
distincts et dont certains sont répétitifs et utilisés à différents endroits d'un programme avec
des données différentes.
- La solution de chaque sous-problème est un sous-programme ou module.
- On distingue les sous-programmes appelant et appelé.
La solution du problème est un programme principal qui fait appel aux différents modules en
leur fournissant des objets appelés paramètres.
- Un module peut être une fonction ou une procédure.
- L’appel d’un module se fait via son nom suivi des paramètres effectifs qui vont se substituer
aux paramètres formels du module.
2- Intérêts:
- Facilité de résolution et meilleure lisibilité du programme
- Réutilisation d’un module en cas de besoin
- Localisation des erreurs rapide
- Mise au point aisée et rapide et facilité de maintenance
- Centralisation de la résolution du problème autour d'un programme principal
II-Déclaration et accès aux objets:
- Tout objet déclaré au niveau d’un module (constante, variable, types, autres fonctions) est
dit objet local.
- Tous les objets utilisés dans un module où ils ne sont pas déclarés, sont dits des objets
globaux déclarés au niveau du programme principal.
- Un objet déclaré dans un sous-programme SP à un niveau i n’est accessible que par ce sous-
programme ainsi que les sous-programmes englobés par ce SP.
- Si on utilise le même nom d’objet dans un sous-programme et dans le programme principal
(homonyme), alors tout au long du sous-programme, l’objet local va cacher l’objet global.
III-Les paramètres et leurs modes de transmission:
1- Les paramètres: il existe deux types de paramètres:
a- Les paramètres formels : Ce sont les paramètres qui figurent dans l’en-tête du sous-
programme. Ces paramètres correspondent aux variables locales utilisées dans le corps
du sous-programme.
b- b- Les paramètres effectifs : Ce sont les paramètres utilisés dans l’instruction d’appel
du sous-programme. Ils seront substitués aux paramètres formels lors de l’appel.
2- Les modes de transmission des paramètres: C’est la substitution des paramètres
effectifs aux paramètres formels. Il existe deux modes de passage.
a- Passage par valeur : Les paramètres transmis par valeur font communiquer
l’information dans un seul sens (de l’appelant à l’appelé). Toute modification du
contenu du paramètre dans le programme appelé est sans conséquence sur la valeur du
paramètre effectif dans le programme appelant.
b- b- Passage par variable : La communication de l’information se fait dans les deux
sens. En effet, toute modification du contenu du paramètre formel entraîne
automatiquement la modification du paramètre effectif.
NB : Dans l’entête du module appelé, il faut précéder les paramètres formels transmis par
variable par le mot clé VAR. Pour mieux comprendre le mode de passage, on peut se poser
une question :
Est-ce que le paramètre formel va-t-il être modifié par le programme appelé?
IV- Les fonctions:
Une fonction est un sous-programme qui renvoie une seule valeur de type simple (entier, réel,
caractère, chaîne de caractères, booléen). Ce type sera celui de la fonction.
Remarque:
Dans les fonctions, les paramètres formels ont un mode de passage par valeur.
Les paramètres effectifs et les paramètres formels doivent se correspondre de point de
vue nombre, ordre et type.
Le résultat calculé doit être affecté au nom de la fonction obligatoirement avant la fin
de la fonction.
V- Les procédures:
Une procédure est un sous-programme qui renvoie 0 ou plusieurs résultats de type simple ou
composé.
Remarque:
Dans les procédures, les paramètres formels doivent être précédés par leur mode de
passage.
Le mode de transmission des paramètres par variable ne concerne que les procédures.
Les paramètres effectifs et les paramètres formels doivent se correspondre de point de
vue nombre, ordre et type.
La saisie et l’affichage sont toujours des procédures.
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !