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/_Exercice_conversions-BQusS6Dj.js.map
{"version":3,"file":"_Exercice_conversions-BQusS6Dj.js","sources":["../../src/exercices/6e/_Exercice_conversions.js"],"sourcesContent":["import { choice, combinaisonListes, compteOccurences } from '../../lib/outils/arrayOutils'\nimport { deprecatedTexFraction } from '../../lib/outils/deprecatedFractions.js'\nimport { arrondi, rangeMinMax } from '../../lib/outils/nombres.js'\nimport { texNombre, texNombre2 } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { context } from '../../modules/context.js'\nimport { calculANePlusJamaisUtiliser, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { texTexte } from '../../lib/format/texTexte'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCNum'\nexport const dateDeModifImportante = '17/09/2022' // Modifications pour les octets. Pas de nombres décimaux => uniquement des multiplications pour convertir\n// Modification le 18/10 pour supprimer math.evaluate et le remplacer par un arrondi\n\n/**\n * Conversions  mètres, litres, grammes, octets (et euros pour la version LaTeX) en utilisant le préfixe pour déterminer la multiplication ou division à faire.\n *\n * * 1 : De da, h, k vers l'unité de référence\n * * 2 : De d, c, m vers l'unité de référence\n * * 3 : Multiplications ou divisions vers l'unité de référence\n * * 4 : Conversions d'octets\n * * 5 : Un mélange de toutes les conversions\n * * Paramètre supplémentaire : utiliser des nombres décimaux (par défaut tous les nombres sont entiers)\n * @author Rémi Angot\n * Relecture : Novembre 2021 par EE\n */\nexport default function ExerciceConversions (niveau = 1) {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.sup = niveau // Niveau de difficulté de l'exercice\n  this.sup2 = false // Avec des nombres décimaux ou pas\n  this.titre =\n        'Convert lengths, masses, capacity, prices or computer units'\n  this.consigne = 'Complete :'\n  this.spacing = 2\n  this.correction_avec_des_fractions = false\n\n  this.nouvelleVersion = function () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    const tabRep = []\n    const prefixeMulti = [\n      ['da', 10],\n      ['h', 100],\n      ['k', 1000]\n    ] // ['M',1000000],['G',1000000000],['T',1000000000000]];\n    const prefixeDiv = [\n      ['d', 10],\n      ['c', 100],\n      ['m', 1000]\n    ]\n    let listeDesProblemes = []\n    listeDesProblemes[0] = this.sup\n    if (compteOccurences(listeDesProblemes, 5) > 0) listeDesProblemes = rangeMinMax(1, 4) // Teste si l'utilisateur a choisi tout\n    listeDesProblemes = combinaisonListes(listeDesProblemes, this.nbQuestions)\n    const listeDesOperations = combinaisonListes([true, false], this.nbQuestions)\n    for (let i = 0,\n      a,\n      k,\n      div,\n      resultat,\n      unite,\n      texte,\n      texteCorr,\n      listeUniteInfo,\n      cpt = 0; i < this.nbQuestions && cpt < 50;) {\n      // We limit the number of tests to search for new values\n      k = randint(0, 2) // Choix du préfixe\n      switch (listeDesProblemes[i]) {\n        case 1 :\n          div = false // Il n'y aura pas de division\n          break\n        case 2 :\n          div = true // Avec des divisions\n          break\n        case 3 :\n          div = listeDesOperations[i] // Avec des multiplications ou des divisions\n          break\n        case 4 :\n          listeUniteInfo = ['bytes', 'ko', 'MB', 'Go', 'To']\n          break\n      }\n\n      if (this.sup2) {\n        // If the box for decimal numbers is checked\n        a = choice([\n          arrondi(randint(1, 19) + randint(1, 9) / 10, 1),\n          arrondi(randint(1, 9) / 10, 1),\n          arrondi(randint(1, 9) / 100, 2),\n          arrondi(randint(1, 9) + randint(1, 9) / 10 + randint(1, 9) / 100, 2)\n        ])\n        // XX,X 0,X 0,0X X,XX\n      } else {\n        a = choice([\n          randint(1, 9),\n          randint(1, 9) * 10,\n          randint(1, 9) * 100,\n          randint(1, 9) * 10 + randint(1, 9)\n        ])\n        // X, X0, X00, XX\n      }\n\n      if (!div && listeDesProblemes[i] < 4) {\n        // If you have to multiply to convert\n        if (k < 2) {\n          // Choice of unit\n          unite = choice(['m', 'L', 'g'])\n        } else if (k === 2) {\n          if (context.isHtml) {\n            unite = choice(['m', 'L', 'g']) // pas de signe € pour KaTeX\n          } else {\n            unite = choice(['m', 'L', 'g', '€'])\n          }\n        } else {\n          unite = 'o'\n        }\n        resultat = calculANePlusJamaisUtiliser(a * prefixeMulti[k][1]) // Utilise Algebrite pour avoir le résultat exact même avec des décimaux\n        texte = '$' + texNombre(a) + texTexte(prefixeMulti[k][0] + unite) + ' = ' + (this.interactif && context.isHtml ? `$${ajouteChampTexteMathLive(this, i, 'width25 inline', { texteApres: '$' + texTexte(unite) + '$' })}` : `\\\\dotfill ${texTexte(unite)}$`)\n\n        texteCorr =\n                    '$' +\n                    texNombre(a) +\n                    texTexte(prefixeMulti[k][0] + unite) +\n                    ' = ' +\n                    texNombre(a) +\n                    '\\\\times' +\n                    texNombre(prefixeMulti[k][1]) +\n                    texTexte(unite) +\n                    ' = ' +\n                    texNombre(resultat) +\n                    texTexte(unite) +\n                    '$'\n      } else if (div &&\n                listeDesProblemes[i] < 4 &&\n                this.correction_avec_des_fractions) {\n        unite = choice(['m', 'L', 'g'])\n        resultat = arrondi(a / prefixeDiv[k][1], 12)\n        texte =\n                    '$' +\n                    texNombre(a) +\n                    texTexte(prefixeDiv[k][0] + unite) +\n                    ' = ' + (this.interactif && context.isHtml ? `$${ajouteChampTexteMathLive(this, i, 'width25 inline', { texteApres: ' $' + texTexte(unite) + '$' })}` : ` \\\\dotfill ${texTexte(unite)}$`)\n        texteCorr =\n                    '$' +\n                    texNombre(a) +\n                    texTexte(prefixeDiv[k][0] + unite) +\n                    ' = ' +\n                    deprecatedTexFraction(texNombre(a), texNombre(prefixeDiv[k][1])) +\n                    texTexte(unite) +\n                    ' = ' +\n                    texNombre2(resultat) +\n                    texTexte(unite) +\n                    '$'\n      } else if (div && listeDesProblemes[i] < 4) {\n        unite = choice(['m', 'L', 'g'])\n        resultat = arrondi(a / prefixeDiv[k][1], 12)\n        texte =\n                    '$' +\n                    texNombre(a) +\n                    texTexte(prefixeDiv[k][0] + unite) +\n                    ' = ' + (this.interactif && context.isHtml ? `$${ajouteChampTexteMathLive(this, i, 'width25 inline', { texteApres: ' $' + texTexte(unite) + '$' })}` : ` \\\\dotfill ${texTexte(unite)}$`)\n        texteCorr =\n                    '$' +\n                    texNombre(a) +\n                    texTexte(prefixeDiv[k][0] + unite) +\n                    ' = ' +\n                    texNombre(a) +\n                    '\\\\div' +\n                    texNombre(prefixeDiv[k][1]) +\n                    texTexte(unite) +\n                    ' = ' +\n                    texNombre2(resultat) +\n                    texTexte(unite) +\n                    '$'\n      } else {\n        // for question type = 4\n        div = (!this.sup2) ? false : listeDesOperations[i] // Pas de décimaux ? Alors que des multiplications\n        let unite1 // unité de résultat\n        let unite2 // unité du départ\n        if (!div) {\n          unite2 = randint(1, 4)\n          unite1 = randint(0, unite2 - 1)\n        } else {\n          unite1 = randint(1, 4)\n          unite2 = randint(0, unite1 - 1)\n        }\n        const ecart = unite2 - unite1 // nombre de multiplication par 1000 pour passer de l'one to one'autre\n        if (unite1 === 0 && a % 1 !== 0) a = randint(3, 100) // Pas de nombre d'octets non entiers\n        if (!div) {\n          resultat = calculANePlusJamaisUtiliser(a * Math.pow(10, 3 * ecart))\n          unite = listeUniteInfo[unite1]\n          texte =\n                        '$' +\n                        texNombre(a) +\n                        texTexte(listeUniteInfo[unite2]) +\n                        ' = ' + (this.interactif && context.isHtml ? `$${ajouteChampTexteMathLive(this, i, 'width25 inline', { texteApres: ' $' + texTexte(unite) + '$' })}` : ` \\\\dotfill ${texTexte(unite)}$`)\n          texteCorr =\n                        '$' +\n                        texNombre(a) +\n                        texTexte(listeUniteInfo[unite2]) +\n                        ' = ' +\n                        texNombre(a) +\n                        '\\\\times' +\n                        texNombre(Math.pow(10, 3 * ecart)) +\n                        texTexte(unite) +\n                        ' = ' +\n                        texNombre(resultat) +\n                        texTexte(unite) +\n                        '$'\n        } else {\n          a = arrondi(a * Math.pow(10, randint(-3 * ecart - 1, -3 * ecart + 1)), 12)\n          resultat = arrondi(a / Math.pow(10, -3 * ecart), 12)\n          unite = listeUniteInfo[unite1]\n          texte =\n                        '$' +\n                        texNombre(a) +\n                        texTexte(listeUniteInfo[unite2]) +\n                        ' = ' + (this.interactif && context.isHtml ? `$${ajouteChampTexteMathLive(this, i, 'width25 inline', { texteApres: ' $' + texTexte(unite) + '$' })}` : `\\\\dotfill ${texTexte(unite)}$`)\n          texteCorr =\n                        '$' +\n                        texNombre(a) +\n                        texTexte(listeUniteInfo[unite2]) +\n                        ' = ' +\n                        texNombre(a) +\n                        '\\\\div' +\n                        texNombre(Math.pow(10, -3 * ecart)) +\n                        texTexte(unite) +\n                        ' = ' +\n                        texNombre2(resultat) +\n                        texTexte(unite) +\n                        '$'\n        }\n      }\n\n      if (tabRep.indexOf(resultat) === -1) {\n        setReponse(this, i, resultat)\n        tabRep[i] = resultat\n        // If the question has never been asked, we create another one\n        if (context.vue === 'slide') {\n          texte = texte.replace('= \\\\dotfill', '\\\\text{ en }')\n        }\n        if (context.isHtml) {\n          texte = texte.replace(\n            '\\\\dotfill',\n            '.................................................'\n          )\n        }\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this)\n  }\n\n  this.besoinFormulaireNumerique = ['Difficulty level', 5, '1: From da, h, k to the reference unit\\n2: From d, c, m to the reference unit\\n3: Multiplications or divisions to the reference unit\\n4: Conversions with bytes\\n5 : Blend']\n  this.besoinFormulaire2CaseACocher = ['With decimal numbers']\n}\n"],"names":["interactifReady","interactifType","amcReady","amcType","dateDeModifImportante","ExerciceConversions","niveau","Exercice","tabRep","prefixeMulti","prefixeDiv","listeDesProblemes","compteOccurences","rangeMinMax","combinaisonListes","listeDesOperations","i","a","k","div","resultat","unite","texte","texteCorr","listeUniteInfo","cpt","randint","choice","arrondi","context","calculANePlusJamaisUtiliser","texNombre","texTexte","ajouteChampTexteMathLive","deprecatedTexFraction","texNombre2","unite1","unite2","ecart","setReponse","listeQuestionsToContenu"],"mappings":"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"}