Académique Documents
Professionnel Documents
Culture Documents
23 Février 2020
Plan
1 Introduction
2 Définitions
5 La récursivité
1. Introduction
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.
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.
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.
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.
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.
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.
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.
2. Définitions
2. Définitions
a. Sous programme :
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.
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.
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.
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.
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.
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.
b. Fonction :
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.
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 ).
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.
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 :
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.
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).
Syntaxe : Langage C
typeResultat nomFonction (parametres)
{
// Déclaration des objets locaux à la fonction + Corps de la fonction
return (Resultat)
}
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).
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.
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é
3.2 Syntaxe
3.2 Syntaxe
a. Fonction :
Syntaxe : Algorithmique
nomFonction (parametres)
Syntaxe : Langage C
nomFonction (parametres) ;
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) ;
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
Fin }
Fin }
Conseil : Les variables globales sont à éviter pour la maintenance des programmes.
5. 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.
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.
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
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
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 }
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