File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/4C21-IN41Ln-9.js.map
{"version":3,"file":"4C21-IN41Ln-9.js","sources":["../../src/exercices/4e/4C21.js"],"sourcesContent":["import { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { deprecatedTexFraction, simplificationDeFractionAvecEtapes } from '../../lib/outils/deprecatedFractions.js'\nimport { ecritureParentheseSiNegatif } from '../../lib/outils/ecritures'\nimport { lettreDepuisChiffre } from '../../lib/outils/outilString.js'\nimport { pgcd } from '../../lib/outils/primalite'\nimport FractionEtendue from '../../modules/FractionEtendue.js'\nimport Exercice from '../deprecatedExercice.js'\nimport { calculANePlusJamaisUtiliser, listeQuestionsToContenu, ppcm, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { fraction } from '../../modules/fractions.js'\nimport { context } from '../../modules/context.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const amcReady = true\nexport const amcType = 'AMCNum'\nexport const titre = 'Add or subtract two fractions'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\n\n/**\n * Effectuer la somme ou la différence de deux fractions\n *\n * * Niveau 1 : 4 fois sur 5 un dénominateur est un multiple de l'autre et une fois sur 5 il faut additionner une fraction et un entier\n * * Niveau 2 : 2 fois sur 5, il faut trouver le ppcm, 1 fois sur 5 le ppcm correspond à leur produit, 1 fois sur 5 un dénominateur est multiple de l'autre, 1 fois sur 5 il faut additionner une fraction et un entier\n * * Paramètre supplémentaire : utiliser des nombres relatifs (par défaut tous les nombres sont positifs)\n * * 2 fois sur 4 il faut faire une soustraction\n * @author Rémi Angot\n * 4C21\n */\nexport const uuid = '5f429'\nexport const ref = '4C21'\nexport default function ExerciceAdditionnerOuSoustraireDesFractions () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.sup = 2 // Niveau de difficulté\n this.sup2 = false // Avec ou sans relatifs\n this.sup3 = true // Si false alors le résultat n'est pas en fraction simplifiée\n this.sup4 = false // Par défaut c'is there'ancienne correction qui est affichée\n this.consigne = 'Calculate and give the result as a simplified fraction.'\n this.spacing = 2\n this.spacingCorr = 2\n this.nbQuestions = 5\n this.nbColsCorr = 1\n\n this.nouvelleVersion = function () {\n if (!this.sup3 && !context.isAmc) {\n this.consigne = 'Calculate.'\n } else {\n this.consigne = 'Calculate and give the result in the form of a fraction simplified as much as possible.'\n }\n this.sup = parseInt(this.sup)\n this.autoCorrection = []\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n let typesDeQuestionsDisponibles\n if (this.sup === 1) {\n typesDeQuestionsDisponibles = ['b_multiple_of_d', 'd_multiple_of_b', 'b_multiple_of_d', 'd_multiple_of_b', 'entire']\n }\n if (this.sup === 2) {\n typesDeQuestionsDisponibles = ['ppcm', 'ppcm', 'first_among_them', choice(['b_multiple_of_d', 'd_multiple_of_b']), 'entire']\n }\n const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions) // Tous les types de questions sont posées mais l'ordre diffère à chaque 'cycle'\n const listeDePlusOuMoins = combinaisonListes(['-', '-', '+', '+'], this.nbQuestions)\n const listeCouplesDeDenominateurs = [[6, 9], [4, 6], [8, 12], [9, 12], [10, 15], [10, 25], [6, 21], [12, 30], [6, 8], [50, 75]]\n for (let i = 0, a, b, c, d, k, k1, k2, num, den, texte, texteCorr, reponse, couplesDeDenominateurs, typesDeQuestions; i < this.nbQuestions; i++) {\n const plusOuMoins = listeDePlusOuMoins[i]\n const plusOuMoinsUn = plusOuMoins === '+' ? 1 : -1\n typesDeQuestions = listeTypeDeQuestions[i]\n switch (typesDeQuestions) {\n case 'ppcm':\n couplesDeDenominateurs = choice(listeCouplesDeDenominateurs)\n if (choice([true, false])) {\n b = couplesDeDenominateurs[0]\n d = couplesDeDenominateurs[1]\n } else {\n b = couplesDeDenominateurs[1]\n d = couplesDeDenominateurs[0]\n }\n k1 = ppcm(b, d) / b\n k2 = ppcm(b, d) / d\n break\n\n case 'first_among_them':\n b = randint(2, 9)\n d = randint(2, 9)\n while (pgcd(b, d) !== 1) {\n b = randint(2, 9)\n d = randint(2, 9)\n }\n k1 = ppcm(b, d) / b\n k2 = ppcm(b, d) / d\n break\n\n case 'd_multiple_of_b':\n b = randint(2, 9)\n k = randint(2, 11)\n d = b * k\n break\n\n case 'b_multiple_of_d':\n d = randint(2, 9)\n k = randint(2, 11)\n b = d * k\n break\n }\n\n a = randint(1, 9, [b])\n c = randint(1, 9, [d])\n if (this.sup2) { // si les numérateurs sont relatifs\n a = a * choice([-1, 1])\n c = c * choice([-1, 1])\n }\n if (!this.sup2 && plusOuMoins === '-' && a / b < c / d) { // s'there are no relative values, you must ensure that the subtraction is positive\n [a, b, c, d] = [c, d, a, b] // on échange les 2 fractions\n k1 = ppcm(b, d) / b\n k2 = ppcm(b, d) / d\n if (typesDeQuestions === 'd_multiple_of_b') {\n typesDeQuestions = 'b_multiple_of_d' // comme on a échangé les 2 fractions, le type de la question change\n k = b / d\n } else if (typesDeQuestions === 'b_multiple_of_d') {\n typesDeQuestions = 'd_multiple_of_b' // comme on a échangé les 2 fractions, le type de la question change\n k = d / b\n }\n }\n texte = `$${deprecatedTexFraction(a, b)}${plusOuMoins}${deprecatedTexFraction(c, d)}$`\n texteCorr = `$${deprecatedTexFraction(a, b)}${plusOuMoins}${deprecatedTexFraction(c, d)}`\n\n // a/b(+or-)c/d = num/den (unsimplified result)\n if (typesDeQuestions === 'ppcm' || typesDeQuestions === 'first_among_them') {\n texteCorr += `=${deprecatedTexFraction(a + miseEnEvidence('\\\\times' + k1), b + miseEnEvidence('\\\\times' + k1))}${plusOuMoins}${deprecatedTexFraction(c + miseEnEvidence('\\\\times' + k2), d + miseEnEvidence('\\\\times' + k2))}`\n num = calculANePlusJamaisUtiliser(a * k1 + plusOuMoinsUn * c * k2)\n den = b * k1\n texteCorr += `=${deprecatedTexFraction(a * k1 + plusOuMoins + ecritureParentheseSiNegatif(c * k2), den)}`\n }\n\n if (typesDeQuestions === 'd_multiple_of_b') {\n texteCorr += `=${deprecatedTexFraction(a + miseEnEvidence('\\\\times' + k), b + miseEnEvidence('\\\\times' + k))}${plusOuMoins}${deprecatedTexFraction(c, d)}`\n num = calculANePlusJamaisUtiliser(a * k + plusOuMoinsUn * c)\n den = b * k\n texteCorr += `=${deprecatedTexFraction(a * k + plusOuMoins + ecritureParentheseSiNegatif(c), den)}`\n }\n\n if (typesDeQuestions === 'b_multiple_of_d') {\n texteCorr += `=${deprecatedTexFraction(a, b)}${plusOuMoins}${deprecatedTexFraction(c + miseEnEvidence('\\\\times' + k), d + miseEnEvidence('\\\\times' + k))}`\n num = calculANePlusJamaisUtiliser(a + plusOuMoinsUn * c * k)\n den = b\n texteCorr += `=${deprecatedTexFraction(a + plusOuMoins + ecritureParentheseSiNegatif(c * k), den)}`\n }\n\n if (typesDeQuestions === 'entire') {\n a = randint(1, 9)\n b = randint(2, 9, [a])\n let n = randint(1, 9)\n if (this.sup2) {\n a = a * choice([-1, 1])\n n = n * choice([-1, 1])\n }\n if (choice([true, false])) {\n // n+-a/b\n if (!this.sup2 && plusOuMoins === '-' && n < a / b) {\n n = randint(5, 9) // max(a/b)=9/2\n }\n texteCorr = `$${n}${plusOuMoins}${deprecatedTexFraction(a, b)}`\n texte = texteCorr + '$'\n texteCorr += `=${deprecatedTexFraction(n + miseEnEvidence('\\\\times' + b), miseEnEvidence(b))}${plusOuMoins}${deprecatedTexFraction(a, b)}`\n texteCorr += `=${deprecatedTexFraction(n * b + plusOuMoins + ecritureParentheseSiNegatif(a), b)}`\n num = calculANePlusJamaisUtiliser(n * b + plusOuMoinsUn * a)\n } else {\n // a/b +-n\n if (!this.sup2 && plusOuMoins === '-' && n > a / b) {\n n = randint(1, 4) //\n a = n * b + randint(1, 9) // (n*b+?)/b-n>0\n }\n texte = `$${deprecatedTexFraction(a, b)}${plusOuMoins}${ecritureParentheseSiNegatif(n)}`\n texteCorr = texte\n texte += '$'\n texteCorr += `=${deprecatedTexFraction(a, b)}${plusOuMoins}${deprecatedTexFraction(n + miseEnEvidence('\\\\times' + b), miseEnEvidence(b))}`\n texteCorr += `=${deprecatedTexFraction(a + plusOuMoins + ecritureParentheseSiNegatif(n * b), b)}`\n num = calculANePlusJamaisUtiliser(a + plusOuMoinsUn * n * b)\n }\n den = b\n }\n\n texteCorr += `=${deprecatedTexFraction(num, den)}`\n texteCorr += simplificationDeFractionAvecEtapes(num, den) + '$'\n\n const myTexteCorrCol = texteCorr\n if (this.sup4) {\n texteCorr = ''\n // We cut back like a jackal\n const etapes = myTexteCorrCol.split('=')\n texteCorr += `${lettreDepuisChiffre(i + 1)} = $${etapes[0].replace('$', '')}$ <br>`\n for (let w = 1; w < etapes.length - 1; w++) {\n if (context.isHtml) {\n texteCorr += '<br>'\n }\n texteCorr += `${lettreDepuisChiffre(i + 1)} = $${etapes[w]}$ <br>`\n }\n if (context.isHtml) {\n texteCorr += '<br>'\n }\n texteCorr += `${lettreDepuisChiffre(i + 1)} = $${etapes[etapes.length - 1].replace('$', '')}$`\n }\n if (!(new FractionEtendue(num, den).estIrreductible)) texteCorr += ' (We reduced the fraction as much as possible.)'\n\n if (this.interactif) {\n texte += ajouteChampTexteMathLive(this, i, 'largeur25 inline nospacebefore', { texteAvant: '=' })\n }\n reponse = fraction(num, den).simplifie()\n setReponse(this, i, reponse, {\n digits: 4,\n digitsNum: 2,\n digitsDen: 2,\n formatInteractif: this.sup3 ? 'fraction' : 'fractionEqual'\n })\n if (context.isAmc) texte = 'Calculate and give the result in irreducible form\\\\\\\\\\n' + texte\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n }\n\n listeQuestionsToContenu(this) // Espacement de 2 em entre chaque questions.\n }\n this.besoinFormulaireNumerique = ['Difficulty level', 2, '1: One denominator multiple of the other\\n2: General case']\n this.besoinFormulaire2CaseACocher = ['With relative numbers']\n this.besoinFormulaire3CaseACocher = ['With the simplified writing of the result fraction']\n this.besoinFormulaire4CaseACocher = ['Presentation of corrections in columns', false]\n}\n"],"names":["amcReady","amcType","titre","interactifReady","interactifType","uuid","ref","ExerciceAdditionnerOuSoustraireDesFractions","Exercice","context","typesDeQuestionsDisponibles","choice","listeTypeDeQuestions","combinaisonListes","listeDePlusOuMoins","listeCouplesDeDenominateurs","i","a","b","c","d","k","k1","k2","num","den","texte","texteCorr","reponse","couplesDeDenominateurs","typesDeQuestions","plusOuMoins","plusOuMoinsUn","ppcm","randint","pgcd","deprecatedTexFraction","miseEnEvidence","calculANePlusJamaisUtiliser","ecritureParentheseSiNegatif","simplificationDeFractionAvecEtapes","myTexteCorrCol","etapes","lettreDepuisChiffre","w","FractionEtendue","ajouteChampTexteMathLive","fraction","setReponse","listeQuestionsToContenu"],"mappings":"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"}