C).
Avant de continuer, juste un petit mot sur Java. Java ne fait pas de différences entre les fonctions et les procédures
telles que présentées ici. En Java, les procédures sont des fonctions qui ne retournent pas de valeurs, ou plutôt, vous
l’avez compris, des méthodes qui ne retournent pas de valeurs.
a. Les procédures
Les procédures sont des sousprogrammes constitués d’une suite d’instructions indépendantes. Une procédure ne
retourne pas de résultat ou de valeur au programme qui l’a appelé, tout comme les valeurs passées en paramètre ne
sont pas forcément modifiées de manière globale. Une procédure pourrait faire l’objet d’un programme à part. Son
contenu peut cependant parfois influer sur le déroulement global du programme, s’il modifie un fichier, une base de
données, etc.
La procédure RepeteCar() est un exemple typique : le bloc de données répétitif influe sur l’affichage, mais ne
retourne rien en tant que tel.
Il existe cependant quelques moyens indirects pour une procédure de retourner une valeur :
q en passant celleci par référence, selon le même principe que ce qui a été expliqué pour les tableaux : le
sousprogramme reçoit la référence de la variable, et peut la modifier vers celle contenant la nouvelle valeur.
Ceci est d’ailleurs aussi possible avec les fonctions.
q Plus simplement, l’algorithmique effectue souvent une distinction entre les valeurs en entrée de la procédure
(celles qu’on lui transmet) et les valeurs en sortie. Dans ce cas, autant utiliser les fonctions, notamment si
une seule valeur doit être retournée.
q En modifiant les contenus des variables globales, variables accessibles pour tous les programmes et les sousprogrammes tant en lecture qu’en écriture (cf. ce chapitre, Variables locales et globales).
b. Les fonctions
En mathématique, vous avez probablement rencontré la notion de fonction. Dans le cadre de la résolution d’une
équation du second degré, l’équation s’écrit généralement ainsi :
f(x)=ax²+bx+c
Le résultat de f(x) ou fonction de x est le résultat du contenu de la fonction, c’estàdire l’équation. La valeur de f(x)
est ce résultat. C’est pareil en algorithmique : une fonction est un sousprogramme qui retourne une valeur. Un
fonction se décrit ainsi :
Fonction nom():type
Var
/* variables */
Début
/* bloc d’instructions */
Retourne valeur
FinFonc
q Une fonction se déclare avec le motclé Fonction, suivi de son nom et du type de valeur qu’elle retourne. Ce
peut être n’importe quel type (entier, réel, chaîne…).
q Une fonction peut contenir une zone de déclaration de variable et de types structurés.
q Le bloc d’instructions est encadré entre Début et FinFonc.
q La valeur de la fonction est retournée par l’instruction Retourne. La valeur retournée doit être du même type
que celle attendue par la déclaration de la fonction.
Fonction equation():réel
Var
a,b,c,x:réels
Début
x←a*x*x+b*x+c
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
127
Avant de continuer, juste un petit mot sur Java. Java ne fait pas de différences entre les fonctions et les procédures
telles que présentées ici. En Java, les procédures sont des fonctions qui ne retournent pas de valeurs, ou plutôt, vous
l’avez compris, des méthodes qui ne retournent pas de valeurs.
a. Les procédures
Les procédures sont des sousprogrammes constitués d’une suite d’instructions indépendantes. Une procédure ne
retourne pas de résultat ou de valeur au programme qui l’a appelé, tout comme les valeurs passées en paramètre ne
sont pas forcément modifiées de manière globale. Une procédure pourrait faire l’objet d’un programme à part. Son
contenu peut cependant parfois influer sur le déroulement global du programme, s’il modifie un fichier, une base de
données, etc.
La procédure RepeteCar() est un exemple typique : le bloc de données répétitif influe sur l’affichage, mais ne
retourne rien en tant que tel.
Il existe cependant quelques moyens indirects pour une procédure de retourner une valeur :
q en passant celleci par référence, selon le même principe que ce qui a été expliqué pour les tableaux : le
sousprogramme reçoit la référence de la variable, et peut la modifier vers celle contenant la nouvelle valeur.
Ceci est d’ailleurs aussi possible avec les fonctions.
q Plus simplement, l’algorithmique effectue souvent une distinction entre les valeurs en entrée de la procédure
(celles qu’on lui transmet) et les valeurs en sortie. Dans ce cas, autant utiliser les fonctions, notamment si
une seule valeur doit être retournée.
q En modifiant les contenus des variables globales, variables accessibles pour tous les programmes et les sousprogrammes tant en lecture qu’en écriture (cf. ce chapitre, Variables locales et globales).
b. Les fonctions
En mathématique, vous avez probablement rencontré la notion de fonction. Dans le cadre de la résolution d’une
équation du second degré, l’équation s’écrit généralement ainsi :
f(x)=ax²+bx+c
Le résultat de f(x) ou fonction de x est le résultat du contenu de la fonction, c’estàdire l’équation. La valeur de f(x)
est ce résultat. C’est pareil en algorithmique : une fonction est un sousprogramme qui retourne une valeur. Un
fonction se décrit ainsi :
Fonction nom():type
Var
/* variables */
Début
/* bloc d’instructions */
Retourne valeur
FinFonc
q Une fonction se déclare avec le motclé Fonction, suivi de son nom et du type de valeur qu’elle retourne. Ce
peut être n’importe quel type (entier, réel, chaîne…).
q Une fonction peut contenir une zone de déclaration de variable et de types structurés.
q Le bloc d’instructions est encadré entre Début et FinFonc.
q La valeur de la fonction est retournée par l’instruction Retourne. La valeur retournée doit être du même type
que celle attendue par la déclaration de la fonction.
Fonction equation():réel
Var
a,b,c,x:réels
Début
x←a*x*x+b*x+c
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
127
