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/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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"}