import Exercice from '../../Exercice.js'
import {
randint, choice, ecritureParentheseSiNegatif, reduirePolynomeDegre3, reduireAxPlusB,
ecritureAlgebrique
} from '../../../modules/outils.js'
export const titre = 'Calculer une ordonnée à partir de l’abscisse d’un point'
export const interactifReady = true
export const interactifType = 'mathLive'
export const dateDePublication = '27/09/2022' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag
/**
* Modèle d'exercice très simple pour la course aux nombres
* @author Gilles Mora
* Référence can2F14
* Date de publication
*/
export const uuid = '1d7cc'
export const ref = 'can2F14'
export default function CalculOrdonneePoint () {
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.formatChampTexte = 'largeur15 inline'
this.nbQuestions = 1
this.tailleDiaporama = 2
// Dans un exercice simple, ne pas mettre de this.listeQuestions = [] ni de this.consigne
const nomF = [
['f'], ['g'], ['h'], ['u'],
['v'], ['w']
]
const pointM = [
['M'], ['N'], ['P'], ['R'],
['S'], ['T']
]
this.nouvelleVersion = function () {
let a, b, c, abs, ord, nom, point
switch (choice([1, 2])) { //, , 'b', 'c', 'd'
case 1:
a = randint(-10, 10, [0, 1])
b = randint(-9, 9, 0)
abs = randint(-10, 10, 0)
ord = a * abs + b
nom = choice(nomF)
point = choice(pointM)
this.question = `Soit $${nom}$ la fonction définie sur $\\mathbb{R}$ par :<br>
$${nom}(x)=${reduireAxPlusB(a, b)}$<br>
On note $\\mathscr{C}$ la courbe représentative de la fonction $${nom}$ dans un repère.<br>
$${point}$ est le point de $\\mathscr{C}$ d'abscisse $${abs}$. <br>
Quelle est son ordonnée ?`
this.correction = `Puisque le point $${point}$ appartient à $\\mathscr{C}$, son ordonnée est l'image de son abscisse.<br>
$${nom}(${abs})=${a}\\times ${ecritureParentheseSiNegatif(abs)}${ecritureAlgebrique(b)}=${ord}$.<br>
L'ordonnée du point $${point}$ est $${ord}$.`
this.reponse = ord
break
case 2:
a = randint(-2, 2, 0)
b = randint(-3, 3, 0)
c = randint(-10, 10)
abs = randint(-5, 5)
ord = a * abs ** 2 + b * abs + c
nom = choice(nomF)
point = choice(pointM)
this.question = `Soit $${nom}$ la fonction définie sur $\\mathbb{R}$ par :<br>
$${nom}(x)=${reduirePolynomeDegre3(0, a, b, c)}$<br>
On note $\\mathscr{C}$ la courbe représentative de la fonction $${nom}$ dans un repère.<br>
$${point}$ est le point de $\\mathscr{C}$ d'abscisse $${abs}$.<br>
Quelle est son ordonnée ?`
this.correction = `Puisque le point $${point}$ appartient à $\\mathscr{C}$, son ordonnée est l'image de son abscisse.<br> `
if (a !== 1) {
this.correction += `$${nom}(${abs})=${a}\\times ${ecritureParentheseSiNegatif(abs)}^2${ecritureAlgebrique(b)}\\times${ecritureParentheseSiNegatif(abs)}${c === 0 ? '' : `${ecritureAlgebrique(c)}`}
=${a * abs ** 2}${ecritureAlgebrique(b * abs)}${c === 0 ? '' : `${ecritureAlgebrique(c)}`}=${ord}$.<br>
L'ordonnée du point $${point}$ est $${ord}$.`
} else {
this.correction += `$${nom}(${abs})= ${ecritureParentheseSiNegatif(abs)}^2${ecritureAlgebrique(b)}\\times${ecritureParentheseSiNegatif(abs)}${c === 0 ? '' : `${ecritureAlgebrique(c)}`}
=${a * abs ** 2}${ecritureAlgebrique(b * abs)}${c === 0 ? '' : `${ecritureAlgebrique(c)}`}=${ord}$.<br>
L'ordonnée du point $${point}$ est $${ord}$.`
}
this.reponse = ord
break
}
this.canEnonce = this.question
this.canReponseACompleter = ''
}
}