Pages

  .

🍕Base des données

const pizzas = [

    { name:"queen", ingredients: ["🐷","🍄","🍅","🧀"], price:5 },

    { name: "cheese", ingredients: ["🧀", "🍅"], price:3},

    { name: "oriental", ingredients: ["🍅","🐑","🍄","🌶"],  price:5},

    { name: "royal", ingredients: ["🍅","🌵"],  price:10},

  ];


Questions

Trouvez les pizzas avec du 🧀

Trouvez les pizzas avec du 🍅


vers pythontutor

Rendre la monnaie !

//MAP a new objet

Here are some of the most commonly used methods provided by the Map object in JavaScript:

  1. set(key, value): Adds or updates an element with a specified key and a value to a Map object.

  2. get(key): Returns the value associated to the key, or undefined if there is none.

  3. size: Returns the number of key/value pairs in the Map object.

  4. Itération over a Map object

aMap.forEach((value, key) => {
    console.log(`$${key}: ${value}`);
});

🪛 en action pour rendre la monnaie !



/**
 * Calculates the change for a given amount.
 *
 * @param {number} amount - The amount for which to calculate the change.
 * @returns {Map<number, number>} - A map containing the denominations as keys and the count of each denomination as values.
 */
function calculateChange(amount) {
  const denominations = [100, 20, 10, 5, 1];
  let change = new Map();

  for (let bill of denominations) {
    let count = Math.floor(amount / bill);
    if (count > 0) {
      change.set(bill, count);
      amount -= bill * count;
    }
    if (amount === 0) {
      break;
    }
  }

  return change;
}

// Generate a random number between 1 and 1000
let randomAmount = Math.floor(Math.random() * 1000) + 1;
let text = `Random amount: ${randomAmount}`;

console.log(text);

let change = calculateChange(randomAmount);

// Calculate the number of tab spaces needed
let tabs = Math.ceil(text.indexOf(":") - 1); // Each tab is approximately 4 spaces

// Display the change
change.forEach((value, key) => {
  console.log(
    `${" ".repeat(tabs)}${value}: ${key >= 5 ? "bill" : "coin"}${
      value > 1 ? "s" : ""
    }\t${key}${key >= 5 ? "💶" : "🪙"}`
  );
});




 


Programmation récursive

Rendre la monnaie peut être resolu par une programmation recursive : 


DS / 30 minutes

 A) Sélectionnez les deux premiers <p> avec quatre types de sélecteurs différents.

<p id="d1" class="s">p 1</p>

<p id="d2" class="s">p 2</p>

<p id="d3">p 3</p>

<p id="d4">p 4</p>






🆘Utilisez le simulateur : https://dupontdenis.github.io/TestSelecteurDemo/


B) Donnez les codes HTML et CSS pour la création d'un trombinoscope trois étudiants par ligne.


🆘https://dupontl1.blogspot.com/2024/02/flex-de-la-theorie-la-pratique.html

Il suffit de simplifier le code (notezz le fake des images avec 

🖼️https://testgithubdupont.github.io/row-3-cols/

🚧https://github.com/testgithubdupont/row-3-cols.git


C) Indiquez les lignes sélectionnées pour chaque sélecteur



  1.  <article>

  2.  <p title="Strophe1" id="st"></p>

  3.  <header>

  4.  <h1></h1>

  5.  <h2></h2></header>

  6.  <p class="refrain"></p>

  7.  <p title="Str4" id="str"></p>

  8.  <p class="rn" id="r"></p></article>

  9.  <footer> date (1880 - 1918) </footer>

sélecteur

lig.

p + p


p:nth-child(2)


article   :last-child:not(p)


[class $="n"]


article   :nth-of-type(-n+1)


🚧Préparation au DS : https://dupontl1.blogspot.com/2024/02/preparation-au-ds.html

🥷Attention au HTML

Avant formatage


Après formatage

🆘Utilisez le simulateur : https://dupontdenis.github.io/TestSelecteurDemo/

D) Donnez la représentation du code pour 2 <div> dans un conteneur.

.conteneur { display:flex; flex-wrap: wrap }

.conteneur div { flex: 1 0 100px; }



Vous pouvez supprimer deux blocs par l'inspection


Cas conteneur   width<100px

Cas conteneur 100px<width<199px

Cas width>=200px











DM du WE !

const array=["dupont", "dupond", "dupont", "dupond", "dupont", "dupond", "dupont"];

 const separe = function(array){
   
   let i = 0
      ,j = array.length-1;
    while (i < j) {
        if (array[i] == "dupond"){
            i++
        }
        else{
          let tmp = array[i];
          array[i] = array[j];
          array[j] = tmp;
          j--
        }
    }
    return array
 }

console.table(separe(array))

🥷Que vaut array ?



Rendre la monnaie

 

Article ( voir lien )

Recursif !

 Vous connaissez la fonction Factorielle ! Voic trois écritures de cette fonction.

function factorielle(n) {
  return n == 0 ? 1 :  n * factorielle (n-1);
}

// arrow function
const factorielle = (n) => (n > 0 ? n * factorielle(n - 1) : 1);

// arrow function
const factielle = n => n === 0 ? 1 : n * factorielle(n - 1);





>factorielle(6)
720

Il est important de comprendre les appels récursifs. Voici des exemples d'exécution :
récursif  code




👿 le premier appel finit en dernier

Voici deux autres exemples d'utilisation du principe de récursion :

La fonction puissance

Décomposition

🥷 const fact = n => n === 0 ? 1 : n * fact(n - 1);