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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"}