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/betaEqValAbs-iV_pYx-n.js.map
{"version":3,"file":"betaEqValAbs-iV_pYx-n.js","sources":["../../src/exercices/beta/betaEqValAbs.js"],"sourcesContent":["import { texMasse } from '../../lib/format/style'\nimport { tableauDeVariation } from '../../lib/mathFonctions/etudeFonction.js'\nimport { context } from '../../modules/context.js'\nimport { listeQuestionsToContenu, randint, xcas } from '../../modules/outils.js'\nimport Exercice from '../Exercice.js'\n\nexport const titre = 'Résoudre une équation avec une valeur absolue'\n\n/**\n * Description didactique de l'exercice\n * @author Eric Schrafstetter\n * Référence\n */\nexport default function EquationAvecUneValeurAbsolue () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.consigne = 'Résoudre dans $\\\\mathbb{R}$ les équations :'\n  this.nbQuestions = 2\n  this.nbCols = 1 // Uniquement pour la sortie LaTeX\n  this.nbColsCorr = 1 // Uniquement pour la sortie LaTeX\n  this.sup = 1 // Niveau de difficulté\n  this.tailleDiaporama = 3 // Pour les exercices chronométrés. 50 par défaut pour les exercices avec du texte\n  this.video = '' // Id YouTube ou url\n  this.typeExercice = 'xcas'\n  context.isHtml ? (this.spacingCorr = 2) : (this.spacingCorr = 1.5)\n  this.listePackages = 'tkz-tab' // Pour la compilation LateX des tableaux de signes\n\n  this.nouvelleVersion = function () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n\n    for (let i = 0, texte, texteCorr, a, b, pente, signe, entier, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n      // Boucle principale où i+1 correspond au numéro de la question\n      a = randint(-5, 5, 0) + '*x+' + randint(-20, 20)\n      b = randint(-5, 5, 0) + '*x+' + randint(-20, 20);\n      [\n                `a:=simplify(${a})`,\n                'pente:=lcoeff(a)',\n                `b:=simplify(${b})`,\n                'x1:=solve(a)(1)'\n      ].forEach(e => `${xcas(e)}`)\n      pente = +`${xcas('pente')}` > 0 ? 'croissante' : 'décroissante'\n      signe = +`${xcas('pente')}` > 0 ? '-+' : '+-';\n      [\n                `cas1:=simplify(${signe[0]}a)`,\n                `cas2:=simplify(${signe[1]}a)`,\n                'scas1:=solve(cas1=b)',\n                'xcas1:=piecewise(len(scas1)>0, scas1(1), i)',\n                'scas2:=solve(cas2=b)',\n                'xcas2:=piecewise(len(scas2)>0, scas2(1), i)'\n      ].forEach(e => `${xcas(e)}`)\n\n      // Enoncé\n      texte = `$${xcas('abs(a)')}=${xcas('b')}$`\n      // Corrigé\n      texteCorr = 'Pour supprimer la valeur absolue, on cherche la valeur remarquable qui annule l\\'expression entre les $\\\\mid.\\\\mid$'\n      entier = (1e3 * +`${xcas('approx(x1,4)')}`) % 1 === 0 ? '' : `\\\\simeq${xcas('approx(x1,4)')}`\n      texteCorr += `<br>On aura $${xcas('a')}=0$ lorsque $x=${xcas('x1')}${entier}$`\n      texteCorr += `<br>De plus la droite $y=${xcas('a')}$ est ${pente}, ce qui permet d'obtenir le tableau des signes suivant :`\n\n      texteCorr += tableauDeVariation({\n        tabInit: [\n          [\n            // Première colonne du tableau avec le format [chaine d'entête, hauteur de ligne, nombre de pixels de largeur estimée du texte pour le centrage]\n            ['$x$', 2.5, 10], [`$${xcas('a')}$`, 1.5, 50], [`$${xcas('abs(a)')}$`, 1.5, 50], ['', 1.2, 20]\n          ],\n          // Première ligne du tableau avec chaque antécédent suivi de son nombre de pixels de largeur estimée du texte pour le centrage\n          ['$-\\\\infty$', 20, `$${xcas('x1')}$`, 40, '$+\\\\infty$', 20]\n        ],\n        // Les autres lignes du tableau dont le fonctionnement est expliqué plus haut\n        tabLines: [['Line', 20, '', 0, `$${signe[0]}$`, 50, 'z', 20, `$${signe[1]}$`, 50],\n          ['Line', 20, '', 0, `$${xcas('cas1')}$`, 50, 'z', 20, `$${xcas('cas2')}$`, 50],\n          ['Line', 20, '', 0, '$\\\\text{Cas 1}$', 50, 't', 20, '$\\\\text{Cas 2}$', 50]\n        ],\n\n        colorBackground: '',\n        espcl: 3.5, // taille en cm entre deux antécédents\n        deltacl: 0.8, // distance entre la bordure et les premiers et derniers antécédents\n        lgt: 8\n      })\n\n      texteCorr += `<br>$\\\\underline{\\\\text{Cas 1}}$ : On cherche $x\\\\in ]-\\\\infty,${xcas('x1')}]$ tels que : $${xcas('cas1')}=${xcas('b')}$`\n      texteCorr += `<br>Ce qui donne $${xcas('simplify(cas1-b)')}=0$ d'où `\n\n      if (`${xcas('xcas1')}` === 'i') {\n        texteCorr += 'une impossibilité.'\n      } else {\n        texteCorr += `$x=${xcas('xcas1')}$`\n        // On teste si on doit afficher la valeur approchée du résultat\n        entier = (1e3 * +`${xcas('approx(xcas1,4)')}`) % 1 === 0 ? '' : `\\\\simeq${texMasse(`${xcas('approx(xcas1,4)')}`)}`\n        if (`${xcas('xcas1<=x1')}`.includes('true')) {\n          texteCorr += `<br>Cette solution $\\\\textbf{convient}$ car $x=${xcas('xcas1')}${entier}\\\\in ]-\\\\infty,${xcas('x1')}]$`\n        } else {\n          texteCorr += `<br>Cette solution $\\\\underline{\\\\text{ne convient pas}}$ car $x=${xcas('xcas1')}${entier}\\\\notin ]-\\\\infty,${xcas('x1')}]$`\n        }\n      }\n      texteCorr += `<br>$\\\\underline{\\\\text{Cas 2}}$ : On cherche $x\\\\in [${xcas('x1')},+\\\\infty[$ tels que : $${xcas('cas2')}=${xcas('b')}$`\n      texteCorr += `<br>Ce qui donne $${xcas('simplify(cas2-b)')}=0$ d'où `\n\n      if (`${xcas('xcas2')}` === 'i') {\n        texteCorr += 'une impossibilité.'\n      } else {\n        texteCorr += `$x=${xcas('xcas2')}$`\n        entier = (1e3 * +`${xcas('approx(xcas2,4)')}`) % 1 === 0 ? '' : `\\\\simeq${xcas('approx(xcas2,4)')}`\n        if (`${xcas('xcas2>=x1')}`.includes('true')) {\n          // eslint-disable-next-line no-unused-vars\n          // etape = `$x=${xcas('xcas2')}\\\\simeq${xcas('approx(xcas2,4)')}$`\n          texteCorr += `<br>Cette solution $\\\\textbf{convient}$ car $x=${xcas('xcas2')}${entier}\\\\in [${xcas('x1')},+\\\\infty[$`\n        } else {\n          texteCorr += `<br>Cette solution $\\\\underline{\\\\text{ne convient pas}}$ car $x=${xcas('xcas2')}${entier}\\\\notin [${xcas('x1')},+\\\\infty[$`\n        }\n      }\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 = ['Niveau de difficulté', 3]\n}\n\n// python3 list-to-js.py pour faire apparaître l'exercice dans le menu\n"],"names":["titre","EquationAvecUneValeurAbsolue","Exercice","context","i","texte","texteCorr","a","b","pente","signe","entier","cpt","randint","e","xcas","tableauDeVariation","texMasse","listeQuestionsToContenu"],"mappings":"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"}