TD d'informatique No. 3 :
la récursivité

Patrick Gros -- Patrick.Gros@irisa.fr
Didier Le Botlan -- didier.le_botlan@inria.fr

Lundi 27 novembre 2000

Il serait bien que chacun en traite au moins deux exercices. Dans ces programmes, il est interessant de faire écrire sur l'écran les arguments des fonctions recursives pour en suivre le deroulement. Il est INDISPENSABLE de réfléchir aux algorithmes à employer avant de commencer à programmer !

1   Écriture d' un nombre en base 2

Écrire un programme qui prenne en argument un entier et qui écrive ce nombre en base 2. Ce programme doit utiliser une fonction récursive.

2   Résolution d'une équation par dichotomie

Écrire la fonction qui prend un argument réel x et qui calcule x5 + 3x4 + 2x3 + x2 + 3x + 1. Écrire une fonction récursive qui cherche une racine de la fonction précédente par dichotomie. Écrire une fonction non récursive qui fasse la même chose. Comparer les deux.

3   Puissances d'une matrice

On représente les matrices de taille 2 × 2 par des tableaux de 4 réels. Écrire une fonction qui calcule le produit de deux matrices. Écrire une fonction qui calcule la puissance n-ième d'une matrice. Pour cela, on se servira des faits suivants : M0 = I, M2n = Mn × Mn et Mn + 1 = Mn × M.

4   Flocon de Von Koch

Le flocon de Von Koch est une figure obtenue en traçant un triangle équilatéral, puis en remplaçant récursivement chaque segment ___ par _/\_. Écrire une fonction qui dessine un flocon de Von Koch.

5   La courbe du dragon

La courbe du dragon est une courbe définie récursivement. À l'ordre 1, elle se compose d'un segment PQ. La courbe du dragon à l'ordre n entre deux points P et Q se compose de la courbe à l'ordre n-1 entre P et R, suivie de la courbe à l'ordre n - 1 entre R et Q, où PQR est un triangle isocèle rectangle en R, et R est à droite du segment PQ. Si les coordonnées de P et Q sont respectivement (x, y) et (z, t), celles de R sont donc : ((x+z)/2 + (t -y) /2, (y+t)/2 - (z-x)/2). Écrire un programme qui dessine la courbe du dragon.


This document was translated from LATEX by HEVEA.