10598 sujets

JavaScript, DOM et API Web HTML5

Bonjour je dois réaliser une série d'exercices en javascript . 3 d'entre eux me posent des difficultés .

Pour le 1er - Mini et maxi

Modifiez le programme de la moyenne pour afficher le minimum et le maximum.
Exercice 'moyenne' : dans chapitre 07 les boucles_ : Ecrire un programme qui saisit des entiers et en affiche la somme et la moyenne (on arrête la saisie avec la valeur 0).

var somme=0;
var saisie="";
var moyenne=parseFloat(saisie)/somme;
 
while(saisie!="0"){
  saisie=prompt("Entrez votre nombre\n Entrez 0 pour terminer");
  somme=somme+parseFloat(saisie);
}
 
console.log("La somme maximal vaut  " + " " + (Math.max(saisie)) );
console.log("La somme minimal vaut  " + " " + (Math.min(saisie)) );
Je n'arrive pas ici à récupérer les valeurs max et min , à chaque fois que je termine cette boucle la console indique 

"La somme maximal vaut 0
"La somme minimal vaut


Pour le 2eme - Calcul du nombre de jeunes, de moyens et de vieux
Il s'agit de dénombrer les personnes d'âge strictement inférieur à 20 ans, les personnes d'âge strictement supérieur à 40 ans et celles dont l'âge est compris entre 20 ans et 40 ans (20 ans et 40 ans y compris).
Le programme doit demander les âges successifs.
Le comptage est arrêté dès la saisie d'un centenaire. Le centenaire est compté.
Donnez le programme Javascript correspondant qui affiche les résultats

var jeunes ;
  var adultes ;
  var vieux ;
 do
 (personnes) = window.prompt("Entrez votre âge");
while ((personnes < 100));
if ((personnes < 20)) {
  var jeunes = 0;
  var jeunes = +1;
} else if ((personnes >=20 && personnes <= 40 ))
  {
    adultes = 0;
    adultes = +1;
} else if((personnes >= 40 && personnes <=100))
  {
    vieux = 0 ;
    vieux = +1 ;
  }
window.alert("Il y a" + " " + jeunes + " " + "jeunes\n" + "Il y a" + " " + adultes + " " + "adultes\n" + "Il y a " + " " + vieux +  " " + "vieux\n" + "dont"  + " " + "1" + " " + "centenaire");
Ici je n'arrive pas à augmenter la valeur de mes variables ( jeunes, adultes , vieux ) . à la fin de la boucle je n'ai qu'une personne agée de prise en compte ( le cntenaire ) .


Pour le 3eme - recherche d'un prénom
Un prénom est saisi au clavier. On le recherche dans le tableau tab donné ci-après.
Si le prénom est trouvé, on l'élimine du tableau en décalant les cases qui le suivent, et en mettant à blanc la dernière case.

var prenom = ["Audrey", "Aurélien", "Flavien", "Jérémy", "Laurent", "Melik", "Nouara", "Salem", "Samuel", "Stéphane"];
var saisie = window.prompt("Saisissez un prenom");
   if ( saisie === "Audrey" || "Aurélien" || "Flavien" || "Jérémy"|| "Laurent" || "Melik" || "Nouara" || "Salem"|| "Samuel"|| "Stéphane") {
     prenom.splice(prenom);
     prenom.push();
     break;
      
   }
 console.log(prenom);


ici m'a difficulté est que je n'arrive pas a supprimer la personne qu je veux . Je voudrais que Jérémy soit supprimer du tableau quand je rentre Jérémy dans le prompt mais je n'y arrive pas .

Pourriez vous m'aider à y voir plus clair . je suis perdu et après mainte tentatives , je n'arrive pas à résoudre ces problème .
Modifié par devon80 (08 Oct 2019 - 15:27)
Administrateur
Bonjour,

pour le 1er je te conseille d'ajouter des console.log dans ta boucle while() : que vaut saisie après chaque saisie et que vaut somme après chaque calcul ?

pour le 2e :
- tu déclares la variable jeunes à 3 endroits différents ("var jeunes"). C'est une et une seule fois Smiley smile
- où commence et où finit ta boucle do while() ? Où se place le(s) test(s) (else) if par rapport à cette boucle ?
- à quel endroit de ton programme initialises-tu tes 3 variables : plutôt début, plutôt milieu (la boucle) ou plutôt fin de ton programme ?

edit : et pour le 3e
d'après MDN, .splice() attend comme 1er argument un index, un nombre entier. Ici prenom est un tableau (de chaînes mais peu importe), ça ne peut pas fonctionner
Modifié par Felipe (08 Oct 2019 - 16:31)
connecté
Bonjour,

Tu peux utiliser filter pour le numéro 3.

prenom.filter((result, index) => {
    if (result === saisie) {
        delete prenom[index];
    }
});