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/6N21-ump57kWF.js.map
{"version":3,"file":"6N21-ump57kWF.js","sources":["../../src/exercices/6e/6N21.ts"],"sourcesContent":["import { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { deprecatedTexFraction } from '../../lib/outils/deprecatedFractions.js'\nimport { lettreIndiceeDepuisChiffre } from '../../lib/outils/outilString.js'\nimport Exercice from '../ExerciceTs'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { context } from '../../modules/context.js'\nimport Figure from 'apigeom'\nimport figureApigeom from '../../lib/figureApigeom.js'\nimport { arrondi } from '../../lib/outils/nombres.js'\nimport GraduatedLine from 'apigeom/src/elements/grid/GraduatedLine.js'\nimport { orangeMathalea } from 'apigeom/src/elements/defaultValues.js'\n\nexport const dateDeModifImportante = '12/12/2023'\nexport const titre = 'Placing fractions on a number line'\nexport const interactifReady = true\nexport const interactifType = 'custom'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\n\n/**\n * Description didactique de l'exercice :\n * @author Rémi Angot\n * Référence 6N21\n * publié le 29/6/2021\n */\nexport const uuid = '2ba53'\nexport const ref = '6N21'\n\ntype goodAnswer = { label: string, x: number }[]\n\nclass PlacerPointsAbscissesFractionnaires extends Exercice {\n  figures: Figure[] = []\n  goodAnswers: goodAnswer[] = []\n  constructor () {\n    super()\n    this.consigne = ''\n    this.nbQuestions = 5\n    this.sup = 1\n    this.exoCustomResultat = true\n    this.besoinFormulaireNumerique = ['Niveau de difficulté', 4, '1 : Demis, tiers ou quarts avec zéro placé\\n2 : Des cinquièmes aux neuvièmes avec zéro placé \\n3 : Toutes les fractions précédentes mais zéro non visible\\n4 : Mélange']\n  }\n\n  nouvelleVersion () {\n    this.sup = parseInt(this.sup)\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    this.autoCorrection = []\n    let typeDeQuestions\n    if (this.sup > 3) {\n      typeDeQuestions = combinaisonListes([1, 2, 3], this.nbQuestions)\n    } else {\n      typeDeQuestions = combinaisonListes([parseInt(this.sup)], this.nbQuestions)\n    }\n    const fractionsUtilisees: Array<[number, number]> = [] // Pour s'assurer de ne pas poser 2 fois la même question\n    const tableUtilisées: [number[], number[], number[]] = [[], [], []]\n    for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n      let texte = ''\n      let texteCorr = ''\n      let origine, num, den : number\n      const scale = 2\n      switch (typeDeQuestions[i]) {\n        case 1: // Placer des demis aux quarts sur un axe\n          origine = this.sup > 4 ? randint(-4, 1) : 0\n          den = randint(2, 4, tableUtilisées[0])\n          num = origine * den + randint(1, den * 4)\n          tableUtilisées[0].push(den)\n          if (tableUtilisées[0].length === 3) tableUtilisées[0] = []\n          break\n        case 2: // Placer des cinquièmes aux neuvièmes sur un axe\n          origine = this.sup > 4 ? randint(-4, 1) : 0\n          den = randint(5, 9, tableUtilisées[1])\n          num = origine * den + randint(1, den * 4)\n          tableUtilisées[1].push(den)\n          if (tableUtilisées[1].length === 5) tableUtilisées[1] = []\n          break\n        default: // Placer des demis aux neuvièmes à partir d'un entier >=1 sur un axe\n          origine = this.sup > 4 ? randint(-4, 1) : randint(1, 7)\n          den = randint(2, 9, tableUtilisées[2])\n          num = randint(origine * den + 1, (origine + 4) * den, den)\n          tableUtilisées[2].push(den)\n          if (tableUtilisées[2].length === 8) tableUtilisées[2] = []\n      }\n\n      const num2 = randint(origine * den + 1, (origine + 4) * den, [num, den])\n      const num3 = randint(origine * den + 1, (origine + 4) * den, [num, num2, den])\n\n      const label1 = lettreIndiceeDepuisChiffre(i * 3 + 1)\n      const label2 = lettreIndiceeDepuisChiffre(i * 3 + 2)\n      const label3 = lettreIndiceeDepuisChiffre(i * 3 + 3)\n\n      this.goodAnswers[i] = [\n        { label: label1, x: arrondi(num / den, 4) },\n        { label: label2, x: arrondi(num2 / den, 4) },\n        { label: label3, x: arrondi(num3 / den, 4) }\n      ]\n\n      texte = `Place the points $${label1}\\\\left(${deprecatedTexFraction(num, den)}\\\\right)$, $~${label2}\\\\left(${deprecatedTexFraction(num2, den)}\\\\right)$ et $~${label3}\\\\left(${deprecatedTexFraction(num3, den)}\\\\right)$.`\n      const { figure, latex } = apigeomGraduatedLine({ xMin: origine, xMax: origine + 4, scale, stepBis: arrondi(1 / den, 6) })\n      figure.options.labelAutomaticBeginsWith = label1\n      figure.options.pointDescriptionWithCoordinates = false\n      this.figures[i] = figure\n      const { figure: figureCorr, latex: latexCorr } = apigeomGraduatedLine({ xMin: origine, xMax: origine + 4, scale, stepBis: arrondi(1 / den, 6), points: this.goodAnswers[i] })\n      figureCorr.create('Point', { label: label1, x: arrondi(num / den, 4), color: orangeMathalea, colorLabel: orangeMathalea, shape: 'x', labelDxInPixels: 0 })\n      figureCorr.create('Point', { label: label2, x: arrondi(num2 / den, 4), color: orangeMathalea, colorLabel: orangeMathalea, labelDxInPixels: 0 })\n      figureCorr.create('Point', { label: label3, x: arrondi(num3 / den, 4), color: orangeMathalea, colorLabel: orangeMathalea, labelDxInPixels: 0 })\n\n      switch (true) {\n        case context.isHtml && this.interactif:\n          texte += '<br>' + figureApigeom({ exercice: this as Exercice, idApigeom: `ex${this.numeroExercice}Q${i}`, figure })\n          texteCorr += figureCorr.getStaticHtml()\n          break\n        case context.isHtml:\n          texte += '<br>' + figure.getStaticHtml()\n          texteCorr += figureCorr.getStaticHtml()\n          break\n        default:\n          texte += '\\n\\n' + latex\n          texteCorr += '\\\\;\\n' + latexCorr\n          break\n      }\n\n      if (context.isAmc) {\n        this.autoCorrection[i] = {\n          enonce: 'ici la (ou les) question(s) est(sont) posée(s)',\n          enonceAvant: false, // EE : ce champ est facultatif et permet (si false) de supprimer l'énoncé ci-dessus avant la numérotation de chaque question.\n          enonceAvantUneFois: false, // EE : ce champ est facultatif et permet (si true) d'afficher l'énoncé ci-dessus une seule fois avant la numérotation de la première question de l'exercice. Ne fonctionne correctement que si l'option melange est à false.\n          propositions: [\n            {\n              type: 'AMCOpen', // on donne le type de la première question-réponse qcmMono, qcmMult, AMCNum, AMCOpen\n              propositions: [\n                {\n                  texte: texteCorr,\n                  statut: 3, // OBLIGATOIRE (ici c'est le nombre de lignes du cadre pour la réponse de l'élève sur AMC)\n                  enonce: texte,\n                  sanscadre: true // EE : ce champ est facultatif et permet (si true) de cacher le cadre et les lignes acceptant la réponse de l'élève\n                }\n              ]\n            }\n          ]\n        }\n      }\n      if (!isArrayInArray(fractionsUtilisees, [num, den])) {\n        // Si la question n'a jamais été posée, on en crée une autre\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n        fractionsUtilisees[i] = [num, den]\n      }\n      cpt++\n    }\n\n    listeQuestionsToContenu(this)\n  }\n\n  correctionInteractive = (i?: number) => {\n    if (i === undefined) return ['KO']\n    const result: ('OK'|'KO')[] = []\n    const figure = this.figures[i]\n    figure.isDynamic = false\n    figure.divButtons.style.display = 'none'\n    figure.divUserMessage.style.display = 'none'\n    const goodAnswer = this.goodAnswers[i]\n    const divFeedback = document.querySelector(`#feedback${`ex${this.numeroExercice}Q${i}`}`)\n    for (let j = 0; j < goodAnswer.length; j++) {\n      const label = goodAnswer[j].label\n      const x = goodAnswer[j].x\n      const { isValid, points } = figure.checkCoords({ checkOnlyAbscissa: true, label, x, y: 0 })\n      const point = points[0]\n      if (isValid) {\n        result.push('OK')\n        point.color = 'green'\n        point.colorLabel = 'green'\n        point.thickness = 3\n      } else {\n        result.push('KO')\n        if (point !== undefined) {\n          point.color = 'red'\n          point.colorLabel = 'red'\n          point.color = 'red'\n          point.thickness = 3\n        }\n      }\n    }\n    if (divFeedback != null) {\n      if (result[0] === 'OK' && result[1] === 'OK' && result[2] === 'OK') {\n        divFeedback.innerHTML = '😎'\n      } else {\n        const p = document.createElement('p')\n        p.innerText = '☹️'\n        divFeedback.insertBefore(p, divFeedback.firstChild)\n      }\n    }\n    return result\n  }\n}\n\n/**\n * Vérifie la présence d'un tableau dans un tableau de tableau\n * @param {array} arr\n * @param {array} item\n * @returns {boolean}\n */\nfunction isArrayInArray (arr: Array<[number, number]>, item: [number, number]) {\n  const itemAsString = JSON.stringify(item)\n  const contains = arr.some(function (ele) {\n    return JSON.stringify(ele) === itemAsString\n  })\n  return contains\n}\n\nfunction apigeomGraduatedLine ({ xMin, xMax, scale = 1, points, step = 1, stepBis = 0.25 }: {\n  xMin: number,\n  xMax: number,\n  scale?: number,\n  step?: number,\n  stepBis?: number,\n  points?: Array<{ x: number, label: string }>\n}): { figure: Figure, latex: string} {\n  const width = 900\n  const height = 80\n  const figure = new Figure({ xMin: xMin - 0.2 / scale, yMin: -1.5, width, height, dy: 10, dx: stepBis, xScale: 3 * scale, snapGrid: true })\n  figure.setToolbar({ tools: ['POINT', 'DRAG', 'REMOVE'], position: 'top' })\n\n  const d = new GraduatedLine(figure, { min: xMin, max: xMax, step, stepBis })\n  d.draw()\n  let latex = `\\n\\\\bigskip\n  \\\\begin{tikzpicture}[x=2.5mm]\n  \\\\draw[-{Latex[round]},thick] (0,0) -- (61,0);\n  \\\\foreach \\\\x in {0,${10 * stepBis},...,60} \\\\draw[thick] ([yshift=-0.8mm]\\\\x,0) -- ([yshift=0.8mm]\\\\x,0);\n  \\\\foreach \\\\x [count=\\\\i from 0] in {0,10,...,60} \\\\draw[ultra thick] ([yshift=-1.5mm]\\\\x,0) coordinate (a\\\\i) -- ([yshift=1.5mm]\\\\x,0);\n  \\\\foreach \\\\x [count=\\\\i from 0] in {${xMin},${xMin + 1},${xMin + 2},${xMin + 3},${xMin + 4},${xMin + 5},${xMin + 6}} {\n    \\\\node[below=2mm of a\\\\i,inner sep=0pt,font=\\\\small] {$\\\\num{\\\\x}$};\n  }`\n  if (points !== undefined) {\n    const xA = arrondi((points[0].x - xMin) * scale * 10)\n    const xB = arrondi((points[1].x - xMin) * scale * 10)\n    const xC = arrondi((points[2].x - xMin) * scale * 10)\n    const labelA = points[0].label\n    const labelB = points[1].label\n    const labelC = points[2].label\n    latex += `\\n\\\\tkzText[above=2mm](${xA},0){${labelA}}\n    \\n\\\\tkzText[above=2mm](${xB},0){${labelB}}\n    \\n\\\\tkzText[above=2mm](${xC},0){${labelC}}\n    \\n\\\\tkzDrawPoint[shape=cross out, size=5pt, thick](${xA},0)\n    \\n\\\\tkzDrawPoint[shape=cross out, size=5pt, thick](${xB},0)\n    \\n\\\\tkzDrawPoint[shape=cross out, size=5pt, thick](${xC},0)`\n  }\n  latex += '\\n\\\\end{tikzpicture}'\n\n  return { figure, latex }\n}\n\nexport default PlacerPointsAbscissesFractionnaires\n"],"names":["dateDeModifImportante","titre","interactifReady","interactifType","amcReady","amcType","uuid","ref","PlacerPointsAbscissesFractionnaires","Exercice","__publicField","i","result","figure","goodAnswer","divFeedback","j","label","x","isValid","points","point","p","typeDeQuestions","combinaisonListes","fractionsUtilisees","tableUtilisées","cpt","texte","texteCorr","origine","num","den","randint","num2","num3","label1","lettreIndiceeDepuisChiffre","label2","label3","arrondi","deprecatedTexFraction","latex","apigeomGraduatedLine","figureCorr","latexCorr","orangeMathalea","context","figureApigeom","isArrayInArray","listeQuestionsToContenu","arr","item","itemAsString","ele","xMin","xMax","scale","step","stepBis","Figure","GraduatedLine","xA","xB","xC","labelA","labelB","labelC","PlacerPointsAbscissesFractionnaires$1"],"mappings":"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"}