File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/6M10-1-9uoTx5Ps.js.map
{"version":3,"file":"6M10-1-9uoTx5Ps.js","sources":["../../src/exercices/6e/6M10-1.js"],"sourcesContent":["import { point } from '../../lib/2d/points.js'\nimport { polygone } from '../../lib/2d/polygones.js'\nimport { segment } from '../../lib/2d/segmentsVecteurs.js'\nimport { latexParCoordonnees, texteParPositionEchelle } from '../../lib/2d/textes.js'\nimport { choice } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence, texteEnCouleurEtGras } from '../../lib/outils/embellissements'\nimport { texteExposant } from '../../lib/outils/ecritures.js'\nimport { arrondi } from '../../lib/outils/nombres.js'\nimport { stringNombre, texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { context } from '../../modules/context.js'\nimport Grandeur from '../../modules/Grandeur'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const dateDePublication = '09/04/2022'\nexport const titre = 'Rectangle area problems'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\n\nexport const uuid = '9a5fe'\nexport const ref = '6M10-1'\nexport default function ProblemesAiresRectangles () {\n Exercice.call(this)\n this.consigne = 'Find the measurement designated by a question mark.'\n this.nbQuestions = 1\n this.nbCols = 1\n this.nbColsCorr = 1\n this.sup = 5\n this.sup2 = 2\n this.sup4 = 1\n this.sup3 = true\n this.spacingCorr = context.isHtml ? 3 : 2\n\n function rangeLesLongeurs (longueursHorizontales, longueursVerticales, typeDeGrille) {\n const longueursPossibles = [3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5]\n let tableau = longueursHorizontales.concat(longueursVerticales)\n tableau = tableau.sort((a, b) => a - b)\n for (let i = 0; i < tableau.length - 1; i++) { // On élimine les doublons\n if (tableau[i] === tableau[i + 1]) tableau.splice(i, 1)\n }\n const liste = new Set() // liste contiendra un objet qui renseigne sur la taille affichée de chacun des segments horizontaux et verticaux.\n for (let i = 0; i < typeDeGrille[0]; i++) {\n liste.add({ type: 'h', indice: i, longueur: longueursPossibles[tableau.indexOf(longueursHorizontales[i])] })\n }\n for (let i = 0; i < typeDeGrille[1]; i++) {\n liste.add({ type: 'v', indice: i, longueur: longueursPossibles[tableau.indexOf(longueursVerticales[i])] })\n }\n return liste\n }\n\n function choisitFormatGrille (nombreEtapes) {\n switch (nombreEtapes) {\n case 1:\n return [1, 1]\n case 2:\n return choice([true, false]) ? [2, 1] : [1, 2]\n case 3:\n return [2, 2]\n case 4:\n return choice([true, false]) ? [2, 3] : [3, 2]\n case 5:\n return [3, 3]\n case 6:\n return choice([true, false]) ? [3, 4] : [4, 3]\n case 7:\n return [4, 4]\n }\n }\n\n function choisitLongueurs (tables, typeDeGrille) {\n const longueursHorizontales = [choice(tables)]\n for (let i = 1; i < typeDeGrille[0]; i++) longueursHorizontales.push(choice(tables, longueursHorizontales))\n const longueursVerticales = [choice(tables)]\n for (let i = 1; i < typeDeGrille[1]; i++) longueursVerticales.push(choice(tables, longueursVerticales))\n return [longueursHorizontales, longueursVerticales]\n }\n\n function fixeBordures (listeDeTailles, typeDeGrille) {\n const listeEcartsHorizontaux = []\n const listeEcartsVerticaux = []\n for (const item of listeDeTailles) { // on récupère les dimensions affichées des rectangles\n if (item.type === 'h') listeEcartsHorizontaux.push(item.longueur)\n else listeEcartsVerticaux.push(item.longueur)\n }\n const xBordures = [0] // tableau des coordonnées des bordures verticales\n const yBordures = [0] // tableau des coordonnées des bordures horizontales\n for (let i = 0; i < typeDeGrille[0]; i++) {\n xBordures.push(xBordures[i] + listeEcartsHorizontaux[i])\n }\n for (let i = 0; i < typeDeGrille[1]; i++) {\n yBordures.push(yBordures[i] + listeEcartsVerticaux[i])\n }\n return [xBordures, yBordures]\n }\n\n function creeRectangles (typeDeGrille, xBordures, yBordures) {\n const rectangles = []\n for (let i = 0; i < typeDeGrille[0]; i++) {\n rectangles[i] = []\n for (let j = 0; j < typeDeGrille[1]; j++) {\n rectangles[i].push(polygone([point(xBordures[i], yBordures[j]), point(xBordures[i + 1], yBordures[j]), point(xBordures[i + 1], yBordures[j + 1]), point(xBordures[i], yBordures[j + 1])], 'black'))\n }\n }\n return rectangles\n }\n\n function calculAires (typeDeGrille, longueursHorizontales, longueursVerticales) {\n const aires = []\n for (let x = 0; x < typeDeGrille[0]; x++) {\n aires[x] = []\n for (let y = 0; y < typeDeGrille[1]; y++) {\n aires[x].push(longueursHorizontales[x] * longueursVerticales[y])\n }\n }\n return aires\n }\n\n function dessineGrille (typeDeGrille, xBordures, yBordures) {\n let segTemp\n const objets = []\n for (let i = 0; i < typeDeGrille[0] + 1; i++) {\n segTemp = segment(xBordures[i], 0, xBordures[i], yBordures[typeDeGrille[1]])\n segTemp.pointilles = 5\n objets.push(segTemp)\n }\n for (let i = 0; i < typeDeGrille[1] + 1; i++) {\n segTemp = segment(0, yBordures[i], xBordures[typeDeGrille[0]], yBordures[i])\n segTemp.pointilles = 5\n objets.push(segTemp)\n }\n return objets\n }\n\n function dessineCheminAires (objetsEnonce, rectangles, typeDeGrille, longueursHorizontales, longueursVerticales, aires, xBordures, yBordures, nombreTotalEtapes, etapeAireInconnue) {\n const colonneDisponible = Array(typeDeGrille[0]).fill(true)\n const ligneDisponible = Array(typeDeGrille[1]).fill(true)\n let alternance\n if (typeDeGrille[0] < typeDeGrille[1]) alternance = 'line'\n else if (typeDeGrille[0] > typeDeGrille[1]) alternance = 'column'\n else alternance = choice(['column', 'line'])\n let x, y, index\n const listeCellules = []\n for (let etape = 0; etape <= nombreTotalEtapes;) {\n switch (alternance) {\n case 'column':\n do {\n index = randint(0, typeDeGrille[0] - 1)\n }\n while (!colonneDisponible[index])\n x = index\n colonneDisponible[index] = false\n if (etape === 0) {\n objetsEnonce.push(texteParPositionEchelle(stringNombre(longueursHorizontales[x]) + ' cm', (xBordures[x] + xBordures[x + 1]) / 2, yBordures[typeDeGrille[1]] + 0.65, 'medium', 'black', 1, 'middle', false, 0.5))\n } else {\n listeCellules.push([x, y])\n if (etape === etapeAireInconnue) {\n objetsEnonce.push(latexParCoordonnees('?', (xBordures[x] + xBordures[x + 1]) / 2, (yBordures[y] + yBordures[y + 1]) / 2 + 0.65, 'red', 30, 10, '', 30))\n } else {\n objetsEnonce.push(latexParCoordonnees(texNombre(aires[x][y]) + '\\\\text{cm}^2', (xBordures[x] + xBordures[x + 1]) / 2, (yBordures[y] + yBordures[y + 1]) / 2 + 0.65, 'black', 30, 10, '', 10))\n }\n }\n alternance = 'line'\n break\n case 'line':\n do {\n index = randint(0, typeDeGrille[1] - 1)\n }\n while (!ligneDisponible[index])\n y = index\n ligneDisponible[index] = false\n if (etape === 0) {\n objetsEnonce.push(texteParPositionEchelle(stringNombre(longueursVerticales[index]) + ' cm', -1, (yBordures[y] + yBordures[y + 1]) / 2, 'medium', 'black', 1, 'middle', false, 0.5))\n } else {\n listeCellules.push([x, y])\n if (etape === etapeAireInconnue) {\n objetsEnonce.push(latexParCoordonnees('?', (xBordures[x] + xBordures[x + 1]) / 2, (yBordures[y] + yBordures[y + 1]) / 2 + 0.65, 'red', 30, 10, '', 30))\n } else {\n objetsEnonce.push(latexParCoordonnees(texNombre(aires[x][y]) + '\\\\text{cm}^2', (xBordures[x] + xBordures[x + 1]) / 2, (yBordures[y] + yBordures[y + 1]) / 2 + 0.65, 'black', 30, 10, '', 10))\n }\n }\n alternance = 'column'\n break\n }\n etape++\n }\n if (etapeAireInconnue) {\n if (alternance === 'line') {\n objetsEnonce.push(texteParPositionEchelle(longueursHorizontales[index].toString() + ' cm', (xBordures[x] + xBordures[x + 1]) / 2, yBordures[typeDeGrille[1]] + 1, 'medium', 'black', 1, 'middle', true, 0.5))\n } else {\n objetsEnonce.push(texteParPositionEchelle(longueursVerticales[index].toString() + ' cm', xBordures[typeDeGrille[0]] + 1, (yBordures[y] + yBordures[y + 1]) / 2, 'medium', 'black', 1, 'middle', true, 0.5))\n }\n } else {\n if (alternance === 'line') {\n objetsEnonce.push(texteParPositionEchelle('?', (xBordures[x] + xBordures[x + 1]) / 2, yBordures[typeDeGrille[1]] + 1, 'medium', 'red', 2, 'middle', false, 0.7))\n } else {\n objetsEnonce.push(texteParPositionEchelle('?', xBordures[typeDeGrille[0]] + 1, (yBordures[y] + yBordures[y + 1]) / 2, 'medium', 'red', 2, 'middle', false, 0.7))\n }\n }\n let numeroteur = 0\n for (let j = 0; j < typeDeGrille[1]; j++) {\n for (let i = 0; i < typeDeGrille[0]; i++) {\n if (listeCellules.find(el => el[0] === i && el[1] === j)) {\n rectangles[i][j].isVisible = true\n rectangles[i][j].numero = numeroteur + 1\n objetsEnonce.push(rectangles[i][j])\n objetsEnonce.push(latexParCoordonnees(`\\\\fcolorbox{black}{pink}{${(numeroteur + 1).toString()}}`, (xBordures[i] + xBordures[i + 1]) / 2, (yBordures[j] + yBordures[j + 1]) / 2 - 0.65, 'black', 30, 10, '', 10))\n numeroteur++\n }\n }\n }\n const paramsEnonce = {\n xmin: -3.5,\n ymin: -0.5,\n xmax: xBordures[typeDeGrille[0]] + 2.5,\n ymax: yBordures[typeDeGrille[1]] + 2,\n pixelsParCm: 30,\n scale: 0.7,\n mainlevee: false\n }\n const texte = mathalea2d(paramsEnonce, objetsEnonce)\n return [texte, alternance, numeroteur, listeCellules]\n }\n\n function redigeCorrection (rectangles, longueursHorizontales, longueursVerticales, aires, nombreTotalEtapes, etapeAireInconnue, alternance, numeroteur, listeCellules) {\n let texteCorr = ''\n let reponse\n let colonneOuLigne\n if ((alternance === 'line' && numeroteur % 2 === 0) || (alternance === 'column' && numeroteur % 2 === 1)) colonneOuLigne = true\n else colonneOuLigne = false\n if (etapeAireInconnue) {\n texteCorr = 'On the one hand:<br>'\n ;[texteCorr, colonneOuLigne] = etapesDeUnAEtapeInconnue(texteCorr, longueursHorizontales, longueursVerticales, listeCellules, rectangles, aires, etapeAireInconnue - 1, colonneOuLigne)\n texteCorr += 'On the other hand:<br>'\n ;[texteCorr, colonneOuLigne] = etapesDeLaFinAEtapeInconnue(texteCorr, longueursHorizontales, longueursVerticales, listeCellules, rectangles, aires, etapeAireInconnue, alternance === 'column')\n texteCorr += `We have just calculated the width and length of rectangle number $${miseEnEvidence(rectangles[listeCellules[etapeAireInconnue - 1][0]][listeCellules[etapeAireInconnue - 1][1]].numero)}$.<br>`\n texteCorr += `We deduce that its area is $${texNombre(longueursHorizontales[listeCellules[etapeAireInconnue - 1][0]], 1)}\\\\times ${texNombre(longueursVerticales[listeCellules[etapeAireInconnue - 1][1]], 1)} = ${miseEnEvidence(texNombre(aires[listeCellules[etapeAireInconnue - 1][0]][listeCellules[etapeAireInconnue - 1][1]], 2))}\\\\text{ cm}^2$.<br>`\n reponse = [aires[listeCellules[etapeAireInconnue - 1][0]][listeCellules[etapeAireInconnue - 1][1]], 'cm^2']\n } else {\n [texteCorr, colonneOuLigne] = etapesDeUnAEtapeInconnue(texteCorr, longueursHorizontales, longueursVerticales, listeCellules, rectangles, aires, nombreTotalEtapes, colonneOuLigne)\n if (colonneOuLigne) {\n if (longueursVerticales[listeCellules[listeCellules.length - 1][1]] === longueursHorizontales[listeCellules[listeCellules.length - 1][0]]) {\n texteCorr += `The requested measurement is the length of the side of the square number ${texteEnCouleurEtGras(rectangles[listeCellules[listeCellules.length - 1][0]][listeCellules[listeCellules.length - 1][1]].numero, 'red')}, either\n $${miseEnEvidence(texNombre(longueursHorizontales[listeCellules[listeCellules.length - 1][0]], 1))} \\\\text{ cm}$.`\n } else {\n texteCorr += `The requested measurement is ${longueursVerticales[listeCellules[listeCellules.length - 1][1]] > longueursHorizontales[listeCellules[listeCellules.length - 1][0]] ? 'width' : 'length'}\n of rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[listeCellules.length - 1][0]][listeCellules[listeCellules.length - 1][1]].numero, 'red')}, either\n $${miseEnEvidence(texNombre(longueursHorizontales[listeCellules[listeCellules.length - 1][0]], 1))} \\\\text{ cm}$.`\n }\n reponse = [longueursHorizontales[listeCellules[listeCellules.length - 1][0]], 'cm']\n } else {\n if (longueursHorizontales[listeCellules[listeCellules.length - 1][0]] === longueursVerticales[listeCellules[listeCellules.length - 1][1]]) {\n texteCorr += `The requested measurement is the length of the side of the square number ${texteEnCouleurEtGras(rectangles[listeCellules[listeCellules.length - 1][0]][listeCellules[listeCellules.length - 1][1]].numero, 'red')}, either\n $${miseEnEvidence(texNombre(longueursVerticales[listeCellules[listeCellules.length - 1][1]], 1))} \\\\text{ cm}$.`\n } else {\n texteCorr += `The requested measurement is ${longueursHorizontales[listeCellules[listeCellules.length - 1][0]] > longueursVerticales[listeCellules[listeCellules.length - 1][1]] ? 'width' : 'length'}\n of rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[listeCellules.length - 1][0]][listeCellules[listeCellules.length - 1][1]].numero, 'red')}, either\n $${miseEnEvidence(texNombre(longueursVerticales[listeCellules[listeCellules.length - 1][1]], 1))} \\\\text{ cm}$.`\n }\n reponse = [longueursVerticales[listeCellules[listeCellules.length - 1][1]], 'cm']\n }\n }\n return [texteCorr, reponse]\n }\n\n function etapesDeLaFinAEtapeInconnue (texteCorr, longueursHorizontales, longueursVerticales, listeCellules, rectangles, aires, etapeAireInconnue, colonneOuLigne) {\n for (let i = listeCellules.length - 1; i >= etapeAireInconnue; i--) {\n if (!colonneOuLigne) {\n texteCorr += `Since the ${longueursHorizontales[listeCellules[i][0]] >= longueursVerticales[listeCellules[i][1]] ? 'length' : 'width'}\n of the rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')}\n is $${texNombre(longueursHorizontales[listeCellules[i][0]], 1)}$ cm and\n that its area is $${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}$ cm${texteExposant(2)},\n its ${longueursHorizontales[listeCellules[i][0]] < longueursVerticales[listeCellules[i][1]] ? 'length' : 'width'} is :\n $\\\\dfrac{${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}\\\\text{ cm}^2}{${texNombre(longueursHorizontales[listeCellules[i][0]], 1)}\\\\text{ cm}}=${texNombre(longueursVerticales[listeCellules[i][1]], 1)}\\\\text{ cm}$.`\n if (longueursHorizontales[listeCellules[i][0]] === longueursVerticales[listeCellules[i][1]]) {\n texteCorr += ` The rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')} is a square.<br>`\n } else {\n texteCorr += '<br>'\n }\n } else {\n texteCorr += `As the ${longueursVerticales[listeCellules[i][1]] >= longueursHorizontales[listeCellules[i][0]] ? 'length' : 'width'}\n of the rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')}\n is $${texNombre(longueursVerticales[listeCellules[i][1]], 1)}$ cm is\n that its area is $${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}$ cm${texteExposant(2)},\n its ${longueursVerticales[listeCellules[i][1]] < longueursHorizontales[listeCellules[i][0]] ? 'length' : 'width'} is :\n $\\\\dfrac{${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}\\\\text{ cm}^2}{${texNombre(longueursVerticales[listeCellules[i][1]], 1)}\\\\text{ cm}}=${texNombre(longueursHorizontales[listeCellules[i][0]], 1)}\\\\text{ cm}$.`\n if (longueursVerticales[listeCellules[i][1]] === longueursHorizontales[listeCellules[i][0]]) {\n texteCorr += ` The rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')} is a square.<br>`\n } else {\n texteCorr += '<br>'\n }\n }\n colonneOuLigne = !colonneOuLigne\n }\n\n return [texteCorr, colonneOuLigne]\n }\n\n function etapesDeUnAEtapeInconnue (texteCorr, longueursHorizontales, longueursVerticales, listeCellules, rectangles, aires, etapeInconnue, colonneOuLigne) {\n for (let i = 0; i < etapeInconnue; i++) {\n if (colonneOuLigne) {\n texteCorr += `Since the ${longueursHorizontales[listeCellules[i][0]] <= longueursVerticales[listeCellules[i][1]] ? 'width' : 'length'}\n of the rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')}\n is $${texNombre(longueursHorizontales[listeCellules[i][0]], 1)}$ cm and\n that it area is $${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}$ cm${texteExposant(2)},\n its ${longueursHorizontales[listeCellules[i][0]] > longueursVerticales[listeCellules[i][1]] ? 'width' : 'length'} is :\n $\\\\dfrac{${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}\\\\text{ cm}^2}{${texNombre(longueursHorizontales[listeCellules[i][0]], 1)}\\\\text{ cm}}=${texNombre(longueursVerticales[listeCellules[i][1]], 1)}\\\\text{ cm}$.`\n if (longueursHorizontales[listeCellules[i][0]] === longueursVerticales[listeCellules[i][1]]) {\n texteCorr += ` The rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')} is a square.<br>`\n } else {\n texteCorr += '<br>'\n }\n } else {\n texteCorr += `As the ${longueursVerticales[listeCellules[i][1]] <= longueursHorizontales[listeCellules[i][0]] ? 'width' : 'length'}\n of the rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')}\n is $${texNombre(longueursVerticales[listeCellules[i][1]], 1)}$ cm and\n that its area is $${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}$ cm${texteExposant(2)},\n its ${longueursVerticales[listeCellules[i][1]] > longueursHorizontales[listeCellules[i][0]] ? 'width' : 'length'} is :\n $\\\\dfrac{${texNombre(aires[listeCellules[i][0]][listeCellules[i][1]], 2)}\\\\text{ cm}^2}{${texNombre(longueursVerticales[listeCellules[i][1]], 1)}\\\\text{ cm}}=${texNombre(longueursHorizontales[listeCellules[i][0]], 1)}\\\\text{ cm}$.`\n if (longueursVerticales[listeCellules[i][1]] === longueursHorizontales[listeCellules[i][0]]) {\n texteCorr += ` The rectangle number ${texteEnCouleurEtGras(rectangles[listeCellules[i][0]][listeCellules[i][1]].numero, 'red')} is a square.<br>`\n } else {\n texteCorr += '<br>'\n }\n }\n colonneOuLigne = !colonneOuLigne\n }\n\n return [texteCorr, colonneOuLigne]\n }\n\n function prepareProblemeAire (objetsEnonce, rectangles, typeDeGrille, longueursHorizontales, longueursVerticales, aires, xBordures, yBordures, nombreTotalEtapes, etapeAireInconnue) {\n const [texte, alternance, numeroteur, listeCellules] = dessineCheminAires(objetsEnonce, rectangles, typeDeGrille, longueursHorizontales, longueursVerticales, aires, xBordures, yBordures, nombreTotalEtapes, etapeAireInconnue)\n const [texteCorr, rep] = redigeCorrection(rectangles, longueursHorizontales, longueursVerticales, aires, nombreTotalEtapes, etapeAireInconnue, alternance, numeroteur, listeCellules)\n const reponse = new Grandeur(rep[0], rep[1])\n return [texte, texteCorr, reponse]\n }\n\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // tableau contenant la liste des questions\n this.listeCorrections = []\n this.autoCorrection = []\n let choixDesTables\n\n const nombreTotalEtapes = gestionnaireFormulaireTexte({\n max: 7,\n defaut: 5,\n nbQuestions: this.nbQuestions,\n saisie: this.sup\n })\n\n const typesDeProblemes = gestionnaireFormulaireTexte({\n max: 2,\n defaut: 1,\n nbQuestions: this.nbQuestions,\n saisie: this.sup4\n })\n\n if (this.sup2 === 1) choixDesTables = [2, 3, 4, 5, 6, 7, 8, 9]\n else choixDesTables = [3, 4, 6, 7, 8, 9, 11, 12]\n\n for (let q = 0, cpt = 0, texte, texteCorr, reponse; q < this.nbQuestions && cpt < 50;) {\n const typeDeGrille = choisitFormatGrille(nombreTotalEtapes[q])\n // We determine the 8 necessary lengths and prepare the grid of rectangles\n const [longueursHorizontales, longueursVerticales] = choisitLongueurs(choixDesTables, typeDeGrille)\n if (!this.sup3) {\n for (let i = 0; i < longueursHorizontales.length; i++) {\n longueursHorizontales[i] = arrondi(longueursHorizontales[i] + randint(0, 1) * randint(1, 9) / 10, 1)\n }\n for (let i = 0; i < longueursVerticales.length; i++) {\n longueursVerticales[i] = arrondi(longueursVerticales[i] + randint(0, 1) * randint(1, 9) / 10, 1)\n }\n }\n const listeDeTailles = rangeLesLongeurs(longueursHorizontales, longueursVerticales, typeDeGrille)\n const [xBordures, yBordures] = fixeBordures(listeDeTailles, typeDeGrille)\n const rectangles = creeRectangles(typeDeGrille, xBordures, yBordures)\n // We draw a dotted grid to extend the rectangles\n const objetsEnonce = dessineGrille(typeDeGrille, xBordures, yBordures) // Grille en pointillés sur laquelle on ajoutera les rectangles\n const aires = calculAires(typeDeGrille, longueursHorizontales, longueursVerticales) // tableau contenant toutes les aires des rectangles\n // we create the question\n const tablo = prepareProblemeAire(objetsEnonce, rectangles, typeDeGrille, longueursHorizontales, longueursVerticales, aires, xBordures, yBordures, nombreTotalEtapes[q], typesDeProblemes[q] === 1 ? false : Math.floor((nombreTotalEtapes[q] + 1) / 2))\n texte = tablo[0]\n texteCorr = tablo[1]\n reponse = tablo[2]\n setReponse(this, q, reponse)\n texte += ajouteChampTexteMathLive(this, q, 'width25 inline units[lengths,areas]', { texteAvant: 'Answer :', texteApres: this.sup4 === 1 ? '$ \\\\text{cm}$' : '$ \\\\text{ cm}^2$' })\n if (this.questionJamaisPosee(q, ...longueursHorizontales, ...longueursVerticales)) {\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n q++\n }\n cpt++\n }\n listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n }\n this.besoinFormulaireTexte = ['Number of steps (from 1 to 7)', 'Numbers separated by hyphens']\n this.besoinFormulaire2Numerique = ['Difficulty', 2, '1: Easy\\n2: Less easy']\n this.besoinFormulaire3CaseACocher = ['Full lengths', true]\n this.besoinFormulaire4Texte = ['Choice of problems', 'Numbers separated by hyphens\\n1: Final length\\n2: Intermediate area']\n}\n"],"names":["dateDePublication","titre","interactifReady","interactifType","uuid","ref","ProblemesAiresRectangles","Exercice","context","rangeLesLongeurs","longueursHorizontales","longueursVerticales","typeDeGrille","longueursPossibles","tableau","a","b","i","liste","choisitFormatGrille","nombreEtapes","choice","choisitLongueurs","tables","fixeBordures","listeDeTailles","listeEcartsHorizontaux","listeEcartsVerticaux","item","xBordures","yBordures","creeRectangles","rectangles","j","polygone","point","calculAires","aires","x","y","dessineGrille","segTemp","objets","segment","dessineCheminAires","objetsEnonce","nombreTotalEtapes","etapeAireInconnue","colonneDisponible","ligneDisponible","alternance","index","listeCellules","etape","randint","texteParPositionEchelle","stringNombre","latexParCoordonnees","texNombre","numeroteur","el","paramsEnonce","mathalea2d","redigeCorrection","texteCorr","reponse","colonneOuLigne","etapesDeUnAEtapeInconnue","etapesDeLaFinAEtapeInconnue","miseEnEvidence","texteEnCouleurEtGras","texteExposant","etapeInconnue","prepareProblemeAire","texte","rep","Grandeur","choixDesTables","gestionnaireFormulaireTexte","typesDeProblemes","q","cpt","arrondi","tablo","setReponse","ajouteChampTexteMathLive","listeQuestionsToContenu"],"mappings":"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"}