exercices/6e/6N24-1.js

import Exercice from '../Exercice.js'
import { listeQuestionsToContenu, randint, choice, texNombre, texFraction, calcul } from '../../modules/outils.js'

export const titre = 'Multiplier ou diviser un nombre entier par 10, 100 ou 1 000'

/**
 * Multiplier ou diviser un nombre entier par 10, 100 ou 1 000
 *
 * Le nombre entier est de la forme X, XX, X0X, X00X ou XXX
 * @author Rémi Angot
 * 6N24-1
 */
export const uuid = 'ec005'
export const ref = '6N24-1'
export default function ExerciceMultiplierOuDiviserUnNombreEntierPar101001000 () {
  Exercice.call(this) // Héritage de la classe Exercice()
  this.consigne = "Donner l'écriture décimale."
  this.spacing = 2
  this.spacingCorr = 2

  this.nouvelleVersion = function () {
    this.listeQuestions = [] // Liste de questions
    this.listeCorrections = [] // Liste de questions corrigées
    this.autoCorrection = []
    for (
      let i = 0, a, b, texte, texteCorr, cpt = 0;
      i < this.nbQuestions && cpt < 50;

    ) {
      a = choice(
        [
          randint(2, 9),
          randint(11, 99),
          randint(1, 9) * 100 + randint(1, 9),
          randint(1, 9) * 1000 + randint(1, 9)
        ],
        randint(101, 999)
      )
      // X, XX, X0X, X00X,XXX
      b = choice([10, 100, 1000])
      if (choice([true, false])) {
        texte =
          '$ ' + texFraction(texNombre(a), texNombre(b)) + ' =  $'
        texteCorr =
          '$ ' +
          texFraction(texNombre(a), texNombre(b)) +
          ' = ' +
          texNombre(calcul(a / b)) +
          ' $'
      } else {
        texte =
          '$ ' + texNombre(a) + '\\times' + texNombre(b) + ' =  $'
        texteCorr =
          '$ ' +
          texNombre(a) +
          '\\times' +
          texNombre(b) +
          ' = ' +
          texNombre(calcul(a * b)) +
          ' $'
      }

      if (this.listeQuestions.indexOf(texte) === -1) {
        // Si la question n'a jamais été posée, on en crée une autre
        this.listeQuestions.push(texte)
        this.listeCorrections.push(texteCorr)
        i++
      }
      cpt++
    }
    listeQuestionsToContenu(this)
  }
}