exercices/can/2e/can2N01.js

import Exercice from '../../Exercice.js'
import { randint, choice, sp, texNombrec, texteEnCouleur, calcul } from '../../../modules/outils.js'
export const titre = 'Utiliser les intervalles'
export const interactifReady = true
export const interactifType = 'mathLive'

/**
 * Modèle d'exercice très simple pour la course aux nombres
 * @author Gilles Mora
 * Référence can2N01
 * Date de publication 24/10/2021
*/
export const uuid = 'f6f76'
export const ref = 'can2N01'
export default function Intervalles () {
  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.date = 1635094684684
  this.nbQuestions = 1
  this.tailleDiaporama = 2
  // Dans un exercice simple, ne pas mettre de this.listeQuestions = [] ni de this.consigne
  this.formatChampTexte = 'largeur15 inline'
  this.nouvelleVersion = function () {
    let a, b, c, N, d, e

    switch (choice([1, 2])) { //, 2, 2
      case 1:
        a = randint(1, 4) * (-1)
        b = randint(1, 4)
        c = calcul(randint(-4, -1) + randint(-9, -1) / 10)
        N = choice(['a', 'b', 'c', 'd', 'e'])//, ${miseEnEvidence(a, 'black') + sp(2)} ; ${sp(2) + miseEnEvidence(b, 'black')}     Bigg[${a}  ${sp(2)} ; ${sp(2)} ${b}\\Bigg]$ <br><br>$\\left]${miseEnEvidence(a, 'black') + sp(2)} ; ${sp(2) + miseEnEvidence(b, 'black')}\\right]$?<br>
        if (N === 'a') {
          this.question = `Combien y a-t-il d'entiers dans l'intervalle $\\bigg[${a}  ${sp(1)} ; ${sp(1)} ${b}\\bigg]$ ?      
                    `
          this.correction = ` Il y a $${b - a + 1}$ entiers dans l'intervalle $\\bigg[${a}${sp(1)} ; ${sp(1)}${b}\\bigg]$.`
          this.correction += texteEnCouleur(`<br> Mentalement : <br>
  Comptez-les !<br> 
 Ou bien en calculant la différence des bornes et en ajoutant $1$ puisque les bornes de l'intervalles sont "comprises".<br>
 On trouve : $${b}-(${a})+1=${b - a + 1}$.
    `)
          this.reponse = b - a + 1
        }
        if (N === 'b') {
          this.question = `Combien y a-t-il d'entiers dans l'intervalle $\\bigg]${a}  ${sp(1)} ; ${sp(1)} ${b}\\bigg]$ ?`
          this.correction = ` Il y a $${b - a}$ entiers dans l'intervalle $\\bigg]${a}  ${sp(1)} ; ${sp(1)} ${b}\\bigg]$.`
          this.correction += texteEnCouleur(`<br> Mentalement : <br>
  Comptez-les !<br> 
 Attention l'entier $${a}$ n'appartient pas à l'intervalle.
    `)
          this.reponse = b - a
        }
        if (N === 'c') {
          this.question = `Combien y a-t-il d'entiers dans l'intervalle $\\bigg]${a}  ${sp(1)} ; ${sp(1)} ${b}\\bigg[$ ?`
          this.correction = ` Il y a $${b - a - 1}$ entiers dans l'intervalle $\\bigg]${a}  ${sp(1)} ; ${sp(1)} ${b}\\bigg[$.`
          this.correction += texteEnCouleur(`<br> Mentalement : <br>
        Comptez-les !<br> 
       Attention les entiers $${a}$ et $${b}$ n'appartiennent pas à l'intervalle.
          `)
          this.reponse = b - a - 1
        }
        if (N === 'd') {
          this.question = `Combien y a-t-il d'entiers dans l'intervalle $\\bigg[${texNombrec(c)}  ${sp(1)} ; ${sp(1)} ${b} \\bigg[$ ?`
          this.correction = `Il y a $${b - Math.trunc(c)}$ entiers dans l'intervalle $\\bigg[${a}  ${sp(1)} ; ${sp(1)} ${texNombrec(c)}\\bigg[$.`
          this.correction += texteEnCouleur(`<br> Mentalement : <br>
        Comptez-les !<br> 
                `)
          this.reponse = b - Math.trunc(c)
        }
        if (N === 'e') {
          this.question = `Combien y a-t-il d'entiers dans l'intervalle $\\bigg[${texNombrec(c)}  ${sp(1)} ; ${sp(1)} ${b}\\bigg]$ ?`
          this.correction = `Il y a $${b - Math.trunc(c) + 1}$ entiers dans l'intervalle $\\bigg[${a}  ${sp(1)} ; ${sp(1)} ${texNombrec(c)}\\bigg]$.`
          this.correction += texteEnCouleur(`<br> Mentalement : <br>
    Comptez-les !<br> 
            `)
          this.reponse = b - Math.trunc(c) + 1
        }
        break

      case 2 :
        a = randint(1, 4) * (-1)
        b = randint(1, 4)
        c = calcul(randint(-9, -4) + randint(-9, -1) / 10)
        d = calcul(c + randint(2, 4))
        e = randint(-8, -1)
        N = choice(['a', 'b', 'c', 'd'])//,
        if (N === 'a') {
          this.question = `Quel est le plus petit entier appartenant à l'intervalle 
          $\\bigg]${a}  ${sp(1)} ; ${sp(1)} ${b}\\bigg[$ ?`
          this.correction = `C'est le plus petit entier strictement supérieur à  $${a}$ : il s'agit de $${a + 1}$.`
          this.reponse = a + 1
        }
        if (N === 'b') {
          this.question = `Quel est le plus petit entier de l'intervalle 
          $\\bigg]${texNombrec(c)}  ${sp(1)} ; ${sp(1)} ${b}\\bigg[$ ?`
          this.correction = `C'est le plus petit entier strictement supérieur à  $${texNombrec(c)}$ : il s'agit de $${Math.trunc(c)}$.`
          this.reponse = Math.trunc(c)
        }
        if (N === 'c') {
          this.question = `Quel est le plus grand entier de l'intervalle 
          $\\bigg]${texNombrec(c)}  ${sp(1)} ; ${sp(1)} ${texNombrec(d)}\\bigg[$ ?`
          this.correction = `C'est le plus grand entier strictement inférieur à  $${texNombrec(d)}$ : il s'agit de $${Math.trunc(d) - 1}$.`
          this.reponse = Math.trunc(d) - 1
        }
        if (N === 'd') {
          this.question = `Quel est le plus grand entier de l'intervalle 
          $\\bigg]${texNombrec(e - 4)}  ${sp(1)} ; ${sp(1)} ${texNombrec(e)}\\bigg[$ ?`
          this.correction = `C'est le plus grand entier strictement inférieur à  $${texNombrec(e)}$ : il s'agit de $${e - 1}$.`
          this.reponse = e - 1
        }
        break
    }
    this.canEnonce = this.question// 'Compléter'
    this.canReponseACompleter = ''
  }
}