File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/3F20-PMxoTMIN.js.map
{"version":3,"file":"3F20-PMxoTMIN.js","sources":["../../src/exercices/3e/3F20.js"],"sourcesContent":["import { droite } from '../../lib/2d/droites.js'\nimport { point, tracePoint } from '../../lib/2d/points.js'\nimport { polyline } from '../../lib/2d/polygones.js'\nimport { repere } from '../../lib/2d/reperes.js'\nimport { texteParPoint } from '../../lib/2d/textes.js'\nimport { choice } from '../../lib/outils/arrayOutils'\nimport { ecritureParentheseSiNegatif } from '../../lib/outils/ecritures'\nimport { rangeMinMax } from '../../lib/outils/nombres'\nimport { pgcd, premierAvec } from '../../lib/outils/primalite'\nimport { texNombre } from '../../lib/outils/texNombre'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport FractionEtendue from '../../modules/FractionEtendue.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { contraindreValeur, gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport Exercice from '../deprecatedExercice.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Linear functions'\nexport const interactifType = 'mathLive'\nexport const interactifReady = true\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\nexport const dateDePublication = '13/04/2023'\nexport const ref = '3F20'\nexport const uuid = 'aeb5a'\n/**\n * Questions sur les fonctions linéaires\n * @author Jean-Claude Lhote\n * @constructor\n */\nexport default function FonctionsLineaires () {\n Exercice.call(this)\n this.comment = 'The exercise offers different types of questions on linear functions:<br>image calculation, antecedent calculation or determination of the coefficient.<br>This coefficient can be either relative integer or relative rational.<br>Certain questions image calculations require the calculation of the coefficient beforehand.<br>The choice was made of a positive integer primary antecedent, the coefficient being negative with a probability of 50%.<br>'\n this.sup = 1 // coefficient entier relatif\n this.nbQuestions = 8\n this.sup2 = '9'\n\n this.besoinFormulaireNumerique = ['Coefficient : ', 3, '1: Integer coefficient\\n2: Rational coefficient\\n3: Combination']\n this.besoinFormulaire2Texte = ['Types of questions', 'Numbers separated by hyphens:\\n1: Image by expression\\n2: Image by values\\n3: Image by graph\\n4: Antecedent by expression\\n5: Antecedent by values\\n6: Antecedent by graph\\n7: Expression by values\\n8 : Expression by graph\\n9: Combination']\n\n this.nouvelleVersion = function () {\n this.listeQuestions = []\n this.listeCorrections = []\n this.autoCorrection = []\n const typesDeQuestionsDisponibles = [\n 'imageByExpression',\n 'imageByValues',\n 'imageByGraphic',\n 'antecedentByExpression',\n 'historyByValues',\n 'historyByGraph',\n 'expressionByValues',\n 'expressionByGraph'\n ]\n const listeTypesDeQuestions = gestionnaireFormulaireTexte({\n saisie: this.sup2,\n min: 1,\n max: 8,\n defaut: 9,\n nbQuestions: this.nbQuestions,\n listeOfCase: typesDeQuestionsDisponibles,\n melange: 9\n })\n const antecedents = []\n for (let i = 0, texteAMC, valeurAMC, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n const elementAmc = {}\n const nomFonction = String.fromCharCode(102 + i)\n this.sup = contraindreValeur(1, 3, this.sup, 1)\n let texte = ''\n let texteCorr = ''\n // value associated with image0 for coefficient calculation: image0 = coefficient * antecedent0\n // we find these values antecedent0 and image0 in the statement for certain questions.\n // it is antecedent and image which will be calculated.\n const antecedent0 = 2 * randint(2, 10) + 1\n let coefficient, image\n switch (this.sup) {\n case 1:\n coefficient = randint(2, 10) * choice([-1, 1])\n break\n case 2:\n coefficient = new FractionEtendue(premierAvec(antecedent0, antecedents, false) * choice([-1, 1]), antecedent0)\n break\n case 3:\n if (Math.random() < 0.5) {\n coefficient = randint(2, 10) * choice([-1, 1])\n } else {\n coefficient = new FractionEtendue(premierAvec(antecedent0, antecedents, false) * choice([-1, 1]), antecedent0)\n }\n break\n }\n let imageString, formatInteractif\n //\n const antecedent = choice(rangeMinMax(-10, 10, [antecedent0, 0, 1, -1, 2 * antecedent0]))\n const image0 = coefficient instanceof FractionEtendue ? coefficient.num : coefficient * antecedent0\n if (coefficient instanceof FractionEtendue) {\n image = coefficient.multiplieEntier(antecedent)\n imageString = image.texFSD\n formatInteractif = 'fractionEqual'\n } else {\n image = coefficient * antecedent\n imageString = texNombre(image, 0)\n formatInteractif = 'calculation'\n }\n antecedents.push(antecedent, antecedent0)\n const coefficientString = coefficient instanceof FractionEtendue ? coefficient.simplifie().texFSD : coefficient.toString()\n let xUnite, yUnite, xThickDistance, yThickDistance, xThickMin, yThickMin\n const tableauEchelleX = [[5, 1, 1], [10, 0.5, 2], [20, 0.25, 4], [50, 0.1, 10], [100, 0.05, 20]]\n const tableauEchelleY = [[5, 1, 1], [10, 0.5, 2], [20, 0.25, 4], [50, 0.1, 10], [100, 0.05, 20], [200, 0.025, 40], [500, 0.01, 100]]\n xUnite = tableauEchelleX[0][1]\n xThickDistance = tableauEchelleX[0][2]\n xThickMin = -tableauEchelleX[0][0] - xThickDistance\n for (let k = 1; Math.abs(antecedent0) > tableauEchelleX[k - 1][0]; k++) {\n xUnite = tableauEchelleX[k][1]\n xThickDistance = tableauEchelleX[k][2]\n xThickMin = -tableauEchelleX[k][0] - xThickDistance\n }\n yUnite = tableauEchelleY[0][1]\n yThickDistance = tableauEchelleY[0][2]\n yThickMin = -tableauEchelleY[0][0] - yThickDistance\n for (let k = 1; Math.abs(image0) > tableauEchelleY[k - 1][0]; k++) {\n yUnite = tableauEchelleY[k][1]\n yThickDistance = tableauEchelleY[k][2]\n yThickMin = -tableauEchelleY[k][0] - yThickDistance\n }\n const xMin = xThickMin\n const xMax = -xThickMin + xThickDistance\n const yMin = yThickMin\n const yMax = -yThickMin\n const xmin = xMin * xUnite\n const ymin = yMin * yUnite\n const xmax = xMax * xUnite + 0.5\n const ymax = yMax * yUnite + 0.5\n const r = repere({\n xUnite,\n yUnite,\n xMin,\n yMin,\n xMax,\n yMax,\n xThickDistance,\n yThickDistance,\n yLabelEcart: 0.8,\n grille: false\n })\n const origine = point(0, 0)\n const M = point(antecedent0 * xUnite, image0 * yUnite)\n const d = droite(origine, M)\n const t = tracePoint(M)\n const projeteX = point(M.x, 0)\n const projeteY = point(0, M.y)\n const pointilles = polyline([projeteY, M, projeteX], 'red')\n pointilles.pointilles = 2\n pointilles.epaisseur = 1\n const coordonnees = texteParPoint(`(${antecedent0},${image0})`, point(M.x + 0.2, M.y), 'RIGHT')\n\n switch (listeTypesDeQuestions[i]) {\n // We determine the image from the general expression of the function\n case 'imageByExpression':\n texte += `Let $${nomFonction}(x)=${coefficient instanceof FractionEtendue ? coefficient.texFSD : texNombre(coefficient)}x$.<br>`\n texte += `Calculate the image of $${antecedent}$ by $${nomFonction}$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n texteCorr += `$${nomFonction}(${texNombre(antecedent, 0)})=${coefficient instanceof FractionEtendue ? coefficient.texFSD : texNombre(coefficient, 0)} \\\\times ${ecritureParentheseSiNegatif(antecedent)}`\n texteCorr += `=${coefficient instanceof FractionEtendue ? image.texFSD : texNombre(image, 0)}$`\n if (context.isAmc) {\n texteAMC = `image of $${antecedent}$ by $${nomFonction}$`\n valeurAMC = image\n } else setReponse(this, i, image, { formatInteractif })\n break\n case 'imageByValues':\n texte += `Let $${nomFonction}$ be the linear function such that $${nomFonction}(${antecedent0})=${texNombre(image0, 0)}$.<br>`\n texte += `Calculate the image of $${antecedent}$ by $${nomFonction}$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n texteCorr += `As $${nomFonction}(${antecedent0})=${texNombre(image0, 0)}$, the coefficient $a$ such that $${nomFonction}(x)=ax$ satisfies $a\\\\times ${antecedent0} = ${image0}$.<br>`\n texteCorr += `We deduce $a=\\\\dfrac{${texNombre(image0, 0)}}{${antecedent0}}`\n if (pgcd(image0, antecedent0) !== 1) {\n const simplification = (new FractionEtendue(image0, antecedent0)).simplifie().texFSD\n texteCorr += `=${simplification}`\n }\n texteCorr += `$ and consequently $${nomFonction}(x)=${coefficientString}x$.<br>`\n texteCorr += `So $${nomFonction}(${texNombre(antecedent, 0)})=${coefficient instanceof FractionEtendue ? coefficient.texFSD : texNombre(coefficient, 0)} \\\\times ${ecritureParentheseSiNegatif(antecedent)}`\n texteCorr += `=${coefficient instanceof FractionEtendue ? image.texFSD : texNombre(image, 0)}$.`\n if (context.isAmc) {\n texteAMC = `image of $${antecedent}$ by $${nomFonction}$`\n valeurAMC = image\n } else setReponse(this, i, image, { formatInteractif })\n break\n case 'imageByGraphic':\n texte += `The line representing the linear function $${nomFonction}$ passes through the coordinate point $(${antecedent0},${image0})$.<br>`\n texte += `Calculate the image of $${antecedent}$ by $${nomFonction}$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n texte += '<br>'\n texte += mathalea2d({\n scale: 0.6,\n xmin,\n ymin,\n xmax,\n ymax\n }, r, d, t, coordonnees, pointilles)\n texteCorr += `As $${nomFonction}(${antecedent0})=${image0}$ and $${nomFonction}(x)=ax$ we deduce $a\\\\times ${antecedent0} = ${image0}$ or $a=\\\\dfrac{${image0}}{${antecedent0}}${coefficient instanceof FractionEtendue ? '' : '=' + coefficientString}$.<br>`\n texteCorr += `So $${nomFonction}(${antecedent})=${coefficientString}\\\\times ${ecritureParentheseSiNegatif(antecedent)} = ${imageString}$.`\n if (context.isAmc) {\n texteAMC = `image of $${antecedent}$ by $${nomFonction}$`\n valeurAMC = image\n } else setReponse(this, i, image, { formatInteractif })\n break\n case 'antecedentByExpression':\n texte += `Let $${nomFonction}(x)=${coefficient instanceof FractionEtendue ? coefficient.texFSD : texNombre(coefficient)}x$.<br>`\n texte += `Calculate the antecedent of $${imageString}$ by $${nomFonction}$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n texteCorr += `Let $b$ be the antecedent of $${imageString}$, then $${nomFonction}(b)=${coefficientString}\\\\times b=${imageString}$.<br>`\n if (coefficient instanceof FractionEtendue) {\n texteCorr += `So $b=\\\\dfrac{${image.texFSD}}{${coefficientString}}=`\n texteCorr += `${image.texFSD}\\\\times ${coefficient.inverse().texFSP}=`\n } else {\n texteCorr += `So $b=\\\\dfrac{${texNombre(image, 0)}}{${coefficientString}}=`\n }\n texteCorr += `${antecedent}$.`\n if (context.isAmc) {\n texteAMC = `antecedent of $${imageString}$ by $${nomFonction}$`\n valeurAMC = antecedent\n } else setReponse(this, i, antecedent, { formatInteractif: 'calculation' })\n break\n case 'historyByValues':\n texte += `Let $${nomFonction}$ be the linear function such that $${nomFonction}(${antecedent0})=${texNombre(image0, 0)}$.<br>`\n texte += `Calculate the antecedent of $${imageString}$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n texteCorr += `As $${nomFonction}(${antecedent0})=${texNombre(image0, 0)}$, the coefficient $a$ such that $${nomFonction}(x)=ax$ satisfies $a\\\\times ${antecedent0} = ${image0}$.<br>`\n texteCorr += `$a=\\\\dfrac{${texNombre(image0, 0)}}{${antecedent0}}`\n if (pgcd(image0, antecedent0) !== 1) {\n const simplification = (new FractionEtendue(image0, antecedent0)).simplifie().texFSD\n texteCorr += `=${simplification}`\n }\n texteCorr += `$.<br>Let $b$ be the antecedent of $${imageString}$, then $${nomFonction}(b)=${coefficientString} \\\\times b=${imageString}$.<br>`\n texteCorr += `We deduce that $b=\\\\dfrac{${imageString}}{${coefficientString}}=`\n if (coefficient instanceof FractionEtendue) {\n texteCorr += `${imageString}\\\\times ${coefficient.inverse().texFSP}=`\n }\n texteCorr += `${antecedent}$.`\n if (context.isAmc) {\n texteAMC = `antecedent of $${imageString}$ by $${nomFonction}$`\n valeurAMC = antecedent\n } else setReponse(this, i, antecedent, { formatInteractif: 'calculation' })\n break\n case 'historyByGraph':\n texte += `The line representing the linear function $${nomFonction}$ passes through the coordinate point $(${antecedent0},${image0})$.<br>`\n texte += `Calculate the antecedent of $${imageString}$ by $${nomFonction}$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n texte += '<br>'\n texte += mathalea2d({\n scale: 0.6,\n xmin,\n ymin,\n xmax,\n ymax\n }, r, d, t, coordonnees, pointilles)\n texteCorr += `As $${nomFonction}(${antecedent0})=${image0}$ then $${nomFonction}(x)=\\\\dfrac{${image0}}{${antecedent0}}x`\n if (pgcd(image0, antecedent0) !== 1) {\n const simplification = (new FractionEtendue(image0, antecedent0)).simplifie().texFSD\n texteCorr += `=${simplification}x`\n }\n texteCorr += `$<br>Let $b$ be the antecedent of $${imageString}$, then $${nomFonction}(b)=${coefficientString}\\\\times b=${imageString}$.<br>`\n texteCorr += `We deduce that $b=\\\\dfrac{${imageString}}{${coefficientString}}=`\n if (coefficient instanceof FractionEtendue) {\n texteCorr += `${imageString}\\\\times ${coefficient.inverse().texFSP}=`\n }\n texteCorr += `${antecedent}$.`\n if (context.isAmc) {\n texteAMC = `antecedent of $${imageString}$ by $${nomFonction}$`\n valeurAMC = antecedent\n } else setReponse(this, i, antecedent, { formatInteractif: 'calculation' })\n break\n case 'expressionByValues':\n texte += `Let $${nomFonction}$ be the linear function such that $${nomFonction}(${antecedent0})=${texNombre(image0, 0)}$.<br>`\n if (context.isAmc) {\n texte += `Give the coefficient of $${nomFonction}$.`\n } else {\n texte += `Give the expression for $${nomFonction}(x)$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n }\n texteCorr += `As $${nomFonction}(${antecedent0})=${texNombre(image0, 0)}$, the coefficient $a$ such that $${nomFonction}(x)=ax$ satisfies $a\\\\times ${antecedent0} = ${image0}$.<br>`\n texteCorr += `Let $a=\\\\dfrac{${texNombre(image0, 0)}}{${antecedent0}}`\n if (pgcd(image0, antecedent0) !== 1) {\n const simplification = (new FractionEtendue(image0, antecedent0)).simplifie().texFSD\n texteCorr += `=${simplification}`\n }\n texteCorr += `$.<br>So $${nomFonction}(x)=${coefficientString}x$.`\n if (context.isAmc) {\n texteAMC = `coefficient of $${nomFonction}$: value of $a$ in $${nomFonction}(x)=ax$`\n valeurAMC = coefficient\n } else {\n setReponse(this, i, [`${nomFonction}(x)=${coefficientString}x`, `${coefficientString}x`], { formatInteractif: 'calculation' })\n }\n break\n case 'expressionByGraph':\n texte += `The line representing the linear function $${nomFonction}$ passes through the coordinate point $(${antecedent0},${image0})$.<br>`\n if (context.isAmc) {\n texte += `Give the coefficient of $${nomFonction}$.`\n } else {\n texte += `Give the expression for $${nomFonction}(x)$.` + ajouteChampTexteMathLive(this, i, 'largeur15 inline')\n }\n texte += '<br>'\n texte += mathalea2d({\n scale: 0.6,\n xmin,\n ymin,\n xmax,\n ymax\n }, r, d, t, coordonnees, pointilles)\n texteCorr += `As $${nomFonction}(${antecedent0})=${texNombre(image0, 0)}$, the coefficient $a$ such that $${nomFonction}(x)=ax$ is:<br>`\n texteCorr += `$a=\\\\dfrac{${texNombre(image0, 0)}}{${antecedent0}}`\n if (pgcd(image0, antecedent0) !== 1) {\n const simplification = (new FractionEtendue(image0, antecedent0)).simplifie().texFSD\n texteCorr += `=${simplification}`\n }\n texteCorr += `$.<br>So $${nomFonction}(x)=${coefficientString}x$.`\n if (context.isAmc) {\n texteAMC = `Coefficient of $${nomFonction}$: value of $a$ in $${nomFonction}(x)=ax$`\n valeurAMC = coefficient\n } else {\n setReponse(this, i, [`${nomFonction}(x)=${coefficientString}x`, `${coefficientString}x`], { formatInteractif: 'calculation' })\n }\n break\n }\n const JCAMC = false // Si besoin de prendre en compte une info supplémentaire avant les cases à cocher dans AMC\n\n if (this.questionJamaisPosee(i, coefficient, antecedent0, image0)) {\n if (context.isAmc) {\n elementAmc.propositions = [\n {\n type: 'AMCNum',\n propositions: [{\n reponse: {\n texte: JCAMC ? texteAMC : '',\n valeur: valeurAMC,\n param: {\n signe: true,\n digits: 2 // Ainsi, les réponses décimales auront toujours 2 digits et les réponses fractionnaires auront 2 digits pour le numérateur ET le dénominateur.\n }\n }\n }\n ]\n }\n ]\n elementAmc.enonce = texte + (valeurAMC instanceof FractionEtendue ? ' We will give the answer in the form of an irreducible fraction.' : '') + '\\\\\\\\'\n elementAmc.enonceAvant = false\n elementAmc.enonceApresNumQuestion = true\n elementAmc.propositions[0].propositions[0].texte = texteCorr\n elementAmc.options = { multicolsAll: true }\n this.autoCorrection[i] = elementAmc\n }\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n}\n"],"names":["titre","interactifType","interactifReady","amcReady","amcType","dateDePublication","ref","uuid","FonctionsLineaires","Exercice","typesDeQuestionsDisponibles","listeTypesDeQuestions","gestionnaireFormulaireTexte","antecedents","i","texteAMC","valeurAMC","cpt","elementAmc","nomFonction","contraindreValeur","texte","texteCorr","antecedent0","randint","coefficient","image","choice","FractionEtendue","premierAvec","imageString","formatInteractif","antecedent","rangeMinMax","image0","texNombre","coefficientString","xUnite","yUnite","xThickDistance","yThickDistance","xThickMin","yThickMin","tableauEchelleX","tableauEchelleY","k","xMin","xMax","yMin","yMax","xmin","ymin","xmax","ymax","r","repere","origine","point","M","d","droite","t","tracePoint","projeteX","projeteY","pointilles","polyline","coordonnees","texteParPoint","ajouteChampTexteMathLive","ecritureParentheseSiNegatif","context","setReponse","pgcd","simplification","mathalea2d","listeQuestionsToContenu"],"mappings":"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"}