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/4C33-1-1zZ3FEMD.js.map
{"version":3,"file":"4C33-1-1zZ3FEMD.js","sources":["../../src/exercices/4e/4C33-1.js"],"sourcesContent":["import { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { modalPdf } from '../../lib/outils/modales.js'\nimport { lettreDepuisChiffre } from '../../lib/outils/outilString.js'\nimport { eclatePuissance, simpNotPuissance } from '../../lib/outils/puissance.js'\nimport { texteGras } from '../../lib/format/style'\nimport { context } from '../../modules/context.js'\n\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { gestionnaireFormulaireTexte, listeQuestionsToContenuSansNumero, randint } from '../../modules/outils.js'\nimport Exercice from '../Exercice.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\n\nexport const titre = 'Perform calculations with powers'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCNum'\nexport const dateDeModifImportante = '14/09/2023'\n/**\n * Puissances d'un relatif (1)\n * * L\\'objectif est de travailler le sens des règles de calcul sur les puissances plutôt que les formules magiques\n *\n * Paramétrages possibles :\n * * 1 : produit de puissances de même base\n * * 2 : quotient de puissances de même base\n * * 3 : puissance de puissance\n * * 4 : produit de puissances de même exposant\n * * 5 : mélange des trois autres niveaux\n * @author Sébastien Lozano\n * 4C33-1\n */\nexport const uuid = 'bae57'\nexport const ref = '4C33-1'\n\n/**\n * Fonction pour écrire avec deux couleurs la forme éclatée d'un produit de puissances de même exposant\n * @param b1 base1\n * @param b2 base2\n * @param e exposant\n * @param couleur1\n * @param couleur2\n * @author Sébastien Lozano\n */\nexport function reorganiseProduitPuissance (b1, b2, e, couleur1, couleur2) {\n  let str\n  switch (e) {\n    case 0:\n      return '1'\n    case 1:\n      return `\\\\mathbf{\\\\color{${couleur1}}{${b1}}} \\\\times \\\\mathbf{\\\\color{${couleur2}}{${b2}}}`\n    default:\n      str = `\\\\mathbf{(\\\\color{${couleur1}}{${b1}}} \\\\times \\\\mathbf{\\\\color{${couleur2}}{${b2}}})`\n      for (let i = 1; i < e; i++) {\n        str = str + `\\\\times (\\\\mathbf{\\\\color{${couleur1}}{${b1}}} \\\\times \\\\mathbf{\\\\color{${couleur2}}{${b2}}})`\n      }\n      return str\n  }\n}\n\nexport default function PuissancesDunRelatif1 () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  context.isHtml\n    ? (this.consigne = 'Write in the form $\\\\mathbf{a^n}$.')\n    : (this.consigne = 'Write in the form $a^n$.')\n  context.isHtml ? (this.spacing = 3) : (this.spacing = 2)\n  context.isHtml ? (this.spacingCorr = 2) : (this.spacingCorr = 1)\n  this.nbQuestions = 5\n  this.correctionDetailleeDisponible = true\n  this.nbColsCorr = 1\n  this.sup = 5\n  this.sup2 = 1\n  this.classe = 4\n\n  this.listePackages = 'bclogo'\n\n  // a function for additional information on exponents\n  function remarquesPuissances (base, baseUtile, exposant) {\n    let sortie = ''\n    if (base < 0 && exposant % 2 === 0) {\n      sortie += '<br>'\n      sortie += `${texteGras('Noticed :')} In this case, as the even exponent powers of two opposite numbers are equal, we can write $${simpNotPuissance(base, exposant)}$ instead of $${baseUtile}^{${exposant}}$.`\n    }\n    if (base < 0 && exposant % 2 === 1) {\n      sortie += '<br>'\n      sortie += `${texteGras('Noticed :')} In this case, as the odd exponent powers of two negative numbers are opposite, we could write $${simpNotPuissance(base, exposant)}$ instead of $${baseUtile}^{${exposant}}$.`\n    }\n\n    return sortie\n  }\n\n  this.nouvelleVersion = function (numeroExercice) {\n    this.boutonAide = modalPdf(\n      numeroExercice,\n      'assets/pdf/FichePuissances-4N21.pdf',\n      'Memory aid on powers (Sébastien Lozano)',\n      'Memory aid'\n    )\n\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    this.autoCorrection = []\n    // const AvailableQuestionTypes = this.sup < 5 ? [this.sup]: [1, 2, 3, 4]\n    const typesDeQuestionsDisponibles = gestionnaireFormulaireTexte({\n      saisie: this.sup,\n      min: 1,\n      max: 4,\n      melange: 5,\n      defaut: 5,\n      nbQuestions: this.nbQuestions,\n      shuffle: true\n    })\n\n    const listeTypeDeQuestions = combinaisonListes(\n      typesDeQuestionsDisponibles,\n      this.nbQuestions\n    )\n\n    // to be able to adapt the colors if necessary\n    const coul0 = 'red'\n    const coul1 = 'blue'\n\n    for (\n      let i = 0,\n        base0,\n        base1,\n        base,\n        baseUtile,\n        baseUtileBisAMC,\n        exp0,\n        exp1,\n        exp,\n        couleurExp0,\n        couleurExp1,\n        lettre,\n        texte,\n        texteCorr,\n        reponseInteractive,\n        exposantInteractif,\n        cpt = 0;\n      i < this.nbQuestions && cpt < 50;\n    ) {\n      base = randint(2, 9)\n      base = base * (this.sup2 === 1 ? 1 : this.sup2 === 2 ? -1 : choice([-1, 1])) // on choisit une base sauf 1 ... penser à gérer le cas des bases qui sont des puissances\n      exp0 = randint(3, 5)\n      exp1 = this.classe === 4 ? randint(2, exp0 - 1) : randint(2, 5, exp0)\n      exp = [exp0, exp1] // on choisit deux exposants différents c'est mieux\n      lettre = lettreDepuisChiffre(i + 1) // on utilise des lettres pour les calculs\n\n      if (base < 0) {\n        baseUtile = '(' + base + ')' // on définit une base avec des parenthèses pour l'affichage du cas negatif\n      } else {\n        baseUtile = base\n      }\n\n      texteCorr = ''\n\n      switch (listeTypeDeQuestions[i]) {\n        case 1: // produit de puissances de même base\n          texte = `$${lettre}=${baseUtile}^${exp[0]}\\\\times ${baseUtile}^${exp[1]}$`\n\n          // textCorr += `$${lettre}=${baseUtile}^${exp[0]}\\\\times ${baseUtile}^${exp[1]}$`\n          if (this.correctionDetaillee) {\n            texteCorr += `$${lettre}=${eclatePuissance(baseUtile, exp[0], coul0)} \\\\times ${eclatePuissance(baseUtile, exp[1], coul1)}$`\n            texteCorr += '<br>'\n            texteCorr += `So there are $\\\\mathbf{\\\\color{${coul0}}{${exp[0]}}~\\\\color{black}{+}~\\\\color{${coul1}}{${exp[1]}}}$ factors all equal to $${baseUtile}$.`\n            texteCorr += '<br>'\n          }\n          if ((base < 0) && ((exp[1] + exp[0]) % 2 === 0)) {\n            texteCorr += `$${lettre}=${baseUtile}^{${exp[0]}+${exp[1]}} = ${baseUtile}^{${exp[0] + exp[1]}}=${miseEnEvidence(simpNotPuissance(base, exp[1] + exp[0]))}$`\n          } else {\n            texteCorr += `$${lettre}=${baseUtile}^{${exp[0]}+${exp[1]}} = ${miseEnEvidence(`${baseUtile}^{${exp[0] + exp[1]}}`)}$`\n          }\n          texteCorr += remarquesPuissances(base, baseUtile, exp[1] + exp[0])\n          if (base < 0 && ((exp[0] + exp[1]) % 2) === 0) {\n            reponseInteractive = [`${baseUtile}^${exp[1] + exp[0]}`, `${-base}^${exp[1] + exp[0]}`]\n            baseUtileBisAMC = -base\n          } else {\n            reponseInteractive = `${baseUtile}^${exp[1] + exp[0]}`\n          }\n          exposantInteractif = exp[1] + exp[0]\n          break\n        case 2: // quotient de puissances de même base\n          // So that the color of the base associated with the max exponent is always red.\n          if (Math.max(exp[0], exp[1]) === exp[0]) {\n            couleurExp0 = coul0\n            couleurExp1 = coul1\n          } else {\n            couleurExp0 = coul1\n            couleurExp1 = coul0\n          }\n\n          texte = `$${lettre}=\\\\dfrac{${baseUtile}^${exp[0]}}{${baseUtile}^${exp[1]}}$`\n\n          if (this.correctionDetaillee) {\n            texteCorr += `$${lettre}=\\\\dfrac{${eclatePuissance(baseUtile, exp[0], couleurExp0)}}{${eclatePuissance(baseUtile, exp[1], couleurExp1)}}$`\n            texteCorr += '<br>'\n            texteCorr += `There are therefore $\\\\mathbf{\\\\color{${coul1}}{${Math.min(exp[0], exp[1])}}}$ simplification${Math.min(exp[0], exp[1]) === 1 ? '' : 's'} by $${baseUtile}$ possible.`\n            texteCorr += '<br>'\n          }\n          if (exp[0] - exp[1] === 0) {\n            if (this.correctionDetaillee) {\n              texteCorr += `$${lettre}=\\\\dfrac{${eclatePuissance(`\\\\cancel{${baseUtile}}`, exp[0], couleurExp0)}}{${eclatePuissance(`\\\\cancel{${baseUtile}}`, exp[0], couleurExp1)}}$`\n              texteCorr += '<br>'\n            }\n            texteCorr += `$${lettre}=1$`\n          } else if (exp[0] - exp[1] < 0) {\n            if (this.correctionDetaillee) {\n              texteCorr += `$${lettre}=\\\\dfrac{${eclatePuissance(`\\\\cancel{${baseUtile}}`, exp[0], couleurExp0)}}{${eclatePuissance(`\\\\cancel{${baseUtile}}`, exp[0], couleurExp1)}\\\\times${eclatePuissance(baseUtile, exp[1] - exp[0], couleurExp1)}}$`\n              texteCorr += '<br>'\n            }\n            texteCorr += `$${lettre}=\\\\dfrac{1}{${baseUtile}^{${exp[1]}-${exp[0]}}}=\\\\dfrac{1}{${baseUtile}^{${exp[1] - exp[0]}}}`\n            if ((base < 0) && ((exp[1] - exp[0]) % 2 === 0)) {\n              texteCorr += `=\\\\dfrac{1}{${simpNotPuissance(base, exp[1] - exp[0])}}=${miseEnEvidence(`${simpNotPuissance(base, exp[0] - exp[1])}`)}$`\n            } else {\n              texteCorr += `=${miseEnEvidence(`${baseUtile}^{${exp[0] - exp[1]}}`)}$`\n            }\n          } else {\n            if (this.correctionDetaillee) {\n              texteCorr += `$${lettre}=\\\\dfrac{${eclatePuissance(`\\\\cancel{${baseUtile}}`, exp[1], couleurExp0)}\\\\times${eclatePuissance(baseUtile, exp[0] - exp[1], couleurExp0)}}{${eclatePuissance(`\\\\cancel{${baseUtile}}`, exp[1], couleurExp1)}}$`\n              texteCorr += '<br>'\n            }\n            texteCorr += `$${lettre}=${baseUtile}^{${exp[0]}-${exp[1]}}`\n            if ((base < 0) && ((exp[0] - exp[1]) % 2 === 0)) {\n              texteCorr += `=${baseUtile}^{${exp[0] - exp[1]}}=${miseEnEvidence(simpNotPuissance(base, exp[0] - exp[1]))}$`\n            } else {\n              texteCorr += `=${miseEnEvidence(`${baseUtile}^{${exp[0] - exp[1]}}`)}$`\n            }\n          }\n          texteCorr += remarquesPuissances(base, baseUtile, exp[0] - exp[1])\n          if (base < 0 && ((exp[0] - exp[1]) % 2) === 0) {\n            reponseInteractive = [`${baseUtile}^${exp[0] - exp[1]}`, `${-base}^${exp[0] - exp[1]}`]\n            baseUtileBisAMC = -base\n          } else {\n            reponseInteractive = `${baseUtile}^${exp[0] - exp[1]}`\n          }\n          exposantInteractif = exp[0] - exp[1]\n          break\n        case 3: // exponentiation\n          exp = [randint(2, 4), randint(2, 4)] // on redéfinit les deux exposants pour ne pas avoir d'écritures trop longues et pour éviter 1\n          texte = `$${lettre}=(${baseUtile}^${exp[0]})^{${exp[1]}}$`\n\n          if (this.correctionDetaillee) {\n            texteCorr += `$${lettre}=\\\\color{${coul0}}{\\\\underbrace{${eclatePuissance(`(${baseUtile}^${exp[0]})`, exp[1], coul0)}}_{${exp[1]}\\\\thickspace\\\\text{factors}}}$`\n            texteCorr += '<br>'\n            texteCorr += `$${lettre}=\\\\color{${coul0}}{\\\\underbrace{${eclatePuissance(`(\\\\color{${coul1}}{\\\\underbrace{${eclatePuissance(baseUtile, exp[0], coul1)}}_{${exp[0]}\\\\thickspace\\\\text{factors}}}\\\\color{${coul0}})`, exp[1], coul0)}}_{${exp[1]}\\\\times\\\\color{${coul1}}{${exp[0]}}\\\\thickspace\\\\color{black}{\\\\text{factors}}}}$`\n            texteCorr += '<br>'\n          }\n          texteCorr += `So there are $\\\\mathbf{\\\\color{${coul0}}{${exp[1]}}~\\\\color{black}{\\\\times}~\\\\color{${coul1}}{${exp[0]}}}$ factors all equal to $${baseUtile}$.`\n          texteCorr += '<br>'\n          texteCorr += `$${lettre}=${baseUtile}^{${exp[0]}\\\\times${exp[1]}}`\n          if ((base < 0) && ((exp[1] * exp[0]) % 2 === 0)) {\n            texteCorr += `= ${baseUtile}^{${exp[0] * exp[1]}} = ${miseEnEvidence(simpNotPuissance(base, exp[0] * exp[1]))}$`\n          } else {\n            texteCorr += `= ${miseEnEvidence(`${baseUtile}^{${exp[0] * exp[1]}}`)}$`\n          }\n          texteCorr += remarquesPuissances(base, baseUtile, exp[0] * exp[1])\n          if (base < 0 && (exp[0] * exp[1] % 2) === 0) {\n            reponseInteractive = [`${baseUtile}^${exp[0] * exp[1]}`, `${-base}^${exp[0] * exp[1]}`]\n            baseUtileBisAMC = -base\n          } else {\n            reponseInteractive = `${baseUtile}^${exp[0] * exp[1]}`\n          }\n          exposantInteractif = exp[0] * exp[1]\n          break\n        case 4: // produit de puissances de même exposant\n          base0 = randint(2, 8, [4, 6])\n          base1 = randint(2, 8, [4, 6, base0])\n          base = [base0, base1] // on choisit 2 bases différentes c'est mieux\n          exp = randint(2, 5, 6) // on choisit un exposant\n          texte = `$${lettre}=${base[0]}^${exp}\\\\times ${base[1]}^${exp}$`\n          texteCorr += `$${lettre}=${base[0]}^${exp}\\\\times ${base[1]}^${exp}$`\n\n          if (this.correctionDetaillee) {\n            texteCorr += '<br>'\n            texteCorr += `$${lettre}=${eclatePuissance(base[0], exp, coul0)} \\\\times ${eclatePuissance(base[1], exp, coul1)}$`\n            texteCorr += '<br>'\n            texteCorr += `$${lettre}=${reorganiseProduitPuissance(base[0], base[1], exp, coul0, coul1)}$`\n          }\n          texteCorr += '<br>'\n          texteCorr += `$${lettre}= (\\\\color{${coul0}}{\\\\mathbf{${base[0]}}} \\\\color{black}{\\\\times} \\\\color{${coul1}}{\\\\mathbf{${base[1]}}}\\\\color{black}{ )^{${exp}}}=${miseEnEvidence(`${base[0] * base[1]}^${exp}`)}$`\n          // Here the base can never be negative\n          reponseInteractive = `${base[0] * base[1]}^${exp}`\n          baseUtile = base[0] * base[1]\n          baseUtileBisAMC = base[0] * base[1] // juste pour ne pas avoir à ajouter une batterie de lignes spécifiques pour ce cas, je mets deux fois la même chose\n          base = baseUtile\n          exposantInteractif = exp\n          break\n      }\n      if (this.interactif && !context.isAmc) {\n        setReponse(this, i, reponseInteractive, { formatInteractif: 'power' })\n        texte += ajouteChampTexteMathLive(this, i, 'width25 inline', { texteAvant: ' $=$' })\n      }\n      if (context.isAmc) {\n        setReponse(this, i, reponseInteractive, {\n          formatInteractif: 'power',\n          basePuissance: base,\n          exposantPuissance: exposantInteractif,\n          exposantNbChiffres: 2,\n          signe: true,\n          aussiCorrect: baseUtileBisAMC\n        })\n      }\n      if (this.listeQuestions.indexOf(texte) === -1) {\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    listeQuestionsToContenuSansNumero(this)\n  }\n  /*  this.besoinFormulaireNumerique = [\n    'Rule to work',\n    5,\n    '1: Product of two powers of the same base\\n2: Quotient of two powers of the same base\\n3: Power of powers\\n4: Product of positive powers of the same exponent\\n5: Mixture'\n  ] */\n  this.besoinFormulaireTexte = ['Rule to work', 'Numbers separated by hyphens\\n1: Product of two powers of the same base\\n2: Quotient of two powers of the same base\\n3: Power of powers\\n4: Product of positive powers of the same exponent\\n5: Mixture']\n\n  this.besoinFormulaire2Numerique = [\n    'Mantissa sign',\n    3,\n    '1: Positive\\n2: Negative\\n3: Mixture'\n  ]\n}\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","dateDeModifImportante","uuid","ref","reorganiseProduitPuissance","b1","b2","e","couleur1","couleur2","str","i","PuissancesDunRelatif1","Exercice","context","remarquesPuissances","base","baseUtile","exposant","sortie","texteGras","simpNotPuissance","numeroExercice","modalPdf","typesDeQuestionsDisponibles","gestionnaireFormulaireTexte","listeTypeDeQuestions","combinaisonListes","coul0","coul1","base0","base1","baseUtileBisAMC","exp0","exp1","exp","couleurExp0","couleurExp1","lettre","texte","texteCorr","reponseInteractive","exposantInteractif","cpt","randint","choice","lettreDepuisChiffre","eclatePuissance","miseEnEvidence","setReponse","ajouteChampTexteMathLive","listeQuestionsToContenuSansNumero"],"mappings":"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"}