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/betaTracerParabole-u5WqqcaR.js.map
{"version":3,"file":"betaTracerParabole-u5WqqcaR.js","sources":["../../src/exercices/beta/betaTracerParabole.js"],"sourcesContent":["import { courbe } from '../../lib/2d/courbes.js'\nimport { repere } from '../../lib/2d/reperes.js'\nimport { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { texFractionReduite } from '../../lib/outils/deprecatedFractions.js'\nimport { ecritureAlgebrique, ecritureParentheseSiNegatif } from '../../lib/outils/ecritures.js'\nimport { lettreMinusculeDepuisChiffre } from '../../lib/outils/outilString.js'\nimport { texNombre, texRacineCarree } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport { listeQuestionsToContenu, randint, calculANePlusJamaisUtiliser } from '../../modules/outils.js'\nimport { simplify, floor } from 'mathjs'\n\nconst EgalEnviron = (v, d = 3) => ((Math.abs(v) * 10 ** d) % 1 > 0 ? '\\\\approx' : '=') + texNombre(calculANePlusJamaisUtiliser(v, 3))\n\nexport const titre = 'Etude d\\'une parabole'\n\n/**\n * @author Eric Schrafstetter\n */\nexport default function TrouverEquationDeParabole () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.titre = titre\n  this.consigne = 'Etude d\\'une parabole'\n  this.nbQuestions = 2\n  this.nbCols = 1\n  this.nbColsCorr = 1\n  context.isHtml ? (this.spacingCorr = 3) : (this.spacingCorr = 1)\n  this.sup = 1\n  this.correctionDetailleeDisponible = true\n\n  this.nouvelleVersion = function () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    let typesDeQuestionsDisponibles\n    if (this.sup < 4) typesDeQuestionsDisponibles = [parseInt(this.sup)]\n    else typesDeQuestionsDisponibles = [1]\n    const fName = []\n    const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n    for (let i = 0, texte, texteCorr, a, b, c, P, xs, ys, x, Psimp, d, x1, x2, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n      fName.push(lettreMinusculeDepuisChiffre(i + 6))\n      texte = 'Faire l\\'étude et la représentation graphique de la parabole $P$ d\\'équation :'\n      switch (listeTypeDeQuestions[i]) {\n        case 1 : // passe par 3 points à coordonnées entières dont -x1, 0 et x1.\n          a = randint(-4, 4, 0)\n          b = randint(-4, 4)\n          c = randint(-5, 5)\n          d = b * b - 4 * a * c\n          xs = texFractionReduite(-b, 2 * a)\n          ys = texFractionReduite(-d, 4 * a)\n          P = `${a}*x^2${ecritureAlgebrique(b)}*x${ecritureAlgebrique(c)}`\n          Psimp = `${simplify(P).toString().replaceAll('*', '\\\\times ')}`\n          P = P.replaceAll('*', '\\\\times ')\n          texte = `$P : y = ${Psimp}$`\n\n          texteCorr = `Le coefficient $a=${a}$ devant le terme en $x^2$ est ${['négatif', 'positif'][1 * (a > 0)]}, la parabole $P$ a donc ses branches dirigées vers le ${['bas', 'haut'][1 * (a > 0)]}`\n\n          texteCorr += `<br>Regardons si la parabole $P$ coupe l'axe des abscisses, pour cela cherchons les $x$ tels que : $${Psimp}=0$`\n          if (d > 0) {\n            x1 = (-b - Math.sqrt(d)) / 2 / a\n            x2 = (-b + Math.sqrt(d)) / 2 / a\n            if (c === 0) {\n              texteCorr += `<br>On peut factoriser l'expression en : $x(${a}\\\\times x${ecritureAlgebrique(b)})=0$`\n              texteCorr += '<br>On en déduit que la parabole $P$ coupe l\\'axe des abscisses en '\n              texteCorr += `$x_1=0$ et $x_2=${texFractionReduite(-b, a)}$`\n            } else {\n              texteCorr += `<br>C'est une équation du second degré : $${P}=0$ avec $a=${a}$, $b=${b}$ et $c=${c}$`\n              texteCorr += `<br>Calculons le discriminant : $\\\\Delta=b^2-4ac=${d} > 0$`\n              texteCorr += '<br>On en déduit que la parabole $P$ coupe l\\'axe des abscisses en '\n              texteCorr += `$x=\\\\dfrac{${ecritureAlgebrique(-b)}-${texRacineCarree(d)}}{2\\\\times ${ecritureParentheseSiNegatif(a)}}${EgalEnviron(x1)}$`\n              texteCorr += ` et $x=\\\\dfrac{${ecritureAlgebrique(-b)}+${texRacineCarree(d)}}{2\\\\times ${ecritureParentheseSiNegatif(a)}}${EgalEnviron(x2)}$`\n            }\n          } else if (d === 0) {\n            texteCorr += `<br>Il n'y a qu'une solution donnée par $x=${texFractionReduite(-b, 2 * a)}$`\n          } else {\n            texteCorr += `<br>C'est une équation du second degré : $${P}=0$ avec $a=${a}$, $b=${b}$ et $c=${c}$`\n            texteCorr += `<br>Calculons le discriminant : $\\\\Delta=b^2-4ac=${d} < 0$`\n            texteCorr += '<br>Il n\\'y a pas de solution et donc la parabole $P$ ne coupe pas l\\'axe des abscisses'\n          }\n          texteCorr += '<br>$\\\\underline{\\\\text{Coordonnées } S(x_S,y_S) \\\\text{ du sommet de la parabole } P}$ :'\n          texteCorr += `<br>L'abscisse du sommet $S$ est donné par la formule $x_S=\\\\dfrac{-b}{2a}=${xs}$`\n          texteCorr += '<br>Et son ordonnée peut être calculé en utilisant la formule $y_S=\\\\dfrac{-\\\\Delta}{4a}$ (ou en remplaçant $x$ par $x_S$ dans l\\'équation de la parabole)'\n          texteCorr += `<br>$y_S=\\\\dfrac{-\\\\Delta}{4a}=\\\\dfrac{${-d}}{${ecritureParentheseSiNegatif(4 * a)}}=${ys}$`\n          texteCorr += `<br>Le sommet $S$ a donc pour coordonnées $\\\\left(${xs}, ${ys}\\\\right)$`\n      }\n      texteCorr += '<br>$\\\\underline{\\\\text{Recherche de points supplémentaires}}$ :'\n      let tableau = '<br>$\\\\begin{array}{c|c|c|c|c|c|c|c}'\n      const points = []\n      const g = x => a * x ** 2 + b * x + c\n      if (d <= 0) { // On n'a que le sommet, on cherche 3 points avant et 3 points après\n        texteCorr += '<br>Les coordonnées du sommet $S$ et le sens des branches de la parabole ne sont pas suffisants pour faire un tracé correct.'\n        texteCorr += '<br>Cherchons les images d\\'abscisses à gauche et à droite du sommet :'\n        for (let k = -3; k < 4; k++) {\n          x = floor(-b / 2 / a) + k\n          points.push([k === 0 ? `x_S${EgalEnviron(-b / 2 / a)}` : x, k === 0 ? `y_S${EgalEnviron(-d / 4 / a)}` : g(x)])\n        }\n      } else { // on a le sommet et les 2 racines x1 et x2. On ajoute 2 points avant x1 et 2 points après x2\n        const xmin = Math.min(x1, x2)\n        x2 = Math.max(x1, x2)\n        x1 = xmin\n        points.push([`x_1${EgalEnviron(x1)}`, '0'])\n        points.push([`x_S${EgalEnviron(-b / 2 / a)}`, `y_S${EgalEnviron(-d / 4 / a)}`])\n        points.push([`x_2${EgalEnviron(x2)}`, '0'])\n        for (let k = 1; k < 3; k++) {\n          x = Math.floor(x1 - k)\n          points.unshift([x, g(x)])\n          x = Math.floor(x2 + k)\n          points.push([x, g(x)])\n        }\n      }\n      points.unshift(['x', 'y'])\n      tableau += points.map(v => v[0]).join('&') + '\\\\\\\\ \\\\hline '\n      tableau += points.map(v => v[1]).join('&') + '\\\\end{array}$'\n      texteCorr += tableau\n      texteCorr += '<br>On obtient finalement le graphique suivant :<br>'\n\n      // Représentation graphique\n\n      const xmin = Math.min(-1, points[1][0]) // -1 pour être voir l'axe des y si le min est positif\n      const xmax = Math.max(1, points.slice(-1)[0][0]) // 1 pour être voir l'axe des y si le max est négatif\n      const ymin = 0 | Math.min(-1, -1 + (a > 0 ? -d / 4 / a : Math.min(g(xmin + 1), g(xmax - 1)))) // ymin pour parabole (valeur entière)\n      const ymax = 0 | Math.max(1, 1 + (a < 0 ? -d / 4 / a : Math.max(g(xmin + 1), g(xmax - 1)))) // ymax pour parabole\n\n      const r = repere({ xMin: xmin, xMax: xmax, yMin: ymin, yMax: ymax })\n\n      const cg = courbe(g, { repere: r, xMin: xmin, xMax: xmax })\n      texteCorr += mathalea2d({ xmin, xmax, ymin, ymax, pixelsParCm: 30, scale: 0.8 }, r, cg)\n\n      if (this.listeQuestions.indexOf(texte) === -1) {\n        // Si la question n'a jamais été posée, on en crée une autre\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this)\n  }\n  // this.besoinFormulaireNumerique = ['Type de questions ',4,\"1 : Passant par trois points à coordonnées entières 1\\n2 : Connaissant le sommet et un point de passage\\n3 : Connaissant les deux racines et un point de passage\\n4 : Mélange des trois type de questions\"];\n}\n"],"names":["EgalEnviron","v","d","texNombre","calculANePlusJamaisUtiliser","titre","TrouverEquationDeParabole","Exercice","context","typesDeQuestionsDisponibles","fName","listeTypeDeQuestions","combinaisonListes","i","texte","texteCorr","a","b","c","P","xs","ys","x","Psimp","x1","x2","cpt","lettreMinusculeDepuisChiffre","randint","texFractionReduite","ecritureAlgebrique","simplify","texRacineCarree","ecritureParentheseSiNegatif","tableau","points","g","k","floor","xmin","xmax","ymin","ymax","r","repere","cg","courbe","mathalea2d","listeQuestionsToContenu"],"mappings":"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"}