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/betaModeleSpline-wVSwuVZ3.js.map
{"version":3,"file":"betaModeleSpline-wVSwuVZ3.js","sources":["../../src/exercices/beta/betaModeleSpline.js"],"sourcesContent":["import { repere } from '../../lib/2d/reperes.js'\nimport { inferieurSuperieur } from '../../lib/mathFonctions/etudeFonction.js'\nimport { spline } from '../../lib/mathFonctions/Spline.js'\nimport { choice } from '../../lib/outils/arrayOutils'\nimport { fixeBordures, mathalea2d } from '../../modules/2dGeneralites.js'\nimport FractionEtendue from '../../modules/FractionEtendue.js'\nimport { gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport Exercice from '../Exercice'\n\nexport const titre = 'Recherche d\\'antécédents'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\n\nexport const dateDePublication = '22/06/2023' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\nexport const uuid = 'betaSpline' // @todo à changer dans un nouvel exo (utiliser pnpm getNewUuid)\nexport const ref = 'betaSpline'// @todo à modifier aussi\n// une liste de nœuds pour définir une fonction Spline\nconst noeuds1 = [{ x: -4, y: -0.5, deriveeGauche: 0, deriveeDroit: 0, isVisible: false },\n  { x: -3, y: 1, deriveeGauche: 1, deriveeDroit: 1, isVisible: false },\n  { x: -2, y: 4, deriveeGauche: 0, deriveeDroit: 0, isVisible: true },\n  { x: -1, y: 1, deriveeGauche: -1, deriveeDroit: -1, isVisible: false },\n  { x: 0, y: -2, deriveeGauche: 0, deriveeDroit: 0, isVisible: true },\n  { x: 2, y: 1, deriveeGauche: 0, deriveeDroit: 0, isVisible: false },\n  { x: 3, y: -2, deriveeGauche: 0, deriveeDroit: 0, isVisible: true },\n  { x: 4, y: -3.5, deriveeGauche: 0, deriveeDroit: 0, isVisible: false }\n]\n// une autre liste de nœuds...\nconst noeuds2 = [{ x: -5, y: 0.5, deriveeGauche: 1.5, deriveeDroit: 1.5, isVisible: false },\n  { x: -4, y: 3, deriveeGauche: 0, deriveeDroit: 0, isVisible: true },\n  { x: -3, y: 2.3, deriveeGauche: -1.2, deriveeDroit: -1.2, isVisible: false },\n  { x: -2, y: 0, deriveeGauche: -1, deriveeDroit: -1, isVisible: true },\n  { x: -1, y: -1, deriveeGauche: 0, deriveeDroit: 0, isVisible: true },\n  { x: 0, y: -0.5, deriveeGauche: 1, deriveeDroit: 1, isVisible: false },\n  { x: 1, y: 3, deriveeGauche: 3, deriveeDroit: 3, isVisible: true },\n  { x: 2, y: 5, deriveeGauche: 0, deriveeDroit: 0, isVisible: true },\n  { x: 3, y: 4, deriveeGauche: -2, deriveeDroit: -2, isVisible: true },\n  { x: 4, y: 3, deriveeGauche: 0, deriveeDroit: 0, isVisible: true },\n  { x: 5, y: 4, deriveeGauche: 0.5, deriveeDroit: 0.5, isVisible: true },\n  { x: 6, y: 5, deriveeGauche: 0.2, deriveeDroit: 0.2, isVisible: true }\n]\n// une liste des listes\nconst mesFonctions = [noeuds1, noeuds2]\n\n/**\n * choisit les caractèristique de la transformation de la courbe\n * @returns {{coeffX: -1|1, deltaX: int, deltaY: int, coeffY: -1|1}}\n */\nfunction aleatoiriseCourbe () {\n  const coeffX = choice([-1, 1]) // symétries ou pas\n  const coeffY = choice([-1, 1])\n  const deltaX = randint(-2, +2) // translations\n  const deltaY = randint(-2, +2)\n  return { coeffX, coeffY, deltaX, deltaY }\n}\n\nfunction nombreAntecedents (choix) {\n  switch (choix) {\n    case 1:\n    case 2:\n    case 3:\n      return choix\n    case 4:\n      return randint(1, 3)\n    default:\n      return randint(0, 3)\n  }\n}\n\n/**\n * Aléatoirise une courbe et demande les antécédents d'une valeur entière (eux aussi entiers)\n * @author Jean-Claude Lhote\n * Référence (2F22-1)\n */\nexport default class BetaModeleSpline extends Exercice {\n  constructor () {\n    super()\n    this.titre = titre\n    this.sup = '4'\n    this.spacingCorr = 2.5\n    this.nbQuestions = 1 // Nombre de questions par défaut\n    this.besoinFormulaireTexte = ['Réglages des questions :', '1 : Un seul antécédent\\n2 : Deux antécédents\\n3 : trois antécédents\\n4 : De un à trois antécédents\\n5 : De 0 à 3 antécédents\\n6 : Mélange']\n  }\n\n  nouvelleVersion () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    this.autoCorrection = []\n    const typeDeQuestions = gestionnaireFormulaireTexte({\n      saisie: this.sup,\n      min: 1,\n      max: 5,\n      melange: 6,\n      defaut: 4,\n      nbQuestions: this.nbQuestions\n    })\n    // boucle de création des différentes questions\n    for (let i = 0; i < this.nbQuestions; i++) {\n      const { coeffX, coeffY, deltaX, deltaY } = aleatoiriseCourbe()\n      // la liste des noeuds de notre fonction\n      const nuage = choice(mesFonctions).map((noeud) => Object({\n        x: (noeud.x + deltaX) * coeffX,\n        y: (noeud.y + deltaY) * coeffY,\n        deriveeGauche: noeud.deriveeGauche * coeffX * coeffY,\n        deriveeDroit: noeud.deriveeDroit * coeffX * coeffY,\n        isVisible: noeud.isVisible\n      }))\n      const maSpline = spline(nuage)\n      const { xMin, xMax, yMin, yMax } = maSpline.trouveMaxes()\n      const nombreAntecedentCherches = nombreAntecedents(Number(typeDeQuestions[i]))\n      const y0 = maSpline.trouveYPourNAntecedents(nombreAntecedentCherches, yMin, yMax)\n      const solutions = inferieurSuperieur(maSpline.fonction, y0, xMin + 1, xMax - 1, true, false)\n\n      const reponse = solutions.length === 0\n        ? 'aucun'\n        : solutions.map((intervalle) => intervalle.borneG.x === intervalle.borneD.x\n          ? `{${intervalle.borneG.x}}`\n          : `[${intervalle.borneG.x};${intervalle.borneD.x}]`\n        ).join('U')\n      // le repère dans lequel sera tracé la courbe (il est important que xMin et yMin soient entiers d'où les arrondis lors de leur définition plus haut\n      const repere1 = repere({\n        xMin: xMin - 1,\n        xMax: xMax + 1,\n        yMin: yMin - 1,\n        yMax: yMax + 1\n      })\n      const courbe1 = maSpline.courbe({\n        repere: repere1,\n        epaisseur: 1,\n        ajouteNoeuds: true,\n        optionsNoeuds: { color: 'black', taille: 1, style: '.', epaisseur: 1 }\n      })\n      const objetsEnonce = [repere1, courbe1]\n      let texteEnonce = mathalea2d(Object.assign({}, fixeBordures(objetsEnonce)), objetsEnonce)\n      texteEnonce += `<br>Quel sont les solutions de l'équation $f(x)<=${y0}$ ?`\n      texteEnonce += '<br>Donnez un tableau de signes de f.'\n      texteEnonce += '<br>Donnez les variations de f.'\n\n      const objetsCorrection = [repere1]\n      const courbeAvecTraces = maSpline.courbe({\n        repere: repere1,\n        epaisseur: 1,\n        ajouteNoeuds: true,\n        optionsNoeuds: { color: 'black', taille: 1, style: '.', epaisseur: 1 }\n      })\n      objetsCorrection.push(courbeAvecTraces)\n      let texteCorrection = mathalea2d(Object.assign({}, fixeBordures(objetsCorrection)), objetsCorrection)\n      texteCorrection += `<br>voici les solutions de $f(x)<=${y0}$ : ${reponse}.`\n      texteCorrection += '<br>voici les signes de f : '\n      const signes = maSpline.signes(new FractionEtendue(1, 120))\n      for (let k = 0; k < signes.length; k++) {\n        texteCorrection += `<br>Sur $[${signes[k].xG.texFSD};${signes[k].xD.texFSD}]$ la fonction est ${signes[k].signe === '+' ? 'positive' : 'négative'}`\n      }\n      const variations = maSpline.variations(new FractionEtendue(1, 3))\n      for (let k = 0; k < variations.length; k++) {\n        texteCorrection += `<br>Sur $[${variations[k].xG.texFSD};${variations[k].xD.texFSD}]$ la fonction est ${variations[k].variation === 'croissant' ? 'croissante' : 'décroissante'}`\n      }\n\n      this.listeQuestions.push(texteEnonce)\n      this.listeCorrections.push(texteCorrection)\n    }\n    listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n  }\n}\n"],"names":["titre","interactifReady","interactifType","dateDePublication","uuid","ref","noeuds1","noeuds2","mesFonctions","aleatoiriseCourbe","coeffX","choice","coeffY","deltaX","randint","deltaY","nombreAntecedents","choix","BetaModeleSpline","Exercice","typeDeQuestions","gestionnaireFormulaireTexte","i","nuage","noeud","maSpline","spline","xMin","xMax","yMin","yMax","nombreAntecedentCherches","y0","solutions","inferieurSuperieur","reponse","intervalle","repere1","repere","courbe1","objetsEnonce","texteEnonce","mathalea2d","fixeBordures","objetsCorrection","courbeAvecTraces","texteCorrection","signes","FractionEtendue","k","variations","listeQuestionsToContenu"],"mappings":"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"}