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/6N10-7-BMrbbURV.js.map
{"version":3,"file":"6N10-7-BMrbbURV.js","sources":["../../src/exercices/6e/6N10-7.js"],"sourcesContent":["import { enleveElementDouble, shuffle2tableaux } from '../../lib/outils/arrayOutils'\nimport { sp } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre'\nimport { contraindreValeur, gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport Exercice from '../deprecatedExercice.js'\n\nimport Decimal from 'decimal.js'\nimport { remplisLesBlancs } from '../../lib/interactif/questionMathLive.js'\nimport { context } from '../../modules/context.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { calculCompare } from '../../lib/interactif/comparaisonFonctions'\n\nexport const titre = 'Recompose a decimal or an integer'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCOpen'\nexport const dateDePublication = '14/08/2022'\nexport const dateDeModifImportante = '09/10/2023'\n\nfunction remplaceParZero (chaine, place) {\n  if (place > chaine.length) return chaine // On ne peut pas remplacer en dehors de la chaine !\n  if (place === 0) return chaine // on ne veut pas remplacer le premier chiffre\n  try {\n    const debut = chaine.substring(0, place - 1)\n    const fin = chaine.substring(place)\n    return debut + '0' + fin\n  } catch (error) {\n    console.log(`Problème dans remplaceParZero avec le nombre : ${chaine} et la position : ${place})`)\n  }\n}\n\n/*!\n * @author Jean-Claude Lhote\n */\nexport const uuid = 'f899b'\nexport const ref = '6N10-7'\nexport default function RecomposerEntierC3 () {\n  Exercice.call(this)\n  this.nbQuestions = 4\n  this.sup = 5 // nombre de chiffres minimum du nombre à décomposer\n  this.sup2 = 7 // nombre de chiffres maximum du nombre à décomposer\n  this.sup3 = '1' // 5 initialement à remettre, le 1 c'est pour tester.\n  this.sup4 = 4\n\n  this.nouvelleVersion = function () {\n    this.listeQuestions = []\n    this.listeCorrections = []\n    this.autoCorrection = []\n\n    const listeTypeDeQuestions = gestionnaireFormulaireTexte({\n      max: 14,\n      defaut: 15,\n      melange: 15,\n      nbQuestions: this.nbQuestions,\n      saisie: this.sup3,\n      shuffle: false\n    })\n    /**\n     * Une fonction pour ajouter tous les nombres passés en argument.\n     * @param args\n     * @returns {*}\n     */\n    const somme = function (listeNombres) {\n      return listeNombres.reduce((prev, current) => prev + current)\n    }\n    const nombreDeChiffresDec = gestionnaireFormulaireTexte({\n      min: 0,\n      max: 3,\n      defaut: 4,\n      melange: 4,\n      nbQuestions: this.nbQuestions,\n      saisie: String(this.sup4),\n      shuffle: false\n    })\n\n    this.nombreDeChamps = []\n\n    this.premierChamp = []\n    this.morceaux = []\n    this.exposantMorceaux = []\n    const glossaire = [['thousandth', 'thousandths'], ['hundredth', 'hundredths'], ['tenth', 'tenths'], ['unit', 'units'], ['ten', 'tens'], ['hundred', 'hundreds'], ['thousand', 'thousand'], ['ten thousand', 'tens of thousands'], ['hundred thousand', 'hundreds of thousands'], ['million', 'millions'], ['tens of millions', 'tens of millions']]\n    for (let i = 0, cpt = 0, ee, nbChiffres, nombreDeChiffresMin, nombreDeChiffresMax, texte, texteCorr; i < this.nbQuestions && cpt < 50;) {\n      texte = ''\n      texteCorr = ''\n      let nombreStr = ''\n      let nombre\n      let blanc = '\\\\ldots'\n      this.morceaux[i] = []\n      this.exposantMorceaux[i] = []\n      nombreDeChiffresMin = contraindreValeur(nombreDeChiffresDec[i] + 3, 6, this.sup, 5)\n      nombreDeChiffresMax = contraindreValeur(nombreDeChiffresMin, 7, this.sup2, nombreDeChiffresMin + 1)\n      nbChiffres = randint(nombreDeChiffresMin, nombreDeChiffresMax)\n      let formule = ''\n      const listeReponses = []\n      const completeLesPuissances = function (k, i, morceaux, exposantMorceaux) {\n        formule += `(${morceaux[i][k]}\\\\times %{place${k}})+`\n        const nameProperty = `place${k}`\n        listeReponses.push([nameProperty, { value: String(10 ** exposantMorceaux[i][k]), compare: calculCompare }])\n      }\n      const completeLesMantisses = function (k, i, morceaux, exposantMorceaux, nombreDeChiffresDec) {\n        formule += `(%{place${k}}\\\\times${texNombre(10 ** exposantMorceaux[i][k], nombreDeChiffresDec)})+`\n        const nameProperty = `place${k}`\n        listeReponses.push([nameProperty, { value: morceaux[i][k], compare: calculCompare }])\n      }\n      const chiffreDes = function (k, i, morceaux, exposantMorceaux) {\n        formule += `\\\\quad%{place${k}}\\\\quad\\\\text{${glossaire[exposantMorceaux[i][k] + 3][Number(morceaux[i][k]) > 1 ? 1 : 0]}}\\\\quad+`\n        const nameProperty = `place${k}`\n        listeReponses.push([nameProperty, { value: morceaux[i][k], compare: calculCompare }])\n      }\n      const trouveLeNombre = function (nombre, nombreDeChiffresDec) {\n        formule = ': %{place0}+' // Le '+' c'is because'il y en a dans toutes les autres formules et que le dernier caractère est supprimé\n        listeReponses.push(['place0', { value: nombre.div(10 ** nombreDeChiffresDec).toString(), compare: calculCompare }])\n      }\n      const morcelleNombre = function (i, nombreStr, melange, morceaux, exposantMorceaux) {\n        for (let k = 0; k < nbChiffres; k++) {\n          morceaux[i][k] = nombreStr[k]\n          exposantMorceaux[i][k] = nbChiffres - 1 - k - nombreDeChiffresDec[i]\n        }\n        if (melange) shuffle2tableaux(morceaux[i], exposantMorceaux[i])\n      }\n      const trouveEntierAlea = function (sansZero) {\n        let str = ''\n        for (let k = 0; k < nbChiffres; k++) {\n          if (sansZero || (!sansZero && k === 0)) {\n            str += randint(1, 9, str === '' ? [] : Array.from(str).map(el => Number(el))).toString() // On veut des chiffres tous différents sinon ça pose un problème pour l'interactif\n            // Indeed, each number having a defined place in relation to its placeholder, with duplicates, we would have false wrong answers.\n          } else {\n            str += randint(0, 9, Array.from(str).map(el => Number(el))).toString() // On veut des chiffres tous différents sinon ça pose un problème pour l'interactif\n            // Indeed, each number having a defined place in relation to its placeholder, with duplicates, we would have false wrong answers.\n          }\n        }\n        if (!sansZero && str.indexOf('0') === -1) {\n          str = remplaceParZero(str, randint(2, Math.min(2, str.length - 1)))\n        }\n        return str\n      }\n      switch (listeTypeDeQuestions[i]) {\n        case 1: // décomposition chiffre par chiffre dans l'ordre sans zéro\n          nombreStr = trouveEntierAlea(true)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate (single-digit) numbers.<br>`\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, false, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            completeLesMantisses(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n            texteCorr += `(${miseEnEvidence(this.morceaux[i][k])}\\\\times ${texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i])})+`\n          }\n          break\n        case 2: // décomposition chiffre par chiffre avec désordre sans zéros\n          nombreStr = trouveEntierAlea(true)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate (single-digit) numbers.<br>`\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, true, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            completeLesMantisses(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n            texteCorr += `(${miseEnEvidence(this.morceaux[i][k])}\\\\times ${texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i])})+`\n          }\n          break\n        case 3: // décomposer en complétant les puissances de 10 sans désordre et sans zéros\n          nombreStr = trouveEntierAlea(true)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate values ($1, 10, 100` + (nombreDeChiffresDec[i] === 0 ? `,${texNombre(1000)},...$).<br>` : `,... $ or $${texNombre(0.1)}, ${texNombre(0.01)},...$).<br>`)\n          // text += this.interactive? textBold('If necessary, remember to put the necessary spaces.<br>'): ''\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, false, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            completeLesPuissances(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n            texteCorr += `(${this.morceaux[i][k]}\\\\times ${miseEnEvidence(texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i]))})+`\n          }\n          blanc = '\\\\ldots\\\\ldots\\\\ldots'\n          break\n        case 4: // décomposer en complétant les puissances de 10 avec désordre et sans zéros\n          nombreStr = trouveEntierAlea(true)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate values ($1, 10, 100` + (nombreDeChiffresDec[i] === 0 ? `,${texNombre(1000)},...$).<br>` : `,... $ or $${texNombre(0.1)}, ${texNombre(0.01)},...$).<br>`)\n          // text += this.interactive? textBold('If necessary, remember to put the necessary spaces.<br>'): ''\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, true, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            completeLesPuissances(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n            texteCorr += `(${this.morceaux[i][k]}\\\\times ${miseEnEvidence(texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i]))})+`\n          }\n          blanc = '\\\\ldots\\\\ldots\\\\ldots'\n          break\n        case 5: // décomposition chiffre par chiffre en ordre avec zéros possibles\n          nombreStr = trouveEntierAlea(false)\n          nombre = new Decimal(nombreStr)\n          console.log(`numberStr: ${nombreStr}`)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate (single-digit) numbers.<br>`\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, false, this.morceaux, this.exposantMorceaux)\n          console.log(`pieces: ${this.morceaux}, exponents: ${this.exposantMorceaux}`)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              completeLesMantisses(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n              texteCorr += `(${miseEnEvidence(this.morceaux[i][k])}\\\\times ${texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i])})+`\n            }\n          }\n          break\n        case 6: // décomposition chiffre par chiffre avec désordre avec zéros possibles\n          nombreStr = trouveEntierAlea(false)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate (single-digit) numbers.<br>`\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, true, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              completeLesMantisses(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n              texteCorr += `(${miseEnEvidence(this.morceaux[i][k])}\\\\times ${texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i])})+`\n            }\n          }\n          break\n        case 7: // décomposer en complétant les puissances de 10 sans désordre et avec zéros possibles\n          nombreStr = trouveEntierAlea(false)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate values ($1, 10, 100` + (nombreDeChiffresDec[i] === 0 ? `,${texNombre(1000)},...$).<br>` : `,... $ or $${texNombre(0.1)}, ${texNombre(0.01)},...$).<br>`)\n          // text += this.interactive? textBold('If necessary, remember to put the necessary spaces.<br>'): ''\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, false, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              completeLesPuissances(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n              texteCorr += `(${this.morceaux[i][k]}\\\\times ${miseEnEvidence(texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i]))})+`\n            }\n          }\n          blanc = '\\\\ldots\\\\ldots\\\\ldots'\n          break\n        case 8: // décomposer en complétant les puissances de 10 avec désordre et avec zéros possibles\n          nombreStr = trouveEntierAlea(false)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate values ($1, 10, 100` + (nombreDeChiffresDec[i] === 0 ? `,${texNombre(1000)},...$).<br>` : `,... $ or $${texNombre(0.1)}, ${texNombre(0.01)},...$).<br>`)\n          // text += this.interactive? textBold('If necessary, remember to put the necessary spaces.<br>'): ''\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, true, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              completeLesPuissances(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n              texteCorr += `(${this.morceaux[i][k]}\\\\times ${miseEnEvidence(texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i]))})+`\n            }\n          }\n          blanc = '\\\\ldots\\\\ldots\\\\ldots'\n          break\n\n        case 9: // trouver le nombre sans groupement  en ordre sans zéros\n          nombreStr = trouveEntierAlea(true)\n          nombre = new Decimal(nombreStr)\n          texte += 'Give the number corresponding to <br>$'\n          morcelleNombre(i, nombreStr, false, this.morceaux, this.exposantMorceaux)\n          texteCorr = '$'\n          for (let k = 0; k < this.morceaux[i].length - 1; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              texte += `${this.morceaux[i][k]}$ ${glossaire[this.exposantMorceaux[i][k] + 3][Number(this.morceaux[i][k]) > 1 ? 1 : 0]}$${sp(2)}+${sp(2)}`\n              texteCorr += `${this.morceaux[i][k]}$ ${glossaire[this.exposantMorceaux[i][k] + 3][Number(this.morceaux[i][k]) > 1 ? 1 : 0]}$${sp(2)}+${sp(2)}`\n            }\n          }\n          ee = this.morceaux[i].length - 1\n          texte += `${this.morceaux[i][ee]}$ ${glossaire[this.exposantMorceaux[i][ee] + 3][Number(this.morceaux[i][ee]) > 1 ? 1 : 0]}${sp(2)}`\n          texteCorr += `${this.morceaux[i][ee]}$ ${glossaire[this.exposantMorceaux[i][ee] + 3][Number(this.morceaux[i][ee]) > 1 ? 1 : 0]}${sp(2)}`\n          texteCorr += `$=${miseEnEvidence(texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i]))}`\n          trouveLeNombre(nombre, nombreDeChiffresDec[i])\n          break\n        case 10: // trouver le nombre avec groupement en ordre sans zéros\n          nombreStr = trouveEntierAlea(true)\n          nombre = new Decimal(nombreStr)\n          texte += 'Give the number corresponding to <br>$'\n          texteCorr = '$'\n          for (let k = 0, j, index = 0; index < nbChiffres; k++) { // on prépare la correction pour l'exo non interactif\n            let testeur = 0\n            do {\n              j = randint(1, 3)\n              testeur++\n              this.morceaux[i][k] = nombreStr.substring(index, Math.min(index + j, nbChiffres)).replace(/^0+/g, '')\n              this.exposantMorceaux[i][k] = nbChiffres - Math.min(index + j, nbChiffres) - nombreDeChiffresDec[i]\n            } while (this.morceaux[i][k] === '' && testeur < 100)\n            if (testeur === 100) {\n              window.notify('endless loop detected box 10 6N10-7', { nombreStr })\n            }\n            index += j\n          }\n          for (let k = 0; k < this.morceaux[i].length - 1; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              texte += `${this.morceaux[i][k]}$ ${glossaire[this.exposantMorceaux[i][k] + 3][Number(this.morceaux[i][k]) > 1 ? 1 : 0]}$${sp(2)}+${sp(2)}`\n              texteCorr += `${this.morceaux[i][k]}$ ${glossaire[this.exposantMorceaux[i][k] + 3][Number(this.morceaux[i][k]) > 1 ? 1 : 0]}$${sp(2)}+${sp(2)}`\n            }\n          }\n          ee = this.morceaux[i].length - 1\n          texte += `${this.morceaux[i][ee]}$ ${glossaire[this.exposantMorceaux[i][ee] + 3][Number(this.morceaux[i][ee]) > 1 ? 1 : 0]}${sp(2)}`\n          texteCorr += `${this.morceaux[i][ee]}$ ${glossaire[this.exposantMorceaux[i][ee] + 3][Number(this.morceaux[i][ee]) > 1 ? 1 : 0]}${sp(2)}`\n          trouveLeNombre(nombre, nombreDeChiffresDec[i])\n          texteCorr += `$=${miseEnEvidence(texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i]))}`\n          break\n        case 11: // trouver le nombre avec groupement en ordre avec zéros\n          nombreStr = trouveEntierAlea(false)\n          nombre = new Decimal(nombreStr)\n          texte += 'Give the number corresponding to <br>$'\n          texteCorr = '$'\n          for (let k = 0, j, index = 0; index < nbChiffres; k++) { // on prépare la correction pour l'exo non interactif\n            let testeur = 0\n            do {\n              j = randint(1, 3)\n              testeur++\n              this.morceaux[i][k] = nombreStr.substring(index, Math.min(index + j, nbChiffres)).replace(/^0+/g, '')\n              this.exposantMorceaux[i][k] = nbChiffres - Math.min(index + j, nbChiffres) - nombreDeChiffresDec[i]\n            } while (this.morceaux[i][k] === '' && testeur < 100)\n            if (testeur === 100) {\n              window.notify('endless loop detected box 11 6N10-7', { nombreStr })\n            }\n            index += j\n          }\n          for (let k = 0; k < this.morceaux[i].length - 1; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              texte += `${this.morceaux[i][k]}$ ${glossaire[this.exposantMorceaux[i][k] + 3][Number(this.morceaux[i][k]) > 1 ? 1 : 0]}$${sp(2)}+${sp(2)}`\n              texteCorr += `${this.morceaux[i][k]}$ ${glossaire[this.exposantMorceaux[i][k] + 3][Number(this.morceaux[i][k]) > 1 ? 1 : 0]}$${sp(2)}+${sp(2)}`\n            }\n          }\n          ee = this.morceaux[i].length - 1\n          texte += `${this.morceaux[i][ee]}$ ${glossaire[this.exposantMorceaux[i][ee] + 3][Number(this.morceaux[i][ee]) > 1 ? 1 : 0]}${sp(2)}`\n          texteCorr += `${this.morceaux[i][ee]}$ ${glossaire[this.exposantMorceaux[i][ee] + 3][Number(this.morceaux[i][ee]) > 1 ? 1 : 0]}${sp(2)}`\n          trouveLeNombre(nombre, nombreDeChiffresDec[i])\n          texteCorr += `$=${miseEnEvidence(texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i]))}`\n          break\n\n        case 12: // décomposer chiffre par chiffre avec désordre avec zéros avec les noms des classes\n          nombreStr = trouveEntierAlea(false)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate (single-digit) numbers.<br>`\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, true, this.morceaux, this.exposantMorceaux)\n          enleveElementDouble(this.morceaux[i], this.exposantMorceaux[i], '0')\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            chiffreDes(k, i, this.morceaux, this.exposantMorceaux)\n            texteCorr += `${sp(2)}${miseEnEvidence(this.morceaux[i][k])}$ ${glossaire[this.exposantMorceaux[i][k] + 3][Number(this.morceaux[i][k]) > 1 ? 1 : 0]}$${sp(2)}+`\n          }\n          break\n        case 13: { // décomposer avec les puissances de 10 en désordre présence de deux zéros consécutifs\n          nombreStr = trouveEntierAlea(true)\n          const place = randint(2, nbChiffres - 1)\n          nombreStr = remplaceParZero(nombreStr, place)\n          nombreStr = remplaceParZero(nombreStr, place + 1)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate values ($1, 10, 100` + (nombreDeChiffresDec[i] === 0 ? `,${texNombre(1000)},...$).<br>` : `,... $ or $${texNombre(0.1)}, ${texNombre(0.01)},...$).<br>`)\n          // text += this.interactive? textBold('If necessary, remember to put the necessary spaces.<br>'): ''\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          morcelleNombre(i, nombreStr, true, this.morceaux, this.exposantMorceaux)\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              completeLesPuissances(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n              texteCorr += `(${miseEnEvidence(this.morceaux[i][k])}\\\\times ${texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i])})+`\n            }\n          }\n        }\n          blanc = '\\\\ldots\\\\ldots\\\\ldots'\n          break\n        case 14: { // décomposer avec les puissances de 10 avec groupement et désordre et présence de deux zéros consécutifs\n          nombreStr = trouveEntierAlea(true)\n          const place = randint(2, nbChiffres - 2)\n          nombreStr = remplaceParZero(nombreStr, place)\n          nombreStr = remplaceParZero(nombreStr, place + 1)\n          nombre = new Decimal(nombreStr)\n          texte += `Decompose the number $${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}$ by completing with the appropriate values ($1, 10, 100` + (nombreDeChiffresDec[i] === 0 ? `,${texNombre(1000)},...$).<br>` : `,... $ or $${texNombre(0.1, 1)}, ${texNombre(0.01, 2)},...$).<br>`)\n          // text += this.interactive? textBold('If necessary, remember to put the necessary spaces.<br>'): ''\n          texte += `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=$`\n          texteCorr = `$${texNombre(nombre.div(10 ** nombreDeChiffresDec[i]), nombreDeChiffresDec[i])}=`\n          for (let k = 0, j, index = 0; index < nbChiffres; k++) { // on prépare la correction pour l'exo non interactif\n            let testeur = 0\n            do {\n              testeur++\n              j = randint(1, 3)\n              this.morceaux[i][k] = nombreStr.substring(index, Math.min(index + j, nbChiffres)).replace(/^0+/g, '')\n            } while (this.morceaux[i][k] === '' && testeur < 100)\n            if (testeur === 100) {\n              window.notify('endless loop detected box 14 6N10-7', { nombreStr })\n            }\n            this.exposantMorceaux[i][k] = nbChiffres - Math.min(index + j, nbChiffres) - nombreDeChiffresDec[i]\n            index += j\n          }\n          shuffle2tableaux(this.morceaux[i], this.exposantMorceaux[i])\n          for (let k = 0; k < this.morceaux[i].length; k++) {\n            if (this.morceaux[i][k] !== '0') {\n              completeLesPuissances(k, i, this.morceaux, this.exposantMorceaux, nombreDeChiffresDec[i])\n              texteCorr += `(${this.morceaux[i][k]}\\\\times ${miseEnEvidence(texNombre(10 ** this.exposantMorceaux[i][k], nombreDeChiffresDec[i]))})+`\n            }\n          }\n        }\n          blanc = '\\\\ldots\\\\ldots\\\\ldots'\n          break\n      }\n      // if (this.interactive) {\n      texte += remplisLesBlancs(this, i, formule.substring(0, formule.length - 1), 'inline college6th width01 nospacebefore', blanc)\n      // scale is a function which returns [nbGoodAnswers, nbAnswers]\n      setReponse(this, i, Object.assign({ bareme: (listePoints) => [Math.floor(somme(listePoints) / listePoints.length), 1] }, Object.fromEntries(listeReponses)), { formatInteractif: 'fillInTheBlank' })\n      // }\n      texte = texte.substring(0, texte.length - 1) + '$'\n      texteCorr = texteCorr.substring(0, texteCorr.length - 1) + '$'\n\n      texte += this.interactif ? '<br>' : ''\n\n      if (context.isAmc) {\n        this.autoCorrection[i] =\n                    {\n                      enonce: texte + '<br>',\n                      propositions: [\n                        {\n                          texte: texteCorr,\n                          statut: 1, // OBLIGATOIRE (ici c'is the number of lines of the frame for the answer of the'élève sur AMC)\n                          sanscadre: true\n                        }\n                      ]\n                    }\n      }\n\n      texte += (context.isHtml) ? `<div id=divDuSmiley${this.numeroExercice}Q${i} style= \"display\" class = \"inline college6eme width01 nospacebefore-block\"></div>` : ''\n\n      if (this.questionJamaisPosee(i, nombre)) {\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this)\n  }\n  this.besoinFormulaireNumerique = ['Minimum number of digits of numbers to decompose', 6]\n  this.besoinFormulaire2Numerique = ['Maximum number of digits of numbers to decompose', 7]\n  this.besoinFormulaire3Texte = ['Type of questions', 'Numbers separated by hyphens\\n1: Encrypted in order without zero\\n2: Encrypted out of order without zero\\n3: Powers of ten in order without zero\\n4: Powers of ten in order without zero\\n5: Encrypted in order with possible zeros \\n6: Out of order cipher with possible zeros\\n7: Ordered powers of ten with possible zeros\\n8: Out of order powers of ten with possible zeros\\n9: Find the number in order without zero\\n10: Find the number out of order with zero with grouping\\n11: Find the number in order without zero with grouping\\n12: Find the number in order with possible zeros with grouping\\n13: Find the number in order with possible zeros\\n14: Powers of ten in disorder two consecutive zeros without grouping\\n15: Mixture']\n  this.besoinFormulaire4Texte = ['Number of digits of the decimal part', '0: No digits in the decimal part\\n1: Only one digit in the decimal part\\n2: Only two digits in the decimal part\\n3: Only three digits in the decimal part\\n4: Mix']\n  this.correctionInteractive = (i) => {\n    const champsTexte = []\n    const saisies = []\n    if (this.premierChamp[i] === undefined) return 'OK'\n    const divFeedback = document.querySelector(`#divDuSmiley${this.numeroExercice}Q${i}`)\n    let resultatOK = true\n    for (let k = 0; k < this.nombreDeChamps[i]; k++) {\n      champsTexte[k] = document.getElementById(`fieldTextEx${this.numeroExercice}Q${k + this.premierChamp[i]}`)\n      saisies[k] = champsTexte[k].value.replace(',', '.').replace(/\\((\\+?-?\\d+)\\)/, '$1')\n      resultatOK = resultatOK && parseInt(saisies[k]) === parseInt(this.autoCorrection[this.premierChamp[i] + k].reponse.valeur[0])\n    }\n    if (resultatOK) {\n      divFeedback.innerHTML += '😎'\n      return 'OK'\n    } else {\n      divFeedback.innerHTML += '☹️'\n      return 'KO'\n    }\n  }\n}\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","dateDePublication","dateDeModifImportante","remplaceParZero","chaine","place","debut","fin","uuid","ref","RecomposerEntierC3","Exercice","listeTypeDeQuestions","gestionnaireFormulaireTexte","somme","listeNombres","prev","current","nombreDeChiffresDec","glossaire","i","cpt","ee","nbChiffres","nombreDeChiffresMin","nombreDeChiffresMax","texte","texteCorr","nombreStr","nombre","blanc","contraindreValeur","randint","formule","listeReponses","completeLesPuissances","k","morceaux","exposantMorceaux","nameProperty","calculCompare","completeLesMantisses","texNombre","chiffreDes","trouveLeNombre","morcelleNombre","melange","shuffle2tableaux","trouveEntierAlea","sansZero","str","el","Decimal","miseEnEvidence","sp","j","index","testeur","enleveElementDouble","remplisLesBlancs","setReponse","listePoints","context","listeQuestionsToContenu","champsTexte","saisies","divFeedback","resultatOK"],"mappings":"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"}