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/6N11-5-LUZeAJD3.js.map
{"version":3,"file":"6N11-5-LUZeAJD3.js","sources":["../../src/exercices/6e/6N11-5.js"],"sourcesContent":["import { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { randint, listeQuestionsToContenu } from '../../modules/outils.js'\nexport const titre = 'Compare two integers'\n\nexport const dateDePublication = '07/08/2022'\n\n/**\n * Comparaison de deux nombres entiers avec deux niveaux de difficulté : avec un nombre de chiffres différents et avec le même nombre de chiffres\n * Dans le cas où les nombres ont le même nombre de chiffres, ils ont entre 1 et (max - 1) chiffres identiques\n * @author Guillaume Valmont\n * Référence 6N11-5\n*/\nexport const uuid = 'a7aa7'\nexport const ref = '6N11-5'\nexport default class ComparerDeuxNombresEntiers extends Exercice {\n  constructor () {\n    super()\n    this.titre = titre\n    this.consigne = 'Compare :'\n    this.nbQuestions = 5\n\n    this.besoinFormulaireNumerique = ['Difficulty', 3, '1: With a different number of digits\\n2: With the same number of digits\\n3: Mixture']\n    this.sup = 3\n\n    this.correctionDetailleeDisponible = true\n    this.correctionDetaillee = true\n\n    this.spacingCorr = 1.5\n  }\n\n  nouvelleVersion () {\n    this.listeQuestions = []\n    this.listeCorrections = []\n    this.autoCorrection = []\n\n    let typeDeQuestionsDisponibles\n    switch (this.sup) {\n      case 1:\n        typeDeQuestionsDisponibles = ['differentNbOfDigits']\n        break\n      case 2:\n        typeDeQuestionsDisponibles = ['memeNbOfDigits']\n        break\n      default:\n        typeDeQuestionsDisponibles = ['memeNbOfDigits', 'differentNbOfDigits']\n        break\n    }\n\n    const typesDeQuestions = combinaisonListes(typeDeQuestionsDisponibles, this.nbQuestions)\n    const nombreDeChiffres = combinaisonListes([3, 4, 5, 8], this.nbQuestions)\n    for (let i = 0, texte, texteCorr, a, b, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n      switch (typesDeQuestions[i]) {\n        case 'differentNbOfDigits': {\n          a = randint(10 ** (nombreDeChiffres[i] - 1), 10 ** nombreDeChiffres[i] - 1)\n          b = a\n          const enleveOuAjoute = choice(['remove', 'adds'])\n          const indexEnleveOuAjoute = randint(Math.floor(nombreDeChiffres[i] / 2), nombreDeChiffres[i])\n          const premiereMoitie = b.toString().slice(0, indexEnleveOuAjoute)\n          const deuxiemeMoitie = b.toString().slice(indexEnleveOuAjoute)\n          const chiffreInsere = ((parseInt(b.toString().slice(indexEnleveOuAjoute - 1, indexEnleveOuAjoute)) + 9) % 10).toString()\n          b = parseInt(premiereMoitie + chiffreInsere + deuxiemeMoitie)\n          if (enleveOuAjoute === 'remove') {\n            const c = a\n            a = b\n            b = c\n          }\n          break\n        }\n        case 'memeNbOfDigits': {\n          const nbChiffresIdentiques = randint(1, nombreDeChiffres[i] - 1)\n          const partieIdentique = randint(10 ** (nbChiffresIdentiques - 1), 10 ** nbChiffresIdentiques - 1)\n          const nbChiffresDifferentsPremierNombre = nombreDeChiffres[i] - nbChiffresIdentiques\n          const nbChiffresDifferentsDeuxiemeNombre = nombreDeChiffres[i] - nbChiffresIdentiques\n          a = partieIdentique * 10 ** nbChiffresDifferentsPremierNombre + randint(10 ** (nbChiffresDifferentsPremierNombre - 1), 10 ** nbChiffresDifferentsPremierNombre - 1)\n          b = partieIdentique * 10 ** nbChiffresDifferentsDeuxiemeNombre + randint(10 ** (nbChiffresDifferentsDeuxiemeNombre - 1), 10 ** nbChiffresDifferentsDeuxiemeNombre - 1)\n          while (b % 10 === a % 10) {\n            b = b - b % 10 + randint(0, 9)\n          }\n          break\n        }\n      }\n      texte = `$${texNombre(a, 0)}$ and $${texNombre(b, 0)}$`\n      texteCorr = ''\n      switch (typesDeQuestions[i]) {\n        case 'differentNbOfDigits':\n          if (this.correctionDetaillee) {\n            texteCorr += `$${texNombre(a)}$ counts $${a.toString().length}$ numbers while $${texNombre(b)}$ counts $${b.toString().length}$.<br>`\n            if (a > b) {\n              texteCorr += `Since $${texNombre(a)}$ has more digits than $${texNombre(b)}$, then $${texNombre(a)}$ is larger than $${texNombre(b)}$.<br>`\n            } else {\n              texteCorr += `Since $${texNombre(a)}$ has fewer digits than $${texNombre(b)}$, then $${texNombre(a)}$ is smaller than $${texNombre(b)}$.<br>`\n            }\n            texteCorr += 'We can write it in mathematical language:<br>'\n          }\n          break\n        case 'memeNbOfDigits':\n          if (this.correctionDetaillee) {\n            const miseEnEvidenceDesChiffresEnCommun = function (premierChiffre, deuxiemeChiffre) {\n              let dernierChiffreCommunTrouve = false\n              let dernierChiffreCommun\n              for (let i = 0; i < premierChiffre.toString().length; i++) {\n                if (premierChiffre.toString()[i] === deuxiemeChiffre.toString()[i] && !dernierChiffreCommunTrouve) {\n                  texteCorr += `$${miseEnEvidence(premierChiffre.toString()[i])}$`\n                } else {\n                  if (!dernierChiffreCommunTrouve) dernierChiffreCommun = premierChiffre.toString()[i]\n                  dernierChiffreCommunTrouve = true\n                  texteCorr += `$${premierChiffre.toString()[i]}$`\n                }\n              }\n              texteCorr += '<br>'\n              return dernierChiffreCommun\n            }\n            texteCorr += `$${texNombre(a)}$ and $${texNombre(b)}$ have the same number of digits.<br>`\n            texteCorr += 'We look for the first different digit from the left:<br>'\n            const dernierChiffreEnCommunPremierNombre = miseEnEvidenceDesChiffresEnCommun(a, b)\n            const dernierChiffreEnCommunDeuxiemeNombre = miseEnEvidenceDesChiffresEnCommun(b, a)\n            if (a > b) {\n              texteCorr += `As $${dernierChiffreEnCommunPremierNombre}$ is greater than $${dernierChiffreEnCommunDeuxiemeNombre}$, then $${texNombre(a)}$ is greater than $${texNombre(b)}$.<br>`\n            } else {\n              texteCorr += `As $${dernierChiffreEnCommunPremierNombre}$ is smaller than $${dernierChiffreEnCommunDeuxiemeNombre}$, then $${texNombre(a)}$ is smaller than $${texNombre(b)}$.<br>`\n            }\n\n            texteCorr += 'We can write it in mathematical language:<br>'\n          }\n          break\n      }\n      if (a > b) {\n        texteCorr += `$${texNombre(a)}$ > $${texNombre(b)}$`\n      } else {\n        texteCorr += `$${texNombre(a)}$ < $${texNombre(b)}$`\n      }\n      if (this.correctionDetaillee) texteCorr += '.'\n      if (this.questionJamaisPosee(i, texte)) {\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this)\n  }\n}\n"],"names":["titre","dateDePublication","uuid","ref","ComparerDeuxNombresEntiers","Exercice","typeDeQuestionsDisponibles","typesDeQuestions","combinaisonListes","nombreDeChiffres","i","texte","texteCorr","a","b","cpt","randint","enleveOuAjoute","choice","indexEnleveOuAjoute","premiereMoitie","deuxiemeMoitie","chiffreInsere","c","nbChiffresIdentiques","partieIdentique","nbChiffresDifferentsPremierNombre","nbChiffresDifferentsDeuxiemeNombre","texNombre","miseEnEvidenceDesChiffresEnCommun","premierChiffre","deuxiemeChiffre","dernierChiffreCommunTrouve","dernierChiffreCommun","miseEnEvidence","dernierChiffreEnCommunPremierNombre","dernierChiffreEnCommunDeuxiemeNombre","listeQuestionsToContenu"],"mappings":"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"}