exercices/2e/2N41-7.js

import Exercice from '../Exercice.js'
import { listeQuestionsToContenu, randint, choice, combinaisonListes, reduireAxPlusB, ecritureAlgebrique } from '../../modules/outils.js'

export const titre = 'Factoriser avec les identités remarquables (niveau II)'

/**
 * Factoriser avec a²-b² avec a ou b expression algébrique 1er degré
* @author Stéphane Guyon
* 2L11-1
*/
export const uuid = '874e8'
export const ref = '2N41-7'
export default function FactoriserIdentitesremarquables2 () {
  'use strict'
  Exercice.call(this) // Héritage de la classe Exercice()
  this.titre = titre
  this.consigne = 'Factoriser les expressions suivantes.'
  this.nbCols = 1
  this.nbColsCorr = 1
  this.spacing = 1
  this.spacingCorr = 1
  this.nbQuestions = 3
  this.sup = 1

  this.nouvelleVersion = function () {
    this.listeQuestions = [] // Liste de questions
    this.listeCorrections = [] // Liste de questions corrigées
    let typesDeQuestionsDisponibles = []
    if (this.sup === 1) {
      typesDeQuestionsDisponibles = [1] // (ax+b)²-c²
    }
    if (this.sup === 2) {
      typesDeQuestionsDisponibles = [2] // c²-(ax+b)²
    }
    if (this.sup === 3) {
      typesDeQuestionsDisponibles = [3] // (ax+b)²-(cx+d)²
    }
    if (this.sup === 4) {
      typesDeQuestionsDisponibles = [1, 2, 3] // Mélange des cas précédents
    }
    const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)
    for (let i = 0, texte, texteCorr, cpt = 0, a, b, c, d, k, typesDeQuestions; i < this.nbQuestions && cpt < 50;) {
      typesDeQuestions = listeTypeDeQuestions[i]
      k = choice([-1, 1])
      a = randint(2, 9)
      a = a * k
      b = randint(1, 9)
      k = choice([-1, 1])
      b = b * k
      c = randint(1, 9)
      d = randint(1, 9)
      k = choice([-1, 1])
      d = d * k
      if (a === c && b === d) {
        a = a + 1
        b = b - 2
      }
      switch (typesDeQuestions) {
        case 1:
          texte = `$(${a}x${ecritureAlgebrique(b)})^2-${c * c}$` // (ax+b)²-c²
          texteCorr = `$(${a}x${ecritureAlgebrique(b)})^2-${c * c}=(${a}x${ecritureAlgebrique(b)})^2-${c}^2$<br>
                    On reconnaît l'identité remarquable $a^2-b^2=(\\color{red}a\\color{black}-\\color{blue}b)(\\color{red}a\\color{black}+\\color{blue}b)$, avec $a=\\color{red}${a}x${ecritureAlgebrique(b)}$ et $b=\\color{blue}${c}$<br>
                    $(${a}x${ecritureAlgebrique(b)})^2-${c * c}=\\left(\\color{red} (${a}x${ecritureAlgebrique(b)})\\color{black}-\\color{blue} ${c}\\right) \\left(\\color{red}(${a}x${ecritureAlgebrique(b)})\\color{black}+\\color{blue}${c}\\right)$<br>
                    d'où, après réduction : $(${a}x${ecritureAlgebrique(b)})^2-${c * c}=(${reduireAxPlusB(a, b - c)}) (${reduireAxPlusB(a, b + c)})$`

          break
        case 2:
          texte = `$${c * c}-(${a}x${ecritureAlgebrique(b)})^2$` // c²-(ax+b)²
          texteCorr = `$${c * c}-(${a}x${ecritureAlgebrique(b)})^2=${c}^2-(${a}x${ecritureAlgebrique(b)})^2$<br>
                    On reconnaît l'identité remarquable $a^2-b^2=(\\color{red}a\\color{black}-\\color{blue}b)(\\color{red}a\\color{black}+\\color{blue}b)$, avec $a=\\color{blue}${c}$ et $b=\\color{red}${a}x${ecritureAlgebrique(b)}$. <br>
                    $${c * c}-(${a}x${ecritureAlgebrique(b)})^2=\\left(\\color{blue}${c}\\color{black}-(\\color{red}${a}x${ecritureAlgebrique(b)}\\color{black})\\right) \\left(\\color{blue}${c}\\color{black}+(\\color{red}${a}x${ecritureAlgebrique(b)}\\color{black})\\right)$<br>
                    $\\phantom{${c * c}-(${a}x${ecritureAlgebrique(b)})^2}=(${c}${ecritureAlgebrique(-a)}x${ecritureAlgebrique(-b)}) (${c}${ecritureAlgebrique(a)}x${ecritureAlgebrique(b)})$<br>
                    d'où, après réduction : $${c * c}-(${a}x${ecritureAlgebrique(b)})^2=(${reduireAxPlusB(-a, c - b)}) (${reduireAxPlusB(a, b + c)})$`
          break
        case 3:
          texte = `$(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2$` // (ax+b)²-(cx+d)²
          texteCorr = `On reconnaît l'identité remarquable $a^2-b^2$ :<br>
                    $(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2=a^2-b^2$<br> 
                    avec $a=\\color{red}${a}x${ecritureAlgebrique(b)}$ et $b=\\color{blue}${c}x${ecritureAlgebrique(d)}$ . <br>
                    On applique $a^2-b^2=(\\color{red}a\\color{black}-\\color{blue}b\\color{black})(\\color{red}a\\color{black}+\\color{blue}b\\color{black})$, <br>
                    $(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2=
                    (\\color{red}${a}x${ecritureAlgebrique(b)}\\color{black})-
                    (\\color{blue}${c}x${ecritureAlgebrique(d)}\\color{black})
                    (\\color{red}${a}x${ecritureAlgebrique(b)}\\color{black})+
                    (\\color{blue}${c}x${ecritureAlgebrique(d)}\\color{black})$<br>
                    $\\phantom{(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2}=
                    (${a}x${ecritureAlgebrique(b)}${ecritureAlgebrique(-c)}x${ecritureAlgebrique(-d)})
                    (${a}x${ecritureAlgebrique(b)}${ecritureAlgebrique(c)}x${ecritureAlgebrique(d)})$<br>`
          if (a !== c && b !== d && a !== -c && b !== -d) {
            texteCorr += `$\\phantom{(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2}=
                        (${reduireAxPlusB(a - c, b - d)})(${reduireAxPlusB(a + c, b + d)})$  `
          } else {
            if (a !== c && a !== -c && b === d && a !== c + 1) {
              texteCorr += `$\\phantom{(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2}=
                                ${a - c}x(${reduireAxPlusB(a + c, b + d)})$    `
            }
            if (a !== c && a !== -c && b === d && a === c + 1) {
              texteCorr += `$\\phantom{(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2}=
                                x(${reduireAxPlusB(a + c, b + d)})$    `
            }
            if (a !== c && a !== -c && b === -d) {
              texteCorr += `$\\phantom{(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2}=
                                    ${a + c}x(${reduireAxPlusB(a - c, b - d)})$  `
            }
            if (a === c && b !== d && b !== -d) {
              texteCorr += `$\\phantom{(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2}=
                                    ${b - d}(${reduireAxPlusB(a + c, b + d)})$  `
            }
            if (a === -c && b !== d && b !== -d) {
              texteCorr += `$\\phantom{(${a}x${ecritureAlgebrique(b)})^2-(${c}x${ecritureAlgebrique(d)})^2}=
                                    ${b + d}(${reduireAxPlusB(a - c, b - d)})$  `
            }
          } ;
          break
      }
      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é', 4, '1 :forme (ax+b)²-c²\n 2 : forme c²-(ax+b)²\n 3 : (ax+b)²-(cx+d)²\n 4 : Mélange des cas précédents']
}