File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/2F10-2-ctDLdXWE.js.map
{"version":3,"file":"2F10-2-ctDLdXWE.js","sources":["../../src/exercices/2e/2F10-2.js"],"sourcesContent":["import { droite } from '../../lib/2d/droites.js'\nimport { point, tracePoint } from '../../lib/2d/points.js'\nimport { repere } from '../../lib/2d/reperes.js'\nimport { segment, vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { latexParPoint, texteParPosition } from '../../lib/2d/textes.js'\nimport { homothetie, translation } from '../../lib/2d/transformations.js'\nimport { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { texteEnCouleurEtGras } from '../../lib/outils/embellissements'\nimport { texFractionReduite } from '../../lib/outils/deprecatedFractions.js'\nimport { ecritureAlgebrique, reduireAxPlusB } from '../../lib/outils/ecritures.js'\nimport { abs } from '../../lib/outils/nombres.js'\nimport Exercice from '../Exercice.js'\nimport { colorToLatexOrHTML, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { context } from '../../modules/context.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Déterminer graphiquement l\\'expression d\\'une fonction affine'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\nexport const dateDeModifImportante = '25/05/2023'\n/**\n\n */\nexport const uuid = '93f13'\nexport const ref = '2F10-2'\nexport default function Lecturefonctionaffine () {\n Exercice.call(this)\n this.titre = titre\n this.consigne = ''\n this.nbQuestions = 1// On complète le nb de questions\n this.sup = 1\n this.correctionDetaillee = false\n this.correctionDetailleeDisponible = true\n this.nouvelleVersion = function () {\n this.listeQuestions = []\n this.listeCorrections = []\n this.autoCorrection = []\n let typeDeQuestionsDisponibles\n if (this.sup === 1) {\n typeDeQuestionsDisponibles = ['typeE1']\n } else {\n if (this.sup === 2) {\n typeDeQuestionsDisponibles = ['typeE2']\n } else {\n typeDeQuestionsDisponibles = ['typeE1', 'typeE2']\n }\n }\n const listeTypeQuestions = combinaisonListes(typeDeQuestionsDisponibles, this.nbQuestions)\n const o = texteParPosition('O', -0.3, -0.3, 'milieu', 'black', 1)\n const listeFractions = [[1, 3], [2, 3], [3, 7], [2, 7], [4, 3], [3, 5], [4, 7], [1, 5], [4, 5], [3, 4], [1, 4], [2, 5], [5, 3], [6, 5], [1, 6], [5, 6], [1, 7]]\n // const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n for (let i = 0, A, a, b, d, r, c, t, l, s1, s2, aFrac, labs, lord, texte, texteCorr, cpt = 0;\n i < this.nbQuestions && cpt < 50;) { // on rajoute les variables dont on a besoin\n switch (listeTypeQuestions[i]) { // Suivant le type de question, le contenu sera différent\n case 'typeE1':// coeff entier\n r = repere({\n xMin: -4,\n xMax: 4,\n xUnite: 2,\n yMin: -5,\n yMax: 6,\n yUnite: 1,\n thickHauteur: 0.1,\n xLabelMin: -3,\n xLabelMax: 3,\n yLabelMax: 5,\n yLabelMin: -4,\n axeXStyle: '->',\n axeYStyle: '->',\n yLabelDistance: 1,\n yLabelEcart: 0.6,\n grilleSecondaire: true,\n grilleSecondaireYDistance: 1,\n grilleSecondaireXDistance: 1,\n grilleSecondaireYMin: -5,\n grilleSecondaireYMax: 6,\n grilleSecondaireXMin: -8,\n grilleSecondaireXMax: 8\n })\n a = randint(-4, 4)// coeff dir\n b = randint(-4, 3)// ord origine\n if (a === 0 && b === 0) {\n a = 1\n }// On évite la fonction nulle\n c = droite(a / 2, -1, b)\n c.color = colorToLatexOrHTML('red')\n c.epaisseur = 2\n texte = 'Déterminer graphiquement l\\'expression algébrique de la fonction affine $f$ représentée ci-dessous :<br>'\n texte += mathalea2d({\n xmin: -8,\n ymin: -5,\n xmax: 8,\n ymax: 6,\n pixelsParCm: 25,\n scale: 0.6\n }, r, c, o)// On trace le graphique\n if (context.isAmc) {\n this.autoCorrection[i] = {\n enonce: texte,\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: `$f(x)=${reduireAxPlusB(a, b)}$`,\n statut: '',\n reponse: {\n texte: 'coefficient a de $f(x)=ax+b$',\n valeur: a,\n param: {\n digits: 1,\n decimals: 0,\n signe: true,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: 'valeur b de $f(x)=ax+b$',\n valeur: b,\n param: {\n digits: 1,\n decimals: 0,\n signe: true,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n } else if (this.interactif) {\n texte += '<br>$f(x) =$' + ajouteChampTexteMathLive(this, i, 'largeur25 inline')\n setReponse(this, i, `${reduireAxPlusB(a, b)}`)\n }\n texteCorr = 'Puisque $f$ est une fonction affine, on a : $f(x)=ax+b$.<br>'\n if (a === 0) {\n texteCorr += `La droite est horizontale. Elle représente une fonction affine constante ($a=0$).<br>\n Ainsi, $f(x)=${b}$.`\n } else {\n texteCorr += `$\\\\bullet$ $b$ est l'ordonnée à l'origine de la droite. On lit $b=${b}$.<br>`\n if (this.correctionDetaillee) {\n texteCorr += `L'ordonnée à l'origine est l'ordonnée du point d'intersection entre la droite et l'axe des ordonnées.<br>\n Ce point est le point $A$ de coordonnées $(0\\\\,;\\\\,${b})$.<br>`\n }\n texteCorr += `$\\\\bullet$ $a$ est le coefficient directeur de la droite.<br>\n Il est donné par le déplacement vertical correspondant à un déplacement horizontal d'une unité. On lit $a=${a}$.<br>`\n if (this.correctionDetaillee) {\n texteCorr += `Le coefficient directeur mesure l'inclinaison de la droite par rapport à l'horizontal (voir les traces graphiques ci-dessous).<br>\n <br> `\n }\n texteCorr += ' On peut en déduire que l\\'expression de la fonction $f$ est '\n texteCorr += `$f(x)=${reduireAxPlusB(a, b)}$.<br>`\n if (b > -2 || a > 0) {\n s1 = segment(0, b, 2, b, 'blue')\n s2 = segment(2, b, 2, b + a, 'green')\n labs = texteParPosition('$1$', 1, a < 0 ? b + 0.4 : b - 0.8, 'milieu', 'blue', 1)\n lord = texteParPosition(`$${a}$`, 2.8, (a + 2 * b) / 2, 'milieu', 'green', 1)\n } else {\n s1 = segment(-4, -2 * a + b, -2, -2 * a + b, 'blue')\n s2 = segment(-2, -2 * a + b, -2, -1 * a + b, 'green')\n labs = texteParPosition('$1$', -3, -2 * a + b + 0.5, 'milieu', 'blue', 1)\n lord = texteParPosition(`$${a}$`, -1.5, (-3 * a + 2 * b) / 2, 'milieu', 'green', 1)\n }\n s2.epaisseur = 2\n s1.epaisseur = 2\n s2.styleExtremites = '->'\n s1.styleExtremites = '->'\n A = point(0, b)\n l = texteParPosition('A', -0.5, b + 0.5, 'milieu', 'red', 1)\n t = tracePoint(A, 'red')// Variable qui trace les nom s A et B\n t.taille = 3\n t.epaisseur = 2\n\n if (this.correctionDetaillee) {\n if (a !== 0) {\n texteCorr += mathalea2d({\n xmin: -8,\n ymin: -5,\n xmax: 8,\n ymax: 6,\n scale: 0.5\n }, r, s1, s2, t, c, l, o, labs, lord)//, labs, lord\n }\n }\n }\n break\n case 'typeE2': // cas du coeff directeur fractionnaire\n a = randint(-5, 5, [0]) // numérateut coefficient directeur non nul\n b = randint(-3, 3) // ordonnée à l'origine\n aFrac = choice(listeFractions)\n a = aFrac[0] * choice([-1, 1])//\n d = aFrac[1] //\n r = repere({\n xMin: -8,\n xMax: 8,\n xUnite: 1,\n yMin: -6,\n yMax: 6,\n yUnite: 1,\n thickHauteur: 0.1,\n xLabelMin: -7,\n xLabelMax: 7,\n yLabelMax: 5,\n yLabelMin: -5,\n axeXStyle: '->',\n axeYStyle: '->',\n yLabelDistance: 1,\n yLabelEcart: 0.6,\n grilleSecondaire: true,\n grilleSecondaireYDistance: 1,\n grilleSecondaireXDistance: 1,\n grilleSecondaireYMin: -6,\n grilleSecondaireYMax: 6,\n grilleSecondaireXMin: -8,\n grilleSecondaireXMax: 8\n })\n c = droite(a / d, -1, b)\n c.color = colorToLatexOrHTML('red')\n c.epaisseur = 2\n texte = 'Déterminer graphiquement l\\'expression algébrique de la fonction affine $f$ représentée ci-dessous :<br>'\n texte += mathalea2d({\n xmin: -8,\n ymin: -6,\n xmax: 8,\n ymax: 6,\n pixelsParCm: 25,\n scale: 0.6\n }, r, c, o)// On trace le graphique\n texteCorr = 'Puisque $f$ est une fonction affine, on a : $f(x)=ax+b$.<br>'\n texteCorr += `$\\\\bullet$ $b$ est l'ordonnée à l'origine de la droite. On lit $b=${b}$.<br>`\n if (this.correctionDetaillee) {\n texteCorr += `L'ordonnée à l'origine est l'ordonnée du point d'intersection entre la droite et l'axe des ordonnées.<br>\n Ce point est le point $A$ de coordonnées $(0\\\\,;\\\\,${b})$.<br>`\n }\n texteCorr += `$\\\\bullet$ $a$ est le coefficient directeur de la droite.<br>\n $a=\\\\dfrac{\\\\text{Dénivelé vertical}}{\\\\text{Déplacement horizontal}}=${texFractionReduite(a, d)}$.<br>\n `\n if (this.correctionDetaillee) {\n texteCorr += '<br>On cherche un déplacement horizontal (en bleu) correspondant à un déplacement vertical entier (en vert).'\n texteCorr += `<br>On lit que pour un déplacement vers la droite de ${texteEnCouleurEtGras(d + ' unités', 'blue')}, il faut `\n if (a > 0) {\n texteCorr += 'monter de '\n }\n if (a < 0) {\n texteCorr += 'descendre de '\n }\n texteCorr += `${texteEnCouleurEtGras(Math.abs(a) + `${abs(a) === 1 ? ' unité' : ' unités'}`, 'green')}.<br>`\n }\n texteCorr += ' On peut en déduire que l\\'expression de la fonction $f$ est '\n if (b === 0) {\n texteCorr += `$f(x)=${texFractionReduite(a, d)}x$.<br>`\n } else {\n texteCorr += `$f(x)=${texFractionReduite(a, d)}x${ecritureAlgebrique(b)}$.<br>`\n }\n if (context.isAmc) {\n this.autoCorrection[i] = {\n enonce: texte,\n propositions: [\n {\n type: 'AMCNum',\n propositions: [{\n texte: `$${texFractionReduite(a, d)}x${ecritureAlgebrique(b)}$`,\n statut: '',\n reponse: {\n texte: 'numérateur (signé) n de $f(x)=\\\\dfrac{n}{d}x+b$',\n valeur: a,\n param: {\n digits: 1,\n decimals: 0,\n signe: true,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: 'dénominateur d de $f(x)=\\\\dfrac{n}{d}x+b$',\n valeur: d,\n param: {\n digits: 1,\n decimals: 0,\n signe: false,\n approx: 0\n }\n }\n }]\n },\n {\n type: 'AMCNum',\n propositions: [{\n texte: '',\n statut: '',\n reponse: {\n texte: 'valeur b de $f(x)=ax+b$',\n valeur: b,\n param: {\n digits: 1,\n decimals: 0,\n signe: true,\n approx: 0\n }\n }\n }]\n }\n ]\n }\n } else if (this.interactif && !context.isAmc) {\n texte += '<br>$f(x)=$' + ajouteChampTexteMathLive(this, i, 'largeur25 inline')\n setReponse(this, i, `${texFractionReduite(a, d)}x${ecritureAlgebrique(b)}`)\n }\n if (a > 0) {\n if (b > 2) {\n s1 = segment(-d, b - a, 0, b - a, 'blue')\n s2 = segment(0, b - a, 0, b, 'green')\n labs = texteParPosition(`$${d}$`, -d / 2, b - a - 0.8, 'milieu', 'blue', 1)\n lord = texteParPosition(`$${a}$`, 0.5, (2 * b - a) / 2 - 0.3, 'milieu', 'green', 1)\n } else {\n s1 = segment(0, b, d, b, 'blue')\n s2 = segment(d, b, d, a + b, 'green')\n labs = texteParPosition(`$${d}$`, d / 2, b - 1, 'milieu', 'blue', 1)\n lord = texteParPosition(`$${a}$`, d + 0.5, (2 * b + a) / 2 - 0.3, 'milieu', 'green', 1)\n }\n }\n if (a < 0) {\n if (b < 1) {\n s1 = segment(-d, -a + b, 0, -a + b, 'blue')\n s2 = segment(0, -a + b, 0, b, 'green')\n labs = texteParPosition(`$${d}$`, -d / 2, -a + b + 0.5, 'milieu', 'blue', 1)\n lord = texteParPosition(`$${a}$`, 0.5, (2 * b - a) / 2, 'milieu', 'green', 1)\n } else {\n s1 = segment(0, b, d, b, 'blue')\n s2 = segment(d, b, d, b + a, 'green')\n labs = texteParPosition(`$${d}$`, d / 2, b + 0.5, 'milieu', 'blue', 1)\n lord = texteParPosition(`$${a}$`, d + 0.5, (2 * b + a) / 2, 'milieu', 'green', 1)\n }\n }\n s2.epaisseur = 2\n s1.epaisseur = 2\n s2.styleExtremites = '->'\n s1.styleExtremites = '->'\n A = point(0, b)\n\n l = latexParPoint('A', translation(A, homothetie(vecteur(-a, d), A, 0.5 / Math.sqrt(a ** 2 + d ** 2)), 'A', 'center'), 'red', 10, 10, '') // Variable qui trace les points avec une croix\n t = tracePoint(A, 'red')// Variable qui trace les nom s A et B\n t.taille = 3\n t.epaisseur = 2\n\n // l.color = colorToLatexOrHTML('red')\n if (this.correctionDetaillee) {\n if (a !== 0) {\n texteCorr += mathalea2d({\n xmin: -8,\n ymin: -6,\n xmax: 8,\n ymax: 6,\n scale: 0.5\n\n }, r, s1, s2, t, l, c, o, labs, lord)\n }\n }// On trace le graphique\n break\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 = ['Choix des questions', 3, '1 : Coefficient directeur entier\\n2 :Coefficient directeur fractionnaire\\n3 :Mélange']\n}\n"],"names":["titre","interactifReady","interactifType","amcReady","amcType","dateDeModifImportante","uuid","ref","Lecturefonctionaffine","Exercice","typeDeQuestionsDisponibles","listeTypeQuestions","combinaisonListes","o","texteParPosition","listeFractions","i","A","a","b","d","r","c","t","l","s1","s2","aFrac","labs","lord","texte","texteCorr","cpt","repere","randint","droite","colorToLatexOrHTML","mathalea2d","context","reduireAxPlusB","ajouteChampTexteMathLive","setReponse","segment","point","tracePoint","choice","texFractionReduite","texteEnCouleurEtGras","abs","ecritureAlgebrique","latexParPoint","translation","homothetie","vecteur","listeQuestionsToContenu"],"mappings":"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"}