Sous-programmes : Fonctions et Procédures en Algorithmique

Telechargé par bakpebelhomme
1
1. Définition
Un sous-programme est un sous-ensemble du programme dans sa hiérarchie
fonctionnelle. C’est un programme qui réalise un traitement particulier, qui
s’exécute à l’intérieur d’un autre programme ; c’est donc un bloc d’instructions
réalisant une certaine tâche.
En algorithmique on distingue deux types de sous-programmes que nous allons
étudier :
Les fonctions qui ont pour but de retourner un résultat.
Les procédures qui modifient l’état du programme sans retourner de
résultat.
2. Utilité des sous- programmes
Tous les gros programmes sont en fait des assemblages de petits programmes,
car lorsqu’un programme est trop long, on le décompose en plusieurs modules
plus petits que l’on assemble. En effet, lorsque la complexité d’un problème
s’accroît, il devient nécessaire d’utiliser les sous-programmes pour alléger la
tâche du programmeur. Il s’agit du principe de la programmation modulaire.
Définir des sous-programmes a de nombreux avantages en termes de
structuration du programme complet, de compréhension, de factorisation du
code et de réutilisation. De façon générale les sous-programmes permettent :
De réduire la complexité d’un programme en le découpant en petits
programmes plus simples. On crée ainsi ce que l’on appelle une
hiérarchie de tâches. On améliore ainsi la conception et la lisibilité des
gros programmes ;
De faciliter la mise au point du programme : le programme est testé
sous-programmes par sous-programme ; les erreurs sont détectées plus
tôt, elles sont plus faciles à localiser, et donc à corriger ;
L’utilisation répétitive d’un même ensemble d’instructions en différents
points du programme : on écrit un sous-programme pour ce traitement
et on l’utilise à chaque endroit où l’on a besoin. On évite ainsi la
duplication du code. On parle de factorisation de code ;
D’améliorer la maintenance du programme : le programme est plus facile
à comprendre, un changement peut rester localisé dans quelques sous-
programmes ;
2
D’être utilisé de nouveau dans un autre contexte. On favorise ainsi la
réutilisation de code. On pourra ainsi créer des librairies de sous-
programmes ;
Partager le développement entre différentes équipes qui se
spécialisent.
Remarque : Certains sous-programmes ont déjà été écrits et peuvent être
utilisés directement dans n'importe quel programme. Ce sont des sous-
programmes standards ou prédéfinis. C'est le cas par exemple des sous-
programmes permettant de faire des calculs mathématiques tels Racine
carrée, Sinus, Cosinus, logarithme, Tangente, Exponentielle, etc. La nature
et le nombre de sous-programmes standards dépendent des langages. Mais
les sous-programmes prédéfinis ne suffisent pas pour découper un gros
programme : le programmeur est amené à écrire le code de ses propres
sous-programmes.
Si de nouveaux sous-programmes sont nécessaires, il est possible de les
définir, c'est à dire de leur donner un identificateur (un nom) et de
programmer les opérations nécessaires.
3. Appel d'un sous-programme
Un appel de sous-programme est une action (instruction) du langage
algorithmique qui invoque l'exécution du sous-programme. L'appel d'un
sous-programme consiste à exécuter ce sous-programme. Un sous-
programme est caractérisé par un nom (nom du sous-programme) unique.
Lorsqu'un sous-programme a été explicité, son nom devient une nouvelle
instruction, qui peut être utilisé dans le programme principal ou dans
d'autres sous-programmes pour l'appeler. On mentionne alors son nom
dans une instruction d'appel.
3
Le programme peut appeler plusieurs sous-programmes (autres que lui-même).
Les appels de sous-programmes peuvent s’imbriquer autant qu’on le désire.
Le programme (ou sous-programme) qui utilise un sous-programme appelé
programme appelant.
momentanément l'exécution du programme appelant pour aller exécuter les
instructions du sous-programme, Quand il a terminé l'exécution du sous
programme, le processeur reprend l'exécution du programme appelant
où il s'était arrêté.
4. Déclaration des sous-programmes
En algorithmique, il existe deux méthodes pour déclarer un sous-
programme :
. Déclaration d'un sous-programme dans l'entête du programme
principal : il est clair que l'ordinateur exécute les instructions d'un programme
dans l'ordre. Ainsi, si vous mettez le sous-programme avant le programme
principal, l'ordinateur l'aurait déjà lu et le connaîtra avant de commencer par
exécuter les instructions du programme principal. Lorsque le programme
principal fera un appel au sous-programme, l'ordinateur saura où aller le
chercher.
Un programme qui utilise
4
PROGRAMME
Définition des sous-programmes
DEBUT
/*Instrutions de programme principale*/
FIN
• Déclaration d'un sous-programme à la fin du programme principal :
les sous-programmes peuvent être aussi déclarés à la fin du programme
principale après le mot clé FIN. Selon les langages de programmation, des
instructions complémentaires (les prototypes) peuvent être ajoutées dans
T'entête du programme pour annoncer l'existence des sous-programmes au
programme principal.
PROGRAMME om d programme
Définition des constantes
Définition des types personnalisés
Déclaration des variables globales
DEBUT
/*lnstructions de programme principal*/
FIN
Définition des sous-programmes
5. Les Fonctions
5.1. Définition
Une fonction est un sous-programme qui porte un nom (son identificateur), qui
prend des valeurs en entrées par l'intermédiaire des paramètres, et qui calcule
et renvoie un seul résultat conforme à sa spécification et aux
conditions de son d'appel
5.2. Rôle d'une fonction
Une fonction prend des données par l'intermédiaire de ses paramètres, et
renvoie un résultat conforme à sa spécification, à condition que les conditions
d'appels soient respectées. Par exemple un algorithme ne doit pas appeler une
fonction racine avec un paramètre de valeur négative,
si cela arrive, l’algorithme qui est faux, pas la fonction. Les algorithmes font
souvent à des fonctions prédéfinies.
5.3. Les fonctions prédéfinies
Dans un langage de programmation, les fonctions prédéfinies constituent
une véritable boite à outils, souvent organisée en bibliothèques de fonctions
qui regroupent les fonctions par domaine :
5
. Fonctions d'entrée-sortie :
. Fonctions mathématiques (racine, fonctions trigonométriques, etc.),
. Fonctions sur les chaines de caractères (longueur d'une chaine, extraction
d'une sous-chaîne, etc.) ;
. Fonctions systèmes, etc.
Toutefois, ces fonctions ne couvrent pas tous les domaines d'utilisation. Le
programmeur doit définir de nouvelles fonctions.
5.4. Déclaration d'une fonction
On déclare une fonction de la manière suivante :
FONCTION nom (paramètres : types) : TYPE DE LA VALEUR RETOURNEE
VAR
//Variable(s) locale(s)
DEBUT
//traitement
RETOURNE valeur à retourner
FIN
On utilise une fonction en précisant son nom suivi des paramètres entre
parenthèses. Les parenthèses sont toujours présentes même lorsqu'il n'y a pas
de paramètres :
FONCTION nom () : TYPE DE LA VALEUR RETOURNEE
VAR
//Variable(s) locale(s)
DEBUT
//traitement
RETOURNE valeur à retourner
FIN
6. Les procédures
6.1. Définition
Comme une fonction, une procédure ou Action est un sous-programme
référence par un nom, qui communique avec le programme appelant par
l'intermédiaire des paramètres et qui exécute ses instructions conformément
à une spécification et aux conditions de son appel mais qui ne retourne aucun
résultat.
1 / 12 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!