Programmes > Exemple : Fonctions récursives
  
Exemple : Fonctions récursives
Les fonctionnalités de programmation de PTC Mathcad permettent de définir des fonctions récursives.
Exemple 1 : Définition de la fonction factorielle
1. Définissez la fonction Fac qui calcule la valeur factorielle de n. Nommez votre fonction en utilisant le libellé Fonction.
Cliquez pour copier cette expression
2. Calculez la valeur factorielle de 6 en utilisant Fac, puis vérifiez-la à l'aide de l'opérateur factoriel PTC Mathcad.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
3. Définissez une autre fonction Fac avec une condition différente sur n, puis appelez la fonction, comme illustré ci-dessous.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
PTC Mathcad produit le même résultat car il utilise la définition précédente de Fac pour effectuer le calcul.
4. Désactivez la première définition de Fac pour voir la différence de résultats. Evitez cette ambiguïté en ne réutilisant pas les noms de fonction.
Exemple 2 : Calcul du plus grand commun diviseur (PGCD) de deux entiers positifs
1. Ecrivez une fonction récursive GCD qui calcule le plus grand commun diviseur de deux nombres, qui est l'entier le plus élevé qui divise de façon égale x et y.
Cliquez pour copier cette expression
2. Appelez cette fonction avec différentes valeurs.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Ce programme est le même que la fonction intégrée de plus grand diviseur commun gcd :
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Exemple 3 : Définition de la nième itération d'une fonction f(x) pour un point a
1. Ecrivez une fonction récursive nest qui calcule la nième itération d'une fonction f(x) pour un point a.
Cliquez pour copier cette expression
2. Définissez une fonction f(x), puis affectez 1 à a.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
3. Appelez cette fonction avec différentes valeurs.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Exemple 4 : Définition de la séquence de Fibonnaci (deux appels récursifs par appel)
1. Ecrivez une fonction fib qui calcule la valeur de la séquence de Fibonnaci pour n.
Cliquez pour copier cette expression
2. Définissez un vecteur k, puis appelez la fonction fib.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Exemple 5 : Définition d'une fonction de partition
1. Ecrivez une fonction récursive part qui calcule le nombre de manières différentes pour exprimer m sous la forme de la somme d'entiers positifs ne dépassant pas n.
Cliquez pour copier cette expression
2. Appelez la fonction avec différentes valeurs.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Exemple 6 : Création d'une arborescence binaire aléatoire
1. Ecrivez une fonction récursive Tree qui crée une arborescence binaire aléatoire.
Cliquez pour copier cette expression
2. Appelez la fonction.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Exemple 7 : Recherche de la hauteur d'une arborescence binaire
1. Ecrivez une fonction récursive height qui retourne la hauteur de l'arborescence binaire.
Cliquez pour copier cette expression
2. Appelez la fonction avec l'arborescence que vous avez créée dans l'exemple précédent.
Cliquez pour copier cette expression
* 
Dans la mesure où Tree crée une arborescence binaire aléatoire, les modifications de hauteur renvoyées changent après chaque nouveau calcul.
Exemple 8 : Paramétrage du crible d'Eratosthène
1. Ecrivez la fonction ceil pour écrire une fonction récursive p qui calcule tous les nombres premiers inférieurs à n, en utilisant le crible d'Eratosthène.
Cliquez pour copier cette expression
2. Appelez la fonction pour obtenir un vecteur de tous les nombres inférieurs à 200.
Cliquez pour copier cette expression