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/P017-nXQxk4Vc.js.map
{"version":3,"file":"P017-nXQxk4Vc.js","sources":["../../src/exercices/profs/P017.js"],"sourcesContent":["import { cercle } from '../../lib/2d/cercle.js'\nimport { droite } from '../../lib/2d/droites.js'\nimport { point } from '../../lib/2d/points.js'\nimport { polygone } from '../../lib/2d/polygones.js'\nimport { longueur, vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { symetrieAxiale, translation } from '../../lib/2d/transformations.js'\nimport { texteEnCouleurEtGras } from '../../lib/outils/embellissements'\nimport { arrondi } from '../../lib/outils/nombres'\nimport { sp } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre'\nimport Exercice from '../deprecatedExercice.js'\nimport { mathalea2d, colorToLatexOrHTML } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu } from '../../modules/outils.js'\nimport FractionEtendue from '../../modules/FractionEtendue.js'\nimport { context } from '../../modules/context.js'\nexport const titre = 'Encadrer l\\'aire d\\'un disque'\nexport const ref = 'P017'\nexport const uuid = '0ff0f'\n\n/**\n * Encadre l'aire d'un disque par des aires de figures composées que de carrés de même taille\n * @author Eric Elter\n * Référence P017\n*/\nexport default function EncadrerAireDisque () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.titre = titre\n  this.consigne = ''\n  this.spacing = context.isHtml ? 2 : 1\n  this.nbCols = 1\n  this.nbQuestions = 1\n  this.sup = 10\n  this.sup2 = 10\n\n  this.nouvelleVersion = function () {\n    let texte = ''\n    this.listeQuestions = []\n    this.listeCorrections = [''] // Liste de questions corrigées\n    let objets = []\n\n    const centre = point(0, 0)\n    const rayon = this.sup2\n    const paramsEnonce = { xmin: -rayon - 1, ymin: -rayon - 1, xmax: rayon + 1, ymax: rayon + 1, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n    const cerc = cercle(centre, rayon, 'red')\n    cerc.epaisseur = 2\n    const cote = rayon\n    let D = centre\n    let A = D\n    let B = D\n    let C = D\n    let Kre, Kre2, abscisse1, abscisse2, ordonnee1, ordonnee2, aireCarre\n    let compteurExterieur\n    let compteurInterieur\n    let longueurCoteCarreRef\n\n    texte += `Le disque a pour rayon ${texteEnCouleurEtGras(rayon + ' cm')}.<br>\n    Pour chaque étape, encadrons le disque entre une figure basée sur un maximum de carrés et une figure basée sur un minimum de carrés.\n    Encadrons ensuite l'aire du disque par l'aire de chaque figure.<br>`\n    for (let Nmax = 1; Nmax <= this.sup; Nmax++) {\n      texte += texteEnCouleurEtGras(` Étape ${Nmax} :`)\n      compteurExterieur = 0\n      compteurInterieur = 0\n      objets = [cerc]\n      D = centre\n      A = D\n      B = D\n      C = D\n      longueurCoteCarreRef = new FractionEtendue(cote, Nmax)\n      abscisse1 = new FractionEtendue(0, Nmax)\n      abscisse2 = new FractionEtendue(cote, Nmax)\n      aireCarre = arrondi(abscisse2 * abscisse2, 4)\n      ordonnee1 = new FractionEtendue(0, Nmax)\n      ordonnee2 = longueurCoteCarreRef\n\n      // Carres exterieurs\n      for (let i = 1; i <= Nmax; i++) {\n        while (longueur(centre, D) < rayon) {\n          A = D\n          B = translation(centre, vecteur(abscisse2.num / abscisse2.den, ordonnee1.num / ordonnee1.den))\n          C = translation(centre, vecteur(abscisse2.num / abscisse2.den, ordonnee2.num / ordonnee2.den))\n          D = translation(centre, vecteur(abscisse1.num / abscisse1.den, ordonnee2.num / ordonnee2.den))\n          Kre = polygone([A, B, C, D], 'green')\n          Kre2 = symetrieAxiale(Kre, droite(centre, point(centre.x, centre.y + 1)))\n          Kre.couleurDeRemplissage = colorToLatexOrHTML('green')\n          Kre.opaciteDeRemplissage = 0.5\n          Kre2.color = colorToLatexOrHTML('green')\n          Kre2.couleurDeRemplissage = colorToLatexOrHTML('green')\n          Kre2.opaciteDeRemplissage = 0.5\n          objets.push(Kre, Kre2)\n          Kre = symetrieAxiale(Kre, droite(centre, point(centre.x + 1, centre.y)))\n          Kre2 = symetrieAxiale(Kre2, droite(centre, point(centre.x + 1, centre.y)))\n          compteurExterieur = compteurExterieur + 4\n          Kre.color = colorToLatexOrHTML('green')\n          Kre.couleurDeRemplissage = colorToLatexOrHTML('green')\n          Kre.opaciteDeRemplissage = 0.5\n          Kre2.color = colorToLatexOrHTML('green')\n          Kre2.couleurDeRemplissage = colorToLatexOrHTML('green')\n          Kre2.opaciteDeRemplissage = 0.5\n          objets.push(Kre, Kre2)\n          ordonnee1 = ordonnee2\n          ordonnee2 = ordonnee2.sommeFraction(longueurCoteCarreRef)\n        }\n        ordonnee1 = new FractionEtendue(0, Nmax)\n        ordonnee2 = longueurCoteCarreRef\n        abscisse1 = abscisse2\n        abscisse2 = abscisse2.sommeFraction(longueurCoteCarreRef)\n        D = translation(centre, vecteur(abscisse1.num / abscisse1.den, ordonnee1.num / ordonnee1.den))\n        A = D\n        B = D\n        C = D\n      }\n\n      // Carres interieurs\n      D = centre\n      ordonnee1 = new FractionEtendue(0, Nmax)\n      ordonnee2 = longueurCoteCarreRef\n      abscisse1 = new FractionEtendue(0, Nmax)\n      abscisse2 = new FractionEtendue(cote, Nmax)\n      for (let i = 1; i <= Nmax; i++) {\n        A = D\n        B = translation(centre, vecteur(abscisse2.num / abscisse2.den, ordonnee1.num / ordonnee1.den))\n        C = translation(centre, vecteur(abscisse2.num / abscisse2.den, ordonnee2.num / ordonnee2.den))\n        D = translation(centre, vecteur(abscisse1.num / abscisse1.den, ordonnee2.num / ordonnee2.den))\n        while (longueur(centre, B) <= rayon && longueur(centre, C) <= rayon && longueur(centre, D) <= rayon) {\n          Kre = polygone([A, B, C, D], 'blue')\n          Kre2 = symetrieAxiale(Kre, droite(centre, point(centre.x, centre.y + 1)))\n          Kre.couleurDeRemplissage = colorToLatexOrHTML('blue')\n          Kre.opaciteDeRemplissage = 0.5\n          Kre2.color = colorToLatexOrHTML('blue')\n          Kre2.couleurDeRemplissage = colorToLatexOrHTML('blue')\n          Kre2.opaciteDeRemplissage = 0.5\n          objets.push(Kre, Kre2)\n          Kre = symetrieAxiale(Kre, droite(centre, point(centre.x + 1, centre.y)))\n          Kre2 = symetrieAxiale(Kre2, droite(centre, point(centre.x + 1, centre.y)))\n          compteurInterieur = compteurInterieur + 4\n          Kre.color = colorToLatexOrHTML('blue')\n          Kre.couleurDeRemplissage = colorToLatexOrHTML('blue')\n          Kre.opaciteDeRemplissage = 0.5\n          Kre2.color = colorToLatexOrHTML('blue')\n          Kre2.couleurDeRemplissage = colorToLatexOrHTML('blue')\n          Kre2.opaciteDeRemplissage = 0.5\n          objets.push(Kre, Kre2)\n          ordonnee1 = ordonnee2\n          ordonnee2 = ordonnee2.sommeFraction(longueurCoteCarreRef)\n          A = D\n          B = translation(centre, vecteur(abscisse2.num / abscisse2.den, ordonnee1.num / ordonnee1.den))\n          C = translation(centre, vecteur(abscisse2.num / abscisse2.den, ordonnee2.num / ordonnee2.den))\n          D = translation(centre, vecteur(abscisse1.num / abscisse1.den, ordonnee2.num / ordonnee2.den))\n        }\n        ordonnee1 = new FractionEtendue(0, Nmax)\n        ordonnee2 = longueurCoteCarreRef\n        abscisse1 = abscisse2\n        abscisse2 = abscisse2.sommeFraction(longueurCoteCarreRef)\n        D = translation(centre, vecteur(abscisse1.num / abscisse1.den, ordonnee1.num / ordonnee1.den))\n        A = D\n        B = D\n        C = D\n      }\n      texte += mathalea2d(paramsEnonce, objets)\n      texte += `<br>${compteurInterieur} carrés < Aire du disque < ${compteurExterieur} carrés<br>`\n      texte += `Or l'aire d'un carré est $${texNombre(aireCarre)}${sp()}cm^2$ (ou environ).<br>`\n      texte += `$${texNombre(compteurInterieur * aireCarre)}${sp()}cm^2$ < Aire du disque < $${texNombre(compteurExterieur * aireCarre)}${sp()}cm^2$<br>`\n      texte += context.isHtml ? '<br>' : '\\\\newpage'\n    }\n    this.listeQuestions.push(texte)\n\n    listeQuestionsToContenu(this)\n  }\n\n  this.besoinFormulaireNumerique = ['Nombre d\\'étapes (entre 1 et 50)', 50]\n  this.besoinFormulaire2Numerique = ['Rayon du disque (nombre entier entre 1 et 20)', 20]\n}\n"],"names":["titre","ref","uuid","EncadrerAireDisque","Exercice","context","texte","objets","centre","point","rayon","paramsEnonce","cerc","cercle","cote","D","A","B","C","Kre","Kre2","abscisse1","abscisse2","ordonnee1","ordonnee2","aireCarre","compteurExterieur","compteurInterieur","longueurCoteCarreRef","texteEnCouleurEtGras","Nmax","FractionEtendue","arrondi","i","longueur","translation","vecteur","polygone","symetrieAxiale","droite","colorToLatexOrHTML","mathalea2d","texNombre","sp","listeQuestionsToContenu"],"mappings":"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"}