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