HEX
Server: Apache
System: Linux vps.mmtprep.com 4.18.0-477.21.1.el8_8.x86_64 #1 SMP Thu Aug 10 13:51:50 EDT 2023 x86_64
User: mmtprep (1001)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/6P10-gYMfFpMT.js.map
{"version":3,"file":"6P10-gYMfFpMT.js","sources":["../../src/exercices/6e/6P10.js"],"sourcesContent":["import { combinaisonListes, compteOccurences } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { range } from '../../lib/outils/nombres.js'\nimport { sp } from '../../lib/outils/outilString.js'\nimport { prenomF, prenomM } from '../../lib/outils/Personne.js'\nimport { texPrix } from '../../lib/format/style'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { context } from '../../modules/context.js'\nimport Decimal from 'decimal.js'\nimport { listeQuestionsToContenu, randint, gestionnaireFormulaireTexte } from '../../modules/outils.js'\nimport { propositionsQcm } from '../../lib/interactif/qcm.js'\nexport const titre = 'Recognize a situation of proportionality'\nexport const interactifReady = true\nexport const interactifType = 'qcm'\nexport const amcReady = true\nexport const amcType = 'qcmMono'\n\n/**\n * Exercice sur la notion de proportionnalité (ou pas)\n * @author Jean-Claude Lhote\n * référence 6P10\n */\nexport const uuid = '850d5'\nexport const ref = '6P10'\nexport default function ProportionnalitePasProportionnalite () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  context.isHtml ? this.spacing = 2 : this.spacing = 1.4\n  context.isHtml ? this.spacingCorr = 1.5 : this.spacingCorr = 1\n  this.nbQuestions = 5\n  this.nbColsCorr = 1\n  this.nbCols = 1\n  this.nbColsModifiable = false\n  this.nbColsCorrModifiable = false\n  this.sup = 6\n\n  this.nouvelleVersion = function () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    this.autoCorrection = []\n    let bonneReponse\n\n    this.nbQuestions > 1 ? this.consigne = 'Answer the questions asked with reasons.' : this.consigne = 'Answer the question asked with justification.'\n    const listeIndexDisponibles = [0, 1, 2, 3, 4]\n    const listeIndex = combinaisonListes(\n      listeIndexDisponibles,\n      this.nbQuestions\n    )\n    /*\n    let listeChoixDisponibles = []\n    if (!this.sup || this.sup === 'Nope') { // Si aucune liste n'est saisie\n      listeChoixDisponibles = [1, 2, 3, 4, 5]\n    } else {\n      if (typeof (this.sup) === 'number') { // Si c'is a number it means there is only one expression\n        listeChoixDisponibles[0] = this.sup\n      } else {\n        listeChoixDisponibles = this.sup.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -\n        for (let i = 0; i < listeChoixDisponibles.length; i++) { // on a un tableau avec des strings : ['1', '1', '2']\n          listeChoixDisponibles[i] = contraindreValeur(1, 6, parseInt(listeChoixDisponibles[i]), 6)\n        }\n      }\n    }\n    if (compteOccurences(listeChoixDisponibles, 6) > 0) listeChoixDisponibles = rangeMinMax(1, 5) // Teste si l'utilisateur a choisi tout\n\n    const listeChoix = combinaisonListes(\n      listeChoixDisponibles,\n      this.nbQuestions\n    )\n      */\n\n    const listeChoix = gestionnaireFormulaireTexte({\n      max: 5,\n      defaut: 6,\n      melange: 6,\n      nbQuestions: this.nbQuestions,\n      saisie: this.sup\n    })\n\n    const nombre = compteOccurences(listeChoix, '1') + compteOccurences(listeChoix, '5')\n    const listeProportionnelOuPas = combinaisonListes(\n      [true, false],\n      nombre\n    )\n    const listeDeLieux = [\n      'in a DIY store',\n      'in a pet store',\n      'at the local supermarket',\n      'at the grocery store',\n      'in the museum shop'\n    ]\n    const listeDeChoses = [[]]\n    const listeDePrixUnit = [[]]\n    const tirages = [[]]\n    let index3 = []\n    const villes = ['Moscow', 'Berlin', 'Paris', 'Brussels', 'Rome', 'Belgrade']\n    const verbes = [\n      'double',\n      'triple',\n      'quadruple',\n      'is multiplied by 5',\n      'is multiplied by 6'\n    ]\n    listeDeChoses[0] = [\n      'items',\n      'tools',\n      'accessories',\n      'tool parts',\n      'paint brushes',\n      'light bulbs',\n      'screwdriver',\n      'spatulas',\n      'pipe fittings'\n    ]\n    listeDeChoses[1] = [\n      'goldfish',\n      'ducklings',\n      'parakeets',\n      'stick insects',\n      'flea collars',\n      'mouse',\n      'rabbits',\n      'seed packets'\n    ]\n    listeDeChoses[2] = [\n      'placemats',\n      'glasses',\n      'plates',\n      'chewing bones',\n      'coffee pods',\n      'milk packs',\n      'pasta packets'\n    ]\n    listeDeChoses[3] = [\n      'mangoes',\n      'pineapple',\n      'passion fruit',\n      'melons',\n      'packets of madeleines from Commercy',\n      'bergamot',\n      'bredeles',\n      'cancoillotte pots'\n    ]\n    listeDeChoses[4] = [\n      'cards',\n      'books',\n      'engravings',\n      'puzzles',\n      'models',\n      'rocks',\n      'board games'\n    ]\n    listeDePrixUnit[0] = [5, 4, 1.25, 3, 0.5, 1.5, 2, 6, 4.5]\n    listeDePrixUnit[1] = [1.5, 7, 20, 2.5, 25, 2, 15, 8]\n    listeDePrixUnit[2] = [1.25, 1.5, 2, 0.5, 5, 4.5, 3]\n    listeDePrixUnit[3] = [2, 2.5, 1.25, 1.5, 4, 7, 12, 3]\n    listeDePrixUnit[4] = [0.5, 5, 7, 13.5, 10, 15, 20]\n\n    for (\n      let i = 0,\n        x,\n        y,\n        z,\n        pu,\n        n,\n        p,\n        somme,\n        prenoms,\n        index1,\n        index2,\n        objet,\n        met,\n        compteurProportionnelsOuPas = 0,\n        texte,\n        texteCorr,\n        cpt = 0;\n      i < this.nbQuestions && cpt < 50;\n\n    ) {\n      switch (parseInt(listeChoix[i])) {\n        case 1: // Achat\n          if (listeProportionnelOuPas[compteurProportionnelsOuPas]) {\n            index1 = listeIndex[i]\n            prenoms = [prenomF(), prenomM()]\n            index2 = randint(0, listeDeChoses[index1].length - 1)\n            objet = listeDeChoses[index1][index2]\n            pu =\n            new Decimal(listeDePrixUnit[index1][index2] *\n            (1 + randint(1, 2) * 0.2 * randint(-1, 1))).toDP(2)\n            y = randint(2, 5)\n            somme = pu.mul(y)\n            p = y * randint(2, 5)\n            z = pu.mul(p)\n            texte = `${prenoms[0]} buys ${listeDeLieux[index1]} of ${objet}.<br>`\n            // text += parseInt('p')\n            texte += `She leaves with ${y} ${objet} for $${texPrix(somme)}$${sp()}€.<br> ${prenoms[1]} buys ${p} in the same place ${objet} for $${texPrix(z)}$${sp()}€.<br>`\n            texte += `Is the price of ${objet}s proportional to the quantity purchased?<br>`\n            texteCorr = `${prenoms[0]} spends $${miseEnEvidence(texPrix(somme), 'blue')}$${sp()}€.<br>`\n            texteCorr += `${prenoms[1]} purchased $${miseEnEvidence(Math.round(p / y))}$ times the quantity of ${objet} purchased by ${prenoms[0]} for $${miseEnEvidence(texPrix(somme), 'blue')}$${sp()}€.<br>`\n            texteCorr += `He paid $${texPrix(z)}$${sp()}€ $=${miseEnEvidence(Math.round(p / y))}\\\\times${miseEnEvidence(texPrix(somme), 'blue')}$${sp()}€.<br>`\n            texteCorr += `Using this data, we see that the price of ${objet}s and their quantity are both multiplied by the same number, so these two quantities are proportional.<br>`\n            bonneReponse = 'Yes'\n          } else {\n            index1 = listeIndex[i]\n            prenoms = [prenomF(), prenomM()]\n            index2 = randint(0, listeDeChoses[index1].length - 1)\n            objet = listeDeChoses[index1][index2]\n            pu = new Decimal(listeDePrixUnit[index1][index2] * (1 + randint(1, 2) * 0.2 * randint(-1, 1))).toDP(2)\n            y = randint(2, 5)\n            somme = pu.mul(y)\n            p = y * randint(2, 5)\n            z = pu.sub(0.1).mul(p).toDP(2)\n            texte = `${prenoms[0]} buys ${listeDeLieux[index1]} of ${objet}.`\n            texte += `She got ${y} ${objet} for $${texPrix(somme)}${sp()}$${sp()}€. ${prenoms[1]} buys ${p}${sp()}${objet} in the same place for $${texPrix(z)}$${sp()}€.<br>`\n            texte += `Is the price of ${objet}s proportional to the quantity purchased?<br>`\n            texteCorr = `${prenoms[0]} spends $${miseEnEvidence(texPrix(somme), 'blue')}$${sp()}${sp()}€.<br>`\n            texteCorr += `${prenoms[1]} purchased $${miseEnEvidence(Math.round(p / y))}$ times the quantity of ${objet} purchased by ${prenoms[0]} for $${miseEnEvidence(texPrix(somme), 'blue')}$${sp()}€.<br>`\n            texteCorr += `He paid $${texPrix(z)}$${sp()}€.<br>But $${miseEnEvidence(Math.round(p / y))}\\\\times${miseEnEvidence(texPrix(somme), 'blue')}$${sp()}€ $=${texPrix(somme.mul(p).div(y))}$${sp()}€.<br>`\n            texteCorr += `Using these data, we see that the unit price of ${objet} is not the same for ${prenoms[0]} who purchased $${y}$ as for ${prenoms[1]} who purchased ${p}, so these two quantities are not proportional.<br>`\n            bonneReponse = 'No'\n          }\n          compteurProportionnelsOuPas += 1\n          break\n        case 2: // Distance\n          prenoms = [prenomF(), prenomM()]\n          x = randint(5, 20)\n          y = randint(5, 20, x) * 100\n          x = x * 100\n          n = Math.round(x * (1 + randint(0, 2) * 0.2) / 60)\n          p = Math.round(y * (1 + randint(0, 2) * 0.2) / 60)\n          index1 = new Decimal(x).div(n) // vitesse fille\n          index2 = new Decimal(y).div(p) // vitesse garçon\n\n          texte = `${prenoms[0]} lives $${texNombre(x, 0)}$ m from the college. It takes her ${n} minutes to get there from her home.<br>`\n          texte += `${prenoms[1]} lives $${texNombre(y, 0)}$ m from the college. It takes ${p} minutes to get there from home.<br>`\n          texte += 'Are the travel times to come to college proportional to the distances traveled?<br>'\n          texteCorr = `${prenoms[0]} travels through ${x} m in ${n} minutes, or approximately $\\\\dfrac{${x}\\\\text{ m}}{${n}\\\\text{ min}} ${index1.eq(index1.toDP(1)) ? '=' : '\\\\approx'} ${texNombre(index1.toDP(1), 1)}\\\\text{ m}/_{\\\\text{ min}}$`\n          texteCorr += ` and ${prenoms[1]} travels ${y} m in ${p} minutes, i.e. approximately $\\\\dfrac{${y}\\\\text{ m}}{${p}\\\\text{ min}} ${index2.eq(index2.toDP(1)) ? '=' : '\\\\approx'} ${texNombre(index2.toDP(1))}\\\\text{ m}/_{\\\\text{ min}} $.<br>`\n          if (index1.eq(index2)) {\n            texteCorr += 'For these two students, the time taken and the distance traveled are proportional (if we compare their average speed).'\n            bonneReponse = 'Yes'\n          } else {\n            texteCorr += 'The distance traveled in one minute (average speed) is not the same in these two situations, so there is no proportionality.<br>'\n            bonneReponse = 'No'\n          }\n          break\n        case 3: // Âge\n          prenoms = [prenomF(), prenomM()]\n          x = randint(5, 20)\n          y = x + randint(25, 35)\n          texte = `${prenoms[0]} just turned ${x} this year. His father ${prenoms[1]} has just celebrated his ${y}th birthday.<br>`\n          texte += `Is his father's age proportional to ${prenoms[0]}'s age?<br>`\n          texteCorr = `Today, the age difference between ${prenoms[0]\n            } and ${prenoms[1]} is of ${y - x} years.<br>`\n          texteCorr += `${prenoms[0]} a ${x} years today. In ${x} years, ${prenoms[0]} will have ${2 * x\n            } years (${x} + ${x}), that is to say double today.<br>`\n          texteCorr += `His father ${prenoms[1]} who is currently ${y} years old will be ${x + y} years old that year (${y}+${x}).<br>`\n          texteCorr += `When ${prenoms[0]}'s age doubles, ${prenoms[1]}'s age does not double, so ${prenoms[0]}'s age and his father's age are not proportional.<br>`\n          texteCorr += `In ${x} years, the age difference will remain the same: ${x + y} - ${2 * x} = ${y - x}.`\n          bonneReponse = 'No'\n          break\n        case 4: // Épidémie\n          index1 = randint(0, 5)\n          index2 = randint(0, 4)\n          texte = `An epidemic is spreading in the city of ${villes[index1]}.`\n          texte += ` The number of sick people ${verbes[index2]} every ${index2 + 2\n            } day.<br>`\n          texte += 'Is the number of patients proportional to the number of'\n          texte += 'days passed since the start of the epidemic?<br>'\n          texteCorr = `Let's say there are 10 patients on the first day. On ${1 + 2 + index2}e day there will be $10 \\\\times ${index2 + 2} = ${10 * (index2 + 2)}$ sick.<br>`\n          texteCorr += `Between the 1st day and the ${3 + index2}e day, the number of patients is multiplied by ${index2 + 2} but the number of days is multiplied by ${3 + index2}.<br>`\n          texteCorr += 'So the number of sick people is not proportional to the number of days spent.<br>'\n          bonneReponse = 'No'\n          break\n        case 5: // Achat (tableau de proportionnalité)\n          prenoms = [prenomF(), prenomM()]\n          index1 = randint(0, 5)\n          objet = listeDeChoses[4][index1]\n          index2 = randint(0, 4)\n          pu = new Decimal(listeDePrixUnit[4][index1] * (1 + randint(1, 2) * 0.2 * randint(-1, 1))).toDP(2)\n          n = randint(2, 6)\n          p = randint(0, 3)\n          tirages[0] = [n, pu.mul(n)]\n          tirages[1] = [n + 1, pu.mul(n + 1)]\n          tirages[2] = [2 * n + 1, pu.mul(2 * n + 1)]\n          tirages[3] = [3 * n + 3, pu.mul(3 * n + 3)]\n          met = listeProportionnelOuPas[compteurProportionnelsOuPas]\n          compteurProportionnelsOuPas += 1\n          if (!met) tirages[p][1] = tirages[p][1].sub(1)\n          texte = `${prenoms[1]} collects ${objet} prices from a mail-order catalog based on the quantity entered in the basket. `\n          texte += 'He notes the prices in the following table:<br> <br>'\n          texte += '$\\\\def\\\\arraystretch{1.5}\\\\begin{array}{|c' // construction du tableau des effectifs en un seul morceau\n          for (let j = 0; j <= tirages.length; j++) texte += '|c'\n          texte += `|}\\\\hline \\\\text{${objet}}`\n          for (let j = 0; j < tirages.length; j++) texte += `&${tirages[j][0]}`\n          texte += `\\\\\\\\\\\\hline \\\\text{Price (in $${sp()}€$})`\n          for (let j = 0; j < tirages.length; j++) { texte += `&${texPrix(tirages[j][1])}` }\n          texte += '\\\\\\\\\\\\hline\\\\end{array}$<br> <br>'\n          texte += `Is the price of ${objet} proportional to the quantity purchased?<br>`\n          texteCorr = `We can calculate the unit price of ${objet}s in each scenario:<br><br>`\n          if (met) index3 = range(3)\n          else index3 = range(3, [p])\n          texteCorr += '$'\n          for (let j = 0; j < index3.length; j++) {\n            texteCorr += `\\\\dfrac{${texPrix(tirages[index3[j]][1])}\\\\text{ ${sp()}€}}{${tirages[index3[j]][0]}\\\\text{ ${objet}}}=`\n          }\n          texteCorr += `${texPrix(pu)}\\\\text{ ${sp()}€}/_{\\\\text{${objet.substring(0, objet.length - 1)}}}$<br><br>`\n          if (!met) {\n            texteCorr += `Mais $\\\\dfrac{${texPrix(tirages[p][1])}\\\\text{ ${sp()}€}}{${tirages[p][0]}\\\\text{ ${objet}}}\n            =${texPrix(tirages[p][1].div(tirages[p][0]).toDP(2))}\\\\text{ ${sp()}€}/_{\\\\text{${objet.substring(0, objet.length - 1)}}}$.<br>`\n            texteCorr += `The price of ${objet}s is not proportional to their number.<br>`\n            bonneReponse = 'No'\n          } else {\n            texteCorr += `The price of ${objet}s is proportional to their number.<br>`\n            bonneReponse = 'Yes'\n          }\n          break\n      }\n      if (this.questionJamaisPosee(i, x, y, p, z, pu, listeChoix[i])) {\n        if (this.interactif || context.isAmc) {\n          this.autoCorrection[i] = {}\n          this.autoCorrection[i].options = { ordered: true }\n          this.autoCorrection[i].enonce = `${texte}\\n`\n          this.autoCorrection[i].propositions = [\n            {\n              texte: 'Yes',\n              statut: bonneReponse !== 'No'\n            },\n            {\n              texte: 'No',\n              statut: bonneReponse !== 'Yes'\n            },\n            {\n              texte: \"I don't know\",\n              statut: false\n            }\n          ]\n          if (this.interactif) {\n            texte += propositionsQcm(this, i).texte\n          }\n        }\n        // If the question has never been asked, we create another one\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this) // Espacement de 2 em entre chaque questions.\n  }\n  this.besoinFormulaireTexte = ['Type of questions', 'Numbers separated by hyphens\\n1: Purchase\\n2: Distance\\n3: Age\\n4: Epidemic\\n5: Catalog (proportionality table)\\n6: Mixture']\n}\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","uuid","ref","ProportionnalitePasProportionnalite","Exercice","context","bonneReponse","listeIndex","combinaisonListes","listeChoix","gestionnaireFormulaireTexte","nombre","compteOccurences","listeProportionnelOuPas","listeDeLieux","listeDeChoses","listeDePrixUnit","tirages","index3","villes","verbes","i","x","y","z","pu","n","p","somme","prenoms","index1","index2","objet","met","compteurProportionnelsOuPas","texte","texteCorr","cpt","prenomF","prenomM","randint","Decimal","texPrix","sp","miseEnEvidence","texNombre","j","range","propositionsQcm","listeQuestionsToContenu"],"mappings":"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"}