Atelier 06 : Les fonctions et procédures
Exercice 03 : Fonction PGCD récursive. Ecrire un algorithme qui calcul le PGDC (plus grand diviseur commun) de deux nombre entier a et b non nuls (a > b) en
livre-algorithmes.pdf
Mini-exercices. 1. Créer une fonction récursive pg™d@—D˜A qui calcule le pgcd. ... Voici le code pour l'algorithme d'Euclide récursif.
Récursivité
Exercice 1 (une fonction récursive déjà rencontrée) Quel est le nom de l'algorithme utilisé ici ? ... pour tout entier a on a pgcd(a;0) = a.
Algorithmique & programmation en langage C - vol.2 - Archive
Jul 14 2015 concerné (par exemple INF202 pour le cours d'algorithmique et ... l'exercice 2
Algorithmique & programmation en langage C - vol.1 - Archive
Feb 1 2019 Supports de cours vol.1 – Période 2005-2014 ... d'algorithmique et de programmation en langage C donnés à la Faculté ... 4.2.7 Exercices.
ALGO 1.1 œ Correction TD N°5.
Exercice 1. On reprend l'algorithme déterminant si nombre est parfait ... Calcul du pgcd de deux nombres a et b strictement positifs par l'algorithme ...
Travaux Dirigés dalgorithmique no4
Cours d'analyse algorithmique. —Master 2 CCI—. Exercice 1. Écrire une fonction récursive pgcd(m
Programmation Applicative et Récursive
“Programmation récursive (en Scheme) Cours et exercices corrigés”
Algorithmes et programmation II : La récursivité
Algorithmes et programmation II : La récursivité Grandes lignes du cours ... Une fonction récursive est une fonction qui s'appelle elle-même.
Langage C : énoncé et corrigé des exercices IUP GéniE
Exercice 9 Ecrire un progra mm e q ui m u l tip l ie deux entiers positif s a et b se l on l e principe récursif suivant :.
Universite Montpellier-II
UFR des Sciences - Departement Informatique
Licence Informatique - 2ieme annee
Programmation Applicative et Recursive
Notes de cours - 2007-2012
Christophe Dony1
2Table des matieres
1 Introduction.5
1.1 Denitions
51.2 Lectures associees
112 Syntaxe des expressions. Types predenis. Bases de l'interpretation des expression.
132.1 Syntaxe de Scheme
132.2 Premieres phrases
143 Identicateurs, Fonctions, Premieres Structures de contr^ole.
193.1 Lambda-calcul
193.2 Identicateurs
193.3 Denition de fonctions
203.4 Premieres Structures de contr^ole
223.5 Fonctions de base sur les types predenis
233.6 Blocs, evaluations en liaison lexicale
244 Fonctions Recursives.29
4.1 Denitions
294.2 Iteration et recursion
304.3 Exemples de fonction recursives
304.4 Autres exemples : Calcul des termes de suites recurrentes
314.5 Interpretation d'un appel recursif
334.6 Decouverte d'une solution recursive a des problemes
344.7 Recursivite terminale et non terminale
344.8 Recursivite croisee
344.9 Exemples : dessins de gures fractales
355 Listes, Symboles, calcul Symbolique.
375.1 Types structures
373
5.2 Listes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3 Symboles et Calcul
385.4 Calcul symbolique, Guillemets, Citations
396 Recursivite suite, Fonctions recursives sur les listes et arbres, Recursions arborescentes.
436.1 Fonctions recursives sur les listes
436.2 Recursivite enveloppee sur les listes : schema 1
446.3 Recursivite enveloppee - schema 2
456.4 Recursivite arborescente
467 Optimisation des fonctions recursives.
517.1 Rappels sur iterations
517.2 Equivalence iteration - recursions terminales
517.3 Transformation des recursions enveloppees simples
527.4 Recursion vers iteration, le cas des listes
557.5 Autres ameliorations de fonctions recursives
567.6 Transformation des recursions arborescentes, l'exemple de \b"
578 Abstraction de donnees, Arbres binaires, Dictionnaires
598.1 Abstraction de donnees
598.2 Denition de nouveaux types abstraits
598.3 L'exemple des Arbres binaires
618.4 L'exemple des Dictionnaires
629 Sequences et Eets de bord en programmation recursive.
659.1 Denitions
6510 Fonctions recursives et Interpretation des programmes
6910.1 Recursivite et Interpretation des programmes
694
Chapitre 1
Introduction.
Ceci est le premier d'une serie de 10 cours de 1h30 sur la programmation applicative et recursive, donnes en
licence seconde annee dans le contexte global de l'initiation a la programmation.1.1 Denitions
Programmation Applicative
Programmation a veclaqu elleun texte de programme est un ensem bled ed enitiond efonctions et o u l'execution d'un programme est une succession, d'applicationde fonctions a des arguments au sensalgebrique du terme (calcul utilisant des operations, des lettres et des nombres) et selon la semantique
operatoire de l'application duLamba-Calcul;programmation utilisan tp otentiellement(mais sans obligation) des v ariablesm utables(par opp osition a
la programmation fonctionnelle), programmation o utoute instruction est une expression (don tl ecalcul a u nev aleur).Programmation recursive: programmation utilisant des fonctions recursives i.e. s'appelant elles-m^emes.
Une fonction recursive est appropriee pour implanter un algorithme pour tout probleme auquel peut s'appliquer
une resolution par recurrence, ou pour parcourir et traiter des stuctures de donnees elles-m^emes recursives telles
que les listes et les arbres. 5 Figure(1.1) {\Web site tree - une representation graphique du code HTML des pages WEB" - journal \Liberation", 23 janvier 2008|Lisp,Scheme: Langages historiquement majeurs, a la syntaxe simple, a fort pouvoir d'expression, dedies
plus speciquement a la programmation applicative.|Lisp, 1960, John Mc Carthy : \lists processing"pour du calcul numerique classique mais aussi symbolique,
calcul dont les donnees ne sont pas uniquement des nombres mais aussi des symboles et des collections de
symboles.|Scheme, 1970, Gerald J. Sussman et Guy L. Steele : Heritier de LISP a liaison strictement lexicale :
enseignement de la programmation. \Structure and Interpretation of Computer Programs - Abselson, Fano, Sussman - MIT Press - 1984". bases, pr ealable al' etuded'autres for malismes,don tle formalisme ob jetplus large. CaracteristiquesdeLispet des langages applicatifs :T outephrase syn taxiquementc orrectedu langage (y compris une instruction) est une expression alg ebrique
ayant une valeur calculable 1 2 . La m emoireest allou eeet r ecupereeautomatiquemen t si on le souhaite, programmation sans Eets de bords, lien avec la programmation dite \fonctionnelle pure" - Voir langage Haskell).De nom breusesabstractions simplien tla v iedu programmeur. Exemple : les grands nom bres,les it erateurs,
etc.1(fact30)2= 2652528598121910586363084800000003(mapfact '(2 3 4 30))4= (2 6 24 265252859812191058636308480000000)1. M^eme une expression realisant un eet de bord (voir cours no 9).
2. Ceci n'est pas vrai dans les langages dits "imperatifs".
6 Figure(1.2) {Les langages de programmation - Vision Historique - extrait1 - http ://www.digibarn.com/collections/posters/tongues/tongues.jpg 7 Figure(1.3) {Les langages de programmation - Vision Historique - extrait 2- http ://www.digibarn.com/collections/posters/tongues/tongues.jpg 8 Figure(1.4) {Vision Historique et Thematique - extrait de :http://www.ctm.info.ucl.ac.be, \Concepts, Techniques, and Models of Computer Programming", P. Van Roy et S. Haridi. Langage Universel. Tous secteurs d'applications ouverts. 9 Figure(1.5) {Image Fractale dessinee par un programme Scheme - Girault Georoy - TER L2 2008Contenu du cours :
Syn taxe.
T ypespr edenis,T ypage,Base de l'in terpretationdes expressions. Iden ticateurs,F onctions,Premi eresStructures de con tr^ole.Blo cs,En vironnements,Liaisons.
F onctionsR ecursives.
T ypesstructur es- Listes
Listes et Sym boles: Calcul Sym bolique
F onctionsr ecursivessur les listes.
Arbres, R ecursionsarb orescentes.
Optimisation des fonction sr ecursives.R ecursionterminales, en veloppees. T echniquesde d erecursivation,transformations, me moization,con tinuations.Abstraction de donn ees.Encapsulation.
In troduction al'in terpretationdes langages, ev alcomme exemple de f onctionr ecursive. 10Un bloc est un espace de nommage. Il est possible d'utiliser sans ambiguite le m^eme identicateur dans des
blocs dierents.1(definex 12)2(define(carrex ) (xx ))3(define(cubex ) (xx x ))3.6.4 Cha^nage des environnements
Environnement ls: Un environnement E2 peut ^etre chaine a un environnement E1, on dit que E2 etendsE1, (on dit aussi que E2 est ls de E1). E2 herite alors de toutes les liaisons de E1 et y ajoute les siennes propres
(avec possibilite de masquage). La facon dont les environnements sont cha^nes denit la portee des identicateurs.3.6.5 Portee lexicale
Le cha^nage est dit statique ou lexical quand un environnement d'un bloc est cree comme le ls de l'environne-
ment du bloc englobant lexicalement (inclusion textuelle entre zones de texte).La portee des identicateurs est alors lexicale, i.e. un identicateur est deni dans toutes les regions de pro-
gramme englobee par le bloc ou se trouve l'instruction realisant la liaison. Scheme obeit a ce modele (voir exemples) ainsi que la pluspart des langages.3.6.6 Portee dynamique
Le cha^nage entre environnements est dynamique, et la portee des identicateurs egalement, quand l'environ-
nement associe a une fonction devient, a chaque execution, le ls de celui associe a la fonction appelante.
La portee dynamique a presque disparue ...
3.6.7 Environnement lie a la boucle toplevel
Environnement global de scheme: environnement dans lequel sont denis tous les identicateurs liesaux fonctions predenies. Tout autre environnement est indirectement (fermeture transitive) le ls, de cet
environnement global.Environnement initial: environnement aecte a la boucle toplevel i.e. dans lequel sont interpretees les
expressions entrees au toplevel. Cet environnement est un ls de l'environnement global. Tout bloc denit \au
toplevel" cree un environnement ls de cet environnement initial. NB : les fonctions denies dans l'editeur sont conceptuellement denies au toplevel.3.6.8 exemples
Variable denie ou indenie1>(definex 22);;liaison de x a22 dans l 'env.c ourant2>(+x1);;une expr essionE
quotesdbs_dbs18.pdfusesText_24[PDF] algorithme piece de monnaie PDF Cours,Exercices ,Examens
[PDF] algorithme plus court chemin graphe PDF Cours,Exercices ,Examens
[PDF] algorithme point sur une courbe 2nde Mathématiques
[PDF] algorithme polynome second degré ti 82 PDF Cours,Exercices ,Examens
[PDF] Algorithme pour calculer les taux d'évolution 1ère Mathématiques
[PDF] Algorithme pour calculer une distance de sécuité 2nde Mathématiques
[PDF] Algorithme pour conjecturer une limite 1ère Mathématiques
[PDF] Algorithme pour déterminer le minimum d'une fonction polynome 2nde Mathématiques
[PDF] Algorithme pour deux suites Un et Sn TS Terminale Mathématiques
[PDF] algorithme pour Gamy, Compostelle ou Chut 4ème Mathématiques
[PDF] algorithme pour i allant de 1 ? n PDF Cours,Exercices ,Examens
[PDF] algorithme pour les nuls PDF Cours,Exercices ,Examens
[PDF] algorithme pour prouver qu'un quadrilatère=losange 2nde Mathématiques
[PDF] algorithme pour tester la colinéarité de deux vecteurs PDF Cours,Exercices ,Examens