Solutions du cours du 14 septembre 2009

1) En additionnant 1 + 1/2 + 1/3 + 1/4 + 1/5 + ... la somme deviendra infinie.
   Ecrivez un programme qui effectue l'action suivante :
   Pour un nombre donné (pas trop grand, par exemple 10),  déterminer jusqu'où il faut effectuer 
   la somme des inverses des entiers pour dépasser le nombre donné.
================================================================================
// Somme des inverses des nombres entiers.
var vSum = 0;   // la somme désirée
var fMax = 10;  // somme jusqu'à ce que vSum > fMax
var nn = 0;     // indice de sommation

while ((vSum <= fMax) && (nn < 100000000)) {   // nn < 100000000  est une sécurité
  nn++;
  vSum = vSum + 1/nn;
  }

Display("1 + 1/2 + 1/3 + ... + 1/" + nn + " = " + vSum);

// Pour les curieux, voici une approximation du nombre 
// Gamma = limite n-> infini  (1 + 1/2 + ... + 1/n) - Ln(n)
// Gamma = 0.57721 56649 01532 86060 65120 90082 40243 10421 ...
Display("Gamma = " + (vSum - Math.log(nn)));


2) Ecrivez un programme qui calcule numériquement une approximation de la racine carrée d'un nombre, 
   avec une précision inférieur à 10^-9.
   Indications :
   i)   La valeur absolue d'un nombre s'obtient avec : Math.abs(du nombre)
   ii)  Si  vRacine  est une approximation de la racine carrée du nombre  vNbr,  alors
        (vRacine + vNbr/vRacine) / 2  est une meilleure approximation de vNbr
   iii) Vous pouvez prendre  vRacine = 1;  comme première approximation.
=================================================================================================
// Calcule la racine carrée d'un nombre

var vNbr = 2;  // nombre dont on veut calculer la racine carrée.
var nn = 0;    // un compteur de sécurité.
var vRacine = 1;  // l'approximation de la racine carrée.

// 
while ((Math.abs(vRacine * vRacine - vNbr) > 1e-9) && (nn < 50))  {  // nn est une sécurité pour ne pas boucler indéfiniment
  nn++;
  vRacine = (vRacine + vNbr / vRacine) / 2;
  Display(vRacine + "   " + vRacine * vRacine);
  }
Display("La racine carrée de " + vNbr + " ~= " + vRacine);


3) Ecrivez un programme qui effectue l'action suivante :
   Pour une chaine de caractère donnée,  affiche la chaîne de caractère à l'envers.
   Par exemple,  pour  "Bonjour"  il affichera  "ruojnoB".
   Indications :
   Si  strS  est la variable contenant le texte, par exemple  var strS = "Bonjour";
   i)   strS.length  = le nombre de caractères formant le texte contenu dans strS.  
        Dans l'exemple ci-dessus,  strS.lenght == 7
   ii)  strS[0] = le premier caractère de la chaîne
        strS[1] = le deuxième caractère de la chaîne
        ...
        strS[strS.length-1] = le dernier caractère de la chaîne.
================================================================================
// Ecrit un texte donné à l'envers
var strS = "Bonjour";  // le texte donné
var strInv ="";  // le texte écrit à l'envers
var  nn = 0;     // pour énumérer tous les caractères de strS

// On boucle sur tous les caractères du texte se trouvant dans  strS.
// nn--  signifie  nn = nn - 1
for (nn=strS.length-1; nn>=0;  nn--) {  
  strInv = strInv + strS[nn];
  // Display(strInv);
  }
Display(strS + "  écrit à l'envers donne : " + strInv);



Plan du Site : index.html    zCours_20090914.html    zSol_20090914.html

Page mise à jour le 14 septembre 2009 par Bernard Gisin.
Hébergement par : www.educanet2.ch