exercices/2e/2N32-4.js

import Exercice from '../Exercice.js'
import { listeQuestionsToContenu, randint, choice, ecritureAlgebrique, lettreDepuisChiffre } from '../../modules/outils.js'
import { setReponse } from '../../modules/gestionInteractif.js'
import { ajouteChampTexteMathLive } from '../../modules/interactif/questionMathLive.js'
import { context } from '../../modules/context.js'

export const titre = 'Simplifier une somme de racines carrées'
export const interactifReady = true
export const interactifType = 'mathLive'

/**
 * 2N32-4, ex 2N11-1
 * @author Stéphane Guyon
 */
export const uuid = '12b72'
export const ref = '2N32-4'
export default function SimplifierUneSommeDeRacinesCarrees () {
  Exercice.call(this) // Héritage de la classe Exercice()
  this.titre = titre
  // this.consigne = ''
  this.nbQuestions = 4
  this.nbCols = 2
  this.nbColsCorr = 2
  this.sup = 1
  this.spacingCorr = context.isHtml ? 2 : 1
  this.nouvelleVersion = function () {
    this.listeQuestions = [] // Liste de questions
    this.listeCorrections = [] // Liste de questions corrigées

    for (let i = 0, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {
      const e1 = randint(2, 8) * choice([-1, 1])
      const e2 = randint(2, 8) * choice([-1, 1])
      const e3 = randint(2, 8) * choice([-1, 1])
      const a1 = randint(2, 11)
      const a2 = randint(2, 11, [a1])
      const a3 = randint(2, 11, [a1, a2])
      const b1 = a1 * a1
      const b2 = a2 * a2
      const b3 = a3 * a3
      const c = randint(2, 11, [4, 8, 9])
      const d1 = c * b1
      const d2 = c * b2
      const d3 = c * b3
      const f1 = e1 * a1
      const f2 = e2 * a2
      const f3 = e3 * a3
      const f = f1 + f2 + f3

      texte = `Écrire $${lettreDepuisChiffre(i + 1)}=${e1}\\sqrt{${d1}} ${ecritureAlgebrique(e2)}\\sqrt{${d2}} ${ecritureAlgebrique(e3)}\\sqrt{${d3}}$`
      texte += this.sup === 1 ? ` sous la forme $a\\sqrt{${c}}$ où $a$ est un entier.` : ' sous la forme $a\\sqrt{b}$ où $a$ et $b$ sont des entiers et $b$ le plus petit possible.'
      texteCorr = `On cherche le plus grand carré parfait diviseur de ${d1}, ${d2} et ${d3}. <br>
                On trouve $${d1}=${b1} \\times ${c}~~$, $~~${d2}=${b2} \\times ${c}~~$ et $${d3}=${b3} \\times ${c}$<br>
                On a donc  : $\\sqrt{${d1}}=\\sqrt{${a1}^{2} \\times ${c} }=${a1}\\times \\sqrt{${c}}$,
                $~~\\sqrt{${d2}}=\\sqrt{${a2}^{2} \\times ${c} }=${a2}\\times \\sqrt{${c}}~$ et
                $~\\sqrt{${d3}}=\\sqrt{${a3}^{2} \\times ${c} }=${a3}\\times \\sqrt{${c}}$<br>
                On en déduit que : $${lettreDepuisChiffre(i + 1)}=${e1}\\times${a1}\\times \\sqrt{${c}} ${ecritureAlgebrique(e2)}\\times ${a2}\\times \\sqrt{${c}}${ecritureAlgebrique(e3)}\\times ${a3}\\times \\sqrt{${c}}$<br>
                $${lettreDepuisChiffre(i + 1)}=${f1}\\times \\sqrt{${c}} ${ecritureAlgebrique(f2)}\\times \\sqrt{${c}}${ecritureAlgebrique(f3)}\\times \\sqrt{${c}}$  <br>
                $${lettreDepuisChiffre(i + 1)}=(${f1}${ecritureAlgebrique(f2)}${ecritureAlgebrique(f3)})\\times \\sqrt{${c}} = ${f}\\sqrt{${c}}$`

      if (this.interactif) {
        texte += '<br><br>' + ajouteChampTexteMathLive(this, i, 'inline largeur50', { texte: `$${lettreDepuisChiffre(i + 1)}=$` })
        setReponse(this, i, `${f}\\sqrt{${c}}`)
      }

      if (this.listeQuestions.indexOf(texte) === -1) { // Si la question n'a jamais été posée, on en créé une autre
        this.listeQuestions.push(texte)
        this.listeCorrections.push(texteCorr)
        i++
      }
      cpt++
    }
    listeQuestionsToContenu(this)
  }
  this.besoinFormulaireNumerique = ['Niveau de difficulté', 2, '1 : En donnat la racine carrée unité\n2 : Sans indication']
}