File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/3L15-iFelLfjI.js.map
{"version":3,"file":"3L15-iFelLfjI.js","sources":["../../src/exercices/3e/3L15.js"],"sourcesContent":["import { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { ecritureAlgebrique, ecritureAlgebriqueSauf1, rienSi1 } from '../../lib/outils/ecritures'\nimport { sp } from '../../lib/outils/outilString.js'\nimport { pgcd } from '../../lib/outils/primalite'\nimport Exercice from '../deprecatedExercice.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport FractionEtendue from '../../modules/FractionEtendue.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Solve a quadratic equation reducible to the first degree'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const dateDeModifImportante = '21/06/2023' // EE : Rajout d'un paramètre, correction de coquilles, création interactivité et meilleure conclusion des corrections\n/**\n *\n * Résoudre une équation du type (ax)2 - b2 = 0\n *\n * Résoudre une équation du type ax2 + bx = 0\n *\n * @author Rémi Angot\n * Référence 3L15\n */\nexport const uuid = '231d2'\nexport const ref = '3L15'\nexport default function ExerciceEquations () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.titre = titre\n this.consigne = 'Solve ' + (this.nbQuestions !== 1 ? 'the following equations' : 'the following equation') + '.'\n this.nbQuestions = 6\n this.nbCols = 2\n this.nbColsCorr = 1\n this.sup = 4\n this.sup2 = true\n this.spacingCorr = 3\n this.tailleDiaporama = 3 // Pour les exercices chronométrés. 50 par défaut pour les exercices avec du texte\n this.video = '' // Id YouTube ou url\n this.comment = 'In the easier level, the statement contains a maximum of positive integers. <br>'\n this.comment += 'In the less easy level, the statement randomly contains positive or negative integers. <br>'\n\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n\n let typeQuestionsDisponibles = []\n switch (this.sup) {\n case 1 :\n typeQuestionsDisponibles = ['ax2+bx', 'ax2+bxWith1']\n break\n case 2 :\n typeQuestionsDisponibles = ['ax2-b2', 'ax2=b2']\n break\n case 3 :\n typeQuestionsDisponibles = ['bcx2+a=bx(cx+d)', 'bcx2+a=bx(cx+d)', '(ax+b)(cx+d)=acx2']\n break\n case 4 :\n typeQuestionsDisponibles = ['ax2+bx', 'ax2+bxWith1', 'bcx2+a=bx(cx+d)', 'ax2-b2', 'ax2=b2', '(ax+b)(cx+d)=acx2']\n }\n const listeTypeQuestions = combinaisonListes(typeQuestionsDisponibles, this.nbQuestions) // Tous les types de questions sont posés mais l'ordre diffère à chaque 'cycle'\n for (let i = 0, indiceQ = 0, fracReponse, a, b, c, d, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n let increment\n switch (listeTypeQuestions[i]) { // Suivant le type de question, le contenu sera différent\n case 'ax2+bx':\n a = this.sup2 ? randint(2, 9) : randint(-9, 9, [0, -1, 1]) // Le cas 1 (ou -1) est traité ensuite\n b = this.sup2 ? randint(2, 9) : randint(-9, 9, [0, -1, 1])\n texte = ax2plusbx(a, b)[0]\n texteCorr = ax2plusbx(a, b)[1]\n fracReponse = new FractionEtendue(-b, a)\n setReponse(this, fracReponse.signe === -1 ? indiceQ : indiceQ + 1, fracReponse, { formatInteractif: 'fractionEqual' })\n setReponse(this, fracReponse.signe === 1 ? indiceQ : indiceQ + 1, 0)\n texte += ajouteChampTexteMathLive(this, indiceQ, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Smallest solution:` })\n texte += ajouteChampTexteMathLive(this, indiceQ + 1, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Largest solution:` })\n increment = 2\n break\n case 'ax2+bxWith1':\n if (this.sup2) {\n if (randint(1, 2) === 1) {\n a = 1\n b = randint(2, 9)\n } else {\n b = 1\n a = randint(2, 9)\n }\n } else {\n if (randint(1, 2) === 1) {\n a = choice([-1, 1])\n b = randint(-9, 9, [-1, 0, 1])\n } else {\n b = choice([-1, 1])\n a = randint(-9, 9, [-1, 0, 1])\n }\n }\n texte = ax2plusbx(a, b)[0]\n texteCorr = ax2plusbx(a, b)[1]\n fracReponse = new FractionEtendue(-b, a)\n setReponse(this, fracReponse.signe === -1 ? indiceQ : indiceQ + 1, fracReponse, { formatInteractif: 'fractionEqual' })\n setReponse(this, fracReponse.signe === 1 ? indiceQ : indiceQ + 1, 0)\n texte += ajouteChampTexteMathLive(this, indiceQ, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Smallest solution:` })\n texte += ajouteChampTexteMathLive(this, indiceQ + 1, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Largest solution:` })\n increment = 2\n break\n case 'ax2-b2':\n a = randint(1, 10)\n b = randint(1, 10)\n texte = this.sup2 ? `$ ${rienSi1(a ** 2)}x^2 - ${b ** 2} = 0 $ ` : choice([`$ -${rienSi1(a ** 2)}x^2 + ${b ** 2} = 0 $ `, `$ ${rienSi1(a ** 2)}x^2 - ${b ** 2} = 0 $`])\n texteCorr = `$${rienSi1(a ** 2)}x^2 - ${b ** 2} = $0`\n texteCorr += '<br>'\n texteCorr += a !== 1 ? `$ (${a}x)^2 - ${b}^2 = 0 $ ` : `$ x^2 - ${b}^2 = 0 $`\n texteCorr += '<br>'\n texteCorr += `$ (${rienSi1(a)}x+${b})(${rienSi1(a)}x-${b}) = $0`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a)}x+${b} = 0 \\\\quad \\\\text{or} \\\\quad ${rienSi1(a)}x-${b} = 0$`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a)}x = ${-b} \\\\quad \\\\text{or} \\\\quad ${rienSi1(a)}x = ${b}$`\n fracReponse = new FractionEtendue(b, a)\n if (a !== 1) {\n texteCorr += '<br>'\n if (pgcd(a, b) === 1) {\n texteCorr += `$x = ${fracReponse.oppose().texFSD} \\\\quad \\\\text{or} \\\\quad x = ${fracReponse.texFSD}$`\n } else {\n texteCorr += `$x = ${fracReponse.oppose().texFSD} = ${fracReponse.simplifie().oppose().texFSD} \\\\quad \\\\text{or} \\\\quad x = ${fracReponse.texFSD} = ${fracReponse.simplifie().texFSD}$`\n }\n }\n texteCorr += `<br>The solutions of the equation are: $${miseEnEvidence(fracReponse.simplifie().oppose().texFSD)}$ and $${miseEnEvidence(fracReponse.simplifie().texFSD)}$.`\n fracReponse = fracReponse.oppose()\n setReponse(this, fracReponse.signe === -1 ? indiceQ : indiceQ + 1, fracReponse, { formatInteractif: 'fractionEqual' })\n setReponse(this, fracReponse.signe !== -1 ? indiceQ : indiceQ + 1, new FractionEtendue(b, a), { formatInteractif: 'fractionEqual' })\n texte += ajouteChampTexteMathLive(this, indiceQ, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Smallest solution:` })\n texte += ajouteChampTexteMathLive(this, indiceQ + 1, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Largest solution:` })\n increment = 2\n break\n case 'ax2=b2':\n a = randint(1, 10)\n b = randint(1, 10)\n texte = this.sup2 ? `$ ${rienSi1(a ** 2)}x^2 = ${b ** 2}$ ` : choice([`$ -${rienSi1(a ** 2)}x^2 = -${b ** 2}$ `, `$ ${rienSi1(a ** 2)}x^2 = ${b ** 2}$`])\n texteCorr = `$${rienSi1(a ** 2)}x^2 = ${b ** 2}$`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a ** 2)}x^2 - ${b ** 2} = $0`\n texteCorr += '<br>'\n texteCorr += a !== 1 ? `$ (${a}x)^2 - ${b}^2 = 0 $ ` : `$ x^2 - ${b}^2 = 0 $`\n texteCorr += '<br>'\n texteCorr += `$ (${rienSi1(a)}x+${b})(${rienSi1(a)}x-${b}) = $0`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a)}x+${b} = 0 \\\\quad \\\\text{or} \\\\quad ${rienSi1(a)}x-${b} = 0$`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a)}x = ${-b} \\\\quad \\\\text{or} \\\\quad ${rienSi1(a)}x = ${b}$`\n fracReponse = new FractionEtendue(-b, a)\n if (a !== 1) {\n texteCorr += '<br>'\n if (pgcd(a, b) === 1) {\n texteCorr += `$x = ${fracReponse.texFSD} \\\\quad \\\\text{or} \\\\quad x = ${fracReponse.oppose().texFSD}$`\n } else {\n texteCorr += `$x = ${fracReponse.texFSD} = ${fracReponse.simplifie().texFSD} \\\\quad \\\\text{or} \\\\quad x = ${fracReponse.texFSD} = ${fracReponse.oppose().simplifie().texFSD}$`\n }\n }\n texteCorr += `<br>The solutions of the equation are: $${miseEnEvidence(fracReponse.simplifie().texFSD)}$ and $${miseEnEvidence(fracReponse.simplifie().oppose().texFSD)}$.`\n fracReponse = new FractionEtendue(-b, a)\n setReponse(this, fracReponse.signe === -1 ? indiceQ : indiceQ + 1, fracReponse, { formatInteractif: 'fractionEqual' })\n setReponse(this, fracReponse.signe !== -1 ? indiceQ : indiceQ + 1, new FractionEtendue(b, a), { formatInteractif: 'fractionEqual' })\n texte += ajouteChampTexteMathLive(this, indiceQ, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Smallest solution:` })\n texte += ajouteChampTexteMathLive(this, indiceQ + 1, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Largest solution:` })\n increment = 2\n break\n case 'bcx2+a=bx(cx+d)':\n a = this.sup2 ? randint(1, 10) : randint(-10, 10, [0])\n b = this.sup2 ? randint(1, 10) : randint(-10, 10, [0])\n c = this.sup2 ? randint(1, 10) : randint(-10, 10, [0])\n d = this.sup2 ? randint(1, 10) : randint(-10, 10, [0])\n fracReponse = new FractionEtendue(a, b * d)\n if (randint(1, 2) === 1) {\n texte = `$ ${rienSi1(b * c)}x^2 ${ecritureAlgebrique(a)} = ${rienSi1(b)}x(${rienSi1(c)}x ${ecritureAlgebrique(d)}) $`\n texteCorr = `$ ${rienSi1(b * c)}x^2 ${ecritureAlgebrique(a)} = ${rienSi1(b)}x(${rienSi1(c)}x ${ecritureAlgebrique(d)}) $`\n texteCorr += '<br>'\n texteCorr += `$ ${rienSi1(b * c)}x^2 ${ecritureAlgebrique(a)} = ${rienSi1(b * c)}x^2 ${ecritureAlgebriqueSauf1(d * b)}x $`\n texteCorr += '<br>'\n texteCorr += `$${a} = ${rienSi1(d * b)}x$`\n if (d * b !== 1) texteCorr += `<br>$${fracReponse.texFSD} = $x`\n if ((a < 0 && d * b < 0) || pgcd(a, d * b) !== 1) {\n texteCorr += '<br>'\n texteCorr += ` $${fracReponse.simplifie().texFSD} = $x`\n }\n } else {\n texte = `$ ${rienSi1(b)}x(${rienSi1(c)}x ${ecritureAlgebrique(d)}) = ${rienSi1(b * c)}x^2 ${ecritureAlgebrique(a)} $`\n texteCorr = `$ ${rienSi1(b)}x(${rienSi1(c)}x ${ecritureAlgebrique(d)}) = ${rienSi1(b * c)}x^2 ${ecritureAlgebrique(a)} $`\n texteCorr += '<br>'\n texteCorr += `$ ${rienSi1(b * c)}x^2 ${ecritureAlgebriqueSauf1(b * d)}x = ${rienSi1(b * c)}x^2 ${ecritureAlgebrique(a)}$`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(b * d)}x = ${a}$`\n if (d * b !== 1) texteCorr += `<br>$ x = ${fracReponse.texFSD}$`\n if ((a < 0 && b * d < 0) || pgcd(a, b * d) !== 1) {\n texteCorr += '<br>'\n texteCorr += ` $x = ${fracReponse.simplifie().texFSD}$`\n }\n }\n texteCorr += `<br>The solution to the equation is: $${miseEnEvidence(fracReponse.simplifie().texFSD)}$.`\n\n setReponse(this, indiceQ, fracReponse, { formatInteractif: 'fractionEqual' })\n texte += ajouteChampTexteMathLive(this, indiceQ, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Solution:` })\n increment = 1\n break\n case '(ax+b)2=0':\n a = this.sup2 ? randint(1, 5) : randint(-5, 5, [0])\n b = this.sup2 ? randint(1, 5) : randint(-5, 5, [0])\n fracReponse = new FractionEtendue(-b, a)\n texte = `$ (${rienSi1(a)}x ${ecritureAlgebrique(b)})^2 = $0`\n texteCorr = `$ (${rienSi1(a)}x ${ecritureAlgebrique(b)})^2 = $0`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a)}x ${ecritureAlgebrique(b)} = 0$`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a)}x = ${-b}$`\n if (a !== 1) texteCorr += `<br>$ x = ${fracReponse.texFSD}$`\n if ((-b < 0 && a < 0) || pgcd(a, b) !== 1) {\n texteCorr += '<br>'\n texteCorr += ` $x = ${fracReponse.simplifie().texFSD}$`\n }\n texteCorr += `<br>The solution to the equation is: $${miseEnEvidence(fracReponse.simplifie().texFSD)}$.`\n setReponse(this, indiceQ, fracReponse, { formatInteractif: 'fractionEqual' })\n texte += ajouteChampTexteMathLive(this, indiceQ, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Solution:` })\n increment = 1\n break\n case '(ax+b)(cx+d)=acx2':\n a = this.sup2 ? randint(1, 5) : randint(-5, 5, [0])\n b = this.sup2 ? randint(1, 5) : randint(-5, 5, [0])\n c = this.sup2 ? randint(1, 5) : randint(-5, 5, [0])\n d = this.sup2 ? randint(1, 5) : randint(-5, 5, [0])\n fracReponse = new FractionEtendue(-b * d, a * d + b * c)\n texte = `$ (${rienSi1(a)}x ${ecritureAlgebrique(b)})(${rienSi1(c)}x ${ecritureAlgebrique(d)}) = ${rienSi1(a * c)}x^2 $`\n texteCorr = `$ (${rienSi1(a)}x ${ecritureAlgebrique(b)})(${rienSi1(c)}x ${ecritureAlgebrique(d)}) = ${rienSi1(a * c)}x^2 $`\n texteCorr += '<br>'\n texteCorr += `$ ${rienSi1(a * c)}x^2 ${ecritureAlgebriqueSauf1(a * d)}x ${ecritureAlgebriqueSauf1(b * c)}x ${ecritureAlgebrique(b * d)} = ${rienSi1(a * c)}x^2 $`\n texteCorr += '<br>'\n texteCorr += `$ ${rienSi1(a * c)}x^2 ${ecritureAlgebriqueSauf1(a * d + b * c)}x ${ecritureAlgebrique(b * d)} = ${rienSi1(a * c)}x^2 $`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a * d + b * c)}x ${ecritureAlgebrique(b * d)} = $0`\n texteCorr += '<br>'\n texteCorr += `$${rienSi1(a * d + b * c)}x = ${-b * d}$`\n texteCorr += '<br>'\n texteCorr += `$x = ${fracReponse.texFSD}$`\n if ((-b * d < 0 && a * d + b * c < 0) || pgcd(-b * d, a * d + b * c) !== 1) {\n texteCorr += '<br>'\n texteCorr += `$x = ${fracReponse.simplifie().texFSD}$`\n }\n texteCorr += `<br>The solution to the equation is: $${miseEnEvidence(fracReponse.simplifie().texFSD)}$.`\n setReponse(this, indiceQ, fracReponse, { formatInteractif: 'fractionEqual' })\n texte += ajouteChampTexteMathLive(this, indiceQ, 'largeur15 inline', { texteAvant: `<br>${sp(5)} Solution:` })\n increment = 1\n break\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 indiceQ += increment\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n this.besoinFormulaireNumerique = ['Type of equations', 4, '1: Factor with x as a common factor\\n2: Factor with the remarkable identity\\n3: Expand and reduce\\n4: Combination']\n this.besoinFormulaire2CaseACocher = ['Easier level']\n}\n\nfunction ax2plusbx (a, b) {\n const texte = `$ ${rienSi1(a)} x^2 ${ecritureAlgebriqueSauf1(b)} x=0$`\n let texteCorr = `$ ${rienSi1(a)} x^2 ${ecritureAlgebriqueSauf1(b)} x=0$`\n texteCorr += '<br>'\n texteCorr += `$x(${rienSi1(a)} x ${ecritureAlgebrique(b)})=0$`\n texteCorr += '<br>'\n texteCorr += `$ x = 0 \\\\text{ \\\\quad or \\\\quad } ${rienSi1(a)} x ${ecritureAlgebrique(b)} = 0 $`\n texteCorr += '<br>'\n texteCorr += `$ \\\\phantom{x = 0 \\\\text{ \\\\quad or \\\\quad }} ${rienSi1(a)} x = ${-b} $`\n texteCorr += '<br>'\n const frac = new FractionEtendue(-b, a)\n texteCorr += `$ \\\\phantom{x = 0 \\\\text{ \\\\quad or \\\\quad }} x = ${frac.texFSD}`\n if ((b > 0 && a < 0) || pgcd(a, b) !== 1) {\n texteCorr += ` = ${frac.simplifie().texFSD}`\n }\n texteCorr += '$'\n texteCorr += `<br>The solutions of the equation are: $${miseEnEvidence(0)}$ and $${miseEnEvidence(frac.simplifie().texFSD)}$.`\n return [texte, texteCorr]\n}\n"],"names":["titre","interactifReady","interactifType","dateDeModifImportante","uuid","ref","ExerciceEquations","Exercice","typeQuestionsDisponibles","listeTypeQuestions","combinaisonListes","i","indiceQ","fracReponse","a","b","c","d","texte","texteCorr","cpt","increment","randint","ax2plusbx","FractionEtendue","setReponse","ajouteChampTexteMathLive","sp","choice","rienSi1","pgcd","miseEnEvidence","ecritureAlgebrique","ecritureAlgebriqueSauf1","listeQuestionsToContenu","frac"],"mappings":"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"}