• Aucun résultat trouvé

TD de programmation fonctionnelle et logique TD 3 : r´ecursivit´e

N/A
N/A
Protected

Academic year: 2022

Partager "TD de programmation fonctionnelle et logique TD 3 : r´ecursivit´e"

Copied!
1
0
0

Texte intégral

(1)

TD de programmation fonctionnelle et logique TD 3 : r´ecursivit´e

Suite de Fibonacci

La suite de Fibonacci est d´efinie comme suit :

Fib(n) =



1sin= 0 1sin= 1

Fib(n1) +Fib(n2)sinon.

1. ´Ecrire une fonction r´ecursive qui calcule Fib(n).

2. ´Ecrire une fonction r´ecursive qui calcule, pourn >0,(Fib(n),Fib(n1)). L’utiliser pour ´ecrire une fonction calculant Fib(n).

Calcul de (cos(nx), sin(nx))

Ecrire une fonction qui prend en entr´ee un entier´ net une paire de valeurs r´eelles qui sont en fait les valeurs du cosinus et du sinus d’un certain anglex, et qui renvoie la paire(cos(nx), sin(nx)). Autrement dit, le deuxi`eme argument de la fonction est une paire(a,b)telle quea = cos x etb = sin x . Le sch´ema de calcul doit bien

´evidemment ˆetre r´ecursif.

On pourra se servir des formules de trigonom´etrie suivantes :

cos(nx) = cos((n-1)x) cos(x) - sin((n-1)x) sin(x) sin(nx) = sin((n-1)x) cos(x) + cos((n-1)x) sin(x)

Tri par recherche du maximum

1. ´Ecrire une fonction qui retourne la valeur du maximum d’une liste.

2. ´Ecrire une fonction qui prend une liste en entr´ee et retourne la liste priv´ee de son ´el´ement maximal.

(a) ´Ecrire une version de cette fonction qui recherche d’abord l’´el´ement maximum, puis qui l’enl`eve de la liste.

(b) ´Ecrire une version de cette fonction qui calcule simultan´ement le maximum et la liste demand´ee.

3. Si les paires ont ´et´e vues en cours, ´ecrire une fonction qui prend en entr´ee une liste et renvoie une paire compos´ee de l’´el´ement maximum et de la liste des autres ´el´ements.

4. ´Ecrire une fonction de tri de liste par recherches successives de maximum (on utilisera bien ´evidemment cer- taines des fonctions pr´ec´edemment obtenues).

(a) ´Ecrire une fonction qui trie dans l’ordre d´ecroissant.

(b) ´Ecrire une fonction qui trie dans l’ordre croissant (sans utiliser de fonctions de concat´enations de listes).

1

Références

Documents relatifs

[r]

Nous voulons maintenant un algorithme Union(A, B) qui nous renvoie l’union des deux ensembles qui lui sont pass´ es en argument.. (a) Cas des ensembles non tri´ es

L’algorithme Intersection est appel´ e longueur (B) fois, chacun de ces appels effectuant un appel ` a Recherche sur A, dont le coˆ ut au pire est en longueur(A)?. Quelle est

Donnez deux algorithmes « diviser pour r´ egner » permettant de multiplier deux polynˆ omes de degr´ e au plus n et s’ex´ ecutant en Θ(n log 2 3 ).. (a) Le premier algorithme

´ Ecrivez deux versions d’une fonction qui prend en entr´ee les coordonn´ees de deux points (sous forme de paires de r´eels) et qui renvoie le carr´e de la longueur du

Ecrire le d´ ´ efinition d’une fonction r´ ecursive qui renvoie vrai/f aux selon qu’une valeur donn´ ee se trouve ou non dans un tableau

Est-il possible de r´ esoudre le probl` eme ` a l’aide de la r´ esolution du probl` eme portant sur une (des) ”plus petite(s)” valeur(s) du param` etre. Si oui,

Est-il possible de r´ esoudre le probl` eme ` a l’aide de la r´ esolution du probl` eme portant sur une (des) ”plus petite(s)” valeur(s) du param` etre. Si oui,