![]() » Calcul récursif de n! sur tableur , Calcul itératif multiprécision en JavaScript |
Depuis Kramp, le produit des n premiers entiers naturels est noté :
Sa programmation itérative est triviale, tout autant que sa programmation récursive qui s'avère incontournable aux débutants en programmation et constitue, avec le PGCD, l'une des deux tartes à la crème de la programmation récursive...
Cahier des charges :
1. Écrire une fonction itérative (boucle simple) appelée fac qui sera appelée par le programme principal afin de fournir la factorielle de tout entier naturel n (0 et 1 compris).
2. Écrire une fonction récursive appelée facto qui sera appelée par le programme principal afin de fournir la factorielle de tout entier naturel n (0 et 1 compris).
Solution itérative : |
<SCRIPT
LANGUAGE=JavaScript> function fac(n) |
➔ Afin de ne pas alourdir le programme qui se veut simple et pédagogique, on ne prévoit pas de test à l'entrée du nombre nb par l'utilisateur. On peut rajouter un contrôle sur la nature entière et positive de n de la façon suivante... La variable nb étant déclarée égale à 10, elle sera considérée, a priori, comme numérique. L'instruction eval n'est donc pas nécessaire. |
Solution récursive : |
<SCRIPT
LANGUAGE=JavaScript> function facto(n) |
➔ Code HTML du formulaire permettant de lancer les calculs à la demande : <FORM ACTION="" METHOD=POST> |
Solution itérative JavaScript + contrôle d'entrée : |
<SCRIPT
LANGUAGE=JavaScript> |
➔ Ce programme vérifie la validité du nombre entré par l'utilisateur. Il appelle la fonction fac décrite ci-dessus. On a distingué volontairement les 3 types d'erreur par 3 alertes distinctes. Une autre erreur, non testée ici, est celle consistant à entrer un nombre comme 3,5 en utilisant la virgule au lieu du point décimal. Ce type d'erreur peut être géré au moyen d'instructions relatives aux chaînes de caractères. |