Vous êtes sur la page 1sur 96

Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

Matière : Algorithmique et structures de données


Semestre : 02

Les sous-programmes: Fonctions et Procédures

Dr. Tayeb BAHRAM

Université Dr. Tahar Moulay de Saïda


Faculté des sciences, Département de mathématiques
coursmi2019@gmail.com
https://sites.google.com/view/tbahram/accueil

23 Février 2020

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

Plan

1 Introduction

2 Définitions

3 Les variables locales et les variables globales

4 Le passage des paramètres

5 La récursivité

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction
Lors de la conception d’un algorithme (ou un programme) résolvant un problème
général, il est nécessaire de décomposer le problème en différent sous-problèmes moins
complexe à résoudre : Démarche ascendante.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction
Lors de la conception d’un algorithme (ou un programme) résolvant un problème
général, il est nécessaire de décomposer le problème en différent sous-problèmes moins
complexe à résoudre : Démarche ascendante.
Exemple : Écrire un algorithme (programme) qui permet de saisir deux entiers a > 0
et b > 0 puis permuter leurs valeurs enfin les afficher.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction
Lors de la conception d’un algorithme (ou un programme) résolvant un problème
général, il est nécessaire de décomposer le problème en différent sous-problèmes moins
complexe à résoudre : Démarche ascendante.
Exemple : Écrire un algorithme (programme) qui permet de saisir deux entiers a > 0
et b > 0 puis permuter leurs valeurs enfin les afficher.
Solution : Pour résoudre ce problème on va utiliser les modules suivants :
Saisir, Permuter et Afficher.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction
Lors de la conception d’un algorithme (ou un programme) résolvant un problème
général, il est nécessaire de décomposer le problème en différent sous-problèmes moins
complexe à résoudre : Démarche ascendante.
Exemple : Écrire un algorithme (programme) qui permet de saisir deux entiers a > 0
et b > 0 puis permuter leurs valeurs enfin les afficher.
Solution : Pour résoudre ce problème on va utiliser les modules suivants :
Saisir, Permuter et Afficher.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction
Lors de la conception d’un algorithme (ou un programme) résolvant un problème
général, il est nécessaire de décomposer le problème en différent sous-problèmes moins
complexe à résoudre : Démarche ascendante.
Exemple : Écrire un algorithme (programme) qui permet de saisir deux entiers a > 0
et b > 0 puis permuter leurs valeurs enfin les afficher.
Solution : Pour résoudre ce problème on va utiliser les modules suivants :
Saisir, Permuter et Afficher.
Écrire un programme qui résout un
problème revient toujours à écrire des
sous-programmes qui résolvent des sous
parties du problème initial.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction
Lors de la conception d’un algorithme (ou un programme) résolvant un problème
général, il est nécessaire de décomposer le problème en différent sous-problèmes moins
complexe à résoudre : Démarche ascendante.
Exemple : Écrire un algorithme (programme) qui permet de saisir deux entiers a > 0
et b > 0 puis permuter leurs valeurs enfin les afficher.
Solution : Pour résoudre ce problème on va utiliser les modules suivants :
Saisir, Permuter et Afficher.
Écrire un programme qui résout un
problème revient toujours à écrire des
sous-programmes qui résolvent des sous
parties du problème initial.
Le (sous-)programme qui utilise un
sous-programme est appelé
(sous-)programme appelant.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

1. Introduction
Lors de la conception d’un algorithme (ou un programme) résolvant un problème
général, il est nécessaire de décomposer le problème en différent sous-problèmes moins
complexe à résoudre : Démarche ascendante.
Exemple : Écrire un algorithme (programme) qui permet de saisir deux entiers a > 0
et b > 0 puis permuter leurs valeurs enfin les afficher.
Solution : Pour résoudre ce problème on va utiliser les modules suivants :
Saisir, Permuter et Afficher.
Écrire un programme qui résout un
problème revient toujours à écrire des
sous-programmes qui résolvent des sous
parties du problème initial.
Le (sous-)programme qui utilise un
sous-programme est appelé
(sous-)programme appelant.
Les sous programmes permettent de ne
pas répéter plusieurs fois une même
séquence d’instructions au sein du
programme.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Selon son utilisation, on définit un sous-programme comme :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Selon son utilisation, on définit un sous-programme comme :


1 une fonction.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Selon son utilisation, on définit un sous-programme comme :


1 une fonction.
2 une procédure.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Selon son utilisation, on définit un sous-programme comme :


1 une fonction.
2 une procédure.

b. Fonction :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Selon son utilisation, on définit un sous-programme comme :


1 une fonction.
2 une procédure.

b. Fonction :
Un sous-programme qui retourne un résultat et peut donc être utilisé comme une
fonction, (son utilisation prend la forme d’une valeur ).

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Selon son utilisation, on définit un sous-programme comme :


1 une fonction.
2 une procédure.

b. Fonction :
Un sous-programme qui retourne un résultat et peut donc être utilisé comme une
fonction, (son utilisation prend la forme d’une valeur ).
c. Procédure :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2. Définitions
a. Sous programme :
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs.

Selon son utilisation, on définit un sous-programme comme :


1 une fonction.
2 une procédure.

b. Fonction :
Un sous-programme qui retourne un résultat et peut donc être utilisé comme une
fonction, (son utilisation prend la forme d’une valeur ).
c. Procédure :
Un sous-programme qui ne retourne pas de valeur. Donc, il se comporte comme une
instruction, (son utilisation prend la forme d’une instruction).

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.
Factorisation : Un appel d’un SP exécute son code, ceci évite de dupliquer le
code du sous-programme (pas de copier/coller).

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.
Factorisation : Un appel d’un SP exécute son code, ceci évite de dupliquer le
code du sous-programme (pas de copier/coller).
Mise au point facilitée :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.
Factorisation : Un appel d’un SP exécute son code, ceci évite de dupliquer le
code du sous-programme (pas de copier/coller).
Mise au point facilitée :
Le programme est testé SP par SP (les erreurs sont détectées plus tôt,
elles sont plus faciles à localiser, et donc à corriger)

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.
Factorisation : Un appel d’un SP exécute son code, ceci évite de dupliquer le
code du sous-programme (pas de copier/coller).
Mise au point facilitée :
Le programme est testé SP par SP (les erreurs sont détectées plus tôt,
elles sont plus faciles à localiser, et donc à corriger)
Amélioration de la maintenance

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.
Factorisation : Un appel d’un SP exécute son code, ceci évite de dupliquer le
code du sous-programme (pas de copier/coller).
Mise au point facilitée :
Le programme est testé SP par SP (les erreurs sont détectées plus tôt,
elles sont plus faciles à localiser, et donc à corriger)
Amélioration de la maintenance
car le programme est plus facile à comprendre ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.
Factorisation : Un appel d’un SP exécute son code, ceci évite de dupliquer le
code du sous-programme (pas de copier/coller).
Mise au point facilitée :
Le programme est testé SP par SP (les erreurs sont détectées plus tôt,
elles sont plus faciles à localiser, et donc à corriger)
Amélioration de la maintenance
car le programme est plus facile à comprendre ;
car un changement peut rester localisé dans quelques SP.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.1 Intérêt des sous-programmes (fonctions et procédures)


Définir des sous-programmes a de nombreux avantages en terme de :
Structuration du programme : Le nom du sous-programme donne l’intention et
remplace des commentaires.
Compréhensibilité de l’algorithme : Comprendre l’objectif des sous-programmes
pour comprendre le programme complet.
Factorisation : Un appel d’un SP exécute son code, ceci évite de dupliquer le
code du sous-programme (pas de copier/coller).
Mise au point facilitée :
Le programme est testé SP par SP (les erreurs sont détectées plus tôt,
elles sont plus faciles à localiser, et donc à corriger)
Amélioration de la maintenance
car le programme est plus facile à comprendre ;
car un changement peut rester localisé dans quelques SP.
Réutilisation dans le programme (plusieurs appels au SP) et dans d’autres
programmes.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2 Syntaxe d’une fonction/procédure

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2 Syntaxe d’une fonction/procédure


a. Déclaration d’une fonction :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2 Syntaxe d’une fonction/procédure


a. Déclaration d’une fonction :
Syntaxe : Algorithmique
Fonction nomFonction (parametres) : typeResultat
// Déclaration des objets locaux à la fonction
Debut
// Corps de la fonction
Retourner (Resultat)
Fin

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2 Syntaxe d’une fonction/procédure


a. Déclaration d’une fonction :
Syntaxe : Algorithmique
Fonction nomFonction (parametres) : typeResultat
// Déclaration des objets locaux à la fonction
Debut
// Corps de la fonction
Retourner (Resultat)
Fin

Syntaxe : Langage C
typeResultat nomFonction (parametres)
{
// Déclaration des objets locaux à la fonction + Corps de la fonction
return (Resultat)
}

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2 Syntaxe d’une fonction/procédure


a. Déclaration d’une fonction :
Syntaxe : Algorithmique
Fonction nomFonction (parametres) : typeResultat
// Déclaration des objets locaux à la fonction
Debut
// Corps de la fonction
Retourner (Resultat)
Fin

Syntaxe : Langage C
typeResultat nomFonction (parametres)
{
// Déclaration des objets locaux à la fonction + Corps de la fonction
return (Resultat)
}
typeResultat : correspond à la sortie (c’est le type de la fonction).

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2 Syntaxe d’une fonction/procédure


a. Déclaration d’une fonction :
Syntaxe : Algorithmique
Fonction nomFonction (parametres) : typeResultat
// Déclaration des objets locaux à la fonction
Debut
// Corps de la fonction
Retourner (Resultat)
Fin

Syntaxe : Langage C
typeResultat nomFonction (parametres)
{
// Déclaration des objets locaux à la fonction + Corps de la fonction
return (Resultat)
}
typeResultat : correspond à la sortie (c’est le type de la fonction).
nomFonction : c’est le nom de la fonction.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2 Syntaxe d’une fonction/procédure


a. Déclaration d’une fonction :
Syntaxe : Algorithmique
Fonction nomFonction (parametres) : typeResultat
// Déclaration des objets locaux à la fonction
Debut
// Corps de la fonction
Retourner (Resultat)
Fin

Syntaxe : Langage C
typeResultat nomFonction (parametres)
{
// Déclaration des objets locaux à la fonction + Corps de la fonction
return (Resultat)
}
typeResultat : correspond à la sortie (c’est le type de la fonction).
nomFonction : c’est le nom de la fonction.
parametres : (correspond à l’entrée) entre parenthèses, on envoie des
paramètres à la fonction.
Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida
Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2. Syntaxe d’une fonction/procédure

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2. Syntaxe d’une fonction/procédure


b. Déclaration d’une procédure :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2. Syntaxe d’une fonction/procédure


b. Déclaration d’une procédure :
Syntaxe : Algorithmique
Procedure nomProcedure (parametres)
// Déclaration des objets locaux à la procedure
Debut
// Corps de la procedure
Fin

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2. Syntaxe d’une fonction/procédure


b. Déclaration d’une procédure :
Syntaxe : Algorithmique
Procedure nomProcedure (parametres)
// Déclaration des objets locaux à la procedure
Debut
// Corps de la procedure
Fin
Syntaxe : Langage C
void nomProcedure (parametres)
{
// Déclaration des objets locaux à la procedure + Corps de la procedure
}

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2. Syntaxe d’une fonction/procédure


b. Déclaration d’une procédure :
Syntaxe : Algorithmique
Procedure nomProcedure (parametres)
// Déclaration des objets locaux à la procedure
Debut
// Corps de la procedure
Fin
Syntaxe : Langage C
void nomProcedure (parametres)
{
// Déclaration des objets locaux à la procedure + Corps de la procedure
}
nomProcedure : c’est le nom de la procedure.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

2.2. Syntaxe d’une fonction/procédure


b. Déclaration d’une procédure :
Syntaxe : Algorithmique
Procedure nomProcedure (parametres)
// Déclaration des objets locaux à la procedure
Debut
// Corps de la procedure
Fin
Syntaxe : Langage C
void nomProcedure (parametres)
{
// Déclaration des objets locaux à la procedure + Corps de la procedure
}
nomProcedure : c’est le nom de la procedure.
parametres : (correspond à l’entrée) entre parenthèses, on envoie des
paramètres à la procedure.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.1 L’appel d’une fonction ou procédure

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.1 L’appel d’une fonction ou procédure

Pour déclencher l’exécution d’une fonction (ou procédure) dans un algorithme


(programme), il suffit de l’appeler.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.1 L’appel d’une fonction ou procédure

Pour déclencher l’exécution d’une fonction (ou procédure) dans un algorithme


(programme), il suffit de l’appeler.
L’appel de fonction (procédure) s’écrit en mettant le nom de la fonction
(procédure), puis la liste des paramètres, séparés par des virgules.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.1 L’appel d’une fonction ou procédure

Pour déclencher l’exécution d’une fonction (ou procédure) dans un algorithme


(programme), il suffit de l’appeler.
L’appel de fonction (procédure) s’écrit en mettant le nom de la fonction
(procédure), puis la liste des paramètres, séparés par des virgules.
A l’appel d’une fonction (procédure), l’algorithme (programme) interrompt son
déroulement normal, exécute les instructions de la fonction (procédure), puis
retourne à l’algorithme (au programme) appelant et exécute l’instruction
suivante.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.1 L’appel d’une fonction ou procédure

Pour déclencher l’exécution d’une fonction (ou procédure) dans un algorithme


(programme), il suffit de l’appeler.
L’appel de fonction (procédure) s’écrit en mettant le nom de la fonction
(procédure), puis la liste des paramètres, séparés par des virgules.
A l’appel d’une fonction (procédure), l’algorithme (programme) interrompt son
déroulement normal, exécute les instructions de la fonction (procédure), puis
retourne à l’algorithme (au programme) appelant et exécute l’instruction
suivante.

3.2 Syntaxe

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.1 L’appel d’une fonction ou procédure

Pour déclencher l’exécution d’une fonction (ou procédure) dans un algorithme


(programme), il suffit de l’appeler.
L’appel de fonction (procédure) s’écrit en mettant le nom de la fonction
(procédure), puis la liste des paramètres, séparés par des virgules.
A l’appel d’une fonction (procédure), l’algorithme (programme) interrompt son
déroulement normal, exécute les instructions de la fonction (procédure), puis
retourne à l’algorithme (au programme) appelant et exécute l’instruction
suivante.

3.2 Syntaxe

a. Fonction :
Syntaxe : Algorithmique
nomFonction (parametres)
Syntaxe : Langage C
nomFonction (parametres) ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.1 L’appel d’une fonction ou procédure

Pour déclencher l’exécution d’une fonction (ou procédure) dans un algorithme


(programme), il suffit de l’appeler.
L’appel de fonction (procédure) s’écrit en mettant le nom de la fonction
(procédure), puis la liste des paramètres, séparés par des virgules.
A l’appel d’une fonction (procédure), l’algorithme (programme) interrompt son
déroulement normal, exécute les instructions de la fonction (procédure), puis
retourne à l’algorithme (au programme) appelant et exécute l’instruction
suivante.

3.2 Syntaxe

a. Fonction : b. Procédure :
Syntaxe : Algorithmique Syntaxe : Algorithmique
nomFonction (parametres) nomProcedure (parametres)
Syntaxe : Langage C Syntaxe : Langage C
nomFonction (parametres) ; nomProcedure (parametres) ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation


a. Fonction :
Écrire un algorithme qui permet de calculer le périmètre d’un cercle C , utilisant une
fonction nommée FonctionPi, qui renvoie la valeur réelle de π.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation


a. Fonction :
Écrire un algorithme qui permet de calculer le périmètre d’un cercle C , utilisant une
fonction nommée FonctionPi, qui renvoie la valeur réelle de π.
Exemple : Algorithmique
Algorithme PerimetreCercle
Fonction FonctionPi() : Reel
Const Pi = 3.14159265359
Debut
Retourner Pi
Fin
Var R, P : Reels
Debut
Ecrire ("Donner le rayon R")
Lire (R)
P ← 2∗ FonctionPi() ∗R
Ecrire ("Le perimetre est : ", P)
Fin

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation


a. Fonction :
Écrire un algorithme qui permet de calculer le périmètre d’un cercle C , utilisant une
fonction nommée FonctionPi, qui renvoie la valeur réelle de π.
Exemple : Algorithmique Exemple : Programme en C
Algorithme PerimetreCercle #include <stdio.h>
Fonction FonctionPi() : Reel float FonctionPi (void)
Const Pi = 3.14159265359 {
Debut const float Pi = 3.14159265359 ;
Retourner Pi return (Pi) ;
Fin }
Var R, P : Reels int main ()
Debut {
Ecrire ("Donner le rayon R") float R = 0, P = 0 ;
Lire (R) printf("Donner le rayon R \n") ;
P ← 2∗ FonctionPi() ∗R scanf("%f", &R) ;
Ecrire ("Le perimetre est : ", P) P = 2∗ FonctionPi() ∗R ;
Fin printf("Le perimetre est : %f", P) ;
}

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation


b. Procédure :
En utilisant une procédure qui affiche à l’écran une ligne de 10 étoiles puis passe à la
ligne suivante, écrire un algorithme permettant de dessiner un carré d’étoiles de 10
lignes et de 10 colonnes.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation


b. Procédure :
En utilisant une procédure qui affiche à l’écran une ligne de 10 étoiles puis passe à la
ligne suivante, écrire un algorithme permettant de dessiner un carré d’étoiles de 10
lignes et de 10 colonnes.
Exemple : Algorithmique
Algorithme CarreEtoiles
Procedure LigneEtoiles()
Var i : Entier
Debut
Pour i allant de 0 a 9 Faire
Ecrire ("* ")
FinPour
Aller a la ligne suivante
Fin
Var j : Entier
Debut
Pour j allant de 0 a 9 Faire
LigneEtoiles()
FinPour
Fin
Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida
Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Sous-programmes (fonctions et procédures) : exemple d’utilisation


b. Procédure :
En utilisant une procédure qui affiche à l’écran une ligne de 10 étoiles puis passe à la
ligne suivante, écrire un algorithme permettant de dessiner un carré d’étoiles de 10
lignes et de 10 colonnes.
Exemple : Algorithmique Exemple : Programme en C
Algorithme CarreEtoiles #include <stdio.h>
Procedure LigneEtoiles() void LigneEtoiles (void)
Var i : Entier {
Debut int i = 0 ;
Pour i allant de 0 a 9 Faire for (i= 0 ; i<= 9 ; i++)
Ecrire ("* ") printf ("* ") ;
FinPour printf ("\n") ;
Aller a la ligne suivante }
Fin int main()
Var j : Entier {
Debut int j = 0 ;
Pour j allant de 0 a 9 Faire for (j= 0 ; j<= 9 ; j++)
LigneEtoiles() LigneEtoiles() ;
FinPour return 0 ;
Fin }
Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida
Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;
elle ne sera pas connue en dehors ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;
elle ne sera pas connue en dehors ;
sa valeur est perdue à la sortie du bloc ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;
elle ne sera pas connue en dehors ;
sa valeur est perdue à la sortie du bloc ;
sa durée de vie est celle du bloc.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;
elle ne sera pas connue en dehors ;
sa valeur est perdue à la sortie du bloc ;
sa durée de vie est celle du bloc.
Une variable déclarée dans la partie déclaration de l’algorithme (programme)
principale est appelée variable globale.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;
elle ne sera pas connue en dehors ;
sa valeur est perdue à la sortie du bloc ;
sa durée de vie est celle du bloc.
Une variable déclarée dans la partie déclaration de l’algorithme (programme)
principale est appelée variable globale.
Une variable est accessible de n’importe où dans l’algorithme, même depuis les
fonctions et les procédures. Elle existe pendant toute la durée de vie du
programme.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;
elle ne sera pas connue en dehors ;
sa valeur est perdue à la sortie du bloc ;
sa durée de vie est celle du bloc.
Une variable déclarée dans la partie déclaration de l’algorithme (programme)
principale est appelée variable globale.
Une variable est accessible de n’importe où dans l’algorithme, même depuis les
fonctions et les procédures. Elle existe pendant toute la durée de vie du
programme.
Une variable déclarée à l’intérieur d’une fonction (ou une procédure) est dite
locale.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3. Les variables locales et les variables globales


3.1 Définitions
La portée d’une variable (espace de validité) est l’ensemble des
sous-programmes où cette variable est connue (les instructions de ces
sous-programmes peuvent utiliser cette variable).
Une variable crée dans un bloc n’existe que dans ce bloc.
c’est une variable locale au bloc ;
elle ne sera pas connue en dehors ;
sa valeur est perdue à la sortie du bloc ;
sa durée de vie est celle du bloc.
Une variable déclarée dans la partie déclaration de l’algorithme (programme)
principale est appelée variable globale.
Une variable est accessible de n’importe où dans l’algorithme, même depuis les
fonctions et les procédures. Elle existe pendant toute la durée de vie du
programme.
Une variable déclarée à l’intérieur d’une fonction (ou une procédure) est dite
locale.
Elle n’est accessible qu’à la fonction (procédure) au sein de laquelle elle définie,
les autres fonctions (procédures) n’y ont pas accès.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

La durée de vie d’une variable locale est limitée à la durée d’exécution de la


fonction (procédure).

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

La durée de vie d’une variable locale est limitée à la durée d’exécution de la


fonction (procédure).

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

La durée de vie d’une variable locale est limitée à la durée d’exécution de la


fonction (procédure).

Exemple : Algorithmique
Algorithme CarreEtoiles
Procedure LigneEtoiles()
Var i : Entier // Variable locale
Debut
Pour i allant de 0 a 9 Faire
Ecrire ("* ")
FinPour
Aller a la ligne suivante
Fin
Var i : Entier // Variable globale
Debut
Pour i allant de 0 a 9 Faire
LigneEtoiles()
FinPour
Fin

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

La durée de vie d’une variable locale est limitée à la durée d’exécution de la


fonction (procédure).

Exemple : Algorithmique Exemple : Programme en C


Algorithme CarreEtoiles #include <stdio.h>
Procedure LigneEtoiles() void LigneEtoiles (void)
Var i : Entier // Variable locale {
Debut int i = 0 ; // Variable locale
Pour i allant de 0 a 9 Faire for (i= 0 ; i<= 9 ; i++)
Ecrire ("* ") printf ("* ") ;
FinPour printf ("\n") ;
Aller a la ligne suivante }
Fin int main(void)
Var i : Entier // Variable globale {
Debut int i = 0 ; // Variable globale
Pour i allant de 0 a 9 Faire for (i= 0 ; i<= 9 ; i++)
LigneEtoiles() LigneEtoiles() ;
FinPour return 0 ;

Fin }

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

La durée de vie d’une variable locale est limitée à la durée d’exécution de la


fonction (procédure).

Exemple : Algorithmique Exemple : Programme en C


Algorithme CarreEtoiles #include <stdio.h>
Procedure LigneEtoiles() void LigneEtoiles (void)
Var i : Entier // Variable locale {
Debut int i = 0 ; // Variable locale
Pour i allant de 0 a 9 Faire for (i= 0 ; i<= 9 ; i++)
Ecrire ("* ") printf ("* ") ;
FinPour printf ("\n") ;
Aller a la ligne suivante }
Fin int main(void)
Var i : Entier // Variable globale {
Debut int i = 0 ; // Variable globale
Pour i allant de 0 a 9 Faire for (i= 0 ; i<= 9 ; i++)
LigneEtoiles() LigneEtoiles() ;
FinPour return 0 ;

Fin }
Conseil : Les variables globales sont à éviter pour la maintenance des programmes.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :
1 Passage par valeur

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :
1 Passage par valeur
Dans ce type de passage, le paramètre formel reçoit uniquement
une copie de la valeur du paramètre effectif ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :
1 Passage par valeur
Dans ce type de passage, le paramètre formel reçoit uniquement
une copie de la valeur du paramètre effectif ;
La valeur du paramètre effectifs ne sera jamais modifiée ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :
1 Passage par valeur
Dans ce type de passage, le paramètre formel reçoit uniquement
une copie de la valeur du paramètre effectif ;
La valeur du paramètre effectifs ne sera jamais modifiée ;
2 Passage par référence ou par adresse

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :
1 Passage par valeur
Dans ce type de passage, le paramètre formel reçoit uniquement
une copie de la valeur du paramètre effectif ;
La valeur du paramètre effectifs ne sera jamais modifiée ;
2 Passage par référence ou par adresse
Dans ce type de passage, la fonction (procédure) utilise l’adresse du
paramètre effectif. Lorsqu’on utilise l’adresse du paramètre, on
accède directement à son contenu.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :
1 Passage par valeur
Dans ce type de passage, le paramètre formel reçoit uniquement
une copie de la valeur du paramètre effectif ;
La valeur du paramètre effectifs ne sera jamais modifiée ;
2 Passage par référence ou par adresse
Dans ce type de passage, la fonction (procédure) utilise l’adresse du
paramètre effectif. Lorsqu’on utilise l’adresse du paramètre, on
accède directement à son contenu.
La valeur de la variable effectif sera donc modifiée ;

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

4. Le passage des paramètres


Les échanges d’informations entre une fonction (ou une procédure) et le sous
algorithme (sous programme) appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des
usages différents :
1 Passage par valeur
Dans ce type de passage, le paramètre formel reçoit uniquement
une copie de la valeur du paramètre effectif ;
La valeur du paramètre effectifs ne sera jamais modifiée ;
2 Passage par référence ou par adresse
Dans ce type de passage, la fonction (procédure) utilise l’adresse du
paramètre effectif. Lorsqu’on utilise l’adresse du paramètre, on
accède directement à son contenu.
La valeur de la variable effectif sera donc modifiée ;
Les paramètres passés par adresse sont précédés du mot clé Var.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Le passage des paramètres : exemple d’utilisation

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Le passage des paramètres : exemple d’utilisation


Algorithmique
Algorithme PassageParValeur
Fonction F1 (i : Entier) : Entier
Debut
i ←3∗i
Retourner (i)
Fin
Procedure P1 (i : Entier)
Debut
i ←3∗i
Fin
Var N, R : Entiers // Variable globale
Debut
N←5
R ← F 1(N)
P1(N)
Ecrire(N, R)
Fin

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

3.3 Le passage des paramètres : exemple d’utilisation


Algorithmique Programme en C
Algorithme PassageParValeur #include <stdio.h>
Fonction F1 (i : Entier) : Entier int F1 (int i)
Debut {
i ←3∗i i =3∗i;
Retourner (i) return (i) ;
Fin }
Procedure P1 (i : Entier) void P1 (int i)
Debut {
i ←3∗i i =3∗i;
Fin }
Var N, R : Entiers // Variable globale int main(void)
Debut {
N←5 int i = 5 ; // Variable globale
R ← F 1(N) R =F1 (N) ;
P1(N) P1 (N) ;
Ecrire(N, R) printf(N, R) ;
Fin return 0 ;
}

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

5. La récursivité

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

5. La récursivité

Définition
Une fonction (ou une procédure) est dite récursive si elle s’appelle elle-même.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

5. La récursivité

Définition
Une fonction (ou une procédure) est dite récursive si elle s’appelle elle-même.

Exemple : Écrire une fonction récursive permettant de calculer la factorielle d’un entier
positif.

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

5. La récursivité

Définition
Une fonction (ou une procédure) est dite récursive si elle s’appelle elle-même.

Exemple : Écrire une fonction récursive permettant de calculer la factorielle d’un entier
positif.
Solution : n! = n ∗ (n − 1)! : la factorielle de n est n fois la factorielle de n − 1

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

5. La récursivité

Définition
Une fonction (ou une procédure) est dite récursive si elle s’appelle elle-même.

Exemple : Écrire une fonction récursive permettant de calculer la factorielle d’un entier
positif.
Solution : n! = n ∗ (n − 1)! : la factorielle de n est n fois la factorielle de n − 1

Algorithmique
Fonction Fact (n : Entier)
Debut
Si (n > 1) Alors
Retourner (n∗Fact(n − 1))
Sinon
Retourner (1)
Fin

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

5. La récursivité

Définition
Une fonction (ou une procédure) est dite récursive si elle s’appelle elle-même.

Exemple : Écrire une fonction récursive permettant de calculer la factorielle d’un entier
positif.
Solution : n! = n ∗ (n − 1)! : la factorielle de n est n fois la factorielle de n − 1

Algorithmique Traduction en C
Fonction Fact (n : Entier) Fact (int n)
Debut {
Si (n > 1) Alors if (n > 1)
Retourner (n∗Fact(n − 1)) return (n∗Fact(n − 1)) ;
Sinon else
Retourner (1) return (1) ;
Fin }

Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida


Les sous-programmes: Fonctions et Procédures
Introduction Définitions Les variables locales et les variables globales Le passage des paramètres La récursivité

5. La récursivité

Définition
Une fonction (ou une procédure) est dite récursive si elle s’appelle elle-même.

Exemple : Écrire une fonction récursive permettant de calculer la factorielle d’un entier
positif.
Solution : n! = n ∗ (n − 1)! : la factorielle de n est n fois la factorielle de n − 1

Algorithmique Traduction en C
Fonction Fact (n : Entier) Fact (int n)
Debut {
Si (n > 1) Alors if (n > 1)
Retourner (n∗Fact(n − 1)) return (n∗Fact(n − 1)) ;
Sinon else
Retourner (1) return (1) ;
Fin }
Remarque : Toute fonction ou procédure récursive comporte une instruction (ou un
bloc d’instructions) nommée "point terminal" permettant de sortir de la fonction ou
de la procédure. Le "point terminal" dans la fonction récursive Fact est : Retourner
(1) ou return (1).
Dr. Tayeb BAHRAM Université Dr. Tahar Moulay de Saida
Les sous-programmes: Fonctions et Procédures

Vous aimerez peut-être aussi