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