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/2F31-3-y2Rw2Fy2.js.map
{"version":3,"file":"2F31-3-y2Rw2Fy2.js","sources":["../../src/exercices/2e/2F31-3.js"],"sourcesContent":["import { propositionsQcm } from '../../lib/interactif/qcm.js'\nimport { tableauDeVariation } from '../../lib/mathFonctions/etudeFonction.js'\nimport { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { context } from '../../modules/context.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport Exercice from '../deprecatedExercice.js'\n\nexport const titre = 'Compare images in a variation table'\nexport const interactifReady = true\nexport const interactifType = 'qcm'\n// Les exports suivants sont optionnels mais au moins la date de publication semble essentielle\nexport const dateDePublication = '25/10/2021' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\nexport const dateDeModifImportante = '17/05/2023' // Une date de modification importante au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\n/**\n * Description didactique de l'exercice\n * @author Stéphane Guyon modif Gilles Mora\n * Référence 2F31-3\n */\nexport const uuid = 'c705b'\nexport const ref = '2F31-3'\nexport default function Variationsapartirtableau () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.nbQuestions = 1 // Nombre de questions par défaut\n  this.video = '' // Id YouTube ou url\n  this.listePackages = ['tkz-tab']//, 'tkz-fct', 'tkz-euclide'\n\n  this.nouvelleVersion = function () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n\n    const typeQuestionsDisponibles = ['type1', 'type2', 'type3', 'type4', 'type5']//\n    this.nbQuestionsModifiable = true\n    const listeTypeQuestions = combinaisonListes(typeQuestionsDisponibles, this.nbQuestions) // Tous les types de questions sont posés mais l'ordre diffère à chaque 'cycle'\n    for (let i = 0, ligne1, a1, a2, a3, a4, x1, x2, x3, y1, y2, y3, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) { // Boucle principale où i+1 correspond au numéro de la question\n      texte = 'We give below the table of variations of a function $f$.'\n      texte += ' <br>'\n      x1 = randint(-8, -3) // 3 antécédents 1ère ligne tableau\n      x2 = randint(x1 + 10, x1 + 17)// 3 antécédents 1ère ligne tableau\n      x3 = randint(x2 + 6, x2 + 15)// 3 antécédents 1ère ligne tableau\n      y1 = randint(-12, -2)// 3 images des antécédents 1ère ligne tableau\n      y2 = randint(y1 + 2, y1 + 10)// 3 images des antécédents 1ère ligne tableau\n      y3 = randint(y1 + 2, y2 - 2, [y2])// 3 images des antécédents 1ère ligne tableau\n      a1 = randint(x1 + 1, x1 + 4) // 1er antécédent dont on doit comparer l'image\n      a2 = randint(a1 + 1, x2 - 1) // 2eme antécédent dont on doit comparer l'image\n      a3 = randint(x2 + 1, x3 - 6) // 3eme antécédent dont on doit comparer l'image\n      a4 = randint(a3 + 1, x3 - 1) // 4eme antécédent dont on doit comparer l'image\n      switch (listeTypeQuestions[i]) { // Suivant le type de question, le contenu sera différent\n        case 'type1':// parabole en U ; 2 images sur intervalle où f croissant\n          texte += `From the information in the statement, compare if possible: $f(${a1})$ and $f(${a2})$.<br><br>`\n          ligne1 = ['Var', 10, `-/$${y1}$`, 10, `+/$${y2}$`, 10, `-/$${y3}$`, 10] // Commencer chaque chaîne par +/ ou -/ pour indiquer le sens de la variation, 'R/' pour 'skip a box'\n\n          // xmin determines the margin on the left, ymin the height reserved for the table, xmax the width reserved for the table and ymax the margin above the table\n          texte += tableauDeVariation({\n            tabInit: [\n              [\n                // First column of the table with the format [header string, line height, number of pixels of estimated text width for centering]\n                ['$x$', 2, 10], ['$f(x)$', 4, 30]\n              ],\n              // First row of the table with each antecedent followed by its number of pixels of estimated text width for centering\n              [`$${x1}$`, 10, `$${x2}$`, 10, `$${x3}$`, 10]\n            ],\n            // tabLines below contains the other rows of the table.\n            tabLines: [ligne1],\n            colorBackground: '',\n            espcl: 2, // 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: 3 // taille de la première colonne en cm\n          })\n          texteCorr = `According to the variation table, the function $f$ is increasing on $[${x1},${x2}]$. <br>`\n          texteCorr += `Additionally, $${a1}\\\\in[${x1},${x2}]$, $${a2}\\\\in[${x1},${x2}]$ and $${a1}<${a2}$.<br>`\n          if (context.isHtml) {\n            ligne1 = ['Var', 5, `-/$${y1}$`, 5, 't/', 5, 't/', 5, `+/$${y2}$`, 5, `-/$${y3}$`, 5]\n            // xmin determines the margin on the left, ymin the height reserved for the table, xmax the width reserved for the table and ymax the margin above the table\n            texteCorr += tableauDeVariation({\n              tabInit: [\n                [\n                  // First column of the table with the format [header string, line height, number of pixels of estimated text width for centering]\n                  ['$x$', 2, 10], ['$f(x)$', 4, 10]\n                ],\n                // First row of the table with each antecedent followed by its number of pixels of estimated text width for centering\n                [`$${x1}$`, 5, `$${a1}$`, 5, `$${a2}$`, 5, `$${x2}$`, 5, `$${x3}$`, 5]\n                // ['Val', 1, 2, 0.3, `$${x1}$`, `$f(${x1})$`, 0.5]\n              ],\n              // long=0.5\n              // tabLines below contains the other rows of the table.\n              tabLines: [ligne1],\n              colorBackground: '',\n              espcl: 3, // 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: 3 // taille de la première colonne en cm\n            })\n          } else {\n            texteCorr += `<br>\\\\begin{tikzpicture}%[scale=0.6]\\\\tkzTabInit[lgt=1.5,espcl=5]{$x$/1,$f(x)$/2}{$${x1}$,$${x2} $,$${x3}$}\\\\tkzTabVar{-/$${y1}$,+/$${y2}$,-/$${y3}$}\\\\tkzTabVal[draw]{1}{2}{0.3}{$${a1}$}{$ f(${a1})$}\\\\tkzTabVal[draw]{1}{2}{0.6}{$${a2}$}{$f(${a2})$}\\\\end{tikzpicture}<br><br>`\n          }\n          if (this.interactif) {\n            this.autoCorrection[i] = {\n              enonce: texte,\n              options: { horizontal: true },\n              propositions: [\n                {\n                  texte: `${choice([true, false]) ? `$f(${a2}) > f(${a1})$` : `$f(${a1}) < f(${a2})$`}`,\n                  statut: true\n                },\n                {\n                  texte: `${choice([true, false]) ? `$f(${a1}) > f(${a2})$` : `$f(${a2}) < f(${a1})$`}`,\n                  statut: false\n                },\n                {\n                  texte: 'We can not know',\n                  statut: false\n                }\n              ]\n            }\n            texte += propositionsQcm(this, i).texte\n          }\n          texteCorr += 'We know that if a function is increasing on an interval $[a,b]$, '\n          texteCorr += 'then its antecedents and its images are arranged in the same order.<br>'\n          texteCorr += 'This means that for all $x_1\\\\in[a,b]$ and $x_2\\\\in[a,b]$, '\n          texteCorr += 'if $x_1 < x_2$ then $f(x_1) < f(x_2)$. <br><br>'\n          texteCorr += `Therefore, since $${a1}<${a2}$, then $f(${a1}) < f(${a2})$. `\n          break\n        case 'type2':// parabole en U ; 2 images sur intervalle où f décroissant\n          texte += `From the information in the statement, compare if possible: $f(${a3})$ and $f(${a4})$.<br>`\n          ligne1 = ['Var', 10, `-/$${y1}$`, 10, `+/$${y2}$`, 10, `-/$${y3}$`, 10] // Commencer chaque chaîne par +/ ou -/ pour indiquer le sens de la variation, 'R/' pour 'skip a box'\n\n          // xmin determines the margin on the left, ymin the height reserved for the table, xmax the width reserved for the table and ymax the margin above the table\n          texte += tableauDeVariation({\n            tabInit: [\n              [\n                // First column of the table with the format [header string, line height, number of pixels of estimated text width for centering]\n                ['$x$', 2, 10], ['$f(x)$', 4, 30]\n              ],\n              // First row of the table with each antecedent followed by its number of pixels of estimated text width for centering\n              [`$${x1}$`, 10, `$${x2}$`, 10, `$${x3}$`, 10]\n            ],\n            // tabLines below contains the other rows of the table.\n            tabLines: [ligne1],\n            colorBackground: '',\n            espcl: 2, // 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: 3 // taille de la première colonne en cm\n          })\n\n          texteCorr = `According to the variation table, the function $f$ is decreasing on $[${x2},${x3}]$.<br>Furthermore, `\n          texteCorr += `  $${a3}\\\\in[${x2},${x3}]$, $${a4}\\\\in[${x2},${x3}]$ and $${a3}<${a4}$.<br>`\n          if (context.isHtml) {\n            ligne1 = ['Var', 5, `-/$${y1}$`, 5, `+/$${y2}$`, 5, 't/', 5, 't/', 5, `-/$${y3}$`, 5] // Commencer chaque chaîne par +/ ou -/ pour indiquer le sens de la variation, 'R/' pour 'skip a box'\n            texteCorr += tableauDeVariation({\n              tabInit: [\n                [\n                  // First column of the table with the format [header string, line height, number of pixels of estimated text width for centering]\n                  ['$x$', 2, 10], ['$f(x)$', 3, 50]\n                ],\n                // First row of the table with each antecedent followed by its number of pixels of estimated text width for centering\n                [`$${x1}$`, 5, `$${x2}$`, 5, `$${a3}$`, 5, `$${a4}$`, 5, `$${x3}$`, 5]\n              ],\n              // tabLines below contains the other rows of the table.\n              tabLines: [ligne1],\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: 3 // taille de la première colonne en cm\n            })\n          } else {\n            texteCorr += `<br>\\\\begin{tikzpicture}%[scale=0.6]\\\\tkzTabInit[lgt=1.5,espcl=5]{$x$/1,$f(x)$/2}{$${x1}$,$${x2} $,$${x3}$}\\\\tkzTabVar{-/$${y1}$,+/$${y2}$,-/$${y3}$}\\\\tkzTabVal[draw]{2}{3}{0.3}{$${a3}$}{$ f(${a3})$}\\\\tkzTabVal[draw]{2}{3}{0.6}{$${a4}$}{$f(${a4})$}\\\\end{tikzpicture}<br><br>`\n          }\n          if (this.interactif) {\n            this.autoCorrection[i] = {\n              enonce: texte,\n              options: { horizontal: true },\n              propositions: [\n                {\n                  texte: `${choice([true, false]) ? `$f(${a3}) > f(${a4})$` : `$f(${a4}) < f(${a3})$`}`,\n                  statut: true\n                },\n                {\n                  texte: `${choice([true, false]) ? `$f(${a3}) < f(${a4})$` : `$f(${a4}) > f(${a3})$`}`,\n                  statut: false\n                },\n                {\n                  texte: 'We can not know',\n                  statut: false\n                }\n              ]\n            }\n            texte += propositionsQcm(this, i).texte\n          }\n          texteCorr += 'We know that if a function is decreasing on an interval $[a,b]$, '\n          texteCorr += 'then its antecedents and images are arranged in reverse order. <br>'\n          texteCorr += 'This means that for all $x_1\\\\in[a,b]$ and $x_2\\\\in[a,b]$, '\n          texteCorr += 'if $x_1 < x_2$ then $f(x_1) > f(x_2)$. <br><br>'\n          texteCorr += `Therefore, since $${a3}<${a4}$, then $f(${a3}) > f(${a4})$. `\n          break\n        case 'type3':// parabole en U ; 2 images sur intervalle où f pas monotone, mais on peut répondre\n          texte += `From the information in the statement, compare if possible: $f(${a1})$ and $f(${x3})$.<br>`\n          y3 = randint(y1 - 12, y1 - 2)// 3 images des antécédents 1ère ligne tableau\n          ligne1 = ['Var', 10, `-/$${y1}$`, 30, `+/$${y2}$`, 30, `-/$${y3}$`, 30] // Commencer chaque chaîne par +/ ou -/ pour indiquer le sens de la variation, 'R/' pour 'skip a box'\n\n          // xmin determines the margin on the left, ymin the height reserved for the table, xmax the width reserved for the table and ymax the margin above the table\n          texte += tableauDeVariation({\n            tabInit: [\n              [\n                // First column of the table with the format [header string, line height, number of pixels of estimated text width for centering]\n                ['$x$', 2, 10], ['$f(x)$', 4, 30]\n              ],\n              // First row of the table with each antecedent followed by its number of pixels of estimated text width for centering\n              [`$${x1}$`, 10, `$${x2}$`, 10, `$${x3}$`, 10]\n            ],\n            // tabLines below contains the other rows of the table.\n            tabLines: [ligne1],\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: 3 // taille de la première colonne en cm\n          })\n\n          texteCorr = `According to the variation table, $f(${x3})=${y3}$.<br>`\n          texteCorr += `On the other hand, $${a1}\\\\in[${x1},${x2}]$, interval on which the function $f$ is increasing.<br>`\n          texteCorr += 'We know that if a function is increasing on an interval $[a,b]$, '\n          texteCorr += 'then its antecedents and its images are arranged in the same order.<br>'\n          texteCorr += 'This means that for all $x_1\\\\in[a,b]$ and $x_2\\\\in[a,b]$, '\n          texteCorr += 'if $x_1 < x_2$ then $f(x_1) < f(x_2)$. <br>'\n          texteCorr += `Therefore, since $${x1}<${a1}$, then $f(${x1}) < f(${a1})$. `\n          texteCorr += `<br>As $f(${x1}) =${y1}$, we showed that: $f(${a1}) > ${y1}$.<br><br>`\n          texteCorr += `We deduce that: $f(${a1}) > ${y1} > ${y3} > f(${x3})$.<br>`\n          if (this.interactif) {\n            this.autoCorrection[i] = {\n              enonce: texte,\n              options: { horizontal: true },\n              propositions: [\n                {\n                  texte: `${choice([true, false]) ? `$f(${a1}) > f(${x3})$` : `$f(${x3}) < f(${a1})$`}`,\n                  statut: true\n                },\n                {\n                  texte: `${choice([true, false]) ? `$f(${a1}) < f(${x3})$` : `$f(${x3}) > f(${a1})$`}`,\n                  statut: false\n                },\n                {\n                  texte: 'We can not know',\n                  statut: false\n                }\n              ]\n            }\n            texte += propositionsQcm(this, i).texte\n          }\n          break\n        case 'type4':// parabole en U ; 2 images sur intervalle où f pas monotone, et on ne peut pas répondre\n          texte += `From the information in the statement, compare if possible: $f(${a1})$ and $f(${x3})$.<br>`\n          y3 = randint(y1 + 2, y2 - 1)// 3 images des antécédents 1ère ligne tableau\n          ligne1 = ['Var', 10, `-/$${y1}$`, 10, `+/$${y2}$`, 10, `-/$${y3}$`, 10] // Commencer chaque chaîne par +/ ou -/ pour indiquer le sens de la variation, 'R/' pour 'skip a box'\n\n          // xmin determines the margin on the left, ymin the height reserved for the table, xmax the width reserved for the table and ymax the margin above the table\n          texte += tableauDeVariation({\n            tabInit: [\n              [\n                // First column of the table with the format [header string, line height, number of pixels of estimated text width for centering]\n                ['$x$', 2, 10], ['$f(x)$', 3, 30]\n              ],\n              // First row of the table with each antecedent followed by its number of pixels of estimated text width for centering\n              [`$${x1}$`, 10, `$${x2}$`, 10, `$${x3}$`, 10]\n            ],\n            // tabLines below contains the other rows of the table.\n            tabLines: [ligne1],\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: 3 // taille de la première colonne en cm\n          })\n\n          texteCorr = `According to the variation table, $f(${x3})=${y3}$.<br>`\n          texteCorr += `On the other hand, $${a1}\\\\in[${x1},${x2}]$, interval on which the function $f$ is increasing.<br>`\n          texteCorr += 'We know that if a function is increasing on an interval $[a,b]$, '\n          texteCorr += 'then its antecedents and its images are arranged in the same order.<br>'\n          texteCorr += 'This means that for all $x_1\\\\in[a,b]$ and $x_2\\\\in[a,b]$, '\n          texteCorr += 'if $x_1 < x_2$ then $f(x_1) < f(x_2)$. <br>'\n          texteCorr += `Therefore, since $${x1}<${a1}<${x2}$, then $f(${x1})< f(${a1}) < f(${x2})$. `\n          texteCorr += `<br>We have therefore shown that: $${y1} < f(${a1}) < ${y2}$.<br><br>`\n          texteCorr += `As $f(${x3})=${y3} \\\\in [${y1},${y2}]$, `\n          texteCorr += `we cannot conclude without more information to compare $f(${x3})$ and $f(${a1})$. `\n          if (this.interactif) {\n            this.autoCorrection[i] = {\n              enonce: texte,\n              options: { horizontal: true },\n              propositions: [\n                {\n                  texte: `${choice([true, false]) ? `$f(${x3}) > f(${a1})$` : `$f(${a1}) < f(${x3})$`}`,\n                  statut: false\n                },\n                {\n                  texte: `${choice([true, false]) ? `$f(${x3}) < f(${a1})$` : `$f(${a1}) > f(${x3})$`}`,\n                  statut: false\n                },\n                {\n                  texte: 'We can not know',\n                  statut: true\n                }\n              ]\n            }\n            texte += propositionsQcm(this, i).texte\n          }\n          break\n        case 'type5':// parabole en U ; 2 images sur intervalle où f non monotone. On ne peut conclure\n          texte += `From the information in the statement, compare if possible: $f(${a1})$ and $f(${a3})$.<br>`\n          ligne1 = ['Var', 10, `-/$${y1}$`, 10, `+/$${y2}$`, 10, `-/$${y3}$`, 10] // Commencer chaque chaîne par +/ ou -/ pour indiquer le sens de la variation, 'R/' pour 'skip a box'\n\n          // xmin determines the margin on the left, ymin the height reserved for the table, xmax the width reserved for the table and ymax the margin above the table\n          texte += tableauDeVariation({\n            tabInit: [\n              [\n                // First column of the table with the format [header string, line height, number of pixels of estimated text width for centering]\n                ['$x$', 2, 10], ['$f(x)$', 4, 30]\n              ],\n              // First row of the table with each antecedent followed by its number of pixels of estimated text width for centering\n              [`$${x1}$`, 10, `$${x2}$`, 10, `$${x3}$`, 10]\n            ],\n            // tabLines below contains the other rows of the table.\n            tabLines: [ligne1],\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: 3 // taille de la première colonne en cm\n          })\n\n          texteCorr = `According to the variation table:<br>$\\\\bullet$ $${a1}\\\\in[${x1},${x2}]$, interval over which the function is increasing. `\n          texteCorr += ` <br>$\\\\bullet$ $${a3}\\\\in[${x2},${x3}]$, interval over which the function is decreasing. <br><br>`\n          texteCorr += `The function $f$ is therefore not monotonic on $[${a1},${a3}]$.<br><br>`\n          texteCorr += ` The variation table does not allow $f(${a1})$ and $f(${a3})$ to be compared. <br>`\n          texteCorr += 'We cannot therefore conclude without more information.'\n          if (this.interactif) {\n            this.autoCorrection[i] = {\n              enonce: texte,\n              options: { horizontal: true },\n              propositions: [\n                {\n                  texte: `${choice([true, false]) ? `$f(${a3}) > f(${a1})$` : `$f(${a1}) < f(${a3})$`}`,\n                  statut: false\n                },\n                {\n                  texte: `${choice([true, false]) ? `$f(${a3}) < f(${a1})$` : `$f(${a1}) > f(${a3})$`}`,\n                  statut: false\n                },\n                {\n                  texte: 'We can not know',\n                  statut: true\n                }\n              ]\n            }\n            texte += propositionsQcm(this, i).texte\n          }\n          break\n      }\n      // If the question has never been asked, we save it\n      if (this.questionJamaisPosee(i, texte)) { // <- laisser le i et ajouter toutes les variables qui rendent les exercices différents (par exemple a, b, c et d)\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n  }\n}\n"],"names":["titre","interactifReady","interactifType","dateDePublication","dateDeModifImportante","uuid","ref","Variationsapartirtableau","Exercice","typeQuestionsDisponibles","listeTypeQuestions","combinaisonListes","i","ligne1","a1","a2","a3","a4","x1","x2","x3","y1","y2","y3","texte","texteCorr","cpt","randint","tableauDeVariation","context","choice","propositionsQcm","listeQuestionsToContenu"],"mappings":"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"}