SITE WEB de |
Enseignement > Pascal > TP > Résursivité |
|
|
PROGRAMMATION ORIENTEE OBJET TP n° 1 Objectifs :
1. Factorielle Ecrire une fonction récursive permettant de calculer la factorielle d’un nombre entier, selon la formule n ! = n* (n-1) ! et 0 !=1 2. Combinaison Cnp La théorie des ensembles a montré que le nombre total de combinaisons de p éléments pour un ensemble de n éléments est Cnp = n ! / (p ! * (n-p) !) Ecrire une fonction Cnp permettant de calculer cette combinaison. Ecrire un programme permettant de tester cette fonction. Constater que cette fonction donne un résultat faux lorsque Cnp deviend grand (exemple n=13 et p=6) Pourquoi ? 3. Simplification On montre que le calcul de Cnp peut être simplifié : Cnp = n*(n-1)*(n-2)*…*(n-p+1) / p! Programmer cette formule. Est-elle plus efficace ? Pourquoi cette formule permet-elle de calculer des Cnp plus grands ? 4. Cnp récursif On montre que Cnp = Cn-1p + Cn-1p-1 et C0p=1 et Cpp=1. Programmer cette formule. Peut-on calculer des Cnp plus grands qu’avec les fonctions précédentes ? Est-elle très efficace ? 5. Triangle de Pascal La formule précédente est en fait l’interprétation du triangle de Pascal : 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 … Ecrire une fonction utilisant un tableau à 2 dimensions permettant de calculer Cnp grâce au triangle de Pascal. Pourquoi cette méthode est-elle plus efficace que la fonction récursive précédente ? 6. Triangle de Pascal simplifié Il est possible d’écrire une fonction n’utilisant un tableau qu’à 1 seule dimension permettant de calculer Cnp grâce au triangle de Pascal |
||
Mise à jour par l'éditeur le : 15/10/2003 -
Copyright © 2012 - 2013 François Bonneville - Tous droits réservés |
||