File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/5C12-2-XdiHShGS.js.map
{"version":3,"file":"5C12-2-XdiHShGS.js","sources":["../../src/exercices/5e/5C12-2.js"],"sourcesContent":["import { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { lettreDepuisChiffre } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\n\nexport const titre = 'Using distributiveness for numerical calculation'\n\nexport const dateDePublication = '26/11/2022'\n\n/**\n * Distribultivité numérique\n * @author Sébastien LOZANO\n*/\n\nexport const uuid = '41f23'\nexport const ref = '5C12-2'\nexport default class DistributiviteNumerique extends Exercice {\n constructor () {\n super()\n this.nbQuestions = 6 // Ici le nombre de questions\n this.nbQuestionsModifiable = true // Active le formulaire nombre de questions\n this.nbCols = 1 // Le nombre de colonnes dans l'énoncé LaTeX\n this.nbColsCorr = 1// Le nombre de colonne pour la correction LaTeX\n this.pasDeVersionLatex = false // mettre à true si on ne veut pas de l'exercice dans le générateur LaTeX\n this.pas_de_version_HMTL = false // mettre à true si on ne veut pas de l'exercice en ligne\n // See the Exercise Class for an exhaustive list of available properties.\n\n // this.sup = false; // To uncomment: default value of a first parameter\n // this.sup2 = false; // To uncomment: default value of a second parameter\n // this.sup3 = false; // To uncomment: default value of a third parameter\n this.consigne = 'Calculate the following expressions in two different ways.'\n }\n\n // this is where the exercise code begins this method creates a copy of the exercise\n nouvelleVersion () {\n // the numeroExercice variable can be retrieved to allow two copies of the same exo to be differentiated\n // For example, to be sure not to have the same point names by calling this exo twice on the same page\n\n this.listeQuestions = [] // tableau contenant la liste des questions\n this.listeCorrections = []\n const typesDeQuestionsDisponibles = [1, 2, 3, 4, 5, 6] // tableau à compléter par valeurs possibles des types de questions\n const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n\n // Some functions to factorize the code\n function avecLesPriorites (i, k, b, c, formeInitiale, operation) {\n let sortie = 'bug'\n if (formeInitiale === 'factorized') {\n sortie = `\n $\\\\textbf{Method 1: with priorities.}$<br>\n $${lettreDepuisChiffre(i + 1)}=${k}\\\\times (${texNombre(b)} ${operation === 1 ? `+ ${texNombre(c)}` : `- ${texNombre(c)}`})$<br>\n $${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${operation === 1 ? texNombre(b + c) : texNombre(b - c)}$<br>\n $${lettreDepuisChiffre(i + 1)}=${operation === 1 ? texNombre(k * (b + c)) : texNombre(k * (b - c))}$<br>\n `\n sortie += `<br>$\\\\textbf{Method 2: distributing first.}$<br>\n $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times (${texNombre(b)} ${operation === 1 ? `+ ${texNombre(c)}` : `- ${texNombre(c)}`})$<br>\n $${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times ${texNombre(b)} ${operation === 1 ? '+' : '-'} ${miseEnEvidence(k)}\\\\times ${c}$<br>\n $${lettreDepuisChiffre(i + 1)}=${texNombre(k * b)} ${operation === 1 ? '+' : '-'} ${texNombre(k * c)}$<br>\n $${lettreDepuisChiffre(i + 1)}=${operation === 1 ? texNombre(k * b + k * c) : texNombre(k * b - k * c)}$<br>\n `\n }\n if (formeInitiale === 'developed') {\n sortie = `\n $\\\\textbf{Method 1: with priorities.}$<br>\n $${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b)} ${operation === 1 ? '+' : '-'} ${k}\\\\times ${texNombre(c)}$<br>\n $${lettreDepuisChiffre(i + 1)}=${texNombre(k * b)} ${operation === 1 ? '+' : '-'} ${texNombre(k * c)}$<br>\n $${lettreDepuisChiffre(i + 1)}=${operation === 1 ? texNombre(k * b + k * c) : texNombre(k * b - k * c)}$<br>\n `\n sortie += `<br>$\\\\textbf{Method 2: Factoring first.}$<br>$${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times ${texNombre(b)} ${operation === 1 ? '+' : '-'} ${miseEnEvidence(k)}\\\\times ${texNombre(c)}$<br>$${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times (${texNombre(b)} ${operation === 1 ? `+ ${texNombre(c)} ` : `- ${texNombre(c)}`})$<br>$${lettreDepuisChiffre(i + 1)}=${miseEnEvidence(k)}\\\\times ${operation === 1 ? texNombre(b + c) : texNombre(b - c)}$<br>$${lettreDepuisChiffre(i + 1)}=${operation === 1 ? texNombre(k * (b + c)) : texNombre(k * (b - c))}$<br>`\n }\n return sortie\n }\n\n for (let i = 0, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n texte = '' // Nous utilisons souvent cette variable pour construire le texte de la question.\n texteCorr = '' // Idem pour le texte de la correction.\n // Choice of random parameters\n // For subtraction management, we don't want b-c to be negative\n let k = randint(2, 9)\n let b = randint(1, 9, [k])\n let c = randint(1, 9, [k, b])\n let temp\n if (b < c) {\n temp = b\n b = c\n c = temp\n }\n // To avoid counter-productivity tending to show that distributing lengthens work\n // We add the classic case of application to mental calculation\n const puissance = [100, 1000]\n const ajoutRetrait = randint(1, 9)\n texte = ''\n texteCorr = ''\n switch (listeTypeDeQuestions[i]) { // Chaque question peut être d'un type différent, ici 6 cas sont prévus...\n case 1: // k(a+b)\n texte += `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times (${texNombre(b)} + ${texNombre(c)})$`\n texteCorr += avecLesPriorites(i, k, b, c, 'factorized', 1)\n break\n case 2: // ka+kb\n texte += `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b)} + ${k}\\\\times ${texNombre(c)}$`\n texteCorr += avecLesPriorites(i, k, b, c, 'developed', 1)\n break\n case 3: // k(a-b)\n texte += `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times (${texNombre(b)} - ${texNombre(c)})$`\n texteCorr += avecLesPriorites(i, k, b, c, 'factorized', -1)\n break\n case 4: // ka-kb\n texte += `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b)} - ${k}\\\\times ${texNombre(c)}$`\n texteCorr += avecLesPriorites(i, k, b, c, 'developed', -1)\n break\n case 5: { // Calcul mental addition\n k = randint(47, 83)\n const choixIndicePuissance = randint(0, 1)\n c = ajoutRetrait\n b = puissance[choixIndicePuissance] - c\n texte += `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b)} + ${k}\\\\times ${c}$`\n texteCorr += avecLesPriorites(i, k, b, c, 'developed', 1)\n break\n }\n case 6: { // Calcul mental soustraction\n k = randint(47, 83)\n const choixIndicePuissance = randint(0, 1)\n c = ajoutRetrait\n b = puissance[choixIndicePuissance] + c\n texte += `$${lettreDepuisChiffre(i + 1)}=${k}\\\\times ${texNombre(b)} - ${k}\\\\times ${c}$`\n texteCorr += avecLesPriorites(i, k, b, c, 'developed', -1)\n break\n }\n }\n\n if (this.listeQuestions.indexOf(texte) === -1) {\n // If the question has never been asked, we store it in the list of questions\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n }\n // If the following variables are defined, they cause the corresponding parameter forms to be displayed\n // They can be of 3 types: _numeric, _checkbox_or _text.\n // They are associated respectively with the sup, sup2 and sup3 parameters.\n\n // this.needNumericalForm = ['Type of questions', 3, `1: Perpendiculars\\n 2: Parallels\\n 3: Mixture`]\n // this.needFormulaire2Numérique = [\"Type of notebook\",3,`1: Notebook with small squares\\n 2: Notebook with large squares (Seyes)\\n 3: Blank sheet`];\n // this.needForm3BoxCheck =['freehand figure',true]\n} // Fin de l'exercice.\n"],"names":["titre","dateDePublication","uuid","ref","DistributiviteNumerique","Exercice","listeTypeDeQuestions","combinaisonListes","avecLesPriorites","i","k","b","c","formeInitiale","operation","sortie","lettreDepuisChiffre","texNombre","miseEnEvidence","texte","texteCorr","cpt","randint","temp","puissance","ajoutRetrait","choixIndicePuissance","listeQuestionsToContenu"],"mappings":"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"}