Le « tour de main du plus petit et du plus grand »

 Synthèse provisoire 

Du tour de main du signal (robot trieur de bacs), nous pouvons tirer les enseignements suivants sur les « ardoises-variables booléennes » :

  1. elles sont appelées booléennes parce qu'elles ne peuvent retenir que deux informations : les concepts true ou false;
  2. les chaînes de caractères et les nombres nécessitent des comparaisons (égal, plus petit,...) pour donner un résultat booléen. Les variables booléennes sont directement dans cet état sans qu'aucune comparaison ne soit nécessaire;
  3. en conséquence, le fait de lire une variable booléenne va donner directement l'état de la variable sans que l'on doive ajouter « == true » ou « == false ».
Abordons maintenant un quatrième tour de main, celui « du plus petit et du plus grand »

 Objectifs 

  1. Approfondir les notions d'écriture et de lecture des variables;
  2. Utiliser des fonctions nécessitant plusieurs arguments;
  3. Voir comment il y a moyen de retenir, parmi une suite de valeurs, celle qui est la plus petite et celle qui est la plus grande.

Ce bel exercice va te permettre d'avancer de deux crans dans la maîtrise d'éléments essentiels en JavaScript :

  1. Le fait d'utiliser un type d'argument en plus que les nombres, les chaînes de caractères ou les booléens : les ardoises elles-mêmes;
  2. Le fait de bien distinguer la différence dans le code quand il y a écriture ou lecture de la variable.

 Ta tâche, ton défi 

Le robot animateur de jeu

Réalise ton code pour que l'animateur signale les plus petit et plus grand nombres affichés.

Le robot animateur de jeu reçoit 4 candidats. Chaque candidat doit écrire un nombre sur un carton caché aux autres et au public. Quand c'est fait, l'animateur fait afficher les cartons à tous les candidats les uns après les autres. Lorsque tous les candidats ont affiché leurs cartons, l'animateur doit signaler quel était le plus petit nombre de la série et quel était le plus grand.

Pour réaliser sa tâche, le robot dispose de 6 fonctions d'actions dont tu dois examiner attentivement le fonctionnement :

  1. ecris0Sur ('ardoiseCible') le robot écrira 0 sur l'ardoise « cible » dont tu passeras le nom en argument. Le nom de cette ardoise doit être entre apostrophes ou guillements car il s'agit de citer son nom afin que le robot reconnaisse l'ardoise sur laquelle il doit écrire;
  2. ajoute1ACompteur () ajoute 1 au contenu de l'ardoise « compteur » ;
  3. demandeLeNombreDuJoueurNumero (ardoiseSource) le robot va demander au joueur numéro ... de montrer son carton avec le nombre qu'il a inscrit dessus. Ici, le nom de l'ardoise « source » ne doit pas être entre guillemets ni apostrophes car c'est le « contenu » de l'ardoise qui doit être envoyé. Il y a donc lecture du contenu de l'ardoise qui est ensuite envoyé en argument;
  4. ecrisLeNombreVuSur ('ardoiseCible') le robot peut inscrire le dernier nombre qu'il a vu sur un des cartons des candidats sur l'ardoise « cible » (dont le nom figurera donc entre apostrophes ou guillemets);
  5. copie (ardoiseSource, 'ardoiseCible') le robot peut copier, transférer le contenu d'une ardoise sur une autre. Le contenu proviendra de l'ardoise « source » (sans guillemets ni apostrophes puisqu'il s'agit d'envoyer son contenu) et ira s'incrire sur l'ardoise « cible » (avec guillemets ou apostrophes puisqu'il s'agit d'indiquer le nom de l'ardoise de destination);
  6. afficheLeNombreLePlus ('?', ardoiseSource) où '?' = 'petit' ou 'grand' et la valeur provient de l'ardoise « source » (sans guillemets ni apostrophes). Le robot affichera donc par exemple "Le nombre le plus petit est 2".

Et il dispose aussi de 4 fonctions de tests :

  1. compteurEgalA1 () qui permet de savoir si le compteur est égal à 1 ou pas. Cela peut servir éventuellement pour l'initialisation (écriture de la première valeur) sur les ardoises « plusPetit » ou « plusGrand »;
  2. compteurEgalA4 () idem pour 4, permet à l'animateur de savoir s'il a fait le tour de tous les candidats ou pas;
  3. nombreInferieurAPlusPetit () permet de savoir si le nouveau nombre lu sur le carton du candidat est plus petit que le plus petit nombre répertorié jusque là;
  4. nombreSuperieurAPlusGrand () permet de savoir si le nouveau nombre lu sur le carton du candidat est plus grand que le plus grand nombre répertorié jusque là.

 À toi de jouer... 

Cet exercice est un peu plus complexe que les précédents, il va falloir jouer à bon escient avec les transferts entre les ardoises. Une bonne idée serait peut-être de schématiser tout cela sur une feuille de papier avant de commencer... Investir du temps dans l'analyse permet de le regagner amplement à la réalisation.

Que la sagacité soit avec toi... :O)

Retour