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/_TrouverSolutionMathador-xSt88m0w.js.map
{"version":3,"file":"_TrouverSolutionMathador-xSt88m0w.js","sources":["../../src/exercices/5e/_TrouverSolutionMathador.js"],"sourcesContent":["import { choice, shuffle } from '../../lib/outils/arrayOutils'\n\n/**\n * @author Jean-Claude Lhote\n * @param {number} min Valeur minimum pour la solution\n * @param {number} max Valeur maximum pour la solution\n * Cette fonction produit aléatoirement un tirage de 5 nombres, une solution, un tableau contenant les calculs successifs, une chaine contenant l'expression mathador correspondante\n * @returns {array} [tirage=[a,b,c,d,e],solution (compris entre min et max),operationsSuccessives=[string1,string2,string3,string4,string5],expression]\n * les string1 à 5 ainsi que l'expresion sont ) mettre en mode maths.\n * sert dans les exercices CM019,\n */\nexport default function TrouverSolutionMathador (\n  min,\n  max,\n  A = 1,\n  B = 4,\n  C = 8,\n  D = 3,\n  E = 5\n) {\n  let eureka\n  let a\n  let b\n  let c\n  let d\n  let e\n  let tirage\n  let nombresRestants\n  let operationsRestantes\n  let expressionEnCoursF\n  let expressionEnCoursD\n  let op\n  let part1f\n  let part2f\n  let part1d\n  let part2d\n  let operationsSuccessives = []\n  let solution\n  const listeChoix = [\n    1,\n    2,\n    2,\n    3,\n    3,\n    4,\n    4,\n    4,\n    4,\n    5,\n    6,\n    6,\n    6,\n    6,\n    7,\n    7,\n    8,\n    8,\n    8,\n    8,\n    9,\n    9,\n    9,\n    9,\n    10,\n    11,\n    12,\n    13,\n    14,\n    15,\n    16,\n    17,\n    18,\n    19,\n    20\n  ]\n  eureka = false\n  const nbDetermines = arguments.length - 2\n  while (eureka === false) {\n    tirage = []\n\n    if (nbDetermines < 1) { a = parseInt(choice(listeChoix)) } else { a = A }\n    if (nbDetermines < 2) { b = parseInt(choice(listeChoix, [13, 14, 15, 16, 17, 18, 19, 20, a])) } else { b = B }\n    if (nbDetermines < 3) {\n      c = parseInt(\n        choice(listeChoix, [12, 13, 14, 15, 16, 17, 18, 19, 20, a, b])\n      )\n    } else { c = C }\n    if (nbDetermines < 4) {\n      d = parseInt(\n        choice(listeChoix, [12, 13, 14, 15, 16, 17, 18, 19, 20, b, c])\n      )\n    } else { d = D }\n    if (nbDetermines < 5) { e = parseInt(choice(listeChoix, [12, 13, 14, 15, 16, 17, 18, 19, 20])) } else { e = E }\n    tirage.push(a, b, c, d, e)\n    nombresRestants = shuffle(tirage)\n    operationsRestantes = ['\\\\times', '+', '-', '\\\\div']\n    operationsRestantes = shuffle(operationsRestantes)\n    expressionEnCoursF = [\n      `${nombresRestants[0]}`,\n      `${nombresRestants[1]}`,\n      `${nombresRestants[2]}`,\n      `${nombresRestants[3]}`,\n      `${nombresRestants[4]}`\n    ]\n    expressionEnCoursD = [\n      `${nombresRestants[0]}`,\n      `${nombresRestants[1]}`,\n      `${nombresRestants[2]}`,\n      `${nombresRestants[3]}`,\n      `${nombresRestants[4]}`\n    ]\n\n    while (nombresRestants.length > 1) {\n      b = nombresRestants.pop()\n      a = nombresRestants.pop()\n      part2f = expressionEnCoursF.pop()\n      part1f = expressionEnCoursF.pop()\n      part2d = expressionEnCoursD.pop()\n      part1d = expressionEnCoursD.pop()\n\n      op = operationsRestantes.pop()\n      if (op === '\\\\times') {\n        c = a * b\n        expressionEnCoursF.push(`${part1f}${op}${part2f}`)\n        expressionEnCoursD.push(`${part1d}${op}${part2d}`)\n        nombresRestants.push(c)\n      } else if (op === '\\\\div') {\n        if (a % b === 0) {\n          c = a / b\n          if (part1f[0] === '\\\\') {\n            part1f = part1f.substring(6, part1f.length)\n            part1f = part1f.substring(0, part1f.length - 7)\n          }\n          if (part2f[0] === '\\\\') {\n            part2f = part2f.substring(6, part2f.length)\n            part2f = part2f.substring(0, part2f.length - 7)\n          }\n          expressionEnCoursF.push(`\\\\dfrac{${part1f}}{${part2f}}`)\n          expressionEnCoursD.push(`${part1d}${op}${part2d}`)\n          nombresRestants.push(c)\n        } else { break }\n      } else if (op === '-') {\n        if (a > b) {\n          c = a - b\n          expressionEnCoursF.push(\n            `\\\\left(${part1f}${op}${part2f}\\\\right)`\n          )\n          expressionEnCoursD.push(\n            `\\\\left(${part1d}${op}${part2d}\\\\right)`\n          )\n          nombresRestants.push(c)\n        } else { break }\n      } else if (op === '+') {\n        c = a + b\n        if (part2f.substring(0, 2) === '\\\\L') {\n          part2f = part2f.substring(6, part2f.length)\n          part2f = part2f.substring(0, part2f.length - 7)\n        }\n        expressionEnCoursF.push(`\\\\left(${part1f}${op}${part2f}\\\\right)`)\n        if (part2d.substring(0, 2) === '\\\\L') {\n          part2d = part2d.substring(6, part2d.length)\n          part2d = part2d.substring(0, part2d.length - 7)\n        }\n        expressionEnCoursD.push(`\\\\left(${part1d}${op}${part2d}\\\\right)`)\n        nombresRestants.push(c)\n      }\n      operationsSuccessives.push(`${a}` + op + `${b}=${c}`)\n    }\n\n    if (nombresRestants.length === 1 && operationsRestantes.length === 0) {\n      solution = nombresRestants[0]\n      if (solution >= min && solution <= max) {\n        eureka = true\n        if (expressionEnCoursF[0][0] === '\\\\' &&\n          expressionEnCoursF[0][1] === 'l') {\n          expressionEnCoursF[0] = expressionEnCoursF[0].substring(\n            6,\n            expressionEnCoursF[0].length\n          )\n          expressionEnCoursF[0] = expressionEnCoursF[0].substring(\n            0,\n            expressionEnCoursF[0].length - 7\n          )\n        }\n        if (expressionEnCoursD[0][0] === '\\\\' &&\n          expressionEnCoursD[0][1] === 'l') {\n          expressionEnCoursD[0] = expressionEnCoursD[0].substring(\n            6,\n            expressionEnCoursD[0].length\n          )\n          expressionEnCoursD[0] = expressionEnCoursD[0].substring(\n            0,\n            expressionEnCoursD[0].length - 7\n          )\n        }\n        return [\n          tirage,\n          solution,\n          operationsSuccessives,\n          expressionEnCoursF,\n          expressionEnCoursD\n        ]\n      } else { operationsSuccessives = [] }\n    } else { operationsSuccessives = [] }\n  }\n}\n"],"names":["TrouverSolutionMathador","min","max","A","B","C","D","E","eureka","a","b","c","d","e","tirage","nombresRestants","operationsRestantes","expressionEnCoursF","expressionEnCoursD","op","part1f","part2f","part1d","part2d","operationsSuccessives","solution","listeChoix","nbDetermines","choice","shuffle"],"mappings":"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"}