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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"}