File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/6P11-yuUjdOzF.js.map
{"version":3,"file":"6P11-yuUjdOzF.js","sources":["../../src/exercices/6e/6P11.js"],"sourcesContent":["import { texteEnCouleur, texteEnCouleurEtGras } from '../../lib/outils/embellissements'\nimport { texteExposant } from '../../lib/outils/ecritures.js'\nimport {\n arrondi,\n nombreDeChiffresDansLaPartieDecimale,\n nombreDeChiffresDansLaPartieEntiere,\n nombreDeChiffresDe\n} from '../../lib/outils/nombres.js'\nimport { numAlpha, sp } from '../../lib/outils/outilString.js'\nimport { prenomF, prenomM } from '../../lib/outils/Personne.js'\nimport { texPrix } from '../../lib/format/style'\nimport { stringNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { context } from '../../modules/context.js'\nimport { calculANePlusJamaisUtiliser, gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Solve proportionality problems using simple linearity'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\n\n/**\n * On donne une relation de proportionnalité du type n objets coûtent x€ et on demande le prix de y objets\n * et le nombre d'objets qu'on peut acheter avec z€.\n * @author Jean-Claude Lhote\n * référence 6P11\n * 03/2021 : ajout de situations de proportionnalité : CGrolleau\n * 08/2021 : Ajout de la version simplifiée et de la possibilité de choisir le type de question : Guillaume Valmont\n * Relecture : Décembre 2021 par EE\n */\n\n// _____ Les fonctions suivantes renvoient un objet : {texte = ; texteCorr = ;} ______\n// elles correspondent aux différentes situations problèmes\nlet versionSimplifiee = false\nlet indexN\nconst couplePremiersEntreEux = [\n [3, 4],\n [3, 5],\n [3, 7],\n [6, 7],\n [3, 8],\n [7, 8],\n [7, 9],\n [3, 10],\n [7, 10],\n [9, 10],\n [3, 11],\n [6, 11],\n [7, 11],\n [9, 11],\n [7, 12],\n [9, 12],\n [11, 12],\n [3, 13],\n [6, 13],\n [7, 13],\n [9, 13],\n [11, 13],\n [12, 13]\n\n] // Couples de nombres premiers entre eux\n\nfunction questionAchat (exo, i) { // questions d'origine du 6P11 : achat.\n const listeDeLieux = [\n 'in a DIY store',\n 'in a pet store',\n 'at the local supermarket',\n 'at the grocery store',\n 'in the museum shop'\n ]\n const listeDeChoses = [[]]\n const listeDePrixUnit = [[]]\n listeDeChoses[0] = [\n 'items',\n 'tools',\n 'accessories',\n 'tool parts',\n 'paint brushes',\n 'light bulbs',\n 'screwdriver',\n 'spatulas',\n 'pipe fittings'\n ]\n listeDeChoses[1] = [\n 'goldfish',\n 'cantons',\n 'parakeets',\n 'stick insects',\n 'flea collars',\n 'mouse',\n 'rabbits',\n 'seed packets'\n ]\n listeDeChoses[2] = [\n 'placemats',\n 'glasses',\n 'plates',\n 'chewing bones',\n 'coffee pods',\n 'milk packs',\n 'pasta packets'\n ]\n listeDeChoses[3] = [\n 'mangoes',\n 'pineapple',\n 'passion fruit',\n 'melons',\n 'packets of madeleines from Commercy',\n 'bergamot',\n 'bredeles',\n 'cancoillotte pots'\n ]\n listeDeChoses[4] = [\n 'cards',\n 'books',\n 'engravings',\n 'puzzles',\n 'models',\n 'rocks',\n 'board games'\n ]\n listeDePrixUnit[0] = [5, 4, 1.25, 3, 0.5, 1.5, 2, 6, 4.5]\n listeDePrixUnit[1] = [1.5, 7, 20, 2.5, 25, 2, 15, 8]\n listeDePrixUnit[2] = [1.25, 1.5, 2, 0.5, 5, 4.5, 3]\n listeDePrixUnit[3] = [2, 2.5, 1.25, 1.5, 4, 7, 12, 3]\n listeDePrixUnit[4] = [0.5, 5, 7, 13.5, 10, 15, 20]\n const index1 = randint(0, 4)\n const prenoms = [prenomF(), prenomM()]\n const index2 = randint(0, listeDeChoses[index1].length - 1)\n const objet = listeDeChoses[index1][index2]\n const pu = listeDePrixUnit[index1][index2] * (1 + randint(1, 2) * 0.2 * randint(-1, 1))\n let n, x, y\n if (versionSimplifiee) {\n n = couplePremiersEntreEux[indexN][0]\n x = couplePremiersEntreEux[indexN][1]\n y = n * randint(2, 5)\n } else {\n n = randint(3, 6)\n x = calculANePlusJamaisUtiliser(n * pu, 2)\n y = n * randint(2, 5)\n }\n let met = false\n let p, z\n while (met === false) {\n p = n * randint(2, 5)\n if (p !== y) {\n met = true\n }\n }\n if (versionSimplifiee) {\n z = x * randint(2, 5)\n } else {\n z = calculANePlusJamaisUtiliser(p * pu, 2)\n }\n let enonceAMC1 = `${numAlpha(0)} ${prenoms[0]} has spotted, ${listeDeLieux[index1]}, ${objet}s that interest it.` +\n `She reads that ${n} ${objet} costs $${texPrix(x)}$${sp()}€.`\n let texte = enonceAMC1\n enonceAMC1 += `She wants to buy some ${y}.<br> How many euros will she spend${sp()}?`\n texte += `She wants to buy some ${y}.<br> How much will she spend${sp()}?`\n texte += ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: `${sp()}€` })\n let texteCorr = `${numAlpha(0)} ${y} ${objet}, c'est ${texteEnCouleur(\n stringNombre(y / n)\n )} fois ${texteEnCouleur(\n n,\n 'blue'\n )} ${objet}.<br> Si ${texteEnCouleur(\n n,\n 'blue'\n )} ${objet} coûtent $${texPrix(x)}$${sp()}€, alors ${texteEnCouleur(\n stringNombre(y / n)\n )} fois ${texteEnCouleur(\n n,\n 'blue'\n )} ${objet} coûtent ${texteEnCouleur(\n stringNombre(y / n)\n )} fois $${texPrix(x)}$${sp()}€.<br>` +\n `${texteEnCouleur(\n stringNombre(y / n)\n )} $\\\\times$ ${texteEnCouleur(`$${texPrix(x)}$`, 'blue')}${sp()}€ = ${stringNombre(y * x / n)}${sp()}€<br>` +\n texteEnCouleurEtGras(`Conclusion: ${prenoms[0]} will spend $${texPrix(y * x / n)}$${sp()}€.`, 'black') + '<br>'\n const enonceAMC2 = `${numAlpha(1)} ${prenoms[1]\n } veut lui aussi acheter ces ${objet}. Il dispose de $${texPrix(z)}$${sp()}€.<br> Combien peut-il en acheter${sp()}?<br>`\n texte += '<br>' + enonceAMC2 + ajouteChampTexteMathLive(exo, i + 1, 'width25 inline', { texteApres: ' ' + objet })\n texteCorr += `${numAlpha(1)} $${texPrix(z)}$${sp()}€, c'est ${texteEnCouleur(\n stringNombre(z / x)\n )} fois $${texPrix(x)}$${sp()}€.<br> Si avec $${texPrix(x)}$${sp()}€ on peut acheter ${texteEnCouleur(\n n,\n 'blue'\n )} ${objet}, alors avec ${texteEnCouleur(\n stringNombre(z / x)\n )} fois $${texPrix(x)}$${sp()}€, on peut acheter ${texteEnCouleur(\n stringNombre(z / x)\n )} fois ${texteEnCouleur(n, 'blue')} ${objet}.<br>`\n texteCorr += `${texteEnCouleur(\n stringNombre(z / x)\n )} $\\\\times$ ${texteEnCouleur(n, 'blue')} = ${stringNombre(z * n / x)}<br>`\n texteCorr += texteEnCouleurEtGras(`Conclusion: ${prenoms[1]} will be able to buy ${stringNombre(z * n / x)} ${objet}.`, 'black') + '<br>'\n if (!context.isAmc) {\n setReponse(exo, i, calculANePlusJamaisUtiliser(y * x / n, 2))\n setReponse(exo, i + 1, calculANePlusJamaisUtiliser(z * n / x, 2))\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n options: { multicols: true, barreseparation: true },\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte: enonceAMC1,\n valeur: [arrondi(y * x / n, 2)],\n param: {\n digits: nombreDeChiffresDe(arrondi(y * x / n, 2)),\n decimals: nombreDeChiffresDansLaPartieDecimale(arrondi(y * x / n, 2)),\n signe: false,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceAMC2,\n valeur: [arrondi(z * n / x, 0)],\n param: {\n digits: nombreDeChiffresDansLaPartieEntiere(z * n / x, 0),\n decimals: 0,\n signe: false,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n }\n return {\n qtexte: texte,\n qtexteCorr: texteCorr\n }\n}\n\nfunction questionRecette (exo, i) { // questions avec des masses pour un nombre de personne dans des recettes correction : passage à l'unité\n let texte, texteCorr\n const liste = [ // liste des ingrédients avec différentes recettes associées et masses\n {\n ingredient: 'flour',\n recettes: ['lemon cake', 'waffles', 'crepes', 'cake'],\n quantites_par_pers: [20, 25, 30, 35, 40, 50] // A voir pour l'instant quantités 'simple'.\n },\n {\n ingredient: 'sugar',\n recettes: ['cake', 'chocolate mousse', 'French toast', 'milk rice'],\n quantites_par_pers: [15, 20, 25, 30, 35]\n },\n {\n ingredient: 'chocolate',\n recettes: ['cake', 'chocolate mousse', 'flan', 'milk rice'],\n quantites_par_pers: [10, 15, 20, 25, 30, 35]\n },\n {\n ingredient: 'butter',\n recettes: ['cake', 'chocolate mousse'],\n quantites_par_pers: [10, 12, 15, 18]\n }\n ]\n const nbPersonneInit = randint(2, 6) // nombre de personnes indiqué dans la recette.\n const alea4 = randint(2, 5)\n const nbPersonneFinal = nbPersonneInit * alea4 // nombre de personnes pour lequel on veut cuisiner\n const alea1 = randint(0, 3) // pour le choix de l'ingredient\n const alea2 = randint(0, liste[alea1].recettes.length - 1) // pour le choix de la recette\n const alea3 = randint(0, liste[alea1].quantites_par_pers.length - 1) // pour le choix de la quantité par personne.\n const quantite = calculANePlusJamaisUtiliser(liste[alea1].quantites_par_pers[alea3] * nbPersonneInit, 3) // Calcul de la quantité dans la recette à partir de la qtt/personne et du nb de personnes\n const quantite2 = quantite * randint(2, 5, [alea4])\n const quantiteReponse = calculANePlusJamaisUtiliser(liste[alea1].quantites_par_pers[alea3] * nbPersonneFinal, 3) // Pour la correction\n const prenoms = [prenomF(), prenomM()] // Choix de prénoms pour l'énoncé\n let enonceAMC1 = `${numAlpha(0)} ${prenoms[0]} reads on its ${liste[alea1].recettes[alea2]} recipe for ${nbPersonneInit} people that it takes ${quantite}${sp()}g of ${liste[alea1].ingredient}.` +\n `She wants to adapt her recipe for ${nbPersonneFinal} people.`\n texte = enonceAMC1\n enonceAMC1 += `<br> What mass, en${sp()}g, of ${liste[alea1].ingredient} should predict${sp()}?`\n texte += `<br> What mass of ${liste[alea1].ingredient} should ${sp()} be predicted?`\n texte += ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: ' g' })\n texteCorr = `${numAlpha(0)} ${nbPersonneFinal} people, it's ${texteEnCouleur(nbPersonneFinal / nbPersonneInit)} times ${nbPersonneInit} people.` +\n `We therefore need ${texteEnCouleur(nbPersonneFinal / nbPersonneInit)} times more ${liste[alea1].ingredient}.<br>` +\n `${quantite}${sp()}g $\\\\times $ ${texteEnCouleur(nbPersonneFinal / nbPersonneInit)} = ${quantiteReponse}${sp()}g. <br>` +\n texteEnCouleurEtGras(`Conclusion: ${prenoms[0]} should use ${quantiteReponse}${sp()}g from ${liste[alea1].ingredient} for ${nbPersonneFinal} people.<br>`, 'black')\n const enonceAMC2 = `${numAlpha(1)} ${prenoms[1]} utilise la même recette de ${liste[alea1].recettes[alea2]}. Il dispose de ${quantite2}${sp()}g de ${liste[alea1].ingredient}.\n Pour combien de personnes au maximum peut-il cuisiner${sp()}?`\n texte += '<br>' + enonceAMC2 + ajouteChampTexteMathLive(exo, i + 1, 'width25 inline', { texteApres: ' people' })\n texteCorr += `${numAlpha(1)} ${quantite2}${sp()}g is ${texteEnCouleur(quantite2 / quantite)} times ${quantite}${sp()}g.` +\n `${prenoms[1]} can therefore cook for ${texteEnCouleur(quantite2 / quantite)} times more people.<br>` +\n `${nbPersonneInit}${sp()}g $\\\\times $ ${texteEnCouleur(quantite2 / quantite)} = ${nbPersonneInit * quantite2 / quantite}. <br>` +\n texteEnCouleurEtGras(`Conclusion: ${prenoms[1]} can therefore prepare its recipe for ${nbPersonneInit * quantite2 / quantite} people.`, 'black')\n if (!context.isAmc) {\n setReponse(exo, i, quantiteReponse)\n setReponse(exo, i + 1, calculANePlusJamaisUtiliser(nbPersonneInit * quantite2 / quantite, 3))\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n options: { multicols: true, barreseparation: true },\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte: enonceAMC1,\n valeur: [quantiteReponse],\n param: {\n digits: nombreDeChiffresDe(quantiteReponse),\n decimals: nombreDeChiffresDansLaPartieDecimale(quantiteReponse),\n signe: false,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceAMC2,\n valeur: [calculANePlusJamaisUtiliser(nbPersonneInit * quantite2 / quantite, 3)],\n param: {\n digits: nombreDeChiffresDansLaPartieEntiere(nbPersonneInit * quantite2 / quantite),\n decimals: 0,\n signe: false,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n }\n return {\n qtexte: texte,\n qtexteCorr: texteCorr\n }\n}\n\nfunction questionDillution (exo, i) { // questions de mélange de volumes\n let uniteSolvantVolumeFinal\n const liste = [\n {\n solute: 'syrup',\n volumeUnitaire: [12, 15, 18, 20],\n unite_solute: 'cL',\n unite_solvant: ['L', 'L'] // liste pour [0] singulier [1] pluriel\n },\n {\n solute: 'floor cleaner',\n volumeUnitaire: [5, 8, 10, 12],\n unite_solute: 'cL',\n unite_solvant: ['L', 'L']\n },\n {\n solute: 'medicine',\n volumeUnitaire: [3, 3.5, 4, 4.5, 5, 7.5],\n unite_solute: 'mL',\n unite_solvant: ['dL', 'dL']\n },\n {\n solute: 'swimming pool product',\n volumeUnitaire: [1, 1.2, 0.8, 1.5],\n unite_solute: 'L',\n unite_solvant: ['ten cubic meters', 'tens of cubic meters']\n }\n ]\n const alea1 = randint(0, 3) // pour le choix du soluté\n const alea2 = randint(0, liste[alea1].volumeUnitaire.length - 1) // pour le choix du volume pour une unité de solvant\n let volumeInitial, quantite\n if (versionSimplifiee) {\n volumeInitial = couplePremiersEntreEux[indexN][0]\n quantite = couplePremiersEntreEux[indexN][1]\n } else {\n volumeInitial = randint(1, 5) + (randint(1, 5)) * 0.1 * randint(-1, 1, [0]) // volume d'eau pour la préparation\n quantite = liste[alea1].volumeUnitaire[alea2] * volumeInitial\n }\n const volumeFinal = volumeInitial * randint(2, 5)\n if (volumeFinal < 2) {\n uniteSolvantVolumeFinal = liste[alea1].unite_solvant[0]\n } else {\n uniteSolvantVolumeFinal = liste[alea1].unite_solvant[1]\n }\n const volumeFinalAff = stringNombre(volumeFinal) // pour affichage avec bon séparateur.\n const volumeInitialAff = stringNombre(volumeInitial) // pour affichage avec bon séparateur.\n let enonceAMC = `It is indicated on the ${liste[alea1].solute} bottle that it is necessary` +\n ` ${stringNombre(quantite)}${sp()}${liste[alea1].unite_solute} of ${liste[alea1].solute} for $${volumeInitialAff}$`\n enonceAMC += volumeInitialAff < 2 ? `Water ${liste[alea1].unite_solvant[0]}.<br>` : `Water ${liste[alea1].unite_solvant[1]}.<br>`\n enonceAMC += `We want to use $${volumeFinalAff}$ ${uniteSolvantVolumeFinal} of water.`\n let texte = enonceAMC\n enonceAMC += `What volume, in ${sp()}${liste[alea1].unite_solute}, of ${liste[alea1].solute} should we predict${sp()}?`\n texte += `How much ${liste[alea1].solute} should we predict?`\n texte += ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: ' ' + liste[alea1].unite_solute })\n const texteCorr = `The volume of ${sp()} is proportional to the volume of water. <br>` +\n ` ${liste[alea1].solute} ${texteEnCouleur(volumeFinalAff)} of water is ${uniteSolvantVolumeFinal} times ${texteEnCouleur(stringNombre(volumeFinal / volumeInitial))} ${volumeInitialAff} of water. <br>` +\n `We therefore need ${liste[alea1].unite_solvant[0]} times more than ${texteEnCouleur(stringNombre(volumeFinal / volumeInitial))}${texteEnCouleur(stringNombre(quantite), 'blue')}${sp()} of ${liste[alea1].unite_solute}. <br>` +\n `${texteEnCouleur(stringNombre(quantite), 'blue')}${sp()}${liste[alea1].unite_solute} $\\\\times $ ${texteEnCouleur(stringNombre(volumeFinal / volumeInitial))} = ${stringNombre(quantite * volumeFinal / volumeInitial)}${sp()}${liste[alea1].unite_solute} <br>\n ${texteEnCouleurEtGras(`Conclusion: We must therefore predict ${liste[alea1].solute}${stringNombre(quantite * volumeFinal / volumeInitial)}${sp()} of ${liste[alea1].unite_solute}.`, 'black')}`\n if (!context.isAmc) {\n setReponse(exo, i, calculANePlusJamaisUtiliser(quantite * volumeFinal / volumeInitial, 3))\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n // options: { multicols: true, barseparation: true },\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte: enonceAMC,\n valeur: [calculANePlusJamaisUtiliser(quantite * volumeFinal / volumeInitial, 3)],\n param: {\n digits: nombreDeChiffresDe(calculANePlusJamaisUtiliser(quantite * volumeFinal / volumeInitial)),\n decimals: nombreDeChiffresDansLaPartieDecimale(calculANePlusJamaisUtiliser(quantite * volumeFinal / volumeInitial, 3)),\n signe: false,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n }\n return {\n qtexte: texte,\n qtexteCorr: texteCorr\n }\n}\n\nfunction questionDistance (exo, i) { // questions de distance parcourue à une vitesse moyenne donnée\n let texte, texteCorr\n const liste = [ // liste des 'means of transport' et vitesses associées\n {\n locomotion: 'pedestrian',\n vitesse: [3, 3.5, 4, 4.5]\n },\n {\n locomotion: 'cyclist',\n vitesse: [12, 15, 16, 17, 18, 20, 22]\n },\n {\n locomotion: 'truck',\n vitesse: [75, 77.5, 80, 82.5, 85]\n },\n {\n locomotion: 'train',\n vitesse: [125, 150, 175, 185, 195]\n }\n ]\n const alea1 = randint(0, 3) // pour le choix de locomotion\n const duree = [{\n temps: '15 minutes',\n rapport: 0.25\n },\n {\n temps: '30 minutes',\n rapport: 0.5\n },\n {\n temps: '45 minutes',\n rapport: 0.75\n },\n {\n temps: '1 hour and a half',\n rapport: 1.5\n },\n {\n temps: '2 hours',\n rapport: 2\n },\n {\n temps: '2 and a half hours',\n rapport: 2.5\n },\n {\n temps: '3 hours',\n rapport: 3\n }]\n if (versionSimplifiee) {\n const alea1 = randint(0, 3) // pour le choix de locomotion\n let dureeQ, distance\n if (alea1 === 0) { // Si piéton\n const indice = randint(0, 3)\n dureeQ = couplePremiersEntreEux[indice][0]\n distance = couplePremiersEntreEux[indice][1] * (couplePremiersEntreEux[indice][0] + 1)\n } else {\n dureeQ = couplePremiersEntreEux[indexN][0]\n distance = couplePremiersEntreEux[indexN][1] * 2 * alea1 * alea1 * (couplePremiersEntreEux[indexN][0] + 1)\n }\n const dureeR = dureeQ * randint(2, 5)\n let enonceAMC = `A ${liste[alea1].solute} travels on average ${liste[alea1].locomotion}${stringNombre(distance)}km in ${sp()} hours.`\n texte = enonceAMC\n enonceAMC += `<br> What distance, in ${dureeQ}km, will he travel, at the same speed in ${sp()} hours${dureeR}?`\n texte += `<br> What distance will he travel, at the same speed in ${sp()} hours${dureeR}?` + ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: ' km' })\n texteCorr = `${sp()} hours is ${texteEnCouleur(dureeR)} times ${texteEnCouleur(dureeR / dureeQ)} hours.<br>` +\n `The ${dureeQ} will therefore cover ${liste[alea1].locomotion} times more distance than in ${texteEnCouleur(dureeR / dureeQ)} hours.<br>` +\n `${stringNombre(distance)}${sp()}km $\\\\times $ ${texteEnCouleur(dureeR / dureeQ)} = ${stringNombre(distance * dureeR / dureeQ)}${sp()}km.<br>\n ${texteEnCouleurEtGras(`Conclusion: The ${dureeQ} will travel ${liste[alea1].locomotion}${stringNombre(distance * dureeR / dureeQ)}km at the same speed in ${sp()} hours.`, 'black')}`\n if (!context.isAmc) {\n setReponse(exo, i, calculANePlusJamaisUtiliser(distance * dureeR / dureeQ, 3))\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte,\n valeur: [calculANePlusJamaisUtiliser(distance * dureeR / dureeQ)],\n param: {\n digits: nombreDeChiffresDe(calculANePlusJamaisUtiliser(distance * dureeR / dureeQ, 3)),\n decimals: nombreDeChiffresDansLaPartieDecimale(calculANePlusJamaisUtiliser(distance * dureeR / dureeQ, 3)),\n signe: false,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n }\n } else {\n const alea2 = randint(0, liste[alea1].vitesse.length - 1) // pour le choix du temps passé\n const rapportQuestion2 = [0.25, 0.5, 0.75, 1.25, 1.5, 2]\n let alea3 = randint(0, rapportQuestion2.length - 1)\n while (duree[alea2].rapport === rapportQuestion2[alea3]) {\n alea3 = randint(0, rapportQuestion2.length - 1)\n }\n const reponseQ1 = calculANePlusJamaisUtiliser(duree[alea2].rapport * liste[alea1].vitesse[alea2], 3)\n const distance = stringNombre(calculANePlusJamaisUtiliser(rapportQuestion2[alea3] * liste[alea1].vitesse[alea2])) // pour question 2\n let enonceAMC1 = `${numAlpha(0)} A ${liste[alea1].locomotion} covers on average ${stringNombre(liste[alea1].vitesse[alea2])}${sp()}km in one hour.<br>`\n texte = enonceAMC1\n enonceAMC1 += `What distance, in ${sp()}km, will he travel, at the same speed, in ${duree[alea2].temps}${sp()}?`\n texte += `How far will he travel, at the same speed, in ${duree[alea2].temps}${sp()}?`\n texte += ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: ' km' })\n texteCorr = `${numAlpha(0)} ${duree[alea2].temps} is ${texteEnCouleur(stringNombre(duree[alea2].rapport))} times an hour.<br>` +\n `In one hour, the ${liste[alea1].locomotion} travels ${texteEnCouleur(stringNombre(liste[alea1].vitesse[alea2], 'blue'))}${sp()}km so in ${duree[alea2].temps}, it will travel ${texteEnCouleur(stringNombre(duree[alea2].rapport))} times ${texteEnCouleur(stringNombre(liste[alea1].vitesse[alea2], 'blue'))}${sp()}km. <br>` +\n `${texteEnCouleur(stringNombre(duree[alea2].rapport))} $\\\\times$ ${texteEnCouleur(stringNombre(liste[alea1].vitesse[alea2], 'blue'))}${sp()}km = ${stringNombre(reponseQ1)}${sp()}km <br>` +\n texteEnCouleurEtGras(` Conclusion: The ${liste[alea1].locomotion} will therefore travel ${stringNombre(reponseQ1)}${sp()}km.`, 'black') + '<br>'\n const enonceAMC2 = `${numAlpha(1)} How long, in minutes, will it take to travel ${distance}${sp()}km at this same speed${sp()}?`\n texte += `<br> ${numAlpha(1)} How long will it take to travel ${distance}${sp()}km at this same speed${sp()}?` + ajouteChampTexteMathLive(exo, i + 1, 'width25 inline', { texteApres: ' minutes' })\n texteCorr += `${numAlpha(1)} ${distance}${sp()}km, c'est ${texteEnCouleur(stringNombre(rapportQuestion2[alea3]))} fois ${stringNombre(liste[alea1].vitesse[alea2])}${sp()}km.\n Le ${liste[alea1].locomotion} parcourt ${stringNombre(liste[alea1].vitesse[alea2])}${sp()}km en une heure. <br>` +\n `It will therefore take ${texteEnCouleur(stringNombre(rapportQuestion2[alea3]))} times an hour to travel ${distance}${sp()}km. <br>` +\n texteEnCouleurEtGras(`Conclusion: The ${liste[alea1].locomotion} will therefore take ${stringNombre(rapportQuestion2[alea3])} hour${rapportQuestion2[alea3] >= 2 ? 's' : ''} to travel ${distance}${sp()}km, which makes ${calculANePlusJamaisUtiliser(rapportQuestion2[alea3] * 60, 0)} minutes (${stringNombre(rapportQuestion2[alea3])} $\\\\times$ 60 minutes).`, 'black')\n if (!context.isAmc) {\n setReponse(exo, i, reponseQ1)\n setReponse(exo, i + 1, calculANePlusJamaisUtiliser(rapportQuestion2[alea3] * 60, 2))\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n options: { multicols: true, barreseparation: true },\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte: enonceAMC1,\n valeur: [reponseQ1],\n param: {\n digits: nombreDeChiffresDe(reponseQ1),\n decimals: nombreDeChiffresDansLaPartieDecimale(reponseQ1),\n signe: false,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceAMC2,\n valeur: [calculANePlusJamaisUtiliser(rapportQuestion2[alea3] * 60, 2)],\n param: {\n digits: nombreDeChiffresDe(calculANePlusJamaisUtiliser(rapportQuestion2[alea3] * 60, 2)),\n decimals: nombreDeChiffresDansLaPartieDecimale(calculANePlusJamaisUtiliser(rapportQuestion2[alea3] * 60, 2)),\n signe: false,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n }\n }\n return {\n qtexte: texte,\n qtexteCorr: texteCorr\n }\n}\n\nfunction questionEchelle (exo, i) { // X cm sur une carte correspond à x km dans la réalité...\n let texte, texteCorr\n const distanceCarte = couplePremiersEntreEux[indexN][0] // Choix d'un nombre de cm sur la carte\n const distanceReel = couplePremiersEntreEux[indexN][1] // Choix d'a number of km in reality (we avoid'avoir 1cm pour 1km)\n const rapport = [0.25, 0.5, 0.75, 1.25, 1.5, 2, 3, 4, 5] // rapport entre la référence et la question (rapports simples car niveau 6eme)\n const alea1 = randint(0, rapport.length - 1)\n const alea2 = randint(0, rapport.length - 1, [alea1])\n if (versionSimplifiee) {\n rapport[alea1] = randint(2, 5)\n rapport[alea2] = randint(2, 5, [rapport[alea1]])\n }\n const distanceCarte2 = stringNombre(calculANePlusJamaisUtiliser(rapport[alea1] * distanceCarte, 2))\n const distanceReelQ2 = stringNombre(calculANePlusJamaisUtiliser(rapport[alea2] * distanceReel, 2))\n const prenoms = [prenomF(), prenomM()]\n texte = `${numAlpha(0)} Sur une carte sur laquelle ${distanceCarte} cm représente ${distanceReel}${sp()}km dans la réalité,\n${prenoms[0]} mesure son trajet et elle trouve une distance de ${distanceCarte2} cm. <br>`\n const enonceAMC1 = texte + `How far, en${sp()}km, does this correspond to in reality${sp()}?`\n texte += `How far does this correspond in reality to ${sp()}?` + ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: ' km' })\n texteCorr = `${numAlpha(0)} ${distanceCarte2} cm, c'est ${texteEnCouleur(stringNombre(rapport[alea1]))} fois ${distanceCarte} cm. <br>\nDans la réalité, ${distanceCarte} cm correspond à ${texteEnCouleur(distanceReel, 'blue')}${sp()}km donc` +\n ` ${distanceCarte2} cm will correspond to ${texteEnCouleur(stringNombre(rapport[alea1]))} times ${texteEnCouleur(distanceReel, 'blue')}${sp()}km. <br>` +\n `${texteEnCouleur(stringNombre(rapport[alea1]))} $\\\\times$ ${texteEnCouleur(distanceReel, 'blue')}${sp()}km = ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea1] * distanceReel, 2))}${sp()}km <br>` +\n texteEnCouleurEtGras(`Conclusion: The ${prenoms[0]} path is ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea1] * distanceReel, 2))}${sp()}km.`, 'black') + '<br>'\n let enonceAMC2 = `${numAlpha(1)} Two cities are ${distanceReelQ2}${sp()}km apart.`\n texte += '<br>' + enonceAMC2\n enonceAMC2 += `What distance, in cm, will we measure on the map between these two cities${sp()}?`\n texte += `What distance will we measure on the map between these two cities${sp()}?` + ajouteChampTexteMathLive(exo, i + 1, 'width25 inline', { texteApres: ' cm' })\n texteCorr += `${numAlpha(1)} ${distanceReelQ2}${sp()}km, c'est ${texteEnCouleur(stringNombre(rapport[alea2]))} fois ${distanceReel}${sp()}km.\nOr ${distanceReel}${sp()}km est représenté par ${texteEnCouleur(distanceCarte, 'blue')} cm sur la carte. <br>` +\n `So ${distanceReelQ2}${sp()}km is represented by ${texteEnCouleur(stringNombre(rapport[alea2]))} times ${texteEnCouleur(distanceCarte, 'blue')} cm on the map. <br>` +\n `${texteEnCouleur(stringNombre(rapport[alea2]))} $\\\\times$ ${texteEnCouleur(distanceCarte, 'blue')} cm = ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea2] * distanceCarte, 2))} cm <br>` +\n texteEnCouleurEtGras(`Conclusion: The two cities are separated by ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea2] * distanceCarte, 2))} cm on the map.`, 'black')\n if (!context.isAmc) {\n setReponse(exo, i, calculANePlusJamaisUtiliser(rapport[alea1] * distanceReel, 2))\n setReponse(exo, i + 1, calculANePlusJamaisUtiliser(rapport[alea2] * distanceCarte, 2))\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n options: { multicols: true, barreseparation: true },\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte: enonceAMC1,\n valeur: [calculANePlusJamaisUtiliser(rapport[alea1] * distanceReel, 2)],\n param: {\n digits: nombreDeChiffresDe(calculANePlusJamaisUtiliser(rapport[alea1] * distanceReel, 2)),\n decimals: nombreDeChiffresDansLaPartieDecimale(calculANePlusJamaisUtiliser(rapport[alea1] * distanceReel, 2)),\n signe: false,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: enonceAMC2,\n valeur: [calculANePlusJamaisUtiliser(rapport[alea2] * distanceCarte, 2)],\n param: {\n digits: nombreDeChiffresDe(calculANePlusJamaisUtiliser(rapport[alea2] * distanceCarte, 2)),\n decimals: nombreDeChiffresDansLaPartieDecimale(calculANePlusJamaisUtiliser(rapport[alea2] * distanceCarte, 2)),\n signe: false,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n }\n return {\n qtexte: texte,\n qtexteCorr: texteCorr\n }\n}\n\nfunction questionRecouvrirSurface (exo, i) { // peinture, gazon, carrelage pour une surface donnée.\n let texte, texteCorr\n const liste = [\n {\n matiere: 'paint',\n unite: 'L',\n qtt_matiere_unitaire: [0.5, 1, 1.5, 2], // quantité au m²\n qtt_surface: [10, 25, 15] // nombre de m² indiqués sur l'emballage\n },\n {\n matiere: 'grass',\n unite: 'kg',\n qtt_matiere_unitaire: [2.5, 3, 5, 10],\n qtt_surface: [200, 175, 150]\n },\n {\n matiere: 'tiles',\n unite: 'tiles',\n qtt_matiere_unitaire: [24, 40, 60, 100],\n qtt_surface: [10, 20, 5]\n }\n ]\n const prenoms = [prenomF(), prenomM()]\n if (versionSimplifiee) {\n const alea1 = 2 // Pour avoir un coef entier, qtt_matiere_unitaire doit être plus grand que qtt_surface, ce qui n'is possible that'avec les carreaux\n const quantiteD = couplePremiersEntreEux[indexN][1]\n const surfaceD = couplePremiersEntreEux[indexN][0]\n const coef = randint(2, 5)\n const quantiteF = calculANePlusJamaisUtiliser(quantiteD * coef, 3)\n const surfaceF = calculANePlusJamaisUtiliser(surfaceD * coef, 3)\n const enonceAMC = `${prenoms[0]} must buy ${liste[alea1].matiere}.` +\n `On the instructions, it is indicated to provide ${quantiteD}${sp()}${liste[alea1].unite} for ${surfaceD}${sp()}m${texteExposant(2)}. <br>` +\n `How many ${sp()}${liste[alea1].unite} should she buy for an area of ${surfaceF}${sp()}m${texteExposant(2)}${sp()}?`\n texte = enonceAMC + ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: ' ' + liste[alea1].unite })\n texteCorr = `${stringNombre(surfaceF)}${sp()}m${texteExposant(2)} is ${texteEnCouleur(coef)} times ${surfaceD}${sp()}m${texteExposant(2)} <br>` +\n `We will therefore need ${texteEnCouleur(coef)} times ${texteEnCouleur(quantiteD, 'blue')}${sp()}${liste[alea1].unite} for ${stringNombre(surfaceF)}${sp()}m${texteExposant(2)} <br>` +\n `${texteEnCouleur(coef)} $\\\\times$ ${texteEnCouleur(quantiteD, 'blue')}${sp()}${liste[alea1].unite} = ${stringNombre(quantiteF)}${sp()}${liste[alea1].unite}<br>` +\n texteEnCouleurEtGras(`Conclusion: ${prenoms[0]} must buy ${quantiteF}${sp()}${liste[alea1].unite}.`, 'black') + '<br>'\n if (!context.isAmc) {\n setReponse(exo, i, quantiteF)\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte: enonceAMC,\n valeur: [quantiteF],\n param: {\n digits: nombreDeChiffresDe(quantiteF),\n decimals: nombreDeChiffresDansLaPartieDecimale(quantiteF),\n signe: false,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n }\n } else {\n const alea1 = randint(0, liste.length - 1)\n const alea2 = randint(0, liste[alea1].qtt_matiere_unitaire.length - 1)\n const alea3 = randint(0, liste[alea1].qtt_surface.length - 1)\n const rapport = [0.25, 0.5, 0.75, 1.25, 1.5, 2, 3, 4, 5] // choix parmi des rapports simples (en 6eme cela paraît suffisant)\n const quantite = liste[alea1].qtt_matiere_unitaire[alea2]\n const alea4 = randint(0, rapport.length - 1)\n const surfaceFinale = calculANePlusJamaisUtiliser(rapport[alea4] * liste[alea1].qtt_surface[alea3], 3)\n const alea5 = randint(0, rapport.length - 1, [alea4])\n const quantite2 = calculANePlusJamaisUtiliser(rapport[alea5] * liste[alea1].qtt_matiere_unitaire[alea2], 3)\n const alea6 = randint(-2, 2, [0])\n const surfaceFinale2 = calculANePlusJamaisUtiliser(rapport[alea5] * liste[alea1].qtt_surface[alea3] + alea6, 3)\n const qttaffichage = stringNombre(quantite) // Pour affichage avec virgule en séparateur.\n const enonceAMC1 = `${numAlpha(0)} ${prenoms[0]} must buy ${liste[alea1].matiere}.` +\n `On the instructions, it is indicated to provide ${qttaffichage}${sp()}${liste[alea1].unite} for ${liste[alea1].qtt_surface[alea3]}${sp()}m${texteExposant(2)}. <br>` +\n `How many ${sp()}${liste[alea1].unite} should she buy for an area of ${stringNombre(surfaceFinale)}${sp()}m${texteExposant(2)}${sp()}?`\n texte = enonceAMC1 + ajouteChampTexteMathLive(exo, i, 'width25 inline', { texteApres: ' ' + liste[alea1].unite })\n texteCorr = `${numAlpha(0)} ${stringNombre(surfaceFinale)}${sp()}m${texteExposant(2)} is ${texteEnCouleur(stringNombre(rapport[alea4]))} times ${liste[alea1].qtt_surface[alea3]}${sp()}m${texteExposant(2)}. <br>` +\n `We will therefore need ${texteEnCouleur(stringNombre(rapport[alea4]))} times ${texteEnCouleur(qttaffichage, 'blue')}${sp()}${liste[alea1].unite} for ${stringNombre(surfaceFinale)}${sp()}m${texteExposant(2)}. <br>` +\n `${texteEnCouleur(stringNombre(rapport[alea4]))} $\\\\times$ ${texteEnCouleur(qttaffichage, 'blue')}${sp()}${liste[alea1].unite} = ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea4] * quantite, 3))}${sp()}${liste[alea1].unite}<br>` +\n texteEnCouleurEtGras(`Conclusion: ${prenoms[0]} must buy ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea4] * quantite, 3))}${sp()}${liste[alea1].unite}.`, 'black') + '<br>'\n const enonceAMC2 = `${numAlpha(1)} ${prenoms[1]} bought ${liste[alea1].matiere}. He still has ${stringNombre(quantite2)}${sp()}${liste[alea1].unite}. On the instructions, it is also indicated to provide ${qttaffichage}${sp()}${liste[alea1].unite} for ${stringNombre(liste[alea1].qtt_surface[alea3])}${sp()}m${texteExposant(2)}. <br>` +\n `Does he have enough for the area of ${stringNombre(surfaceFinale2)}${sp()}m${texteExposant(2)} that he still needs to make${sp()}?<br>`\n texte += '<br>' + enonceAMC2 + ajouteChampTexteMathLive(exo, i + 1, 'width25 inline', { texteApres: ' (Yes or no)' })\n texteCorr += `${numAlpha(1)} ${stringNombre(quantite2)}${sp()}${liste[alea1].unite} is ${texteEnCouleur(stringNombre(rapport[alea5]))} times ${qttaffichage}${sp()}${liste[alea1].unite}. <br>` +\n `Avec ${stringNombre(quantite2)}${sp()}${liste[alea1].unite} on peut donc traiter une surface de ${texteEnCouleur(stringNombre(rapport[alea5]))}\nfois ${texteEnCouleur(stringNombre(liste[alea1].qtt_surface[alea3]), 'blue')}${sp()}m${texteExposant(2)}. <br>` +\n `${texteEnCouleur(stringNombre(rapport[alea5]))} $\\\\times$ ${texteEnCouleur(stringNombre(liste[alea1].qtt_surface[alea3]), 'blue')}${sp()}m${texteExposant(2)} = ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea5] * liste[alea1].qtt_surface[alea3], 3))}${sp()}m${texteExposant(2)}<br>`\n texteCorr += rapport[alea5] * liste[alea1].qtt_surface[alea3] < surfaceFinale2\n ? texteEnCouleurEtGras(`Conclusion: ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea5] * liste[alea1].qtt_surface[alea3], 3))}${sp()}m${texteExposant(2)} < ${stringNombre(surfaceFinale2)}${sp()}m${texteExposant(2)} therefore ${prenoms[1]} has enough for ${surfaceFinale2}${sp()}m${texteExposant(2)}.`, 'black') + ' <br>'\n : texteEnCouleurEtGras(`Conclusion: ${stringNombre(calculANePlusJamaisUtiliser(rapport[alea5] * liste[alea1].qtt_surface[alea3], 3))}${sp()}m${texteExposant(2)} > ${stringNombre(surfaceFinale2)}${sp()}m${texteExposant(2)} therefore ${prenoms[1]} does not have enough for ${surfaceFinale2}${sp()}m${texteExposant(2)}.`, 'black') + ' <br>'\n\n if (!context.isAmc) {\n setReponse(exo, i, calculANePlusJamaisUtiliser(rapport[alea4] * quantite, 3))\n setReponse(exo, i + 1, calculANePlusJamaisUtiliser(rapport[alea5] * liste[alea1].qtt_surface[alea3], 3) > surfaceFinale2 ? 'Yes' : 'No')\n } else {\n exo.autoCorrection[i] = {\n enonce: '',\n enonceAvant: false,\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: texteCorr,\n statut: '',\n reponse: {\n texte: enonceAMC1,\n valeur: [calculANePlusJamaisUtiliser(rapport[alea4] * quantite, 3)],\n param: {\n digits: nombreDeChiffresDe(calculANePlusJamaisUtiliser(rapport[alea4] * quantite, 3)),\n decimals: nombreDeChiffresDansLaPartieDecimale(calculANePlusJamaisUtiliser(rapport[alea4] * quantite, 3)),\n signe: false,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCOpen',\n propositions: [{\n enonce: enonceAMC2,\n statut: 2\n }]\n }\n ]\n }\n }\n }\n return {\n qtexte: texte,\n qtexteCorr: texteCorr\n }\n}\n\n// _______ End of functions corresponding to problem situations _____\n\nexport const uuid = 'f7a14'\nexport const ref = '6P11'\nexport default function ProportionnaliteParLinearite () {\n let question\n Exercice.call(this) // Héritage de la classe Exercice()\n context.isHtml ? (this.spacing = 2) : (this.spacing = 1)\n context.isHtml ? (this.spacingCorr = 2) : (this.spacingCorr = 1)\n this.nbQuestions = 6\n this.nbCols = 1\n this.nbColsCorr = 1\n this.besoinFormulaireCaseACocher = ['Simplified version with only integers']\n this.sup = false\n this.besoinFormulaire2Texte = ['Type of questions', 'Numbers separated by hyphens\\n1: Purchase\\n2: Recipe\\n3: Dilution\\n4: Distance\\n5: Scale\\n6: Area\\n7: Mixture']\n this.sup2 = 7\n this.nouvelleVersion = function () {\n if (this.interactif) {\n this.consigne = ''\n } else {\n this.consigne = this.nbQuestions === 1 ? 'Answer the question asked with justification.' : 'Answer the questions asked with reasons.'\n }\n let indiceQuestion = 0\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n this.autoCorrection = []\n /*\n let listeIndexSituationsDisponible = []\n\n if (!this.sup2) { // Si aucune liste n'est saisie\n listeIndexSituationsDisponible = rangeMinMax(1, 6)\n } else {\n if (typeof (this.sup2) === 'number') { // Si c'is a number, the number was entered in the address bar\n listeIndexSituationsDisponible[0] = contraindreValeur(1, 7, this.sup2, 7)\n } else {\n listeIndexSituationsDisponible = this.sup2.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -\n for (let i = 0; i < listeIndexSituationsDisponible.length; i++) { // on a un tableau avec des strings : ['1', '5', '2','toto','45']\n listeIndexSituationsDisponible[i] = contraindreValeur(1, 7, parseInt(listeIndexSituationsDisponible[i]), 7) // parseInt en fait un tableau d'entiers\n }\n }\n }\n if (compteOccurences(listeIndexSituationsDisponible, 7) > 0) listeIndexSituationsDisponible = rangeMinMax(1, 6) // Teste si l'utilisateur a choisi tout\n const listeIndexSituations = combinaisonListes(listeIndexSituationsDisponible, this.nbQuestions) // permet de ne pas avoir 2 fois la même situation si - de questions que de situations\n */\n\n const listeIndexSituations = gestionnaireFormulaireTexte({\n max: 6,\n defaut: 7,\n melange: 7,\n nbQuestions: this.nbQuestions,\n saisie: this.sup2\n })\n\n for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n indexN = randint(0, couplePremiersEntreEux.length - 1)\n if (this.sup) {\n versionSimplifiee = true\n } else {\n versionSimplifiee = false\n }\n switch (parseInt(listeIndexSituations[i])) {\n case 1:\n question = questionAchat(this, indiceQuestion)\n if (!context.isAmc) {\n indiceQuestion += 2\n } else {\n indiceQuestion++\n }\n break\n case 2:\n question = questionRecette(this, indiceQuestion)\n if (!context.isAmc) {\n indiceQuestion += 2\n } else {\n indiceQuestion++\n }\n break\n case 3:\n question = questionDillution(this, indiceQuestion)\n indiceQuestion++\n break\n case 4:\n question = questionDistance(this, indiceQuestion)\n if (versionSimplifiee) {\n indiceQuestion++\n } else {\n if (!context.isAmc) {\n indiceQuestion += 2\n } else {\n indiceQuestion++\n }\n }\n break\n case 5:\n question = questionEchelle(this, indiceQuestion)\n if (!context.isAmc) {\n indiceQuestion += 2\n } else {\n indiceQuestion++\n }\n break\n case 6:\n question = questionRecouvrirSurface(this, indiceQuestion)\n if (versionSimplifiee) {\n indiceQuestion++\n } else {\n if (!context.isAmc) {\n indiceQuestion += 2\n } else {\n indiceQuestion++\n }\n }\n break\n }\n if (this.listeQuestions.indexOf(question.qtexte) === -1) { // Si la question n'a jamais été posée, on la garde.\n this.listeQuestions.push(question.qtexte)\n this.listeCorrections.push(question.qtexteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this) // Espacement de 2 em entre chaque questions.\n }\n}\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","versionSimplifiee","indexN","couplePremiersEntreEux","questionAchat","exo","i","listeDeLieux","listeDeChoses","listeDePrixUnit","index1","randint","prenoms","prenomF","prenomM","index2","objet","pu","x","y","calculANePlusJamaisUtiliser","met","p","z","enonceAMC1","numAlpha","texPrix","sp","texte","ajouteChampTexteMathLive","texteCorr","texteEnCouleur","stringNombre","texteEnCouleurEtGras","enonceAMC2","context","arrondi","nombreDeChiffresDe","nombreDeChiffresDansLaPartieDecimale","nombreDeChiffresDansLaPartieEntiere","setReponse","questionRecette","liste","nbPersonneInit","alea4","nbPersonneFinal","alea1","alea2","alea3","quantite","quantite2","quantiteReponse","questionDillution","uniteSolvantVolumeFinal","volumeInitial","volumeFinal","volumeFinalAff","volumeInitialAff","enonceAMC","questionDistance","duree","dureeQ","distance","indice","dureeR","rapportQuestion2","reponseQ1","questionEchelle","distanceCarte","distanceReel","rapport","distanceCarte2","distanceReelQ2","questionRecouvrirSurface","quantiteD","surfaceD","coef","quantiteF","surfaceF","texteExposant","surfaceFinale","alea5","alea6","surfaceFinale2","qttaffichage","uuid","ref","ProportionnaliteParLinearite","question","Exercice","indiceQuestion","listeIndexSituations","gestionnaireFormulaireTexte","cpt","listeQuestionsToContenu"],"mappings":"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"}