Vous êtes sur la page 1sur 81

L ABORATOIRE D ’I NFORMATIQUE , R ÉSEAUX T ÉLÉCOMS (LIRT)

É COLE S UPÉRIEURE P OLYTECHNIQUE (ESP)

Les Sous-programmes

Prof Gervais Mendy


gervais.mendy@esp.sn / gervais.mendy@ucad.edu.sn

16 janvier 2020
Plan du chapitre

Introduction aux sous-programmes

Procédures

Fonctions

Les paramètres résultats

Paramètres donnée-résultat


2 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Programmation modulaire

 Lorsqu’un algorithme est long, il est irréaliste d’écrire son code


d’un seul tenant.


3 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Programmation modulaire

 Lorsqu’un algorithme est long, il est irréaliste d’écrire son code


d’un seul tenant.

 En fait, on décompose le programme en plusieurs parties plus


petites, on donne un nom à chacune de ces parties, et on les
assemble pour former le programme final.


3 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Programmation modulaire

 Lorsqu’un algorithme est long, il est irréaliste d’écrire son code


d’un seul tenant.

 En fait, on décompose le programme en plusieurs parties plus


petites, on donne un nom à chacune de ces parties, et on les
assemble pour former le programme final.

 C’est le principe de la programmation modulaire, qui repose sur


l’écriture de sous-programmes.


3 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Algorithme appelant - algorithme appelé

 Un sous-programme est, comme son nom l’indique, un petit


programme réalisant un traitement particulier qui s’exécute à
l’intérieur d’un autre programme.


4 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Algorithme appelant - algorithme appelé

 Un sous-programme est, comme son nom l’indique, un petit


programme réalisant un traitement particulier qui s’exécute à
l’intérieur d’un autre programme.

 Le programme qui appelle est dit algorithme appelant et le


module appelé est dit algorithme appelé.


4 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Algorithme appelant - algorithme appelé

 Un sous-programme est, comme son nom l’indique, un petit


programme réalisant un traitement particulier qui s’exécute à
l’intérieur d’un autre programme.

 Le programme qui appelle est dit algorithme appelant et le


module appelé est dit algorithme appelé.

 Un sous-programme ne devrait pas dépasser la longueur d’une


page.


4 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Raisons d’utilisation
Les sous-programmes sont utilisés pour deux raisons essentielles :

 quand un même traitement doit être réalisé plusieurs fois dans


un programme (ou qu’il est utilisé dans plusieurs
programmes) :
 On écrit un sous-programme pour ce traitement et on l’appelle à
chaque endroit où l’on en a besoin.
 On évite ainsi de réécrire plusieurs fois le code du traitement.


5 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Raisons d’utilisation
Les sous-programmes sont utilisés pour deux raisons essentielles :

 quand un même traitement doit être réalisé plusieurs fois dans


un programme (ou qu’il est utilisé dans plusieurs
programmes) :
 On écrit un sous-programme pour ce traitement et on l’appelle à
chaque endroit où l’on en a besoin.
 On évite ainsi de réécrire plusieurs fois le code du traitement.

 pour organiser le code, améliorer la conception et la lisibilité


des gros programmes. En effet, le découpage en
sous-programmes permet de traiter séparément les difficultés.

5 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Réutilisation de sous-programme
 Certains sous-programmes ont déjà été écrits et peuvent être
utilisés directement dans n’importe quel programme.


6 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Réutilisation de sous-programme
 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.


6 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Réutilisation de sous-programme
 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 (racine carrée, exposant, ...).


6 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Réutilisation de sous-programme
 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 (racine carrée, exposant, ...).
 La nature et le nombre de programmes standards dépendent
des langages.


6 on 34 
Introduction aux sous-programmes

Notion de sous-programme
Réutilisation de sous-programme
 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 (racine carrée, exposant, ...).
 La nature et le nombre de 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.

6 on 34 
Procédures

Notion de procédure
Définition
 Une procédure est un ensemble d’instructions regroupées sous
un nom, qui réalise un traitement particulier dans un
programme lorsqu’on l’appelle.


7 on 34 
Procédures

Notion de procédure
Définition
 Une procédure est un ensemble d’instructions regroupées sous
un nom, qui réalise un traitement particulier dans un
programme lorsqu’on l’appelle.
 Comme un programme, une procédure possède un nom, des
variables, des instructions, un début et une fin.


7 on 34 
Procédures

Notion de procédure
Définition
 Une procédure est un ensemble d’instructions regroupées sous
un nom, qui réalise un traitement particulier dans un
programme lorsqu’on l’appelle.
 Comme un programme, une procédure possède un nom, des
variables, des instructions, un début et une fin.
 Mais contrairement à un programme, un sous-programme ne
peut pas s’exécuter indépendamment d’un autre programme.


7 on 34 
Procédures

Syntaxe de la définition d’une procédure


à travers un exemple

Procédure ligne_Etoile ( )

Variables cpt : entier

Début
Pour cpt de 1 à 10 Faire
Afficher "*"
FinPour
Afficher "\n"
Fin

8 on 34 
Procédures

Notion de procédure
Exécution d’une procédure

 La procédure en exemple permet d’afficher une ligne de 10


étoiles puis passe à la ligne.


9 on 34 
Procédures

Notion de procédure
Exécution d’une procédure

 La procédure en exemple permet d’afficher une ligne de 10


étoiles puis passe à la ligne.

 Comme un programme, une procédure possède un nom, des


variables, des instructions, un début et une fin.


9 on 34 
Procédures

Exécution d’une procédure


Appel de procédure
Algorithme Rectangle_Etoile

Variables nlignes, i : entier

Début
Afficher "Ce programme dessine un rectangle d’étoiles."
Afficher "Combien de lignes voulez-vous ?"
Saisir nlignes
Pour i de 1 à nlignes Faire
ligne_Etoile ( )
FinPour
Fin

10 on 34 
Procédures

Exécution de procédure
Appel de procédure
 Lorsque le processeur rencontre l’appel d’une procédure, il
arrête momentanément l’exécution du programme appelant
pour aller exécuter les instructions de la procédure.


11 on 34 
Procédures

Exécution de procédure
Appel de procédure
 Lorsque le processeur rencontre l’appel d’une procédure, il
arrête momentanément l’exécution du programme appelant
pour aller exécuter les instructions de la procédure.
 Quand il a terminé l’exécution de la procédure, le processeur
reprend l’exécution du programme appelant là où il s’était
arrêté.


11 on 34 
Procédures

Exécution de procédure
Appel de procédure
 Lorsque le processeur rencontre l’appel d’une procédure, il
arrête momentanément l’exécution du programme appelant
pour aller exécuter les instructions de la procédure.
 Quand il a terminé l’exécution de la procédure, le processeur
reprend l’exécution du programme appelant là où il s’était
arrêté.
 Une procédure peut être appelée soit par un programme, soit
par un autre sous-programme (qui lui même a été appelé).


11 on 34 
Procédures

Exécution de procédure
Appel de procédure
 Lorsque le processeur rencontre l’appel d’une procédure, il
arrête momentanément l’exécution du programme appelant
pour aller exécuter les instructions de la procédure.
 Quand il a terminé l’exécution de la procédure, le processeur
reprend l’exécution du programme appelant là où il s’était
arrêté.
 Une procédure peut être appelée soit par un programme, soit
par un autre sous-programme (qui lui même a été appelé).
 Les appels de sous-programmes peuvent s’imbriquer autant
qu’on le désire.

11 on 34 
Procédures

Variables locales et paramètres


Paramètres
 Une question qui se pose alors est de savoir comment
procédures et programmes vont pouvoir communiquer des
données.


12 on 34 
Procédures

Variables locales et paramètres


Paramètres
 Une question qui se pose alors est de savoir comment
procédures et programmes vont pouvoir communiquer des
données.
 Par exemple, on pourrait vouloir que le programme principal
communique à la procédure combien d’étoiles afficher par
ligne.


12 on 34 
Procédures

Variables locales et paramètres


Paramètres
 Une question qui se pose alors est de savoir comment
procédures et programmes vont pouvoir communiquer des
données.
 Par exemple, on pourrait vouloir que le programme principal
communique à la procédure combien d’étoiles afficher par
ligne.
 Cela est possible grâce aux paramètres.


12 on 34 
Procédures

Variables locales et paramètres


Paramètres
 Une question qui se pose alors est de savoir comment
procédures et programmes vont pouvoir communiquer des
données.
 Par exemple, on pourrait vouloir que le programme principal
communique à la procédure combien d’étoiles afficher par
ligne.
 Cela est possible grâce aux paramètres.
 Un paramètre est une variable particulière qui sert à la
communication entre programme appelant et sous-programme.


12 on 34 
Procédures

Variables locales et paramètres


Exemple d’utilisation de paramètre

 Dans notre précédente procédure, nous allons mettre le


nombre d’étoiles par lignes en paramètre.


13 on 34 
Procédures

Variables locales et paramètres


Exemple d’utilisation de paramètre

 Dans notre précédente procédure, nous allons mettre le


nombre d’étoiles par lignes en paramètre.

 Pour cela, nous indiquons entre parenthèses la déclaration du


paramètre (qui est une variable de la procédure !), précédé du
mot clé donnée pour indiquer que le paramètre constitue une
donnée du traitement réalisé par la procédure.


13 on 34 
Procédures

Variables locales et paramètres


Exemple d’utilisation de paramètre

 Dans notre précédente procédure, nous allons mettre le


nombre d’étoiles par lignes en paramètre.

 Pour cela, nous indiquons entre parenthèses la déclaration du


paramètre (qui est une variable de la procédure !), précédé du
mot clé donnée pour indiquer que le paramètre constitue une
donnée du traitement réalisé par la procédure.

 La valeur de cette donnée est communiquée à l’appel, par le


programme appelant.


13 on 34 
Procédures

Variables locales et paramètres


Paramètres formels

Procédure ligne_Etoile (donnée nombre : entier)


I nombre : paramètre formel
Variables cpt : entier

Début
Pour cpt de 1 à nombre Faire
Afficher "*"
FinPour
Afficher "\n"
Fin

14 on 34 
Procédures

Variables locales et paramètres


Paramètre formel, paramètre effectif
Algorithme Rectangle_Etoile
Variables i, nlignes, netoiles : entier
I nombre de lignes et nombre d’étoiles par ligne
Début
Afficher "Ce programme dessine un rectangle d’étoiles."
Afficher "Combien voulez-vous d’étoiles par ligne ?"
Saisir netoiles
Afficher "Combien de lignes voulez-vous ?"
Saisir nlignes
Pour i de 1 à nlignes Faire
ligne_Etoile (netoiles) I paramètre effectif
FinPour
 Fin
15 on 34 
Procédures

Les procédures
Passage des paramètres
 Lors de l’appel de la procédure, la valeur de la variable netoiles
passée en argument est copiée dans le paramètre formel
nombre (qui est une variable).


16 on 34 
Procédures

Les procédures
Passage des paramètres
 Lors de l’appel de la procédure, la valeur de la variable netoiles
passée en argument est copiée dans le paramètre formel
nombre (qui est une variable).
 La procédure effectue alors le traitement avec la variable
nombre qui a bien la valeur voulue : celle de netoiles.


16 on 34 
Procédures

Les procédures
Passage des paramètres
 Lors de l’appel de la procédure, la valeur de la variable netoiles
passée en argument est copiée dans le paramètre formel
nombre (qui est une variable).
 La procédure effectue alors le traitement avec la variable
nombre qui a bien la valeur voulue : celle de netoiles.
 La procédure n’utilise pas directement la variable netoiles : elle
utilise sa valeur, qu’elle a recopiée dans sa propre
variable-paramètre.


16 on 34 
Procédures

Les procédures
Passage des paramètres
 Lors de l’appel de la procédure, la valeur de la variable netoiles
passée en argument est copiée dans le paramètre formel
nombre (qui est une variable).
 La procédure effectue alors le traitement avec la variable
nombre qui a bien la valeur voulue : celle de netoiles.
 La procédure n’utilise pas directement la variable netoiles : elle
utilise sa valeur, qu’elle a recopiée dans sa propre
variable-paramètre.
 Important : lorsqu’il y a plusieurs paramètres dans la définition
d’une procédure, il faut absolument qu’il y en ait le même
nombre à l’appel et que l’ordre soit respecté (car la copie se fait
dans l’ordre).

16 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels
 Il est primordial de bien distinguer les paramètres qui se
trouvent dans l’en-tête d’une procédure, lors de sa définition et
les paramètres (ou arguments) qui se trouvent placés entre
parenthèses lors de l’appel.


17 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels
 Il est primordial de bien distinguer les paramètres qui se
trouvent dans l’en-tête d’une procédure, lors de sa définition et
les paramètres (ou arguments) qui se trouvent placés entre
parenthèses lors de l’appel.
 Les paramètres placés dans la définition d’une procédure sont
les paramètres formels.


17 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels
 Il est primordial de bien distinguer les paramètres qui se
trouvent dans l’en-tête d’une procédure, lors de sa définition et
les paramètres (ou arguments) qui se trouvent placés entre
parenthèses lors de l’appel.
 Les paramètres placés dans la définition d’une procédure sont
les paramètres formels.
 Ils servent à décrire le traitement à réaliser par la procédure
indépendamment des valeurs traitées.


17 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels
 Il est primordial de bien distinguer les paramètres qui se
trouvent dans l’en-tête d’une procédure, lors de sa définition et
les paramètres (ou arguments) qui se trouvent placés entre
parenthèses lors de l’appel.
 Les paramètres placés dans la définition d’une procédure sont
les paramètres formels.
 Ils servent à décrire le traitement à réaliser par la procédure
indépendamment des valeurs traitées.
 Les paramètres formels sont des variables locales à la
procédure, et à ce titre ils sont déclarés dans l’en- tête de la
 procédure.
17 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels (suite)
 Les paramètres placés dans l’appel d’une procédure sont les
paramètres réels ou effectifs.


18 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels (suite)
 Les paramètres placés dans l’appel d’une procédure sont les
paramètres réels ou effectifs.
 Lorsqu’ils sont de type donnée, ils contiennent effectivement
les valeurs sur lesquelles sera effectué le traitement de la
procédure.


18 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels (suite)
 Les paramètres placés dans l’appel d’une procédure sont les
paramètres réels ou effectifs.
 Lorsqu’ils sont de type donnée, ils contiennent effectivement
les valeurs sur lesquelles sera effectué le traitement de la
procédure.
 Lors de l’appel, leur valeur est recopiée dans les paramètres
formels correspondants.


18 on 34 
Procédures

Les procédures
Paramètres réels et paramètres formels (suite)
 Les paramètres placés dans l’appel d’une procédure sont les
paramètres réels ou effectifs.
 Lorsqu’ils sont de type donnée, ils contiennent effectivement
les valeurs sur lesquelles sera effectué le traitement de la
procédure.
 Lors de l’appel, leur valeur est recopiée dans les paramètres
formels correspondants.
 Un paramètre effectif en donnée peut être soit une variable du
programme appelant, soit une valeur littérale, soit le résultat
d’une expression.

18 on 34 
Fonctions

Les fonctions
Description de fonction
 Les fonctions sont des sous-programmes qui retournent un et
un seul résultat au programme appelant.


19 on 34 
Fonctions

Les fonctions
Description de fonction
 Les fonctions sont des sous-programmes qui retournent un et
un seul résultat au programme appelant.
 De ce fait, les fonctions sont appelées pour récupérer une
valeur, alors que les procédures ne renvoient aucune valeur au
programme appelant.


19 on 34 
Fonctions

Les fonctions
Description de fonction
 Les fonctions sont des sous-programmes qui retournent un et
un seul résultat au programme appelant.
 De ce fait, les fonctions sont appelées pour récupérer une
valeur, alors que les procédures ne renvoient aucune valeur au
programme appelant.
 L’appel d’une fonction doit obligatoirement se trouver à
l’intérieur d’une instruction (affichage, affectation,...) qui utilise
sa valeur.


19 on 34 
Fonctions

Les fonctions
Description de fonction
 Les fonctions sont des sous-programmes qui retournent un et
un seul résultat au programme appelant.
 De ce fait, les fonctions sont appelées pour récupérer une
valeur, alors que les procédures ne renvoient aucune valeur au
programme appelant.
 L’appel d’une fonction doit obligatoirement se trouver à
l’intérieur d’une instruction (affichage, affectation,...) qui utilise
sa valeur.
 Le résultat d’une fonction doit obligatoirement être retourné au
programme appelant par l’instruction Retourner.

19 on 34 
Fonctions

Les fonctions
Syntaxe générale


20 on 34 
Fonctions

Exemples de fonction
Fonction factorielle


21 on 34 
Fonctions

Exemples de fonction
Contrôle de la donnée
Fonction saisie_nb_positif( ) : entier
I Cette fonction permet de faire saisir à l’utilisateur un
I nombre positif qui est alors retourné
Variables nb_saisi : entier
Début
Afficher "Veuillez entrer un nombre positif"
Saisir nb_saisi
Tant que nb_saisi < 0 Faire
Afficher "Erreur. Tapez un nombre supérieur à 0 SVP !"
Saisir nb_saisi
FinTQ
Retourner nb_saisi
 Fin
22 on 34 
Fonctions

Exemples de fonction
Appel de fonctions


23 on 34 
Fonctions

Les fonctions
Remarques et Commentaires
 Les paramètres d’une fonction sont toujours de type donnée.


24 on 34 
Fonctions

Les fonctions
Remarques et Commentaires
 Les paramètres d’une fonction sont toujours de type donnée.
 La valeur des paramètres effectifs à l’appel est recopiée dans
les paramètres formels qui servent à réaliser le traitement de la
fonction.


24 on 34 
Fonctions

Les fonctions
Remarques et Commentaires
 Les paramètres d’une fonction sont toujours de type donnée.
 La valeur des paramètres effectifs à l’appel est recopiée dans
les paramètres formels qui servent à réaliser le traitement de la
fonction.
 Comment faire pour qu’un sous-programme communique
plusieurs résultats au programme appelant ?


24 on 34 
Fonctions

Les fonctions
Remarques et Commentaires
 Les paramètres d’une fonction sont toujours de type donnée.
 La valeur des paramètres effectifs à l’appel est recopiée dans
les paramètres formels qui servent à réaliser le traitement de la
fonction.
 Comment faire pour qu’un sous-programme communique
plusieurs résultats au programme appelant ?
 C’est impossible avec une fonction qui ne donne qu’un seul
résultat, mais c’est possible grâce aux procédures ayant des
paramètres de statut résultat.


24 on 34 
Les paramètres résultats

Les paramètres
Statut des paramètres : donnée, resultat, donnée-résultat
 Une procédure peut renvoyer plusieurs résultats au programme
appelant à travers des paramètres de statut résultat.


25 on 34 
Les paramètres résultats

Les paramètres
Statut des paramètres : donnée, resultat, donnée-résultat
 Une procédure peut renvoyer plusieurs résultats au programme
appelant à travers des paramètres de statut résultat.
 Elle peut aussi modifier la valeur d’un paramètre : ce paramètre
doit alors avoir le statut de donnée-résultat.


25 on 34 
Les paramètres résultats

Les paramètres
Statut des paramètres : donnée, resultat, donnée-résultat
 Une procédure peut renvoyer plusieurs résultats au programme
appelant à travers des paramètres de statut résultat.
 Elle peut aussi modifier la valeur d’un paramètre : ce paramètre
doit alors avoir le statut de donnée-résultat.
 Rappel et mise en garde : une fonction ne communique pas
son résultat à travers un paramètre, mais à travers une simple
valeur de retour.


25 on 34 
Les paramètres résultats

Les paramètres
Statut des paramètres : donnée, resultat, donnée-résultat
 Une procédure peut renvoyer plusieurs résultats au programme
appelant à travers des paramètres de statut résultat.
 Elle peut aussi modifier la valeur d’un paramètre : ce paramètre
doit alors avoir le statut de donnée-résultat.
 Rappel et mise en garde : une fonction ne communique pas
son résultat à travers un paramètre, mais à travers une simple
valeur de retour.
 Ne pas confondre avec les paramètres résultats utilisés dans
les procédures ! Le mode de communication est totalement
différent .

25 on 34 
Les paramètres résultats

 Les paramètres résultats sont communiqués au programme


appelant au moment du retour d’appel, c’est-à- dire à la fin de
la procédure.


26 on 34 
Les paramètres résultats

 Les paramètres résultats sont communiqués au programme


appelant au moment du retour d’appel, c’est-à- dire à la fin de
la procédure.
 La valeur du paramètre formel résultat est alors copiée dans la
variable passée en paramètre dans l’appel (le paramètre
effectif).


26 on 34 
Les paramètres résultats

 Les paramètres résultats sont communiqués au programme


appelant au moment du retour d’appel, c’est-à- dire à la fin de
la procédure.
 La valeur du paramètre formel résultat est alors copiée dans la
variable passée en paramètre dans l’appel (le paramètre
effectif).
 La valeur initiale du paramètre effectif (à l’appel) n’a aucune
importance ; elle est même souvent indéterminée.


26 on 34 
Les paramètres résultats

 Les paramètres résultats sont communiqués au programme


appelant au moment du retour d’appel, c’est-à- dire à la fin de
la procédure.
 La valeur du paramètre formel résultat est alors copiée dans la
variable passée en paramètre dans l’appel (le paramètre
effectif).
 La valeur initiale du paramètre effectif (à l’appel) n’a aucune
importance ; elle est même souvent indéterminée.
 La procédure se charge de lui affecter une valeur.


26 on 34 
Les paramètres résultats

 Les paramètres résultats sont communiqués au programme


appelant au moment du retour d’appel, c’est-à- dire à la fin de
la procédure.
 La valeur du paramètre formel résultat est alors copiée dans la
variable passée en paramètre dans l’appel (le paramètre
effectif).
 La valeur initiale du paramètre effectif (à l’appel) n’a aucune
importance ; elle est même souvent indéterminée.
 La procédure se charge de lui affecter une valeur.
 Exemple : la procédure ci-dessous permet de saisir les valeurs
(c’est-à-dire d’initialiser) d’un tableau de 30 réels. Cette
procédure n’a qu’un paramètre : le tableau. C’est un résultat de
la procédure.

26 on 34 
Les paramètres résultats

Exemples de paramètre résultat


Un paramètre tableau

Procédure Saisietab (résultat untab(1 : 30) : tableau de réels)


Variables i : entier

Début
Pour i de 1 à 30 Faire
Saisir untab(i)
FinPour
I à la fin de la boucle, le tableau est rempli
Fin


27 on 34 
Les paramètres résultats

Exemples de paramètre résultat


Minimum et maximum d’un tableau
Procédure minmax (donnée letab(1 : 30) : tableau de réels
résultats mini, maxi : réels )
Variables i : entier
Début
mini ←− letab(1)
maxi ←− letab(1)
Pour i de 2 à 30 Faire
Si letab(i) < mini
Alors mini ←− letab(i)
Si letab(i) > maxi
Alors maxi ←− letab(i)
Fin

28 on 34 
Les paramètres résultats

Exemples de paramètre résultat


Appel de procédure
Algorithme notes
Variables tabnotes(1 : 30) : tableau de réels
notemin, notemax : réel
Début
Afficher "Veuillez saisir les 30 notes"
Saisietab(tabnotes)
I Attention : on ne met pas les parenthèses
minmax(tabnotes, notemin, notemax)
I Attention à l’ordre des paramètres
Afficher "La note la plus haute est ", notemax,
"et la note la plus basse est", notemin
Fin

29 on 34 
Les paramètres résultats

Exemples de paramètre résultat


Remarques

 On peut passer un tableau en paramètre. C’est une exception à


la règle de manipulation des tableaux : normalement, on ne
peut pas les manipuler globalement, mais par exception, on
peut les utiliser globalement lorsqu’on les passe en paramètre.


30 on 34 
Les paramètres résultats

Exemples de paramètre résultat


Remarques

 On peut passer un tableau en paramètre. C’est une exception à


la règle de manipulation des tableaux : normalement, on ne
peut pas les manipuler globalement, mais par exception, on
peut les utiliser globalement lorsqu’on les passe en paramètre.

 Les deux procédures utilisent toutes les deux une variable


appelée i. Mais i correspond à deux variables différentes. Le i
de la première procédure ne correspond pas à la même
variable que le i de la deuxième procédure : chaque
sous-programme a son espace mémoire propre.

30 on 34 
Paramètres donnée-résultat

Passage de paramètres
Donnée-résultat
 Les paramètres données-résultats correspondent à des
données qui doivent être modifiées par une procédure.


31 on 34 
Paramètres donnée-résultat

Passage de paramètres
Donnée-résultat
 Les paramètres données-résultats correspondent à des
données qui doivent être modifiées par une procédure.
 A l’appel, la valeur du paramètre effectif est copié dans le
paramètre formel de la procédure.


31 on 34 
Paramètres donnée-résultat

Passage de paramètres
Donnée-résultat
 Les paramètres données-résultats correspondent à des
données qui doivent être modifiées par une procédure.
 A l’appel, la valeur du paramètre effectif est copié dans le
paramètre formel de la procédure.
 La procédure se sert de cette valeur pour la modifier.


31 on 34 
Paramètres donnée-résultat

Passage de paramètres
Donnée-résultat
 Les paramètres données-résultats correspondent à des
données qui doivent être modifiées par une procédure.
 A l’appel, la valeur du paramètre effectif est copié dans le
paramètre formel de la procédure.
 La procédure se sert de cette valeur pour la modifier.
 A la fin de la procédure, la nouvelle valeur du paramètre formel
est recopiée dans le paramètre effectif du programme appelant.


31 on 34 
Paramètres donnée-résultat

Passage de paramètres
Donnée-résultat
 Les paramètres données-résultats correspondent à des
données qui doivent être modifiées par une procédure.
 A l’appel, la valeur du paramètre effectif est copié dans le
paramètre formel de la procédure.
 La procédure se sert de cette valeur pour la modifier.
 A la fin de la procédure, la nouvelle valeur du paramètre formel
est recopiée dans le paramètre effectif du programme appelant.
 La procédure ci-dessous prend pour paramètre un tableau de
10 entiers non trié et le renvoie trié en ordre croissant. Le
tableau est à la fois une donnée et un résultat de la procédure.

31 on 34 
Paramètres donnée-résultat

Procédure tabtri(donnée-résultat letab(1 :10) : tableau d’entiers)


Variables échange : booléen
i, fin, temp : entier
Début
fin ←− 10
Répeter
échange ←− faux
i ←− 1
Tant que i < fin Faire
Si letab(i) < letab(i + 1)
Alors
échange ←− vrai
temp ←− letab(i)
letab(i) ←− letab(i + 1)
letab(i + 1) ←− temp
i ←− i + 1
fin ←− fin − 1
Jusqu’à non échange
 Fin
32 on 34 
Paramètres donnée-résultat

Appel de procédure
Tableau en paramètre
Algorithme tri
Variables montab(1 :10) : tableau d’entiers
i : entier
Début
Afficher "Tapez 10 valeurs entières"
Pour i de 1 à 10 Faire
Saisir montab(i)
tabtri(montab)
Afficher "Voilà les valeurs triées dans l’ordre"
Pour i de 1 à 10 Faire
Afficher montab(i)
Fin

33 on 34 
Paramètres donnée-résultat

Fin du chapitre

Merci de votre Attention


34 on 34 

Vous aimerez peut-être aussi