La récursivité.

Slides:



Advertisements
Présentations similaires
La Méthode de Simplexe Standardisation
Advertisements

Chapitre annexe. Récursivité
GEF 243B Programmation informatique appliquée
Sayada le 03 Mars 2009 Réalisé par : Mr. SOUISSI Chaouki
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
Cours d'algorithmique 8 - Intranet 1 4 décembre 2006 Cours dAlgorithmique Dérécursion (fin) : Équivalences entre programmes récursifs et programmes itératifs.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
ALGORITHMES RECURSIFS
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Dérécursivation Dérécursiver, c’est transformer un algorithme récursif en un algorithme équivalent ne contenant pas d’appels récursifs. Récursivité terminale.
Les algorithmes: complexité et notation asymptotique
La récursivité Une procédure est dite récursive si, et seulement si, elle fait appel à elle-même, soit directement soit indirectement Djamal Rebaïne Djamal.
Introduction à la récursivité
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Sémantique axiomatique
IFT313 Introduction aux langages formels
Exerciseur sur les produits et divisions de fractions
Récursivité Définition récursive d’un problème. Critère d’arrêt et convergence. Performance des algorithmes récursifs. Résolution d’un problème à l’aide.
Abder Alikacem Semaine 13 La récursivité
Structures de données IFT-10541
IFT1969 Programmation scientifique en C
Présentation Structures de Données et TDA
Instruction sélective switch-case Instruction répétitive do-while For
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Partie II Sémantique.
Sémantique dénotationnelle
CSI1502 Introduction au génie logiciel
Plan troisième cours Instruction sélective Instruction répétitive
Algorithmique et structures de données en C
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
INF1101 Algorithmes et structures de données
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
III. Récursivité Principe et exemples
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Python Fonction et procédure
Le langage C Structures de données
Les Contrôles Page 1. Page 2 If … Elseif... Endif If … Endif if (i=5 and j
III. Récursivité Principe et exemples
Cours n° 3 Traitements en Java
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Les structures conditionnelles en PHP
Variables et environnement utilisateur W. Barhoumi.
Les algorithmes recursifs
Introduction à la récursivité
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
La Récursivité.
6ième Classe (Mercredi, 17 novembre) CSI2572
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
UE MAREP Cours 8 : La pile d’exécution (Fonctions imbriquées et fonctions récursives) Patricia Renault UPMC 2005/2006.
Patricia Renault UPMC 2005/2006
Programmation en C.
Introduction à la programmation (420-PK2-SL) cours 8
Structures de données IFT-2000 Abder Alikacem La STL du C++. La récursivité Semaine 9 Département d’informatique et de génie logiciel Édition Septembre.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département d’informatique et de génie logiciel Édition Septembre 2009.
Exercices sur les pointeurs. lireCar/remettreCar Lorsque l’on lit caractère par caractère, on ne peut pas savoir qu’on a atteint un caractère avant de.
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Itinéraire 1 L’addition,la soustraction, la multiplication et la division.
4.5 Soustraire des fractions
Évaluation – Panorama 13 À l’étude…. Panorama 13 Dans un problème, vous devez être capable :  d’identifier les inconnues, c’est-à-dire les éléments dont.
IFT359 – Programmation fonctionnelle Thème #6 Appel terminaux 1.
IFT359 – Programmation fonctionnelle Thème 07 Fermeture, affectation ou monades 1.
IFT359 – Programmation fonctionnelle Thème #8 Création de nouvelles formes syntaxiques 1.
IFT359 – Programmation fonctionnelle Thème #10 Évaluation par environnement et évaluateur méta-circulaire 1.
Cours de Langage C Récursivité. Objectifs de la séance 11 Connaître la récursivité. Mesurer un temps d’exécution. 2.
Transcription de la présentation:

La récursivité

Une récursivité: 3 points à concevoir! 1. Expression récursive du problème (récursion): L’ « équation » de la récursivité. Diviser pour régner n! = n x (n-1) x (n-2) x (n-3) x … x 1 = n x (n-1)! 2. Condition d’arrêt : Quand est-ce qu’on arrête les appels récursifs? 1! ou 0! 3. Convergence (vers la condition d’arrêt): Des conditions qui nous assure qu’un jour on va atteindre les conditions d’arrêt. si n = 0 ou n = 1 alors on a les conditions d’arrêt si n  2 alors la soustraction par 1 nous amènera vers n = 1 (n  n-1  n-2  n-3  …  2  1) donc convergence si n  0

Récursivité : Diviser pour régner Structure générale d’une fonction récursive : { if(/* !condition de convergence */) exit(1); if(/*condition d’arrêt*/) return(/*Ce qu’elle doit retourné*/); else appel récursif } Traitement

Exemple: La factorielle (n!) long factorielle(int n) { if (n < 0)/* hypothèse de convergence : n  0 */ exit(1); if (n == 0 || n == 1) return 1; /* condition d’arrêt */ else /* appel récursif */ return n * factorielle(n - 1); }

Rappel sur la récursivité Voir les nombreux exercices corrigés, semaine4.

Récursivité et piles On peut simuler la pile d’exécution dans le cas d’une fonction récursive. On peut alors transformer une fonction récursive en fonction itérative avec gestion explicite d’une pile. Page 185 des notes de cours «Recette» pour traduire une fonction récursive en une fonction non-récursive (simuler la récursivité). Exemple (factoriel): semainier, semaine 4 (cet exemple fait partie du zip qui contient ces acétates). Exercice (tours de Hanoï): semainier, semaine 4. Voir le corrigé présent dans le zip!