exercices/can/1e/can1L06.js

import Exercice from '../../Exercice.js'
import { randint, ecritureAlgebriqueSauf1, ecritureAlgebrique, reduireAxPlusB } from '../../../modules/outils.js'
export const titre = 'Déterminer une forme canonique'
export const interactifReady = true
export const interactifType = 'mathLive'
export const dateDePublication = '07/06/2022'

/**
 *
 * @author Gilles Mora repris de 1E11-3 de Stéphane
 * Référence can1L06
*/
export const uuid = 'd1ad9'
export const ref = 'can1L06'
export default function FormeCanonique () {
  Exercice.call(this) // Héritage de la classe Exercice()
  this.typeExercice = 'simple' // Cette ligne est très importante pour faire faire un exercice simple !
  this.nbQuestions = 1
  // Dans un exercice simple, ne pas mettre de this.listeQuestions = [] ni de this.consigne
  this.formatChampTexte = 'largeur15 inline'
  this.nouvelleVersion = function () {
    const alpha = randint(-3, 3, [0])
    const beta = randint(-5, 5, [0])
    const b = -2 * alpha
    const c = alpha * alpha + beta
    if (c !== 0) {
      if (!this.interactif) {
        this.question = `Soit $f(x)= x^2${ecritureAlgebriqueSauf1(b)}x${ecritureAlgebrique(c)}$.<br>

       Donner la forme canonique de $f(x)$.`
      } else {
        this.question = `Soit $f(x)= x^2${ecritureAlgebriqueSauf1(b)}x${ecritureAlgebrique(c)}$.<br>

        La forme canonique de $f(x)$ est : $f(x)=$`
      }
    } else {
      if (!this.interactif) {
        this.question = `Soit 
        $f(x)= x^2${ecritureAlgebriqueSauf1(b)}x$.<br>

        Donner la forme canonique de $f(x)$.`
      } else {
        this.question = `Soit 
        $f(x)= x^2${ecritureAlgebriqueSauf1(b)}x$.<br>
        
       La forme canonique de $f(x)$ est : $f(x)=$`
      }
    }

    this.correction = 'La forme canonique est donnée par : $f(x)=a(x-\\alpha)^2+\\beta$.'

    this.correction += `<br> On a $a=1$, et on reconnaît dans $x^2${ecritureAlgebriqueSauf1(b)}x${ecritureAlgebrique(c)}$, le début du carré de $(${reduireAxPlusB(1, -alpha)})^2$.`
    this.correction += `<br>On peut donc écrire :  $\\underbrace{x^2${ecritureAlgebriqueSauf1(b)}x}_{(${reduireAxPlusB(1, -alpha)})^2-${(-alpha) ** 2}}${ecritureAlgebrique(c)}
    =(${reduireAxPlusB(1, -alpha)})^2-${(-alpha) ** 2}${ecritureAlgebrique(c)}$.`
    this.correction += '<br>Soit : $f(x)='
    this.correction += `(x ${ecritureAlgebrique(-alpha)})^2${ecritureAlgebrique(beta)}$`

    this.reponse = [`(x+${b / 2})^2+${beta}`, `${beta}+(x+${b / 2})^2`]
    this.canEnonce = this.question
    this.canReponseACompleter = ''
  }
}