Introduction :

En programmation, donc en algorithmique, il est possible de décomposer le programme qui résout un problème en des sous-programmes qui résolvent des sous parties du problème initial. Ceci permettra d’améliorer la conception du programme et ainsi sa lisibilité. L’utilisation des sous-programmes s’avère utile aussi dans le cas où on constate qu’une suite d’actions se répète plusieurs fois. Il existe deux types de sous-programmes les procédures et fonctions.

Remarque :

  • Un sous- programme est obligatoirement caractérisé par un nom (un identifiant) unique.
  • le nom d’un sous-programme comme le nom d’une variable doit commencer obligatoirement par une lettre. Il peut contenir des chiffres à l’intérieur.
  • Le programme qui utilise un sous- programme est appelé programme appelant

I- Les fonctions :

I-1 Définition

Une fonction est un sous-programme qui retourne un seul résultat.

I-2 syntaxe de déclaration :

Pour déclarer une fonction, on utilise la syntaxe suivante :

FONCTION nom_fonction (Argument1 : Type , Argument2 : Type ,….) : Type

Déclarations

DEBUT

Instructions de la fonction

nom_fonction ← Valeur renvoyée

FIN
Exemple :
FONCTION Cube (x : Entier) : Entier

Variable a : Entier

DEBUT

a ← x^3

Cube ← a

FIN

Exercice 1 : Ecrire la fonction SommeCarre qui permet de calculer la somme des carrées de deux réels x et y.

Exercice 2 : Ecrire la fonction Pair qui permet de déterminer si un nombre est pair ou non.

I-3 Appel d’une fonction

L’utilisation d’une fonction se fera par simple écriture de son nom dans le programme principal.

Exemple complet :
FONCTION Calcul (x : Réel , y : Réel , z : Réel) : Réel

Variable a : Entier

DEBUT

a ← 3

Calcul ← (x + y + z) * a

FIN

Variables i , j , k , b : Réels

DEBUT

Lire i

Lire j

Lire k

b ← Calcul (i , j , k) + 2

Ecrire b

FIN

Exercices d'application

Exercice 1 : Définir une fonction qui permet de calculer la somme de deux  variables réels .Ecrire le programme principal qui fait appel à cette fonction et qui affiche la somme de deux valeurs saisies  au clavier.

Exercice 2 : Ecrire un programme qui fait appel à la fonction Somme de l’exercice 1 et qui permet d’afficher la somme de 4 nombres saisit au clavier.

Exercice 3 :

  • Définir la fonction “Absolue” qui renvoie la valeur absolue d’une valeur qu’on lui passe comme paramètre.
  • Définir la fonction “Max” qui renvoie le maximum de deux valeurs.
  • Ecrire le programme principal qui fait appel aux deux fonctions

I-4 Les variables locales et globales

La portée d’une variable est l’ensemble des sous- programmes où cette variable est connue,  c’est-à-dire que les instructions de ces sous-programmes peuvent utiliser cette variable.

Une variable définie au niveau du programme principal (problème appelant) est appelée variable globale. Sa portée est totale : tout sous-programme du programme principal peut utiliser cette variable.

Cependant, une variable définie au sein d’un sous-programme est appelée variable locale. La portée d’une variable locale est uniquement le sous-programme qui la déclare.

 

Remarque :

Lorsque le nom d’une variable locale est identique à une variable globale, la variable globale est localement masquée. Dans ce sous-programme la variable globale devient inaccessible.

Exemple 1 :

        Fonction Surface (a : Réel) : Réel

           Variables resultat : Réels

       DEBUT

resulat ← valeur * a

Surface ← resultat

      FIN

     Variable valeur , rayon : Réel

     DEBUT

valeur ← 3.14

     Ecrire " Entrez le rayon du cercle : "

     Lire rayon

     Ecrire "La surface de cette cercle est : ", Surface (rayon)

    FIN
  • "valeur " est une variable globale. On peut par conséquent accéder à sa valeur dans la fonction Surface.
Exemple 2 :

     Fonction Surface (a : Réel) : Réel

        Variables valeur , resultat : Réels

        DEBUT

valeur ← 3.14

resulat ← valeur * a

Surface ← resultat

      FIN

     Variable rayon : Réel

     DEBUT

     Ecrire "Entrez le rayon du cercle : "

     Lire rayon

     Ecrire " La surface de cette cercle est : " , Surface (rayon)

     FIN
  • "valeur " et "resultat " sont des variables locales
  • "rayon" est une variable globale

Exercice :

Définir une fonction qui permet de calculer le volume d’une sphère étant donné son rayon, sachant que V = 4/3(pR3).

Sol 1/ Sol 2 : Variables locales Et Variables globales (la variable P)

I-5 Paramètres d'une fonction

 Les paramètres servent à échanger des données entre le programme principal (ou le programme appelant) et la fonction appelée.

Les paramètres placés dans la déclaration d’une fonction sont appelés paramètres formels. Ces paramètres peuvent prendre toutes les valeurs possibles mais ils sont abstraits (n’existent pas réellement)

Les paramètres placés dans l’appel d’une fonction sont appelés paramètres effectifs. Ils contiennent les valeurs pour effectuer le traitement

Le nombre de paramètres effectifs doit être égal au nombre de paramètres formels.  L’ordre et le type des paramètres doivent correspondre

I-6 Le passage de paramètres

Il existe deux types d’association (que l’on nomme passage de paramètre) entre le(s) paramètre(s) du sous-programme (fonction ou procédure) et variable(s) du programme appelant :

  • Passage par Valeur:

Les valeurs des paramètres effectifs sont affectées aux paramètres formels correspondants au moment de l’appel de la procédure. Dans ce mode le paramètre effectif ne subit aucune modification

  • Passage par adresse (ou passage par référence)

Les adresses des paramètres effectifs sont transmises à la procédure appelante. Dans ce mode, le paramètre effectif subit les mêmes modifications que le paramètre formel lors de l’exécution de la procédure

 Remarque : le paramètre effectif doit être une variable (et non une valeur) lorsqu’il s’agit d’une transmission par adresse

Exemple :

Considérons les deux programmes suivants :

Programme 1

Fonction Calcul (a : Réel) : Réel

DEBUT

Calcul ← a * 2

a ← a – 1

FIN

Variable x : Réel

DEBUT

x ← 3

Ecrire Calcul (x)

Ecrire x

FIN
Programme 2

Fonction Calcul (a : Réel) : Réel

DEBUT

Calcul ← a * 2

a ← a – 1

FIN

Variable x : Réel

DEBUT

x ← 3

Ecrire Calcul (x)

Ecrire x

FIN

Dans le premier programme on a un passage de paramètre par valeur et dans le deuxième on a un passage de paramètres par adresse. Le premier programme affichera le résultat suivant : 6   3    car même si la valeur de a change celle de x non.

Tandis que le deuxième programme il affichera : 6   2   la valeur de x changera car celle de a a changée.

II- Les procédures

Les procédures sont des sous- programmes qui ne retournent aucun résultat. Elles admettent comme les fonctions des paramètres. On déclare une procédure de la façon suivante :

PROCEDURE nom_procedure (Argument1 : Type , Argument2 : Type ,….)

Déclarations

DEBUT

Instructions de la procédure

FIN

 

Et on appelle une procédure comme une fonction, en indiquant son nom suivi des paramètres entre parenthèses.

Conclusion :

Les procédures et fonctions permettent d’isoler des instructions dans un « sous-programme » interne au programme principal. Deux objectifs peuvent favoriser le recours à des fonctions ou des procédures.

 

Vous pouvez suivre notre liste des vidéos sur l’algorithmique (qui inclut la partie procédures et fonctions) sur notre chaine youtube 9raytifclick (Darija: arabe marocaine) : Cours sur les algorithmes.

Aussi, si vous voulez commencer l’apprentissage d’un langage de programmation, voilà notre cours : Langage Python Niveau 1 qui sera très utile pour vous (il vous aide à pratiquer tous les éléments vu dans notre cours d’algorithmique).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *