20.8 Les boucles WHILE - exercices |
See You Why? |
Étendez l'exercice 19b en demandant à l'utilisateur de saisir un nombre ou un caractère (à la place du "1") et le nombre de lignes à afficher…
Vous testerez si le caractère saisi contient bien qu'un seul caractère (méthode length).
Vous ferez en sorte que le nombre de lignes n'excède pas 50.
De plus, la boucle devra s'effectuer tant que l'utilisateur n'entrera pas un nombre.
Vous ne ferez appel qu'à des boucles WHILE.
Remarque : chaque ligne ne contient que des "1" (un) ; il n'y a aucun espace entre les "1" ; utilisez la méthode d'affichage : document.write("element a afficher").
Demander à l'utilisateur dans une boucle while d'entrer la signification de l'abréviation HTML jusqu'à trois fois dans une fenêtre de dialogue (window.prompt()).
La boucle peut se terminer pour deux raisons : soit l'utilisateur donne la signification exacte de l'abréviation (attention aux orthographes acceptables) ou la variable essai, qui compte le nombre de tentatives a atteint une valeur supérieure à 3.
Quand la boucle est terminée, on ne sait pas laquelle de ces deux causes possibles a mis fin à la boucle.
Pour le savoir, la vérification est faite dans l'exemple à la fin à l'aide d'une condition si, alors... avec if pour savoir si la boucle a été terminée parce que la réponse était fausse.
Selon le cas si la réponse était correcte ou bien fausse la phrase correspondante est sortie dans la fenêtre d'affichage du navigateur avec document.write.
Voici un script JS d'une boucle while. Que va afficher cette boucle ?
var number = 1;
while (number < 10) {
number++;
}
alert(number);
Voici un autre script JS d'une boucle while. Que va afficher cette boucle ?
var compteur = 1 ;
do {
compteur++ ;
alert(compteur) ;
}
while (compteur<1);
Voici encore un script JS d'une boucle while. Que va afficher cette boucle ?
var compteur = 1 ;
while (compteur<1) {
compteur++ ;
alert(compteur) ;
};
Écrire un script, qui, au clic sur le bouton, lancer la fonction testWhile.
Cette fonction demandera à l'utilisateur de saisir une chaîne de caractères contenant le caractère une guille ("),
et le redemandera tant que l'utilisateur ne l'a pas fait.
Le script affichera ensuite la chaîne saisie entre guilles.
Écrire un script qui donne le plus grand diviseur commun (PGDC) de deux nombres entiers introduits dans des champs d'input par l'utilisateur. Utilisez pour cela l'algorithme d'Euclide, algorithme qui s'énonce ainsi sur Wikipedia "On considère que pgcd(a,0) = a et que pour b ? 0 pgcd(a,b) = pgcd(b, a mod b). On progresse dans l'algorithme en diminuant à chaque étape les nombres considérés par calcul du modulo".
En d'autres mots : "On commence donc par calculer le reste de la division de a par b, qu'on note r ; puis on remplace a par b, puis b par r, et on réapplique le procédé depuis le début. On obtient ainsi une suite, qui vaut 0 à un certain rang ; le PGCD cherché est le terme précédent de la suite."
Comme promis dans l'exercice 19h, il faut maintenant y répondre sans la boucle FOR, mais avec la boucle WHILE. Un rappel de l'énoncé :
Écrivez un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier. Résolvez ce problème (sans l'usage d'arrays ou tableaux).
Comme promis dans l'exercice 19h, il faut maintenant y répondre sans la boucle FOR, mais avec la boucle DO...WHILE. Un rappel de l'énoncé :
Écrivez un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier. Résolvez ce problème (sans l'usage d'arrays ou tableaux).
Le test ci-dessous n'a d'autres buts que de réagir à chaque réponse donnée à une question posée... il n'enregistre pas les réponses données, ni ne calcule les résultats...