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