Séminaire MaMuX
Mathématiques, musique et relations avec d'autres disciplines
JavaScript - Fonctions
Cliquez sur le titre de l'exemple pour que le code s'inscrive dans la fenêtre en bas de page
Cliquez sur le bouton [Exécute le code] pour que le code inscrit dans la fenêtre soit exécuté.
[Exec. 1] charge et exécute l'exemple 1.
Modifiez le code ou composez votre propre code pour vous exercer.
Créer des fonctions
[Exec. 1]Somme des entiers de 0 à n :
La déclaration d'une fonction commence par le mot clé function suivi du nom de la
fonction et de la liste de ses paramètres, vient ensuite le corps de la fonction entre deux accolades
function somme(n) {...} Le nom de la fonction est 'somm', le seul paramètre est n
Lorsque la fonction retourne une valeur on retrouve en un ou plusieurs endroits une instruction
du type return s;
function somme(n) {
var sum=0;
for(var i=0;i<=n;i++) {
sum += i;
}
return sum;
}
var k= prompt("valeur du paramètre n = ","100");
var z = somme(k);
alert("somme(" + k + ")=" + z);
[Exec. 2]Factorielle n (récursive) :
factorielle(n) = 1×2×3×4×...×n = n!
Est définie récursivement par 0! = 1 et lorsque n>0 par n! = n × (n-1)!
function factorielle(n) {
if(n==0) return 1;
else return n*factorielle(n-1);
}
var k= prompt("valeur du paramètre n = ","10");
var p = factorielle(k);
alert("factorielle(" + k + ")=" + p);
[Exec. 3]PGCD de deux entiers :
Calcule le reste r = a - q×b de la division du plus grand a par le plus petit b, en effet ce reste est divisible par le pgcd d. On remplace a par r et on recommence tant que le reste n'est pas nul.
function pgcd(a, b) {
var u=a,v=b, w;
if(u<v) {
w = u; u=v; v=w;
}
while(v != 0) {
w = u%v; u=v; v=w;
}
return u;
}
var x = prompt("Premier entier",""),
y = prompt("Deuxième entier","");
var z = pgcd(x, y);
alert("Le pgcd de "+x+" et de "+ y +" est " + z);
[Exec. 4]Fraction continue :
Le réel x donne la fraction continue x = a0 + 1/(a1 + 1/(a2 + 1/a3 + ... )) = [a0, a1, a2, a3, ...]
var u = 5*Math.random();
function fcont(t) {
var x = t, a = new Array();
for(var i=0; i <10;i++) {
a[i] = Math.floor(x);
x -= a[i];
if(x==0) break;
x = 1/x;
}
return a;
}
var c = fcont(u);
alert(u+"=["+c+" ?]");
function collatz(n) {
var i=0, a = new Array(), u=n;
do {
a[i] = u;
i++;
if(u%2 == 0) u = u/2;
else u = 3*u+1;
} while(u != 1);
a[i] = u;
return a;
}
var m = 1+Math.floor(100*Math.random());
var c = collatz(m);
alert("Syracuse\n"+c+"\n"+c.length+" termes");
Pour un premier contact, écrivez-moi en utilisant ce formulaire.
Les correspondances suivantes pourront se faire par messagerie électronique. Important : Si votre question a un quelconque rapport avec un travail personnel (Devoir TIPE Master...) , vous devez absolument me le préciser dès maintenant et m'indiquer très précisément les limites des informations demandées. Vous devez aussi avertir la personne qui dirige votre travail ou le corrige de cette communication et lui montrer les documents fournis.