Vous êtes sur la page 1sur 76

École Nationale d'Ingénieurs de Tunis

Université Tunis El Manar

COURS ALGORITHME.STRUCTURE DE
DONNÉES ET PROGRAMMATION

Chapitre 2
Fonctions et Procédures

Maroua Ben Slimane


benslimanemaroua@gmail.com

July 8, 2019
Plan
1

Motivation

Les Fonctions

Les procédures

La Récursivité

Conclusion

Maroua Ben Slimane | Fonctions et Procédure


Motivation
2

Maroua Ben Slimane | Fonctions et Procédure


Motivation
2

Maroua Ben Slimane | Fonctions et Procédure


Motivation
3

I Dans la résolution d’un problème, on peut constater qu’un


traitement (une suite d’actions) revient plusieurs fois.
Exemple : la saisie d’un réel non nul est une tâche qui peut
être exécutée à chaque fois que l’algorithme a besoin d’un
réel qui intervient, comme dénominateur, dans une
division.
I Il est judicieux d’écrire le traitement récurent une seule fois
et de le mettre dans un seul endroit de l’algorithme, et de
l’utiliser autant de fois que nécessaire
I Il faut donc opter pour une stratégie qui consiste à séparer
le traitement récurrent du corps de l’algorithme.
I Ceci est possible en regroupant les instructions qui
composent le traitement récurrent dans un module de
traitement séparé.
Maroua Ben Slimane | Fonctions et Procédure
Motivation
4

I Le recours à une telle pratique évite des algorithmes bien


longs en termes de nombre de ligne et, surtout, difficile à
modifier, car on serait amené à répercuter le moindre
changement dans tous les endroits où le traitement
récurrent apparaît.
I En algorithmique, il est possible d’isoler des modules de
traitements, en tant que fonction ou procédures
indépendantes et de leur faire appel, pour les dérouler au
besoin.
I Toutefois, pour que l’emploi des fonctions et des
procédures soit rentable, ces dernières doivent exécuter
des sous-taches spécifiques qui ont la particularité d’être
récurrentes.

Maroua Ben Slimane | Fonctions et Procédure


Motivation
5

I Une fois définie, une fonction ou une procédure peut être


appelée, autant de fois que nécessaire, par un autre
module de traitement ou par elle même. Dans ce dernier
cas, on obtient des fonctions ou des procédures dites
récursives .
I La structuration d’un programme par morceaux (modules)
est la base de la programmation structurée (améliorer la
lisibilité) et modulaire (constitué de plusieurs modules de
traitement, et il suffit de faire une modification au bon
endroit, pour que cette modification prenne effet dans la
totalité de l’algorithme).
A titre d’exemple, un programme de gestion de scolarité
peut être découper en plusieurs modules : inscription, suivi
des absences, examens, diplômes, etc.
Maroua Ben Slimane | Fonctions et Procédure
Conception Structuré Descendante
6

I Découper l’algorithme (action) en sous-algorithmes


(sous-actions) plus simples, jusqu’à des opérations
considérées primitives.
I Étape :
I décomposer le problème en sous problèmes
I Trouver une solution à chacun
I La solution partielle donne lieu à un sous-programme
I Afin d’éviter : L’écriture des programmes sophistiqués,
difficile d’avoir une vision globale sur son fonctionnement et
difficile à trouver les erreurs
I Buts :
I Simplification
I Abstraction(ignorer les détails)
I Structuration
I Réutilisation
Maroua Ben Slimane | Fonctions et Procédure
Fonction : Définition
7

I Une fonction peut être vue comme un opérateur qui


effectue un calcul et qui produit un résultat.
I Une fonction réalise, donc, une simple opération dont le
résultat peut être, par la suite, utilisé dans une autre
opération plus complexe.
I Une fonction admet un seul paramètre variable de type
simple (entier, caractère, réel, etc.).
I une fonction retourne un seul résultat, une seule valeur, au
programme appelant.
I Il est obligatoire de préciser, dés le début le type de la
fonction qui est en même temps le type du résultat à
retourner.

Maroua Ben Slimane | Fonctions et Procédure


Structure et Appel
8

• Structure
Fonction Nom_fonction (Paramètres formels) : type
Les déclarations
Début
Instructions de la procédure
Nom_fonction ← Résultat
Fin

• Appel

Nom_fonction (liste des paramètres effectifs)

Maroua Ben Slimane | Fonctions et Procédure


Les Fonctions : Exemple
9

Écrire une fonction MIN qui retourne le minimum de 2 entiers a


et b.

Maroua Ben Slimane | Fonctions et Procédure


Solution
10

Maroua Ben Slimane | Fonctions et Procédure


Les Fonctions : Exemple
11

Comment utiliser la fonction MIN pour afficher le minimum de


trois entiers x, y et z en une seule instruction et sans utiliser de
variables supplémentaires.

Ecrire ( " Le minimum = " , MIN( MIN(x,y) , z))

Remarques :
I Le nom de la fonction joue un double rôle, c’est à la fois
l’identifiant de la fonction et une variable locale.
I Dans une fonction, le passage de tous les paramètres se
fait par valeur.

Maroua Ben Slimane | Fonctions et Procédure


les Fonctions : Conclusion
12

Lors de l’utilisation d’une fonction, il faut :


1. Spécifier le type de la fonction,
2. Déclaré, si nécessaire, une variable locale de même type
que la fonction (pour faire les calculs intermédiaires)
3. Affecter le résultat du calcul de la fonction au nom de la
fonction, obligatoirement avant la fin du bloc (ranger le
contenu de la variable locale dans la fonction).

Maroua Ben Slimane | Fonctions et Procédure


Procédure : Définition
13

I Une procédure est un ensemble d’instructions décrivant


une action simple ou composée, à laquelle on donne un
nom, qui devient lui-même en quelque sorte un sous
programme.
I Une procédure est un sous-programme qui ne retourne
pas de valeur ⇒ C’est donc un type particulier de fonction
I En général, une procédure modifie la valeur de ses
paramètres
Je dis bien « en général », ce n’est pas toujours le cas

Maroua Ben Slimane | Fonctions et Procédure


Procédure : Structure
14

Tout comme les fonctions, une procédure est un


sous-programme qui :
I A un nom
I Peut avoir des paramètres
I Qui ne retourne pas une valeur d’un certain type
I peut avoir besoin de variables
I Qui est composé d’instructions

Maroua Ben Slimane | Fonctions et Procédure


Procédure : Déclaration et Appel
15

• Déclarations
Procédure Nom_Procédure (arg1 : type1 , . . ., argn : typen )
Les déclarations
Début
Instructions de la procédure
Fin

• Appel
La première ligne s’appelle l’en-tête de la procédure. La liste
d’arguments est une suite de données à échanger avec
d’autres programmes.

Nom_Procédure (Liste d’arguments)

Maroua Ben Slimane | Fonctions et Procédure


Procédure simple (sans paramètres)
16

Maroua Ben Slimane | Fonctions et Procédure


Procédure simple (sans paramètres)
16

Maroua Ben Slimane | Fonctions et Procédure


Procédure simple (sans paramètres)
17

Remarques
I La structure d’une procédure est analogue à celle d’un
algorithme. Elle possède une entête, une partie
déclarative et un corps.
I Pour appeler une procédure simple, il suffit d’écrire le nom
de cette procédure.
I Une variable locale (privée) est déclarée dans une
procédure et ne peut être utilisée qu’à l’intérieur de celle-ci.
Exemple : « i » est une variable locale à la procédure «
Centré ».

Maroua Ben Slimane | Fonctions et Procédure


Procédure simple (sans paramètres)
18

remarques
I Une variable globale (publique) est déclarée au début de
l’algorithme. Elle peut être utilisée dans le corps principal
de l’algorithme ou par les différentes procédures.
Exemple : « titre » est une constante globale.
I Il est fortement recommandée d’utiliser autant que
possible des variables locales pour rendre les modules
plus autonomes et par conséquent utilisables dans
d’autres programmes.

Maroua Ben Slimane | Fonctions et Procédure


Procédure paramétrée (avec paramètres)
19

Définition
Une procédure paramétrée est un module qui utilise des
paramètres pour faire passer des informations entre la
procédure appelée et le programme appelant.

 Les différent types de paramètres


1. Les paramètres formels (fictifs)
2. Les paramètres effectifs (réels)

Maroua Ben Slimane | Fonctions et Procédure


Procédure paramétrée : passage de paramètres
20

Les paramètres formels (fictifs)


I qui figurent dans l’entête de la déclaration de la procédure
sont utilisés dans les instructions de la procédure et la
seulement. Ils correspondent à des variables locales.

Procédure Nom_Procédure(pf1 : type1 , pf 2 : type2 , . . .)

Maroua Ben Slimane | Fonctions et Procédure


Procédure paramétrée : passage de paramètres
20

Les paramètres formels (fictifs)


I qui figurent dans l’entête de la déclaration de la procédure
sont utilisés dans les instructions de la procédure et la
seulement. Ils correspondent à des variables locales.

Procédure Nom_Procédure(pf1 : type1 , pf 2 : type2 , . . .)

Les paramètres effectifs (réels)


I qui figurent dans l’instruction d’appel de la procédure et
sont substitués aux paramètres formels au moment de
l’appel de la procédure.

Nom_Procédure(pe1 , pe2 , . . . )

Maroua Ben Slimane | Fonctions et Procédure


Procédure paramétrée : passage de paramètres
21

Remarques
I Les paramètres formels et les paramètres effectifs
correspondants doivent coïncider en nombre et en type.
I La liaison entre paramètre effectif et paramètre formel
correspondant est déduite de la position du paramètre
effectif, respectivement, formel, dans la liste des
paramètres effectifs, respectivement, formels.

Maroua Ben Slimane | Fonctions et Procédure


Exemple de procédure paramétrée
22

Maroua Ben Slimane | Fonctions et Procédure


Exemple de procédure paramétrée
22

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètres par valeur
23

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètres par valeur
23

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètres par valeur
24

Interprétation :
I Le passage de paramètres par valeur permet au
programme appelant de transmettre une valeur à la
procédure appelée.
I Le paramètre formel « i » est une variable simple.
I Le paramètre effectif correspondant « x » est une
expression de même type que le paramètre formel.
I Avant d’exécuter les instructions de la procédure la valeur
du paramètre effectif est affectée au paramètre formel.
Dans ce cas, le paramètre formel est considéré comme
une variable locale qui est initialisée lors de l’appel.

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètres par valeur
25

I Avant appel x = 10
I Après appel x = 10
Remarques:
I Les paramètres effectifs et les paramètres formels doivent
s’accorder du point de vue nombre et ordre.
I Leurs types doivent être identiques selon le mode de
passage des paramètres
Maroua Ben Slimane | Fonctions et Procédure
Passage de paramètres par valeur
26

conclusion
1. Le transfert d’information est effectué dans un seul sens,
du programme principal vers la procédure.
Sens de transfert :

2. Toute modification du paramètre formel est sans


conséquent sur le paramètre effectif.

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètre par variable
27

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètre par variable
27

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètres par variable
28

Interprétation :
I Le passage de paramètres par variable permet au
programme appelant de transmettre une valeur à la
procédure appelée et vice-versa.
I Le paramètre formel « i » est une variable.
I Le paramètre effectif correspondant « x » doit également
être une variable du même type que le paramètre formel.
I Pendant l’exécution des instructions de la procédure, le
paramètre formel fait référence au même contenant
variable que celui désigné par le paramètre effectif.

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètres par variable
29

I Avant appel x = 10
I Après appel x = 30

Maroua Ben Slimane | Fonctions et Procédure


Passage de paramètres par variable
30

conclusion
1. Le transfert d’information est effectué dans les deux sens,
du programme principal vers la procédure et vice-versa.
Sens de transfert :

2. Toute modification du paramètre formel entraîne


automatiquement la modification de la valeur du paramètre
effectif.

Maroua Ben Slimane | Fonctions et Procédure


Exercice 1
31

Énoncé
On se propose d’échanger les valeurs de deux variables a et b
saisies par l’utilisateur.
1. Écrire un algorithme Swapping1 qui contient une
procédure swap1 qui échange de valeurs de deux
variables avec un passage de paramètres par valeur.
2. Écrire un algorithme Swapping2 qui contient une
procédure swap2 qui échange de valeurs de deux
variables avec un passage de paramètres par variable.

Maroua Ben Slimane | Fonctions et Procédure


Exercice 1: Solution avec passage par valeur
32

Maroua Ben Slimane | Fonctions et Procédure


Exercice 1: Solution avec passage par valeur
32

Maroua Ben Slimane | Fonctions et Procédure


Exercice 1: Solution avec passage par variable
33

Maroua Ben Slimane | Fonctions et Procédure


Exercice 1: Solution avec passage par variable
33

Maroua Ben Slimane | Fonctions et Procédure


Exercice 2 : Nombres amicaux
34

Énoncé
Deux entiers naturels sont dit amicaux s’il sont distincts et si
chacun des deux entiers est égal à la somme des diviseurs
stricts de l’autre.
Proposez un algorithme qui détermine si deux entiers naturels,
saisis par l’utilisateur, sont amicaux ou pas.
Indication: définissez une fonction pour effectuer le calcul qui
vous semble le plus récurent.

Maroua Ben Slimane | Fonctions et Procédure


Exercice 3 : Puissance
35

Énoncé
Écrire une procédure PUISSANCE à 3 paramètres a, b et P qui
calcule P = ab = a ∗ a ∗ a ∗ . . . ∗ a(b fois)
Écrire l’ Algorithme principal qui permet :
I De saisir deux entiers positifs (x, et y )
I D’afficher x y

Maroua Ben Slimane | Fonctions et Procédure


Exercice 3: Solution
36

Maroua Ben Slimane | Fonctions et Procédure


Variables globales vs variables locales
37

Variables Globales
I Les variables déclarées dans la rubrique variable de
l’algorithme principal sont des variables globales à tout
l’algorithme.
⇒ possible de les utiliser dans les différents modules de
traitement de l’algorithme.
I Il est rare de se trouver dans une situation où il est
indispensable d’utiliser des variables globales en dehors
du corps de l’algorithme principal.

Maroua Ben Slimane | Fonctions et Procédure


Variables globales vs variables locales
38

Variables locales
I Dans un module de traitement, il est possible de déclarer
des variables dites locales au module.
I De telles variables ne peuvent être utilisées que dans le
corps de ce module.
I Si par hasard, des variables de l’algorithme principal
portent les mêmes noms que des variables locales à un
module M alors les variables de l’algorithme principal
seront masquées pendant le déroulement du module M et
on ne pourra y accéder de nouveau qu’à la fin du
déroulement du module M.

Maroua Ben Slimane | Fonctions et Procédure


Variables globales,variables locales et
masquage 39

Maroua Ben Slimane | Fonctions et Procédure


Variables globales,variables locales et
masquage 40

I Dans l’exemple, la variable locale m de la procédure perm


masque la variable globale de même nom.
I La valeur de la variable globale m ne sera pas écrasée
par l’affectation m ←− n et l’échange de valeur entre n et
m peut avoir lieu correctement.
I En fait, dès qu’un module termine de se dérouler, les
variables locales à ce module n’ont plus d’existence, et ne
pourront donc plus masquer d’autres variables, jusqu’au
prochain appel du module.
I Signalons que les variables globales peuvent aussi être
masquées par des paramètres de modules qui portent les
mêmes noms. Ainsi, dans l’exemple, le paramètre n de la
procédure Perm masque la variable globale n.

Maroua Ben Slimane | Fonctions et Procédure


Variables globales,variables locales et
masquage 41

I Il est recommander de choisir les noms des variables


globales et locales ainsi que les noms des paramètres
formels des différents modules de façon à :

Règle1: Éviter, autant que possible, les masquages de vari-


ables, lors de l’écriture d’algorithmes modulaires.
I Soit un module de traitement M d’un algorithme A, alors il
est possible de partitionner l’ensemble de toutes les
variables intervenant dans l’algorithme A en deux
sous-ensembles en se référant au module M comme suit:

Maroua Ben Slimane | Fonctions et Procédure


Variables globales,variables locales et
masquage 42

Définition
Le contexte d’un module de traitement est constitué de
l’ensemble des paramètres de ce module ainsi que de ses
variables locales.
I À titre d’exemple, le contexte de la fonction perm de
l’exemple se compose des paramètres n et x et de la
variable locale m.

Règle2: Un module de traitement ne doit utiliser que des vari-


ables de son propre contexte.
I Ceci, sous-entend, qu’il faut éviter d’utiliser les variables
globales en dehors du corps de l’algorithme principal.

Maroua Ben Slimane | Fonctions et Procédure


La Stratégie Diviser Pour Régner
43

I Avantages de l’utilisation des fonctions et des procédures


ne se limitent pas aux avantages de la conception
d’algorithmes structurées et modulaires.
I Les fonctions et les procédures : des structures de
contrôle qui facilitent la mise en œuvre de l’une des
stratégies de conception d’algorithmes les plus puissantes.

Cette stratégie est "diviser pour régner": consiste à


décomposer un problème complexe en un ensemble de
sous-problèmes, souvent analogues, qui sont plus faciles à
résoudre.

Maroua Ben Slimane | Fonctions et Procédure


La Stratégie Diviser Pour Régner
44

I La décomposition peut être appliquée, de manière


récursive, sur les sous-problèmes, aboutissant ainsi à des
sous-problèmes encore plus élémentaires, pour lesquels il
est bien plus facile de calculer une solution.
I Les solutions des sous-problèmes sont, ensuite,
assemblées en une solution globale pour le problème
initial.
I La mise en œuvre de la stratégie "diviser pour régner"
se traduit par l’utilisation de modules récursifs, qui
apportent des solutions algorithmiques concises et
élégantes à des problèmes, parfois, bien difficiles.

Maroua Ben Slimane | Fonctions et Procédure


La Récursivité : Définitions
45

Une entité est récursive lorsqu’on l’utilise pour la définir

Maroua Ben Slimane | Fonctions et Procédure


La Récursivité : Définitions
46

I La récursivité est une technique algorithmique simple et


élégante qui permet de résoudre des problèmes
informatiques qui sont, parfois, bien complexes.
I Un module de traitement est dit récursif s’il s’appelle lui
même.
I La récursivité consiste à faire l’appel d’un module dans
son propre corps avec d’autres paramètres de façon à
converger vers un état d’arrêt.

Maroua Ben Slimane | Fonctions et Procédure


Exemple: calcul de Factorielle
47

Maroua Ben Slimane | Fonctions et Procédure


Exemple: calcul de Factorielle
47

Maroua Ben Slimane | Fonctions et Procédure


Exemple: calcul de Factorielle
47

Maroua Ben Slimane | Fonctions et Procédure


Exemple: calcul de Factorielle
47

Maroua Ben Slimane | Fonctions et Procédure


Exemple: calcul de Factorielle
47

Maroua Ben Slimane | Fonctions et Procédure


Exemple: calcul de Factorielle
48

Maroua Ben Slimane | Fonctions et Procédure


La récursivité : Principes
49

I L’exécution d’une séquence d’appels récursifs émanant


d’un même appel initial suit le principe du (dernier arrivé,
premier servi) : les appels récursifs sont terminés dans
l’ordre inverse de leur déclenchement. Ainsi l’appel
récursif effectué en premier sera terminé en dernier et
inversement.
I Le contexte d’un appel récursif donné doit être
sauvegardé quelque part jusqu’à ce que tous les appels
récursifs qui lui ont succédé terminent.
I Pour sauvegarder ces contextes d’exécution, on utilise une
structure de donnée particulière qui s’appelle la pile
d’exécution.

Maroua Ben Slimane | Fonctions et Procédure


La récursivité : Principes
50

I La nécessité de la sauvegarde des contextes d’exécution


est derrière le principal inconvénient de la technique de la
récursivité. C’est que cette dernière fait intervenir un
mécanisme d’exécution très consommateur d’espace
mémoire, en particulier, quand il s’agit d’exécuter de
longues séquences d’appel récursifs, avec des contextes
d’exécution de grande taille.
I Toute fonction ou procédure récursive doit comporter une
instruction (ou un bloc d’instructions) nommée point
terminal. Le point terminal permet d’arrêter la séquence
d’appels récursifs.
I Un appel d’un module récursif qui ne contient pas de point
terminal déclenche une suite d’appels récursifs qui ne
termine jamais.
Maroua Ben Slimane | Fonctions et Procédure
Récursivité Terminale
51

Définition
Un module de traitement récursif est dit à récursion terminale
si l’appel récursif est la dernière instruction exécutée par le
module et elle est isolée

plus(4,2)=plus(5,1)=plus(6,0)=6
Maroua Ben Slimane | Fonctions et Procédure
Récursivité Non Terminale
52

Définition
L’appel récursif n’est pas la dernière instruction et/ou elle n’est
pas isolée (fait partie d’une expression)

plus(4,2)=1+plus(4,1)=1+1+plus(4,0)=1+1+4=6

Maroua Ben Slimane | Fonctions et Procédure


Exemple: La suite de Syracuse
53

Énoncé
Il s’agit d’une fonction récursive qui calcule les valeurs d’une
suite mathématique connue sous le nom de suite de Syracuse,
en référence à la ville américaine qui porte le même nom. Les
termes de cette suite sont définis par:

 1 si n = 1
Un = U si n = 0 [2]
 n/2
U3n+1 sinon

Maroua Ben Slimane | Fonctions et Procédure


La suite de Syracuse: Solution
54

Maroua Ben Slimane | Fonctions et Procédure


La suite de Syracuse: Interprétations
55

I Syracuse est une fonction récursive dont l’exécution


pourrait ne pas s’arrêter.
I la fonction récursive Syracuse est à récursion terminale,
car les deux appels récursifs terminent la fonction.

Maroua Ben Slimane | Fonctions et Procédure


Récursion terminale et Dérécursification
56

Récursions Terminales : Avantages


I Les récursions terminales présentent certains avantages,
par rapport aux récursions non terminales.
I Le premier de ces avantages est que, lors de l’exécution
d’un module à récursion terminale, il n’est pas nécessaire
de sauvegarder le contexte du module avant d’effectuer
l’appel récursif suivant. La raison est que le contexte du
module courant n’est plus utile puisque le module va,
justement, se terminer avec le nouvel appel récursif.
I Un autre avantage des récursions terminales est qu’elles
peuvent facilement être remplacées par des itérations
équivalentes. L’opération qui consiste à remplacer une
récursion par une itération équivalente s’appelle
dérécursification.
Maroua Ben Slimane | Fonctions et Procédure
Récursion terminale et Dérécursification
57

Dérécursification
I La dérécursification a ses avantages car, en général, une
itération est plus rapide et plus économique en espace
mémoire qu’une récursion.
I Toutefois, bien qu’il est toujours possible de dérécursifier
un module récursif, la tâche est beaucoup plus complexe
quand il s’agit d’une récursion non terminale.

Maroua Ben Slimane | Fonctions et Procédure


Dérécursification :de la Récursivité à l’Itération
58

Maroua Ben Slimane | Fonctions et Procédure


Exemple Les tours de Hanoi
59

Problématiques
I L’une des énigmes classiques, qui se résolvent aisément
en utilisant une récursion, est celle connue sous le nom
des tours de Hanoi.
I Il s’agit de faire déplacer un ensemble de n disques, tous
de diamètres différents, d’un pieu de départ vers un pieu
d’arrivée.
I La difficulté de la tâche provient du fait qu’il est interdit
d’empiler un disque de diamètre plus grand sur un disque
de diamètre plus petit.
I On dispose, néanmoins, d’un pieu supplémentaire qui va
permettre de contourner la difficulté.

Maroua Ben Slimane | Fonctions et Procédure


Les Tours des Hanoi: Solution
60

Maroua Ben Slimane | Fonctions et Procédure


Les Tours des Hanoi: Solution
60

Maroua Ben Slimane | Fonctions et Procédure


Les Tours des Hanoi: Solution
61

 La procédure récursive Hanoi, construit et affiche la suite des


déplacements valides à effectuer pour faire passer la pile de
disques du pieu A au pieu C.

 Le nombre de disques est donné par le paramètre n.


La concision de cette procédure est remarquable, si on tient
compte de la difficulté de la résolution de l’énigme.

Maroua Ben Slimane | Fonctions et Procédure


Conclusion
62

I Dans ce chapitre, il a été question de comment concevoir


des algorithmes modulaires en contrôlant les traitements
par des fonctions et des procédures.
I Le chapitre propose aussi un ensemble de règles, qu’il
serait très utile d’observer, afin d’asseoir de bonnes
pratiques de l’algorithmique.
I Une partie du chapitre à été consacrée à l’étude du
mécanisme de la récursivité et son utilisation dans la
mise en œuvre de l’une des stratégie de conception
d’algorithmes les plus efficaces, à savoir la stratégie
"diviser pour régner".

Maroua Ben Slimane | Fonctions et Procédure