File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/2S12-3-bmn9C_QY.js.map
{"version":3,"file":"2S12-3-bmn9C_QY.js","sources":["../../src/exercices/2e/2S12-3.js"],"sourcesContent":["import { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { texteEnCouleur } from '../../lib/outils/embellissements'\nimport { egalOuApprox } from '../../lib/outils/ecritures.js'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport Decimal from 'decimal.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\n\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Déterminer un taux d\\'évolution réciproque'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const dateDePublication = '16/01/2022'\n\n/**\n * Problèmes d'évolution réciproque'\n *\n * * Situations variées : prix , tarif horaire, nombre d'employés\n * * Déterminer un taux d'évolution réciproque\n * * Mélange des 3 types de problèmes\n * @author Florence Tapiero\n * 2S12-3\n */\nexport const uuid = '509db'\nexport const ref = '2S12-3'\nexport default function EvolutionsSuccesives () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.titre = titre\n this.interactifReady = interactifReady\n this.interactifType = interactifType\n this.consigne = ''\n this.nbQuestions = 3\n this.nbCols = 1\n this.nbColsCorr = 1\n this.sup = 4 // type de questions\n this.spacing = 1\n this.spacingCorr = 1\n\n this.nouvelleVersion = function () {\n this.sup = parseInt(this.sup)\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n this.autoCorrection = [] // Cette ligne doit être ajoutée afin de vider les précédentes valeurs pour AMC\n const typesDeQuestionsDisponibles = [1, 2, 3]\n const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions) // Tous les types de questions sont posées mais l'ordre diffère à chaque \"cycle\"\n let typesDeQuestions, CM, CMr, CMra, p, pr, nom, nomr, t, tr, metier\n for (let i = 0, texte, texteCorr, taux, tauxr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n typesDeQuestions = listeTypeDeQuestions[i]\n switch (typesDeQuestions) {\n case 1 :\n taux = randint(-50, 50, 0)\n if (taux > 0) {\n nom = 'hausse'\n }\n if (taux < 0) {\n nom = 'baisse'\n }\n p = new Decimal(taux).div(100)\n t = Math.abs(taux)\n CM = p.plus(1)\n CMr = CM.pow(-1)\n CMra = CMr.toDP(4)\n pr = CMra.sub(1)\n tauxr = pr.mul(100)\n tr = tauxr.abs()\n if (tauxr.isPos()) {\n nomr = 'hausse'\n }\n if (tauxr.isNeg()) {\n nomr = 'baisse'\n }\n texte = `Le prix d'un article subit une ${nom} de $${t}\\\\,\\\\%$.<br>Quelle évolution devra-t-il subir pour revenir à son prix initial ?`\n texte += '<br>On donnera le taux d\\'évolution en pourcentage, éventuellement arrondi à $0,01\\\\,\\\\%$ près.'\n texte += ajouteChampTexteMathLive(this, i, 'largeur15 inline', { texteApres: '%' })\n texteCorr = 'Pour déterminer le taux d\\'évolution réciproque, on commence par calculer le coefficient multiplicateur associé :'\n if (taux > 0) {\n texteCorr += `<br>Augmenter de $${t}\\\\,\\\\%$ revient à multiplier par $ 1 + \\\\dfrac{${t}}{100} = ${texNombre(CM, 2)}$ `\n }\n if (taux < 0) {\n texteCorr += `<br>Diminuer de $${t}\\\\,\\\\%$ revient à multiplier par $ 1 - \\\\dfrac{${t}}{100} = ${texNombre(CM, 2)}$ `\n }\n texteCorr += `<br><br>Le coefficient multiplicateur réciproque est donc : $\\\\dfrac{1}{${texNombre(CM, 2)}} ${egalOuApprox(CMr, 4)} ${texNombre(CMra, 4)}$.`\n if (CMr - CMra !== 0) {\n texteCorr += texteEnCouleur('<br>Remarque : Il faut arrondir les valeurs à $10^{-4}$ pour avoir un arrondi en pourcentage à $10^{-2}$.')\n }\n if (CMr > 1) {\n texteCorr += `<br><br>Or $${texNombre(CMra, 4)} = 1 + ${texNombre(pr, 4)} = 1 + \\\\dfrac{${texNombre(tr, 2)}}{100}$ ce qui correspond à une hausse de $${texNombre(tr, 2)}\\\\,\\\\%$.`\n }\n if (CMr < 1) {\n texteCorr += `<br><br>Or $${texNombre(CMra, 4)} = 1 - ${texNombre(pr.abs(), 4)} = 1 - \\\\dfrac{${texNombre(tr, 2)}}{100}$ ce qui correspond à une baisse de $${texNombre(tr, 2)}\\\\,\\\\%$.`\n }\n if (CMr - CMra === 0) {\n texteCorr += `<br><br>Il faut donc appliquer une ${nomr} de $${texNombre(tr, 2)}\\\\,\\\\%$ pour revenir au prix initial.`\n } else {\n texteCorr += `<br><br>Il faut donc appliquer une ${nomr} d'environ $${texNombre(tr, 2)}\\\\,\\\\%$ pour revenir au prix initial.`\n }\n break\n case 2 :\n taux = randint(-50, 50, 0)\n if (taux > 0) {\n nom = 'd\\'augmenter'\n }\n if (taux < 0) {\n nom = 'de diminuer'\n }\n p = new Decimal(taux).div(100)\n t = Math.abs(taux)\n CM = p.plus(1)\n CMr = CM.pow(-1)\n CMra = CMr.toDP(4)\n pr = CMra.sub(1)\n tauxr = pr.mul(100)\n tr = tauxr.abs()\n\n if (tauxr > 0) {\n nomr = 'hausse'\n }\n if (tauxr < 0) {\n nomr = 'baisse'\n }\n metier = choice(['Un artisan', 'Un ouvrier', 'Un coiffeur', 'Une informaticienne', 'Une cordonnière', 'Une luthière'])\n texte = `${metier} a décidé ${nom} son tarif horaire de $${t}\\\\,\\\\%$.<br>Quelle évolution devra-t-il subir pour revenir à son niveau de départ ?`\n texte += '<br>On donnera le taux d\\'évolution en pourcentage, éventuellement arrondi à $0,01\\\\,\\\\%$ près.'\n texte += ajouteChampTexteMathLive(this, i, 'largeur15 inline', { texteApres: '%' })\n texteCorr = 'Pour déterminer le taux d\\'évolution réciproque, on commence par calculer le coefficient multiplicateur associé :'\n if (taux > 0) {\n texteCorr += `<br>Augmenter de $${t}\\\\,\\\\%$ revient à multiplier par $ 1 + \\\\dfrac{${t}}{100} = ${texNombre(CM, 2)}$ `\n }\n if (taux < 0) {\n texteCorr += `<br>Diminuer de $${t}\\\\,\\\\%$ revient à multiplier par $ 1 - \\\\dfrac{${t}}{100} = ${texNombre(CM, 2)}$ `\n }\n texteCorr += `<br><br>Le coefficient multiplicateur réciproque est donc : $\\\\dfrac{1}{${texNombre(CM, 2)}} ${egalOuApprox(CMr, 4)} ${texNombre(CMr, 4)}$.`\n if (CMr - CMra !== 0) {\n texteCorr += texteEnCouleur('<br>Remarque : Il faut arrondir les valeurs à $10^{-4}$ pour avoir un arrondi en pourcentage à $10^{-2}$.')\n }\n if (CMr > 1) {\n texteCorr += `<br><br>Or $${texNombre(CMra, 4)} = 1 + ${texNombre(pr, 4)} = 1 + \\\\dfrac{${texNombre(tr, 2)}}{100}$ ce qui correspond à une hausse de $${texNombre(tr, 2)}\\\\,\\\\%$.`\n }\n if (CMr < 1) {\n texteCorr += `<br><br>Or $${texNombre(CMra, 4)} = 1 - ${texNombre(pr.abs(), 4)} = 1 - \\\\dfrac{${texNombre(tr, 2)}}{100}$ ce qui correspond à une baisse de $${texNombre(tr, 2)}\\\\,\\\\%$.`\n }\n if (CMr - CMra === 0) {\n texteCorr += `<br><br>Il faut donc appliquer une ${nomr} de $${texNombre(tr, 2)}\\\\,\\\\%$ pour revenir au niveau de départ.`\n } else {\n texteCorr += `<br><br>Il faut donc appliquer une ${nomr} d'environ $${texNombre(tr, 2)}\\\\,\\\\%$ pour revenir au niveau de départ.`\n }\n break\n case 3 :\n taux = randint(-50, 50, 0)\n if (taux > 0) {\n nom = 'augmenté'\n }\n if (taux < 0) {\n nom = 'baissé'\n }\n p = new Decimal(taux).div(100)\n t = Math.abs(taux)\n CM = p.plus(1)\n CMr = CM.pow(-1)\n CMra = CMr.toDP(4)\n pr = CMra.sub(1)\n tauxr = pr.mul(100)\n tr = tauxr.abs()\n if (tauxr > 0) {\n nomr = 'hausse'\n }\n if (tauxr < 0) {\n nomr = 'baisse'\n }\n metier = choice(['d\\'employés', 'de commerciaux', 'de stagiaires', 'de jeunes diplomés'])\n texte = `Le nombre ${metier} d'une entreprise a ${nom} de $${t}\\\\,\\\\%$.<br>Quelle évolution permettrait de retrouver le nombre de départ ?`\n texte += '<br>On donnera le taux d\\'évolution en pourcentage, éventuellement arrondi à $0,01\\\\,\\\\%$ près.'\n texte += ajouteChampTexteMathLive(this, i, 'largeur15 inline', { texteApres: '%' })\n texteCorr = 'Pour déterminer le taux d\\'évolution réciproque, on commence par calculer le coefficient multiplicateur associé :'\n if (taux > 0) {\n texteCorr += `<br>Augmenter de $${t}~\\\\%$ revient à multiplier par $ 1 + \\\\dfrac{${t}}{100} = ${texNombre(CM, 2)}$ `\n }\n if (taux < 0) {\n texteCorr += `<br>Diminuer de $${t}\\\\,\\\\%$ revient à multiplier par $ 1 - \\\\dfrac{${t}}{100} = ${texNombre(CM, 2)}$ `\n }\n texteCorr += `<br><br>Le coefficient multiplicateur réciproque est donc : $\\\\dfrac{1}{${texNombre(CM, 2)}} ${egalOuApprox(CMr, 3)} ${texNombre(CMr, 4)}$.`\n if (CMr - CMra !== 0) {\n texteCorr += texteEnCouleur('<br>Remarque : Il faut arrondir les valeurs à $10^{-4}$ pour avoir un arrondi en pourcentage à $10^{-2}$.')\n }\n if (CMr > 1) {\n texteCorr += `<br><br>Or $${texNombre(CMra, 4)} = 1 + ${texNombre(pr, 4)} = 1 + \\\\dfrac{${texNombre(tr, 2)}}{100}$ ce qui correspond à une hausse de $${texNombre(tr, 2)}\\\\,\\\\%$.`\n }\n if (CMr < 1) {\n texteCorr += `<br><br>Or $${texNombre(CMra, 4)} = 1 - ${texNombre(pr.abs(), 4)} = 1 - \\\\dfrac{${texNombre(tr, 2)}}{100}$ ce qui correspond à une baisse de $${texNombre(tr, 2)}\\\\,\\\\%$.`\n }\n if (CMr - CMra === 0) {\n texteCorr += `<br><br>Il faut donc appliquer une ${nomr} de $${texNombre(tr, 2)}\\\\,\\\\%$ pour revenir au niveau de départ.`\n } else {\n texteCorr += `<br><br>Il faut donc appliquer une ${nomr} d'environ $${texNombre(tr, 2)}\\\\,\\\\%$ pour revenir au niveau de départ.`\n }\n break\n }\n setReponse(this, i, tauxr)\n if (this.questionJamaisPosee(i, taux)) {\n // Si la question n'a jamais été posée, on en créé une autre\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n}\n"],"names":["titre","interactifReady","interactifType","dateDePublication","uuid","ref","EvolutionsSuccesives","Exercice","listeTypeDeQuestions","combinaisonListes","typesDeQuestions","CM","CMr","CMra","p","pr","nom","nomr","t","tr","metier","i","texte","texteCorr","taux","tauxr","cpt","randint","Decimal","ajouteChampTexteMathLive","texNombre","egalOuApprox","texteEnCouleur","choice","setReponse","listeQuestionsToContenu"],"mappings":"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"}