Passer au contenu principal
Formation développeur web
  • Accueil
  • Plus
Vous êtes connecté anonymement
Connexion
Accueil
Passer Hébergement
Hébergement


Vous n'avez pas encore votre propre espace web pour héberger vos projets ? Noms de domaines, Wordpress, VPS, espace de stockage : hébergez vos projets web dès maintenant, à partir de 1€ / mois.

Passer Formation
Formation


Vous êtes intéressé par le secteur du web, de l'informatique, de la programmation ? Que ce soit pour une formation qualifiante ou ponctuelle, en présentiel ou à distance, financée par l'état, par l'alternance, le CPF, etc...  Contactez-moi afin de vous orienter correctement.

  1. Front-end
  2. Javascript
  3. Parcourir tous les étages d'un immeuble (difficile)
Devoir

Parcourir tous les étages d'un immeuble (difficile)

Conditions d'achèvement
Ouvert le : lundi 2 décembre 2019, 00:00

Voici un exercice pour travailler le concept des fonctions récursives. L'algo ci-dessous vous créé des tableaux dans des tableaux de manière récursive et aléatoire.

Pour illustrer l'exemple, imaginez que c'est une tour (un immeuble) qui à X étages (étage 0, étage 1, .... jusqu'au dernier étage). Vous ne savez pas combien il va y avoir d'étages à l'avance, car c'est déterminé de manière aléatoire. Des fois votre immeuble fera 2 étages, et des fois il en fera 6, vous ne savez pas à l'avance.

L'idée, c'est que vous arriviez à m'afficher le texte de chaque étage, en parcourant la variable que je vous donne à la fin du script : etageImmeuble.

Bon courage.


Copiez ce code dans un fichier "exo-recursion.js", et regardez la console voir ce qui s'y passe :

let randomNumber = (min = 1, max = 7) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

let nouvelEtage = (depth, etage) => {
  let tab = [`Etage ${depth}`];
  tab.push(etage);
  if (depth > 0) {
    depth--;
    return nouvelEtage(depth, tab);
  } else {
    return tab;
  }
}

let dernierEtage = ['Dernier étage, regardez cette vue !! On redescends.'];
let nombreEtages = randomNumber();
let etageImmeuble = nouvelEtage(nombreEtages, dernierEtage);

console.log(`Nombre d'étages : `, nombreEtages + 1);
console.log(etageImmeuble);

=> Sans toucher au code que je vous ai donné, faites moi une fonction qui permet d'afficher le texte de tous les tableaux de la variable etageImmeuble dans la console.

Une fois que ça marche, vous pouvez essayer d'agrandir les limites de randomNumber() afin de créer plus d'étages, et vérifier que votre script fonctionne toujours. Vous pouvez améliorer librement votre code par la suite (parcourir en sens inverse, afficher un message tous les X étages, etc...)

Voici le résultat attendu :

 

http://webboy.fr/pluginfile.php/1117/mod_assign/intro/demo-recursif.mp4
 

Une fois que vous y êtes arrivé, tester la fonction .flat() de JS.


Contacter l'assistance du site
Vous êtes connecté anonymement (Connexion)
Résumé de conservation de données
Obtenir l'app mobile
Fourni par Moodle