Archives Wild Code School
PHP

✏️ Exercise 5 - Loops

Quête 13 sur 14 · 2 images archivées

Introduction

image

⚠️ Avant de commencer cette quête, tu dois avoir terminé les quêtes suivantes :
Quêtes liées

Rappel : Une boucle (loop, instruction qui répète du code plusieurs fois) permet de répéter une instruction un certain nombre de fois, selon une condition. loop

  1. Initialisation d'un compteur
  2. Vérifie si la condition est toujours vraie
  3. Si oui, exécute le code entre les accolades. Sinon la boucle se termine et les étapes suivantes sont ignorées.
  4. Met à jour la valeur du compteur
  5. Retourne à l'étape 2 (tant que la condition est vraie)

Source : hexainclude

💪 Challenge

Info

Astuce :

Tu peux exécuter ton script directement dans ton terminal avec php myScript.php. Pour afficher un saut de ligne et améliorer la lisibilité, utilise la constante PHP PHP_EOL (EOL = End Of Line, fin de ligne). par exemple echo 'hello' . PHP_EOL; affichera la chaîne 'hello' et ajoutera une nouvelle ligne dans ta console.

Exercice 1 : planter des arbres 🌳

  • Écris une boucle pour planter 3 arbres (tu dois afficher '🌳🌳🌳').
  • Écris une boucle pour planter 8 🌳 .
  • Écris une boucle pour planter 20 🌳 .

Exercice 2 : planter plus d'arbres 🌲🌴

Dans l'exercice précédent, tu peux planter un 🌳 par heure. Donc dans une boucle de 8, tu plantes 8 🌳, facile. Maintenant, tu dois planter des 🌲, ils sont plus délicats et nécessitent de creuser plus profond. Il te faut 2 heures pour planter un 🌲.

Astuce : tu ne devrais pas calculer à l'avance le nombre d'arbres plantés mais laisser la boucle le faire pour toi. Probablement en utilisant un compteur $numberOfHours

  • Écris une boucle pour planter des 🌲 pendant une journée de travail de 6 heures.
  • Écris une boucle pour planter des 🌲 pendant une journée de travail de 8 heures.
  • Écris une boucle pour planter des 🌲 pendant une journée de travail de 9 heures.

Tu as maintenant de l'expérience dans la plantation d'arbres. Tu travailles désormais avec des arbres très délicats et rares 🌴. Il te faut 3 heures de travail pour planter un 🌴.

  • Écris une boucle pour planter des 🌴 pendant une journée de travail de 6 heures.
  • Écris une boucle pour planter des 🌴 pendant une journée de travail de 2 heures.
  • Écris une boucle pour planter des 🌴 pendant une journée de travail de 8 heures.

Exercice 3 : planter une forêt

Tu sais planter une rangée d'arbres 🌳🌳🌳🌳🌳🌳🌳🌳🌳. Mais tu vois plus grand, et tu veux maintenant planter une forêt entière.

  • En utilisant 2 boucles imbriquées (nested, une boucle placée à l'intérieur d'une autre) (oui, tu peux utiliser une boucle dans une autre boucle, c'est fou !), affiche une forêt de 8 colonnes et 3 rangées. Utilise PHP_EOL pour créer de nouvelles lignes. Tu dois obtenir 🌳🌳🌳🌳🌳🌳🌳🌳 🌳🌳🌳🌳🌳🌳🌳🌳 🌳🌳🌳🌳🌳🌳🌳🌳

  • Plus grand maintenant ! Affiche une forêt de 40 colonnes et 25 rangées. Tu peux aussi utiliser 2 variables pour déterminer la largeur et la hauteur de la forêt. Les boucles doivent refléter les valeurs de ces variables.

  • Crée une forêt de 10 colonnes et 5 rangées, avec des types d'arbres alternés dans chaque rangée, comme ci-dessous. (Astuce : utilise l'opérateur modulo % pour déterminer si tu as une valeur paire ou impaire)

🌳🌳🌳🌳🌳🌳🌳🌳🌳🌳 🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲 🌳🌳🌳🌳🌳🌳🌳🌳🌳🌳 🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲 🌳🌳🌳🌳🌳🌳🌳🌳🌳🌳

  • Crée une forêt de 7 colonnes et 8 rangées, avec des types d'arbres alternés dans chaque colonne 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳

Exercice 4 : planter une forêt en triangle

Tu ne peux pas toujours planter une forêt de forme rectangulaire.

  • Crée des boucles pour afficher cette forêt en forme de triangle (un 🌳 de plus à chaque nouvelle ligne). 🌳 🌳🌳 🌳🌳🌳 🌳🌳🌳🌳 🌳🌳🌳🌳🌳

  • Crée des boucles pour afficher cette autre forêt en forme de triangle (de la ligne la plus longue à la plus courte). 🌳🌳🌳🌳🌳 🌳🌳🌳🌳 🌳🌳🌳 🌳🌳 🌳

🧐 Critères d'acceptation

  • [ ] Tous les arbres sont correctement affichés
  • [ ] Tu as compris comment utiliser des boucles simples
  • [ ] Tu as compris comment imbriquer deux boucles pour résoudre des problèmes plus complexes.

Introduction

image

⚠️ Before starting this quest, you must have finished the following quests:
Quêtes liées

Reminder : A loop allows to repeat an instruction a number of times, according to a condition. loop

  1. Initialization of a counter
  2. Check if condition is still true
  3. If so, execute the code inside curly brackets. Else the loop ends and following steps are skipped.
  4. Update value of counter
  5. Restart to step 2 (while condition is true)

Source: hexainclude

💪 Challenge

Info

Hint:

You can execute your script directly in your terminal using php myScript.php. To display a line break and improve readability, use the PHP constant PHP_EOL (EOL = End Of Line). e.g. echo 'hello' . PHP_EOL; will display the 'hello' string and add a new line in your console.

Exercise 1 : planting trees 🌳

  • Write a loop to plant 3 trees (you should display '🌳🌳🌳').
  • Write a loop to plant 8 🌳 .
  • Write a loop to plant 20 🌳 .

Exercise 2 : planting more trees 🌲🌴

In previous exercise, you can plant one 🌳 per hour. So in a loop of 8, you plant 8 🌳, easy. Now, you have to plant 🌲, they are more delicate and need to dig deeper. You need 2 hours to plant a 🌲.

Hint: you shouldn't calculate the amount of trees planted before but have the loop do it for you. Probably using a $numberOfHours counter

  • Write a loop to plant 🌲 during a 6 hours working day.
  • Write a loop to plant 🌲 during a 8 hours working day.
  • Write a loop to plant 🌲 during a 9 hours working day.

You have now experience in tree planting. You work now with very delicate and rare tree 🌴. You need 3 hours of work to plant one 🌴.

  • Write a loop to plant 🌴 during a 6 hours working day.
  • Write a loop to plant 🌴 during a 2 hours working day.
  • Write a loop to plant 🌴 during a 8 hours working day.

Exercise 3 : planting a forest

You know how to plant a row of trees 🌳🌳🌳🌳🌳🌳🌳🌳🌳. But you see bigger, and you want now to plant a whole forest.

  • Using 2 nested loops (yes, you can use a loop inside another loop, it's crazy!), display a forest of 8 columns and 3 rows. Use PHP_EOL to create new lines. You should obtain 🌳🌳🌳🌳🌳🌳🌳🌳 🌳🌳🌳🌳🌳🌳🌳🌳 🌳🌳🌳🌳🌳🌳🌳🌳

  • Bigger now ! Display a forest of 40 columns and 25 rows. You can also use 2 variables to determine the forest width and height. The loops should reflect the values of these variables.

  • Create a forest of 10 columns and 5 rows, with alternate types of trees in each row, as below. (Hint: use modulo operator % to determine if you have a odd or even value)

🌳🌳🌳🌳🌳🌳🌳🌳🌳🌳 🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲 🌳🌳🌳🌳🌳🌳🌳🌳🌳🌳 🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲 🌳🌳🌳🌳🌳🌳🌳🌳🌳🌳

  • Create a forest of 7 columns and 8 rows, with alternate types of trees in each column 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳 🌳🌲🌳🌲🌳🌲🌳

Exercise 4 : planting triangle forest

You can not always plant rectangle shape forest.

  • Create loops to display this triangle shape forest (one more 🌳 in each new line). 🌳 🌳🌳 🌳🌳🌳 🌳🌳🌳🌳 🌳🌳🌳🌳🌳

  • Create loops to display this other triangle shape forest (from largest to shortest line). 🌳🌳🌳🌳🌳 🌳🌳🌳🌳 🌳🌳🌳 🌳🌳 🌳

🧐 Acceptance criteria

  • [ ] All the trees are correctly displayed
  • [ ] You have understand how to use simple loops
  • [ ] You have understand how to nest two loops to solve more complex problems.