Présentation
1. Principe
Lors de la présentation de la structure d’un algorithme, il a été brièvement abordé la possibilité d’ajouter une partie
supplémentaire en début de programme, avant les déclarations des variables. Cette partie n’avait pas encore été
abordée, alors qu’à ce niveau vous savez, si vous avez bien compris les chapitres précédents, déjà très bien
programmer. Or peutêtre avezvous remarqué quelques limitations frustrantes, et notamment une certaine lourdeur
lorsque le programme est très long et qu’il s’agit de répéter certains blocs d’instructions pourtant déjà présents
ailleurs. Par exemple, rappelezvous un simple petit programme qui calcule la valeur absolue d’une commande.
L’embêtant est qu’à chaque fois que vous voulez calculer cette valeur, vous devez répéter la structure conditionnelle.
N’auraitil pas été plus simple de le faire une seule fois, et de passer à ce bloc d’instructions uniquement la valeur dont
on veut récupérer la valeur absolue ?
Vous pourriez pour cela envisager un second programme qui serait lancé par le programme principal avec comme
paramètre cette valeur. C’est techniquement faisable, mais placer un second programme à part (un exécutable) juste
pour ce genre de traitement, c’est une perte de temps et d’espace. L’autre solution consiste à rajouter le code
nécessaire à ce programme dans une structure spéciale et à part du programme principal. C’est ce qu’on appelle un
sousprogramme. Les anciens langages BASIC utilisaient d’ailleurs des instructions en ce sens (gosub, sub xxx,
endsub, etc, sub pour sousprogramme).
Lorsqu’un programme est très long, il n’est pas réaliste de tout programmer d’un seul tenant. Le programme est
décomposé en de plus petites unités ou parties réutilisables qui sont ensuite appelées le moment opportun par le
programme principal. Un sousprogramme évite la répétition inutile de code et permet de clarifier le programme. Une
fois tous les sousprogrammes réalisés, il est même possible de les enregistrer dans des bibliothèques pour les
réutiliser dans d’autres programmes, quels qu’ils soient, simplifiant ainsi fortement l’écriture du code, et permettant
aussi d’aller beaucoup plus vite.
Un programme complet forme une application. Une application est, si vous avez correctement suivi, composée de
plusieurs parties fonctionnelles :
q Le programme principal, ou bloc principal, qui correspond au bloc principal d’instructions situées sous le motclé
PROGRAMME et DEBUT. C’est ce programme qui est exécuté quand vous lancez l’exécutable qui résulte de
l’implémentation de votre algorithme en Java, par exemple. En Java, le programme principal est ce qui est situé
sous la ligne contenant le mot "main" qui signifie depuis l’anglais "principal".
q Des sousprogrammes, chargés de divers rôles, qui peuvent aller du calcul d’une valeur absolue à celui d’une
puissance quelconque, une conversion de date, le formatage d’une chaîne de caractères, l’affichage d’un entête quelconque, bref tout ce que vous voudrez bien en faire. Suivant les langages, vous trouverez les
expressions sousprogrammes, mais aussi et surtout les mots fonctions et procédures pour les décrire. C’est
le programme principal qui se charge d’appeler les sousprogrammes. Ceuxci ne se lancent jamais d’euxmêmes.
Un sousprogramme ne se lance jamais tout seul, il doit être appelé depuis le programme principal. Cependant,
un sousprogramme peut parfaitement faire appel à un autre sousprogramme. Par exemple, un sousprogramme chargé de calculer une racine carrée peut appeler le sousprogramme chargé des valeurs absolues…
2. Déclaration et définition
a. Dans un algorithme
Avant de pouvoir utiliser un sousprogramme, il faut le définir ou le déclarer, c’estàdire indiquer au programme
principal qu’il existe : son nom, et son contenu (bloc d’instructions). En algorithmique, les sousprogrammes sont
déclarés et entièrement écrits au tout début, avant le motclé PROGRAMME. C’est généralement le cas dans les
langages de programmation, car le programme principal ne peut pas utiliser un sousprogramme s’il ne sait pas s’il
existe.
...
PROGRAMME XYZ
VAR
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
124
1. Principe
Lors de la présentation de la structure d’un algorithme, il a été brièvement abordé la possibilité d’ajouter une partie
supplémentaire en début de programme, avant les déclarations des variables. Cette partie n’avait pas encore été
abordée, alors qu’à ce niveau vous savez, si vous avez bien compris les chapitres précédents, déjà très bien
programmer. Or peutêtre avezvous remarqué quelques limitations frustrantes, et notamment une certaine lourdeur
lorsque le programme est très long et qu’il s’agit de répéter certains blocs d’instructions pourtant déjà présents
ailleurs. Par exemple, rappelezvous un simple petit programme qui calcule la valeur absolue d’une commande.
L’embêtant est qu’à chaque fois que vous voulez calculer cette valeur, vous devez répéter la structure conditionnelle.
N’auraitil pas été plus simple de le faire une seule fois, et de passer à ce bloc d’instructions uniquement la valeur dont
on veut récupérer la valeur absolue ?
Vous pourriez pour cela envisager un second programme qui serait lancé par le programme principal avec comme
paramètre cette valeur. C’est techniquement faisable, mais placer un second programme à part (un exécutable) juste
pour ce genre de traitement, c’est une perte de temps et d’espace. L’autre solution consiste à rajouter le code
nécessaire à ce programme dans une structure spéciale et à part du programme principal. C’est ce qu’on appelle un
sousprogramme. Les anciens langages BASIC utilisaient d’ailleurs des instructions en ce sens (gosub, sub xxx,
endsub, etc, sub pour sousprogramme).
Lorsqu’un programme est très long, il n’est pas réaliste de tout programmer d’un seul tenant. Le programme est
décomposé en de plus petites unités ou parties réutilisables qui sont ensuite appelées le moment opportun par le
programme principal. Un sousprogramme évite la répétition inutile de code et permet de clarifier le programme. Une
fois tous les sousprogrammes réalisés, il est même possible de les enregistrer dans des bibliothèques pour les
réutiliser dans d’autres programmes, quels qu’ils soient, simplifiant ainsi fortement l’écriture du code, et permettant
aussi d’aller beaucoup plus vite.
Un programme complet forme une application. Une application est, si vous avez correctement suivi, composée de
plusieurs parties fonctionnelles :
q Le programme principal, ou bloc principal, qui correspond au bloc principal d’instructions situées sous le motclé
PROGRAMME et DEBUT. C’est ce programme qui est exécuté quand vous lancez l’exécutable qui résulte de
l’implémentation de votre algorithme en Java, par exemple. En Java, le programme principal est ce qui est situé
sous la ligne contenant le mot "main" qui signifie depuis l’anglais "principal".
q Des sousprogrammes, chargés de divers rôles, qui peuvent aller du calcul d’une valeur absolue à celui d’une
puissance quelconque, une conversion de date, le formatage d’une chaîne de caractères, l’affichage d’un entête quelconque, bref tout ce que vous voudrez bien en faire. Suivant les langages, vous trouverez les
expressions sousprogrammes, mais aussi et surtout les mots fonctions et procédures pour les décrire. C’est
le programme principal qui se charge d’appeler les sousprogrammes. Ceuxci ne se lancent jamais d’euxmêmes.
Un sousprogramme ne se lance jamais tout seul, il doit être appelé depuis le programme principal. Cependant,
un sousprogramme peut parfaitement faire appel à un autre sousprogramme. Par exemple, un sousprogramme chargé de calculer une racine carrée peut appeler le sousprogramme chargé des valeurs absolues…
2. Déclaration et définition
a. Dans un algorithme
Avant de pouvoir utiliser un sousprogramme, il faut le définir ou le déclarer, c’estàdire indiquer au programme
principal qu’il existe : son nom, et son contenu (bloc d’instructions). En algorithmique, les sousprogrammes sont
déclarés et entièrement écrits au tout début, avant le motclé PROGRAMME. C’est généralement le cas dans les
langages de programmation, car le programme principal ne peut pas utiliser un sousprogramme s’il ne sait pas s’il
existe.
...
PROGRAMME XYZ
VAR
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
124
