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");



       



[Sommaire]  [Début]  [Fin]      <-  1  2  3  4  5  6  7  8  9  -> 
















Pour un premier contact, [utilisez ce formulaire] ou utilisez l'adresse de messagerie qui y figure. Merci d'indiquer la page précise du site "http//jm.davalan.org/...", cela m'aidera beaucoup. Ne joignez aucun document à votre message.
Jeux-et-Mathématiques n'est pas un site commercial. Aucun des liens placés sur ce site n'est rémunéré, ni non plus aucune des informations données.
Important : Si votre question a un quelconque rapport avec un travail personnel (Devoir TIPE Master...) , vous devez absolument me le préciser dès votre premier message et m'indiquer très précisément les limites des informations demandées. Vous devez aussi avertir la personne qui dirige éventuellement votre travail ou le corrige de cette communication et lui montrer les documents fournis.

J'essaie de répondre aux questions posées, mais ne lis pas les documents mathématiques amateurs, pas plus que je ne donne mon avis sur les démonstrations des conjectures de Collatz ou autres. Je ne lis pas les documents word, je ne corrige pas les programmes informatiques et depuis des années je n'utilise plus de tableur.

© (Copyright) Jean-Paul Davalan 2002-2014