/* eslint-disable camelcase */
import { pointAdistance, point, arc, codageSegments, rotation, afficheLongueurSegment } from '../../modules/2d.js'
import Exercice from '../Exercice.js'
import { mathalea2d } from '../../modules/2dGeneralites.js'
import { context } from '../../modules/context.js'
import { listeQuestionsToContenu, randint, arrondi, texNombre, calcul } from '../../modules/outils.js'
export const titre = 'Calculer périmètre et aire de portions de cercles/disques'
/**
* 3 figures sont données, 1 quart de disque, un demi-disque et un 3-quarts de disque
* * 1 : Calculer les périmètres
* * 2 : Calculer les aires
* * 3 : Calculer les périmètres et aires
* Pas de version LaTeX
* @author Rémi Angot
* Rééférence 6M22-2
*/
export const uuid = 'ff386'
export const ref = '6M22-2'
export default function Perimetre_aire_et_portions_de_disques (pa = 3) {
Exercice.call(this) // Héritage de la classe Exercice()
this.titre = titre
this.consigne =
"Calculer le périmètre et l'aire de chacune des figures suivantes"
this.sup = 3 // 1 : périmètre, 2 : aire, 3 : périmètres et aires
this.spacing = 2
this.nbCols = 1
this.nbColsCorr = 1
// eslint-disable-next-line no-undef
context.isHtml ? (this.spacingCorr = 3) : (this.spacingCorr = 2)
this.nbQuestions = 1
this.nbQuestionsModifiable = false
this.nouvelleVersion = function (numeroExercice) {
this.sup = parseInt(this.sup)
this.listeCorrections = [] // Liste de questions corrigées
this.listeQuestions = []
this.autoCorrection = []
const objetsEnonce = []
let params
const C1 = point(5, 10)
const C2 = point(15, 10)
const C3 = point(10, 5)
let A1, B1, A2, B2, A3, B3
let quartDeDisque, demiDisque, troisQuartDeDisque
const r = randint(2, 5)
const r2 = randint(2, 5, r)
const r3 = randint(2, 5, [r, r2])
const figure = randint(1, 2)
let texteCorr
if (this.sup === 1) {
this.consigne = 'Calculer le périmètre de chacune des figures suivantes.'
}
if (this.sup === 2) {
this.consigne = "Calculer l'aire de chacune des figures suivantes."
}
if (figure === 1) {
params = { xmin: 4, ymin: -1, xmax: 20, ymax: 15, pixelsParCm: 20, scale: 0.75, mainlevee: false }
A1 = pointAdistance(C1, r, 0)
A2 = pointAdistance(C2, r2, 0)
A3 = pointAdistance(C3, r3, 0)
B1 = rotation(A1, C1, 90)
B2 = rotation(A2, C2, 180)
B3 = rotation(A3, C3, 270)
quartDeDisque = arc(A1, C1, 90, true, 'white', 'black', 0.2)
demiDisque = arc(A2, C2, 180, true, 'white', 'black', 0.2)
troisQuartDeDisque = arc(A3, C3, 270, true, 'white', 'black', 0.2)
objetsEnonce.push(quartDeDisque, demiDisque, troisQuartDeDisque,
codageSegments('//', 'blue', A1, C1, C1, B1), codageSegments('O', 'green', A3, C3, C3, B3),
afficheLongueurSegment(A1, C1), afficheLongueurSegment(A2, B2), afficheLongueurSegment(A3, C3))
if (this.sup === 1) {
// si on ne demande pas les aires
texteCorr = `La première figure est un quart de disque, son périmètre est composé d'un quart de cercle de rayon ${r} cm et de 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_1=\\dfrac{1}{4}\\times2\\times${r}\\times\\pi+${r}+${r}=${texNombre(
calcul(r / 2, 1)
)}\\pi+${2 * r}\\approx${texNombre(
arrondi(r * Math.PI / 2 + 2 * r, 1)
)}$ cm<br>`
texteCorr += `La deuxième figure est un demi-disque, son périmètre est composé d'un demi-cercle de diamètre ${2 * r2
} cm et d'un diamètre qui ferme la figure.<br>`
texteCorr += `$\\mathcal{P}_2=\\dfrac{1}{2}\\times${2 * r2
}\\times\\pi+${2 * r2}=${r2}\\pi+${2 * r2}\\approx${texNombre(
arrondi(r2 * Math.PI + 2 * r2, 1)
)}$ cm<br>`
texteCorr += `La troisième figure est trois quarts d'un disque, son périmètre est composé de trois quarts d'un cercle de rayon ${r3} cm et 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_3=\\dfrac{3}{4}\\times2\\times${r3}\\times\\pi+${r3}+${r3}=${texNombre((6 * r3) / 4, 1)}\\pi+${2 * r3}
\\approx${texNombre((6 * r3) * Math.PI / 4 + 2 * r3, 1)}$ cm<br>`
}
if (this.sup === 2) {
texteCorr = `La première figure est un quart de disque de rayon ${r} cm.<br>`
texteCorr += `$\\mathcal{A}_1=\\dfrac{1}{4}\\times${r}\\times${r}\\times\\pi=${texNombre(
calcul((r * r) / 4)
)}\\pi\\approx${texNombre((r * r) / 4 * Math.PI, 1)}~\\text{cm}^2$<br>`
texteCorr += `La deuxième figure est la moitié d'un disque de diamètre ${2 * r2
} cm donc de ${r2} cm de rayon.<br>`
texteCorr += `$\\mathcal{A}_2=\\dfrac{1}{2}\\times${r2}\\times${r2}\\times\\pi=${texNombre((r2 * r2) / 2, 1)}\\pi
\\approx${texNombre(r2 * r2 * Math.PI / 2, 1)}~\\text{cm}^2$<br>`
texteCorr += `La troisième figure est trois quarts d'un disque de rayon ${r3} cm.<br>`
texteCorr += `$\\mathcal{A}_3=\\dfrac{3}{4}\\times${r3}\\times${r3}\\times\\pi=${texNombre(3 * r3 * r3 / 4, 2)}\\pi
\\approx${texNombre(3 * r3 * r3 * Math.PI / 4, 1)}~\\text{cm}^2$`
}
if (this.sup === 3) {
texteCorr = `La première figure est un quart de disque, son périmètre est composé d'un quart de cercle de rayon ${r} cm et de 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_1=\\dfrac{1}{4}\\times2\\times${r}\\times\\pi+${r}+${r}=${texNombre(r / 2, 1)}\\pi+${2 * r}
\\approx${texNombre(r * Math.PI / 2 + 2 * r, 1)}$ cm<br>`
texteCorr += `La deuxième figure est un demi-disque, son périmètre est composé d'un demi-cercle de diamètre ${2 * r2
} cm et d'un diamètre qui ferme la figure.<br>`
texteCorr += `$\\mathcal{P}_2=\\dfrac{1}{2}\\times${2 * r2
}\\times\\pi+${2 * r2}=${r2}\\pi+${2 * r2}
\\approx${texNombre(r2 * Math.PI + 2 * r2, 1)}$ cm<br>`
texteCorr += `La troisième figure est trois quarts d'un disque, son périmètre est composé de trois quarts d'un cercle de rayon ${r3} cm et 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_3=\\dfrac{3}{4}\\times2\\times${r3}\\times\\pi+${r3}+${r3}=
${texNombre(6 * r3 / 4, 2)}\\pi+${2 * r3}
\\approx${texNombre(6 * r3 * Math.PI / 4 + 2 * r3, 1)}$ cm<br>`
texteCorr += `La première figure est un quart de disque de rayon ${r} cm.<br>`
texteCorr += `$\\mathcal{A}_1=\\dfrac{1}{4}\\times${r}\\times${r}\\times\\pi=
${texNombre(r * r / 4, 2)}\\pi
\\approx${texNombre(r * r * Math.PI / 4, 1)}~\\text{cm}^2$<br>`
texteCorr += `La deuxième figure est la moitié d'un disque de diamètre ${2 * r2
} cm donc de ${r2} cm de rayon.<br>`
texteCorr += `$\\mathcal{A}_2=\\dfrac{1}{2}\\times${r2}\\times${r2}\\times\\pi=${texNombre(r2 * r2 / 2, 1)}\\pi
\\approx${texNombre(r2 * r2 * Math.PI / 2, 1)}~\\text{cm}^2$<br>`
texteCorr += `La troisième figure est trois quarts d'un disque de rayon ${r3} cm.<br>`
texteCorr += `$\\mathcal{A}_3=\\dfrac{3}{4}\\times${r3}\\times${r3}\\times\\pi=${texNombre(3 * r3 * r3 / 4, 2)}\\pi
\\approx${texNombre(3 * r3 * r3 * Math.PI / 4, 1)}~\\text{cm}^2$`
}
} else {
params = { xmin: 4, ymin: -1, xmax: 20, ymax: 15, pixelsParCm: 20, scale: 0.75, mainlevee: false }
A1 = pointAdistance(C1, r, 0)
A2 = pointAdistance(C2, r2, 180)
A3 = pointAdistance(C3, r3, 0)
B1 = rotation(A1, C1, 90)
B2 = rotation(A2, C2, 270)
B3 = rotation(A3, C3, 180)
quartDeDisque = arc(A1, C1, 90, true, 'white', 'black', 0.2)
demiDisque = arc(A3, C3, -180, true, 'white', 'black', 0.2)
troisQuartDeDisque = arc(A2, C2, 270, true, 'white', 'black', 0.2)
objetsEnonce.push(quartDeDisque, demiDisque, troisQuartDeDisque,
codageSegments('//', 'blue', A1, C1, C1, B1), codageSegments('O', 'green', A2, C2, C2, B2),
afficheLongueurSegment(A1, C1), afficheLongueurSegment(B3, A3), afficheLongueurSegment(A2, C2))
texteCorr = `La première figure est un quart de cercle de rayon ${r} cm auquel il faut ajouter les 2 rayons qui ferment la figure.<br>`
if (this.sup === 1) {
texteCorr = `La première figure est un quart de disque, son périmètre est composé d'un quart de cercle de rayon ${r} cm et de 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_1=\\dfrac{1}{4}\\times2\\times${r}\\times\\pi+${r}+${r}=${r !== 2 ? texNombre(r / 2, 1) : ''}\\pi+${2 * r}
\\approx${texNombre(r * Math.PI / 2 + 2 * r, 1)}$ cm<br>`
texteCorr += `La deuxième figure est trois quarts d'un disque, son périmètre est composé de trois quarts d'un cercle de rayon ${r2} cm et 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_2=\\dfrac{3}{4}\\times2\\times${r2}\\times\\pi+${r2}+${r2}=${texNombre(6 * r2 / 4, 2)}\\pi+${2 * r2}
\\approx${texNombre(6 * r2 * Math.PI / 4 + 2 * r2, 1)}$ cm<br>`
texteCorr += `La troisième figure est un demi-disque, son périmètre est composé d'un demi-cercle de diamètre ${2 * r3
} cm et d'un diamètre qui ferme la figure.<br>`
texteCorr += `$\\mathcal{P}_3=\\dfrac{1}{2}\\times${2 * r3
}\\times\\pi+${2 * r3}=${r3}\\pi+${2 * r3}\\approx${texNombre(r3 * Math.PI + 2 * r3, 1)}$ cm<br>`
}
if (this.sup === 2) {
texteCorr = `La première figure est un quart de disque de rayon ${r} cm.<br>`
texteCorr += `$\\mathcal{A}_1=\\dfrac{1}{4}\\times${r}\\times${r}\\times\\pi=${r !== 2 ? texNombre(r * r / 4, 2) : ''}\\pi
\\approx${texNombre(r * r * Math.PI / 4, 1)}~\\text{cm}^2$<br>`
texteCorr += `La deuxième figure est trois quarts d'un disque rayon ${r2} cm.<br>`
texteCorr += `$\\mathcal{A}_2=\\dfrac{3}{4}\\times${r2}\\times${r2}\\times\\pi=${texNombre(3 * r2 * r2 / 4, 2)}\\pi
\\approx${texNombre(3 * r2 * r2 * Math.PI / 4, 1)}~\\text{cm}^2$<br>`
texteCorr += `La troisième figure est un demi-cercle de diamètre ${2 * r3
} cm donc de rayon ${r3} cm.<br>`
texteCorr += `$\\mathcal{A}_3=\\dfrac{1}{2}\\times${r3}\\times${r3}\\times\\pi=${texNombre(r3 * r3 / 2, 1)}\\pi
\\approx${texNombre(r3 * r3 * Math.PI / 2, 1)}~\\text{cm}^2$<br>`
}
if (this.sup === 3) {
texteCorr = `La première figure est un quart de disque, son périmètre est composé d'un quart de cercle de rayon ${r} cm et de 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_1=\\dfrac{1}{4}\\times2\\times${r}\\times\\pi+${r}+${r}=${r !== 2 ? texNombre(r / 2, 1) : ''}\\pi+${2 * r}
\\approx${texNombre(r * Math.PI / 2 + 2 * r, 1)}$ cm<br>`
texteCorr += `La deuxième figure est trois quarts d'un disque, son périmètre est composé de trois quarts d'un cercle de rayon ${r2} cm et 2 rayons qui ferment la figure.<br>`
texteCorr += `$\\mathcal{P}_2=\\dfrac{3}{4}\\times2\\times${r2}\\times\\pi+${r2}+${r2}=${texNombre(6 * r2 / 4, 2)}\\pi+${2 * r2}
\\approx${texNombre(6 * r2 * Math.PI / 4 + 2 * r2, 1)}$ cm<br>`
texteCorr += `La troisième figure est un demi-disque, son périmètre est composé d'un demi-cercle de diamètre ${2 * r3
} cm et d'un diamètre qui ferme la figure.<br>`
texteCorr += `$\\mathcal{P}_3=\\dfrac{1}{2}\\times${2 * r3
}\\times\\pi+${2 * r3}=${r3}\\pi+${2 * r3}\\approx${texNombre(r3 * Math.PI + 2 * r3, 1)}$ cm<br>`
texteCorr += `La première figure est un quart de disque de rayon ${r} cm.<br>`
texteCorr += `$\\mathcal{A}_1=\\dfrac{1}{4}\\times${r}\\times${r}\\times\\pi=${r !== 2 ? texNombre(r * r / 4, 2) : ''}\\pi
\\approx${texNombre(r * r * Math.PI / 4, 1)}~\\text{cm}^2$<br>`
texteCorr += `La deuxième figure est trois quarts d'un disque rayon ${r2} cm.<br>`
texteCorr += `$\\mathcal{A}_2=\\dfrac{3}{4}\\times${r2}\\times${r2}\\times\\pi=${texNombre(3 * r2 * r2 / 4, 2)}\\pi
\\approx${texNombre(3 * r2 * r2 * Math.PI / 4, 1)}~\\text{cm}^2$<br>`
texteCorr += `La troisième figure est un demi-cercle de diamètre ${2 * r3
} cm donc de rayon ${r3} cm.<br>`
texteCorr += `$\\mathcal{A}_3=\\dfrac{1}{2}\\times${r3}\\times${r3}\\times\\pi=${texNombre(r3 * r3 / 2, 1)}\\pi
\\approx${texNombre(r3 * r3 * Math.PI / 2, 1)}~\\text{cm}^2$<br>`
}
}
this.listeQuestions.push(mathalea2d(params, objetsEnonce))
this.listeCorrections.push(texteCorr)
listeQuestionsToContenu(this)
}
this.besoinFormulaireNumerique = ['Niveau de difficulté', 3, '1 : Périmètres\n2 : Aires\n3 : Les deux']
}