Algorithme d'Euclide en Javascript
Le texte ci-dessous est interactif, dans le sens où l'utilisateur peut
entrer des données (nombres entiers) et cliquer sur un bouton pour faire
calculer automatiquement leur pgcd, par une boucle exécutée en javascript.
Par contre, pour la simplicité du code, aucune protection n'est prévue
pour empêcher ledit utilisateur de mettre n'importe quoi à la place des
entiers. Ceci dit Javascript résiste plutôt bien aux erreurs...
Voici le code javascript qui produit ce qu'on voit ci-dessus:
function pgcd(x,y){ var m=x; var n=y; var t=m; while (n>0){ t=m % n; m=n; n=t; } return(m); } function maj(oreille){ a=document.oreille.ent1.value; b=document.oreille.ent2.value; document.c=pgcd(a,b); document.oreille.sortie.value=pgcd(a,b).toString(); } |
Le code est formé de deux fonctions, la première, de deux variables entières, calcule le pgcd, et la deuxième met à jour l'affichage des deux données entrées et de la donnée sortie.
On peut raccourcir le code de la fonction pgcd, en le rendant récursif:
function gcd(a,b) { if (a>b){return (gcd(b,a)); }else{ if ((b % a) == 0){return (a); }else{return (gcd(a,b-a)); }}} |
Bien que ce ne soit pas précisé dans l'entête du code (pour des raisons de légèreté), celui-ci est soumis à la license GPL3.0, ce qui veut dire qu'on est autorisé (et même encouragé) à l'utiliser, à le modifier. La seule restriction importante est que la license GPL3.0 est héréditaire, ce qui veut dire qu'une fois modifié, le code obtenu reste sous license GPL, et qu'il est notamment interdit de le transformer en un code commercial, ou de prétendre être l'auteur de l'intégralité du nouveau code.