From eed5967fede37764f3fba59a0fe187a3f414412b Mon Sep 17 00:00:00 2001 From: RFDS <regis.ferreirads@ac-nice.fr> Date: Wed, 18 Dec 2024 11:23:29 +0100 Subject: [PATCH 1/7] exercice_conversions_seconde_modifs_allexercices_Demarche_scientifique_REA --- src/exercices/2NDE/2DS-REA.ts | 140 ++++++++++++++++++++++++++++++++++ src/json/allExercice.json | 16 ++++ 2 files changed, 156 insertions(+) create mode 100644 src/exercices/2NDE/2DS-REA.ts diff --git a/src/exercices/2NDE/2DS-REA.ts b/src/exercices/2NDE/2DS-REA.ts new file mode 100644 index 000000000..cac03d4ca --- /dev/null +++ b/src/exercices/2NDE/2DS-REA.ts @@ -0,0 +1,140 @@ +/** + * 2DS-REA.ts // Conversions + * @author Régis Ferreira Da Silva + * @date 2024-12-18 + */ + +import { combinaisonListes } from '../../lib/outils/arrayOutils' +import Exercice from '../Exercice' +import { listeQuestionsToContenu, randint } from '../../modules/outils.js' +import { chiffresSignificatifs } from '../../lib/outils_phys/ecritures' +import { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js' +import { approximatelyCompare } from '../../lib/interactif/comparisonFunctions' +import { handleAnswers } from '../../lib/interactif/gestionInteractif' +import { prenom } from '../../lib/outils/Personne' + +// à remplacer +export const titre = 'Effectuer des procédures courantes (calculs, représentations, collectes de données, etc.).' +export const interactifReady = true +export const interactifType = 'mathLive' +// à remplacer +export const dateDePublication = '18/12/2024' +// à remplacer : pnpm getNewUuid pour récupérer l'UUID pour un nouvel exercice +export const uuid = '1dd27' +// à remplacer "test-2" par la référence dans le référentiel (disponible dans "src/json/allExercice.json") +export const refs = { + 'fr-fr': ['2DS-REA'] +} + +export default class Conversions extends Exercice { + constructor() { + super() + this.nbQuestions = 1 + this.sup = 1 + this.besoinFormulaireNumerique = ['Choix des questions', 3, "1 : Conversion grandeur simple (novice)\n2 : Conversion grandeur composée (confirmé)\n3 : Conversion grandeur composée (expert)"] + } + + nouvelleVersion() { + this.listeQuestions = [] + this.listeCorrections = [] + + let typesDeQuestionsDisponibles + if (this.sup === 1) { + typesDeQuestionsDisponibles = ['novice'] + } else if (this.sup === 2) { + typesDeQuestionsDisponibles = ['confirme'] + } else if (this.sup === 3) { + typesDeQuestionsDisponibles = ['expert'] + } + + const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions) + + for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) { + // variables conversions simples + const N = randint(200, 500) + const unitesList = ['m', 'g', 'L', 'A', 'V', 'W', 'J'] + const unitesConvertieList=['déci','centi','milli','déca','hecto','kilo'] + const symbolesUniteConvertieList=['d','c','m','da','h','k'] + const explicitationUniteConvertieList=['un dixième','un centième','un millième','une dizaine','une centaine','un millier'] + const facteursConversionUniteList=['10 fois plus grand','100 fois plus grand','1000 fois plus grand','10 fois plus petit','100 fois plus petit','1000 fois plus petit'] + const NExpressionConvertiList = ['${N}\text{${unitesList[n_unite-1]}\times 10','${N}\text{${unitesList[n_unite-1]}\times 100','${N}\text{${unitesList[n_unite-1]}\times 1000','\dfrac{${N}\text{${unitesList[n_unite-1]}}{10}','\dfrac{${N}\text{${unitesList[n_unite-1]}}{100}','\dfrac{${N}\text{${unitesList[n_unite-1]}}{1000}'] + const NConvertiList = [N*10,N*100,N*1000,N/10,N/100,N/1000] + n_unite =randint(1,6)//choix de l'unité + // variables conversions vitesse + const Vkmh=randint(25,120) + const Vms=Vkmh/3.6 + switch (listeTypeDeQuestions[i]) { + case 'novice': + // On énonce la question + texte = `Aider ${prenom} à réaliser l(a)es conversion(s) d'unité suivante(s) : <br>` + // On y ajoute le champ de réponse + this.question = ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: "$${N}\, \text{${unitesList[n_unite-1]}} = $", texteApres: '$\text{${symbolesUniteConvertieList[n_unite]}}\text{${unitesList[n_unite-1]}}$' }) + // On génère la réponse + this.reponse = NConvertiList[n_unite-1] + // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T + handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) + // On écrit la correction + this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[n_unite-1]} correspond à ${explicitationUniteConvertieList[n_unite-1]} d'une unité. <br> + Une unité est donc ${facteursConversionUniteList[n_unite-1]} qu'un ${unitesConvertieList[n_unite-1]} . <br> + Par conséquent $${N} \text{${unitesList[n_unite-1]}}= ${NExpressionConvertiList[n_unite-1]}=${NConvertiList[n_unite-1]}\,\text{${symbolesUniteConvertieList[n_unite]}}\text{${unitesList[n_unite-1]}}$` + // fin question + break + case 'confirme': + // On énonce la question + this.question = `Aider ${prenom} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` + // On y ajoute le champ de réponse + this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: "${Vkmh}\, \text{km/h} =$", texteApres: 'm/s' }) + // On génère la réponse + this.reponse = Vms + // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T + handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) + // On écrit la correction + this.correction = `Il s'agit de faire ici une double conversion : les kilomètres en mètres et les heures en seconde. <br> + <ul> + <li>1 kilomètre correspond à 1000 mètres,</li> + <li>1 heure correspond à 3 600 secondes ($60\times 60\,\text{s}$).</li> + </ul> + Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> + $v=\dfrac{\text{distance parcourue}}{\text{durée du trajet}}=\dfrac{${Vkmh}\,\text{km}}{1 h}=\dfrac{${Vkmh}\times\text{1 km}}{1 h}$<br> + Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> + $v=\dfrac{${Vkmh}\times\text{1 km}}{\text{1 h}}=\dfrac{${Vkmh}\times\text{1 000 m}}{\text{3600 s}}=${Vms} \,\text{m/s}$<br> + On peut donc écrire que $v=${Vkmh} \,\text{km/h} =${Vms} \,\text{m/s}$ + ` + // fin question + break + case 'expert': + // On énonce la question + this.question = `Aider ${prenom} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` + // On y ajoute le champ de réponse + this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: "${Vms}\, \text{m/s} =$", texteApres: 'km/h' }) + // On génère la réponse + this.reponse = Vms + // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T + handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) + // On écrit la correction + this.correction = `Il s'agit de faire ici une double conversion : les mètres en kilomètres et les secondes en heures. <br> + <ul> + <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\dfrac{1}{1000}\,\text{km}$.</li> + <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\dfrac{1}{3600}\,\text{h}$.</li> + </ul> + Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> + $v=\dfrac{\text{distance parcourue}}{\text{durée du trajet}}=\dfrac{${Vms}\,\text{m}}{1 s}=\dfrac{${Vkmh}\times\text{1 m}}{1 s}$<br> + Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> + $v=\dfrac{${Vms}\times\text{1 m}}{\text{1 s}}=\dfrac{\frac{${Vms}\times\text{1 km}}{\text{1 000}}}{\frac{\text{1 h}}{3 600}}=${Vkmh} \,\text{km/h}$<br> + On peut donc écrire que $v=${Vms} \,\text{m/s} =${Vkmh} \,\text{km/h}$ + ` + // fin question + break + } + + if (this.questionJamaisPosee(i)) { // Si la question n'a jamais été posée, on en créé une autre, tgL ne peut pas prendre la même valeur + this.listeQuestions.push(this.question!) // Sinon on enregistre la question dans listeQuestions + this.listeCorrections.push(this.correction!) // On fait pareil pour la correction + i++ // On passe à la question suivante + } + cpt++ // Sinon on incrémente le compteur d'essai pour avoir une question nouvelle + } + + listeQuestionsToContenu(this) // La liste de question et la liste de la correction + } +} diff --git a/src/json/allExercice.json b/src/json/allExercice.json index 8b20f93d5..7e29d2960 100644 --- a/src/json/allExercice.json +++ b/src/json/allExercice.json @@ -1,5 +1,21 @@ { "2NDE": { + "2DS":{ + "2DS-ANA":{ + "ref": "DS-ANA", + "uuid": "", + "url": "2NDE/DS-ANA.js", + "titre": "Évaluer des ordres de grandeur.", + "tags": {} + }, + "2DS-REA":{ + "ref": "DS-REA", + "uuid": "", + "url": "2NDE/DS-REA.js", + "titre": "Effectuer des procédures courantes (calculs, représentations, collectes de données, etc.).", + "tags": {} + }, + }, "2CM1": { "2CM1-1": { "ref": "2CM1-1", -- GitLab From 113fe8c3237325d0ce5e4074c6c06727ef203625 Mon Sep 17 00:00:00 2001 From: ThibGiauffret <thibault.giauffret@ac-nice.fr> Date: Thu, 19 Dec 2024 21:37:08 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Fix=20r=C3=A9f=C3=A9rentiel.=20Quelques=20f?= =?UTF-8?q?ix=20de=20d=C3=A9claration=20de=20variables=20et=20de=20mise=20?= =?UTF-8?q?en=20forme=20des=20=C3=A9nonc=C3=A9s.=20=C3=80=20terminer.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercices/2NDE/2DS-REA.ts | 170 ++++++++++++++++----------------- src/json/allExercice.json | 10 +- src/json/levelsThemesList.json | 3 + tasks/emptyRef2022.json | 1 + 4 files changed, 94 insertions(+), 90 deletions(-) diff --git a/src/exercices/2NDE/2DS-REA.ts b/src/exercices/2NDE/2DS-REA.ts index cac03d4ca..ba5086405 100644 --- a/src/exercices/2NDE/2DS-REA.ts +++ b/src/exercices/2NDE/2DS-REA.ts @@ -23,73 +23,73 @@ export const dateDePublication = '18/12/2024' export const uuid = '1dd27' // à remplacer "test-2" par la référence dans le référentiel (disponible dans "src/json/allExercice.json") export const refs = { - 'fr-fr': ['2DS-REA'] + 'fr-fr': ['2DS-REA'] } export default class Conversions extends Exercice { - constructor() { - super() - this.nbQuestions = 1 - this.sup = 1 - this.besoinFormulaireNumerique = ['Choix des questions', 3, "1 : Conversion grandeur simple (novice)\n2 : Conversion grandeur composée (confirmé)\n3 : Conversion grandeur composée (expert)"] - } + constructor () { + super() + this.nbQuestions = 1 + this.sup = 1 + this.besoinFormulaireNumerique = ['Choix des questions', 3, '1 : Conversion grandeur simple (novice)\n2 : Conversion grandeur composée (confirmé)\n3 : Conversion grandeur composée (expert)'] + } - nouvelleVersion() { - this.listeQuestions = [] - this.listeCorrections = [] + nouvelleVersion () { + this.listeQuestions = [] + this.listeCorrections = [] - let typesDeQuestionsDisponibles - if (this.sup === 1) { - typesDeQuestionsDisponibles = ['novice'] - } else if (this.sup === 2) { - typesDeQuestionsDisponibles = ['confirme'] - } else if (this.sup === 3) { - typesDeQuestionsDisponibles = ['expert'] - } + let typesDeQuestionsDisponibles + if (this.sup === 1) { + typesDeQuestionsDisponibles = ['novice'] + } else if (this.sup === 2) { + typesDeQuestionsDisponibles = ['confirme'] + } else if (this.sup === 3) { + typesDeQuestionsDisponibles = ['expert'] + } - const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions) + const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions) - for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) { - // variables conversions simples - const N = randint(200, 500) - const unitesList = ['m', 'g', 'L', 'A', 'V', 'W', 'J'] - const unitesConvertieList=['déci','centi','milli','déca','hecto','kilo'] - const symbolesUniteConvertieList=['d','c','m','da','h','k'] - const explicitationUniteConvertieList=['un dixième','un centième','un millième','une dizaine','une centaine','un millier'] - const facteursConversionUniteList=['10 fois plus grand','100 fois plus grand','1000 fois plus grand','10 fois plus petit','100 fois plus petit','1000 fois plus petit'] - const NExpressionConvertiList = ['${N}\text{${unitesList[n_unite-1]}\times 10','${N}\text{${unitesList[n_unite-1]}\times 100','${N}\text{${unitesList[n_unite-1]}\times 1000','\dfrac{${N}\text{${unitesList[n_unite-1]}}{10}','\dfrac{${N}\text{${unitesList[n_unite-1]}}{100}','\dfrac{${N}\text{${unitesList[n_unite-1]}}{1000}'] - const NConvertiList = [N*10,N*100,N*1000,N/10,N/100,N/1000] - n_unite =randint(1,6)//choix de l'unité - // variables conversions vitesse - const Vkmh=randint(25,120) - const Vms=Vkmh/3.6 - switch (listeTypeDeQuestions[i]) { - case 'novice': - // On énonce la question - texte = `Aider ${prenom} à réaliser l(a)es conversion(s) d'unité suivante(s) : <br>` - // On y ajoute le champ de réponse - this.question = ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: "$${N}\, \text{${unitesList[n_unite-1]}} = $", texteApres: '$\text{${symbolesUniteConvertieList[n_unite]}}\text{${unitesList[n_unite-1]}}$' }) - // On génère la réponse - this.reponse = NConvertiList[n_unite-1] - // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T - handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) - // On écrit la correction - this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[n_unite-1]} correspond à ${explicitationUniteConvertieList[n_unite-1]} d'une unité. <br> - Une unité est donc ${facteursConversionUniteList[n_unite-1]} qu'un ${unitesConvertieList[n_unite-1]} . <br> - Par conséquent $${N} \text{${unitesList[n_unite-1]}}= ${NExpressionConvertiList[n_unite-1]}=${NConvertiList[n_unite-1]}\,\text{${symbolesUniteConvertieList[n_unite]}}\text{${unitesList[n_unite-1]}}$` - // fin question - break - case 'confirme': - // On énonce la question - this.question = `Aider ${prenom} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` - // On y ajoute le champ de réponse - this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: "${Vkmh}\, \text{km/h} =$", texteApres: 'm/s' }) - // On génère la réponse - this.reponse = Vms - // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T - handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) - // On écrit la correction - this.correction = `Il s'agit de faire ici une double conversion : les kilomètres en mètres et les heures en seconde. <br> + for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) { + // variables conversions simples + const N = randint(200, 500) + const n_unite = randint(1, 6)// choix de l'unité + const unitesList = ['m', 'g', 'L', 'A', 'V', 'W', 'J'] + const unitesConvertieList = ['déci', 'centi', 'milli', 'déca', 'hecto', 'kilo'] + const symbolesUniteConvertieList = ['d', 'c', 'm', 'da', 'h', 'k'] + const explicitationUniteConvertieList = ['un dixième', 'un centième', 'un millième', 'une dizaine', 'une centaine', 'un millier'] + const facteursConversionUniteList = ['10 fois plus grand', '100 fois plus grand', '1000 fois plus grand', '10 fois plus petit', '100 fois plus petit', '1000 fois plus petit'] + const NExpressionConvertiList = ['${N}\text{${unitesList[n_unite-1]}\times 10', '${N}\text{${unitesList[n_unite-1]}\times 100', '${N}\text{${unitesList[n_unite-1]}\times 1000', '\dfrac{${N}\text{${unitesList[n_unite-1]}}{10}', '\dfrac{${N}\text{${unitesList[n_unite-1]}}{100}', '\dfrac{${N}\text{${unitesList[n_unite-1]}}{1000}'] + const NConvertiList = [N * 10, N * 100, N * 1000, N / 10, N / 100, N / 1000] + // variables conversions vitesse + const Vkmh = randint(25, 120) + const Vms = Vkmh / 3.6 + switch (listeTypeDeQuestions[i]) { + case 'novice': + // On énonce la question + this.question = `Aider ${prenom()} à réaliser l(a)es conversion(s) d'unité suivante(s) : <br>` + // On y ajoute le champ de réponse + this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${N}\\, \\text{${unitesList[n_unite - 1]}} =$`, texteApres: `$\\text{ ${symbolesUniteConvertieList[n_unite]}}\\text{${unitesList[n_unite - 1]}}$` }) + // On génère la réponse + this.reponse = NConvertiList[n_unite - 1] + // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T + handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) + // On écrit la correction + this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[n_unite - 1]} correspond à ${explicitationUniteConvertieList[n_unite - 1]} d'une unité. <br> + Une unité est donc ${facteursConversionUniteList[n_unite - 1]} qu'un ${unitesConvertieList[n_unite - 1]} . <br> + Par conséquent $${N} \text{${unitesList[n_unite - 1]}}= ${NExpressionConvertiList[n_unite - 1]}=${NConvertiList[n_unite - 1]}\,\text{${symbolesUniteConvertieList[n_unite]}}\text{${unitesList[n_unite - 1]}}$` + // fin question + break + case 'confirme': + // On énonce la question + this.question = `Aider ${prenom()} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` + // On y ajoute le champ de réponse + this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${Vkmh}\\, \\text{km/h} =$`, texteApres: 'm/s' }) + // On génère la réponse + this.reponse = Vms + // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T + handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) + // On écrit la correction + this.correction = `Il s'agit de faire ici une double conversion : les kilomètres en mètres et les heures en seconde. <br> <ul> <li>1 kilomètre correspond à 1000 mètres,</li> <li>1 heure correspond à 3 600 secondes ($60\times 60\,\text{s}$).</li> @@ -100,19 +100,19 @@ export default class Conversions extends Exercice { $v=\dfrac{${Vkmh}\times\text{1 km}}{\text{1 h}}=\dfrac{${Vkmh}\times\text{1 000 m}}{\text{3600 s}}=${Vms} \,\text{m/s}$<br> On peut donc écrire que $v=${Vkmh} \,\text{km/h} =${Vms} \,\text{m/s}$ ` - // fin question - break - case 'expert': - // On énonce la question - this.question = `Aider ${prenom} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` - // On y ajoute le champ de réponse - this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: "${Vms}\, \text{m/s} =$", texteApres: 'km/h' }) - // On génère la réponse - this.reponse = Vms - // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T - handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) - // On écrit la correction - this.correction = `Il s'agit de faire ici une double conversion : les mètres en kilomètres et les secondes en heures. <br> + // fin question + break + case 'expert': + // On énonce la question + this.question = `Aider ${prenom()} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` + // On y ajoute le champ de réponse + this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${Vms}\\, \\text{m/s} =$`, texteApres: 'km/h' }) + // On génère la réponse + this.reponse = Vms + // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T + handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) + // On écrit la correction + this.correction = `Il s'agit de faire ici une double conversion : les mètres en kilomètres et les secondes en heures. <br> <ul> <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\dfrac{1}{1000}\,\text{km}$.</li> <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\dfrac{1}{3600}\,\text{h}$.</li> @@ -123,18 +123,18 @@ export default class Conversions extends Exercice { $v=\dfrac{${Vms}\times\text{1 m}}{\text{1 s}}=\dfrac{\frac{${Vms}\times\text{1 km}}{\text{1 000}}}{\frac{\text{1 h}}{3 600}}=${Vkmh} \,\text{km/h}$<br> On peut donc écrire que $v=${Vms} \,\text{m/s} =${Vkmh} \,\text{km/h}$ ` - // fin question - break - } + // fin question + break + } - if (this.questionJamaisPosee(i)) { // Si la question n'a jamais été posée, on en créé une autre, tgL ne peut pas prendre la même valeur - this.listeQuestions.push(this.question!) // Sinon on enregistre la question dans listeQuestions - this.listeCorrections.push(this.correction!) // On fait pareil pour la correction - i++ // On passe à la question suivante - } - cpt++ // Sinon on incrémente le compteur d'essai pour avoir une question nouvelle - } - - listeQuestionsToContenu(this) // La liste de question et la liste de la correction + if (this.questionJamaisPosee(i)) { // Si la question n'a jamais été posée, on en créé une autre, tgL ne peut pas prendre la même valeur + this.listeQuestions.push(this.question!) // Sinon on enregistre la question dans listeQuestions + this.listeCorrections.push(this.correction!) // On fait pareil pour la correction + i++ // On passe à la question suivante + } + cpt++ // Sinon on incrémente le compteur d'essai pour avoir une question nouvelle } + + listeQuestionsToContenu(this) // La liste de question et la liste de la correction + } } diff --git a/src/json/allExercice.json b/src/json/allExercice.json index 7e29d2960..32bdf2187 100644 --- a/src/json/allExercice.json +++ b/src/json/allExercice.json @@ -2,19 +2,19 @@ "2NDE": { "2DS":{ "2DS-ANA":{ - "ref": "DS-ANA", + "ref": "2DS-ANA", "uuid": "", - "url": "2NDE/DS-ANA.js", + "url": "2NDE/2DS-ANA.js", "titre": "Évaluer des ordres de grandeur.", "tags": {} }, "2DS-REA":{ - "ref": "DS-REA", + "ref": "2DS-REA", "uuid": "", - "url": "2NDE/DS-REA.js", + "url": "2NDE/2DS-REA.js", "titre": "Effectuer des procédures courantes (calculs, représentations, collectes de données, etc.).", "tags": {} - }, + } }, "2CM1": { "2CM1-1": { diff --git a/src/json/levelsThemesList.json b/src/json/levelsThemesList.json index 43c8b67e7..7406a2173 100644 --- a/src/json/levelsThemesList.json +++ b/src/json/levelsThemesList.json @@ -1,4 +1,7 @@ { + "2DS": { + "titre": "Test" + }, "2CM1": { "titre": "Corps purs et mélanges au quotidien" }, diff --git a/tasks/emptyRef2022.json b/tasks/emptyRef2022.json index 01986e5d6..d89e7f13f 100644 --- a/tasks/emptyRef2022.json +++ b/tasks/emptyRef2022.json @@ -1,5 +1,6 @@ { "2NDE": { + "2DS": {}, "2I": {}, "2CM1": {}, "2CM2": {}, -- GitLab From e52036b89a31442ea08cd546f72058a8f438f927 Mon Sep 17 00:00:00 2001 From: ThibGiauffret <thibault.giauffret@ac-nice.fr> Date: Thu, 19 Dec 2024 21:39:20 +0100 Subject: [PATCH 3/7] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20nom=20du=20th?= =?UTF-8?q?=C3=A8me=20"DS"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/json/levelsThemesList.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/json/levelsThemesList.json b/src/json/levelsThemesList.json index 7406a2173..0897ac56a 100644 --- a/src/json/levelsThemesList.json +++ b/src/json/levelsThemesList.json @@ -1,6 +1,6 @@ { "2DS": { - "titre": "Test" + "titre": "Démarche scientifique" }, "2CM1": { "titre": "Corps purs et mélanges au quotidien" -- GitLab From f67b063bda3958293ff4bb5251acd4489d9c9491 Mon Sep 17 00:00:00 2001 From: RFDS <regis.ferreirads@ac-nice.fr> Date: Fri, 20 Dec 2024 09:11:56 +0100 Subject: [PATCH 4/7] tableau_conversion_s_h_pas_affichage_menu_erreur_affichage_une_sous-unite_formuleLaTeXliste_NExpressionConvertiList_correction --- src/exercices/2NDE/2DS-REA.ts | 57 +++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/src/exercices/2NDE/2DS-REA.ts b/src/exercices/2NDE/2DS-REA.ts index ba5086405..f2deacc47 100644 --- a/src/exercices/2NDE/2DS-REA.ts +++ b/src/exercices/2NDE/2DS-REA.ts @@ -27,14 +27,14 @@ export const refs = { } export default class Conversions extends Exercice { - constructor () { + constructor() { super() - this.nbQuestions = 1 + this.nbQuestions = 3 this.sup = 1 - this.besoinFormulaireNumerique = ['Choix des questions', 3, '1 : Conversion grandeur simple (novice)\n2 : Conversion grandeur composée (confirmé)\n3 : Conversion grandeur composée (expert)'] + this.besoinFormulaireNumerique = ['Choix des questions', 3, '1 : Conversion grandeur simple (novice)\\n2 : Conversion grandeur composée (confirmé)\\n3 : Conversion grandeur composée (expert)'] } - nouvelleVersion () { + nouvelleVersion() { this.listeQuestions = [] this.listeCorrections = [] @@ -52,13 +52,14 @@ export default class Conversions extends Exercice { for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) { // variables conversions simples const N = randint(200, 500) - const n_unite = randint(1, 6)// choix de l'unité + const n_unite = randint(1, 7)// choix de l'unité const unitesList = ['m', 'g', 'L', 'A', 'V', 'W', 'J'] const unitesConvertieList = ['déci', 'centi', 'milli', 'déca', 'hecto', 'kilo'] + const n_sousunite = randint(1, 6)// choix de la sous-unité const symbolesUniteConvertieList = ['d', 'c', 'm', 'da', 'h', 'k'] const explicitationUniteConvertieList = ['un dixième', 'un centième', 'un millième', 'une dizaine', 'une centaine', 'un millier'] const facteursConversionUniteList = ['10 fois plus grand', '100 fois plus grand', '1000 fois plus grand', '10 fois plus petit', '100 fois plus petit', '1000 fois plus petit'] - const NExpressionConvertiList = ['${N}\text{${unitesList[n_unite-1]}\times 10', '${N}\text{${unitesList[n_unite-1]}\times 100', '${N}\text{${unitesList[n_unite-1]}\times 1000', '\dfrac{${N}\text{${unitesList[n_unite-1]}}{10}', '\dfrac{${N}\text{${unitesList[n_unite-1]}}{100}', '\dfrac{${N}\text{${unitesList[n_unite-1]}}{1000}'] + const NExpressionConvertiList = ['${N}\\,${unitesList[n_unite]}\\times 10', '${N}\\,${unitesList[n_unite]}\\times 100', '${N}\\,${unitesList[n_unite]}\\times 1000', '\\dfrac{${N}\\,${unitesList[n_unite]}}{10}', '\\dfrac{${N}\\,${unitesList[n_unite]}}{100}', '\\dfrac{${N}\\,${unitesList[n_unite]}}{1000}'] const NConvertiList = [N * 10, N * 100, N * 1000, N / 10, N / 100, N / 1000] // variables conversions vitesse const Vkmh = randint(25, 120) @@ -66,22 +67,22 @@ export default class Conversions extends Exercice { switch (listeTypeDeQuestions[i]) { case 'novice': // On énonce la question - this.question = `Aider ${prenom()} à réaliser l(a)es conversion(s) d'unité suivante(s) : <br>` + this.question = `Aide ${prenom()} à réaliser la conversion d'unité suivante : <br>` // On y ajoute le champ de réponse - this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${N}\\, \\text{${unitesList[n_unite - 1]}} =$`, texteApres: `$\\text{ ${symbolesUniteConvertieList[n_unite]}}\\text{${unitesList[n_unite - 1]}}$` }) + this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${N}\\, \\text{${unitesList[n_unite]}} =$`, texteApres: `$\\text{ ${symbolesUniteConvertieList[n_sousunite]}}\\text{${unitesList[n_unite]}}$` }) // On génère la réponse - this.reponse = NConvertiList[n_unite - 1] + this.reponse = NConvertiList[n_sousunite] // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) // On écrit la correction - this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[n_unite - 1]} correspond à ${explicitationUniteConvertieList[n_unite - 1]} d'une unité. <br> - Une unité est donc ${facteursConversionUniteList[n_unite - 1]} qu'un ${unitesConvertieList[n_unite - 1]} . <br> - Par conséquent $${N} \text{${unitesList[n_unite - 1]}}= ${NExpressionConvertiList[n_unite - 1]}=${NConvertiList[n_unite - 1]}\,\text{${symbolesUniteConvertieList[n_unite]}}\text{${unitesList[n_unite - 1]}}$` + this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[n_sousunite]} correspond à ${explicitationUniteConvertieList[n_sousunite]} d'une unité. <br> + Une unité est donc ${facteursConversionUniteList[n_sousunite]} qu'un ${unitesConvertieList[n_sousunite]} . <br> + Par conséquent $${N} \\,${unitesList[n_unite]}= ${NExpressionConvertiList[n_sousunite]}=${NConvertiList[n_sousunite]}\\,${symbolesUniteConvertieList[n_sousunite]}${unitesList[n_unite]}$` // fin question break case 'confirme': // On énonce la question - this.question = `Aider ${prenom()} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` + this.question = `Aide ${prenom()} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` // On y ajoute le champ de réponse this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${Vkmh}\\, \\text{km/h} =$`, texteApres: 'm/s' }) // On génère la réponse @@ -92,13 +93,13 @@ export default class Conversions extends Exercice { this.correction = `Il s'agit de faire ici une double conversion : les kilomètres en mètres et les heures en seconde. <br> <ul> <li>1 kilomètre correspond à 1000 mètres,</li> - <li>1 heure correspond à 3 600 secondes ($60\times 60\,\text{s}$).</li> + <li>1 heure correspond à 3 600 secondes ($60\\times 60\\,\\text{s}$).</li> </ul> Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> - $v=\dfrac{\text{distance parcourue}}{\text{durée du trajet}}=\dfrac{${Vkmh}\,\text{km}}{1 h}=\dfrac{${Vkmh}\times\text{1 km}}{1 h}$<br> + $v=\\dfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\dfrac{${Vkmh}\\,\\text{km}}{1 h}=\\dfrac{${Vkmh}\\times\\text{1 km}}{1 h}$<br> Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> - $v=\dfrac{${Vkmh}\times\text{1 km}}{\text{1 h}}=\dfrac{${Vkmh}\times\text{1 000 m}}{\text{3600 s}}=${Vms} \,\text{m/s}$<br> - On peut donc écrire que $v=${Vkmh} \,\text{km/h} =${Vms} \,\text{m/s}$ + $v=\\dfrac{${Vkmh}\\times\\text{1 km}}{\\text{1 h}}=\\dfrac{${Vkmh}\\times\\text{1 000 m}}{\\text{3600 s}}=${Vms} \\,\\text{m/s}$<br> + On peut donc écrire que $v=${Vkmh} \\,\\text{km/h} =${Vms} \\,\\text{m/s}$ ` // fin question break @@ -114,14 +115,26 @@ export default class Conversions extends Exercice { // On écrit la correction this.correction = `Il s'agit de faire ici une double conversion : les mètres en kilomètres et les secondes en heures. <br> <ul> - <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\dfrac{1}{1000}\,\text{km}$.</li> - <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\dfrac{1}{3600}\,\text{h}$.</li> + <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\\dfrac{1}{1000}\\,\\text{km}$.</li> + <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\\dfrac{1}{3600}\\,\\text{h}$. <br> + Le raisonnement précédent peut se ramener à une situation de proportionnalité : <br> + $\\def\\arraystretch{1.5} + \\begin{array}{|c|c|} + \\hline + 1 h & 3 600 \\text{s}\\\\ + \\hline + $\\dfrac{1 h}{3 600}&1\\ \\text{s} \\\\ + \\hline + \\end{array} + $<br><br> + + </li> </ul> Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> - $v=\dfrac{\text{distance parcourue}}{\text{durée du trajet}}=\dfrac{${Vms}\,\text{m}}{1 s}=\dfrac{${Vkmh}\times\text{1 m}}{1 s}$<br> + $v=\\dfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\dfrac{${Vms}\\,\\text{m}}{1 s}=\\dfrac{${Vkmh}\\times\\text{1 m}}{1 s}$<br> Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> - $v=\dfrac{${Vms}\times\text{1 m}}{\text{1 s}}=\dfrac{\frac{${Vms}\times\text{1 km}}{\text{1 000}}}{\frac{\text{1 h}}{3 600}}=${Vkmh} \,\text{km/h}$<br> - On peut donc écrire que $v=${Vms} \,\text{m/s} =${Vkmh} \,\text{km/h}$ + $v=\\dfrac{${Vms}\\times\\text{1 m}}{\\text{1 s}}=\\dfrac{\\frac{${Vms}\\times\\text{1 km}}{\\text{1 000}}}{\\frac{\\text{1 h}}{3 600}}=${Vkmh} \\,\\text{km/h}$<br> + On peut donc écrire que $v=${Vms} \\,\\text{m/s} =${Vkmh} \\,\\text{km/h}$ ` // fin question break -- GitLab From a4cf69b07ef81969a16b38b0ac7f6e33e76f42f5 Mon Sep 17 00:00:00 2001 From: RFDS <regis.ferreirads@ac-nice.fr> Date: Fri, 20 Dec 2024 09:41:55 +0100 Subject: [PATCH 5/7] remplacement_dfrac_frac --- src/exercices/2NDE/2DS-REA.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/exercices/2NDE/2DS-REA.ts b/src/exercices/2NDE/2DS-REA.ts index f2deacc47..3a6ebcb52 100644 --- a/src/exercices/2NDE/2DS-REA.ts +++ b/src/exercices/2NDE/2DS-REA.ts @@ -29,7 +29,7 @@ export const refs = { export default class Conversions extends Exercice { constructor() { super() - this.nbQuestions = 3 + this.nbQuestions = 1 this.sup = 1 this.besoinFormulaireNumerique = ['Choix des questions', 3, '1 : Conversion grandeur simple (novice)\\n2 : Conversion grandeur composée (confirmé)\\n3 : Conversion grandeur composée (expert)'] } @@ -59,7 +59,7 @@ export default class Conversions extends Exercice { const symbolesUniteConvertieList = ['d', 'c', 'm', 'da', 'h', 'k'] const explicitationUniteConvertieList = ['un dixième', 'un centième', 'un millième', 'une dizaine', 'une centaine', 'un millier'] const facteursConversionUniteList = ['10 fois plus grand', '100 fois plus grand', '1000 fois plus grand', '10 fois plus petit', '100 fois plus petit', '1000 fois plus petit'] - const NExpressionConvertiList = ['${N}\\,${unitesList[n_unite]}\\times 10', '${N}\\,${unitesList[n_unite]}\\times 100', '${N}\\,${unitesList[n_unite]}\\times 1000', '\\dfrac{${N}\\,${unitesList[n_unite]}}{10}', '\\dfrac{${N}\\,${unitesList[n_unite]}}{100}', '\\dfrac{${N}\\,${unitesList[n_unite]}}{1000}'] + const NExpressionConvertiList = ['${N}\\,${unitesList[n_unite]}\\times 10', '${N}\\,${unitesList[n_unite]}\\times 100', '${N}\\,${unitesList[n_unite]}\\times 1000', '\\frac{${N}\\,${unitesList[n_unite]}}{10}', '\\frac{${N}\\,${unitesList[n_unite]}}{100}', '\\frac{${N}\\,${unitesList[n_unite]}}{1000}'] const NConvertiList = [N * 10, N * 100, N * 1000, N / 10, N / 100, N / 1000] // variables conversions vitesse const Vkmh = randint(25, 120) @@ -77,7 +77,7 @@ export default class Conversions extends Exercice { // On écrit la correction this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[n_sousunite]} correspond à ${explicitationUniteConvertieList[n_sousunite]} d'une unité. <br> Une unité est donc ${facteursConversionUniteList[n_sousunite]} qu'un ${unitesConvertieList[n_sousunite]} . <br> - Par conséquent $${N} \\,${unitesList[n_unite]}= ${NExpressionConvertiList[n_sousunite]}=${NConvertiList[n_sousunite]}\\,${symbolesUniteConvertieList[n_sousunite]}${unitesList[n_unite]}$` + Par conséquent $${N} ${unitesList[n_unite]}= ${NExpressionConvertiList[n_sousunite]}=${NConvertiList[n_sousunite]}\\,${symbolesUniteConvertieList[n_sousunite]}${unitesList[n_unite]}$` // fin question break case 'confirme': @@ -96,9 +96,9 @@ export default class Conversions extends Exercice { <li>1 heure correspond à 3 600 secondes ($60\\times 60\\,\\text{s}$).</li> </ul> Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> - $v=\\dfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\dfrac{${Vkmh}\\,\\text{km}}{1 h}=\\dfrac{${Vkmh}\\times\\text{1 km}}{1 h}$<br> + $v=\\frac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\frac{${Vkmh}\\,\\text{km}}{1 h}=\\frac{${Vkmh}\\times\\text{1 km}}{1 h}$<br> Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> - $v=\\dfrac{${Vkmh}\\times\\text{1 km}}{\\text{1 h}}=\\dfrac{${Vkmh}\\times\\text{1 000 m}}{\\text{3600 s}}=${Vms} \\,\\text{m/s}$<br> + $v=\\frac{${Vkmh}\\times\\text{1 km}}{\\text{1 h}}=\\frac{${Vkmh}\\times\\text{1 000 m}}{\\text{3600 s}}=${Vms} \\,\\text{m/s}$<br> On peut donc écrire que $v=${Vkmh} \\,\\text{km/h} =${Vms} \\,\\text{m/s}$ ` // fin question @@ -115,15 +115,15 @@ export default class Conversions extends Exercice { // On écrit la correction this.correction = `Il s'agit de faire ici une double conversion : les mètres en kilomètres et les secondes en heures. <br> <ul> - <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\\dfrac{1}{1000}\\,\\text{km}$.</li> - <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\\dfrac{1}{3600}\\,\\text{h}$. <br> + <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\\frac{1}{1000}\\,\\text{km}$.</li> + <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\\frac{1}{3600}\\,\\text{h}$. <br> Le raisonnement précédent peut se ramener à une situation de proportionnalité : <br> $\\def\\arraystretch{1.5} \\begin{array}{|c|c|} \\hline 1 h & 3 600 \\text{s}\\\\ \\hline - $\\dfrac{1 h}{3 600}&1\\ \\text{s} \\\\ + $\\frac{1 h}{3 600}&1\\ \\text{s} \\\\ \\hline \\end{array} $<br><br> @@ -131,9 +131,9 @@ export default class Conversions extends Exercice { </li> </ul> Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> - $v=\\dfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\dfrac{${Vms}\\,\\text{m}}{1 s}=\\dfrac{${Vkmh}\\times\\text{1 m}}{1 s}$<br> + $v=\\frac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\frac{${Vms}\\,\\text{m}}{1 s}=\\frac{${Vkmh}\\times\\text{1 m}}{1 s}$<br> Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> - $v=\\dfrac{${Vms}\\times\\text{1 m}}{\\text{1 s}}=\\dfrac{\\frac{${Vms}\\times\\text{1 km}}{\\text{1 000}}}{\\frac{\\text{1 h}}{3 600}}=${Vkmh} \\,\\text{km/h}$<br> + $v=\\frac{${Vms}\\times\\text{1 m}}{\\text{1 s}}=\\frac{\\frac{${Vms}\\times\\text{1 km}}{\\text{1 000}}}{\\frac{\\text{1 h}}{3 600}}=${Vkmh} \\,\\text{km/h}$<br> On peut donc écrire que $v=${Vms} \\,\\text{m/s} =${Vkmh} \\,\\text{km/h}$ ` // fin question -- GitLab From 8afcbe95b0cc6d4e706aa5def7f63466eec5a47e Mon Sep 17 00:00:00 2001 From: ThibGiauffret <thibault.giauffret@ac-nice.fr> Date: Sat, 4 Jan 2025 11:11:34 +0100 Subject: [PATCH 6/7] =?UTF-8?q?Am=C3=A9liorations=20multiples=20de=20fond?= =?UTF-8?q?=20et=20de=20forme=20:=20fix=20choix=20des=20questions,=20fix?= =?UTF-8?q?=20nombre=20de=20question,=20fix=20rendu=20latex...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercices/2NDE/2DS-REA.ts | 113 +++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 48 deletions(-) diff --git a/src/exercices/2NDE/2DS-REA.ts b/src/exercices/2NDE/2DS-REA.ts index 3a6ebcb52..c8482b91e 100644 --- a/src/exercices/2NDE/2DS-REA.ts +++ b/src/exercices/2NDE/2DS-REA.ts @@ -27,14 +27,16 @@ export const refs = { } export default class Conversions extends Exercice { - constructor() { + constructor () { super() this.nbQuestions = 1 this.sup = 1 - this.besoinFormulaireNumerique = ['Choix des questions', 3, '1 : Conversion grandeur simple (novice)\\n2 : Conversion grandeur composée (confirmé)\\n3 : Conversion grandeur composée (expert)'] + this.besoinFormulaireNumerique = ['Choix des questions', 3, '1 : Conversion grandeur simple (novice)\n 2 : Conversion grandeur composée (confirmé)\n 3 : Conversion grandeur composée (expert)'] + // On énonce la question + this.introduction = `Aide ${prenom()} à réaliser la (ou les) conversion(s) d'unité suivante(s) : <br>` } - nouvelleVersion() { + nouvelleVersion () { this.listeQuestions = [] this.listeCorrections = [] @@ -49,42 +51,53 @@ export default class Conversions extends Exercice { const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions) - for (let i = 0, cpt = 0; i < this.nbQuestions && cpt < 50;) { + for (let i = 0, N, cpt = 0; i < this.nbQuestions && cpt < 50;) { // variables conversions simples - const N = randint(200, 500) - const n_unite = randint(1, 7)// choix de l'unité + N = randint(200, 500) + const nUnite = randint(0, 6)// choix de l'unité const unitesList = ['m', 'g', 'L', 'A', 'V', 'W', 'J'] const unitesConvertieList = ['déci', 'centi', 'milli', 'déca', 'hecto', 'kilo'] - const n_sousunite = randint(1, 6)// choix de la sous-unité + const nSousUnite = randint(1, 5)// choix de la sous-unité const symbolesUniteConvertieList = ['d', 'c', 'm', 'da', 'h', 'k'] const explicitationUniteConvertieList = ['un dixième', 'un centième', 'un millième', 'une dizaine', 'une centaine', 'un millier'] const facteursConversionUniteList = ['10 fois plus grand', '100 fois plus grand', '1000 fois plus grand', '10 fois plus petit', '100 fois plus petit', '1000 fois plus petit'] - const NExpressionConvertiList = ['${N}\\,${unitesList[n_unite]}\\times 10', '${N}\\,${unitesList[n_unite]}\\times 100', '${N}\\,${unitesList[n_unite]}\\times 1000', '\\frac{${N}\\,${unitesList[n_unite]}}{10}', '\\frac{${N}\\,${unitesList[n_unite]}}{100}', '\\frac{${N}\\,${unitesList[n_unite]}}{1000}'] + const NExpressionConvertiList = [`${N}\\, \\text{${unitesList[nUnite]}}\\times 10`, `${N}\\, \\text{${unitesList[nUnite]}}\\times 100`, `${N}\\, \\text{${unitesList[nUnite]}}\\times 1000`, `\\cfrac{${N}\\, \\text{${unitesList[nUnite]}}}{10}`, `\\cfrac{${N}\\, \\text{${unitesList[nUnite]}}}{100}`, `\\cfrac{\\, \\text{${unitesList[nUnite]}}}{1000}`] const NConvertiList = [N * 10, N * 100, N * 1000, N / 10, N / 100, N / 1000] // variables conversions vitesse const Vkmh = randint(25, 120) const Vms = Vkmh / 3.6 + + const nbcs = 3 + switch (listeTypeDeQuestions[i]) { case 'novice': - // On énonce la question - this.question = `Aide ${prenom()} à réaliser la conversion d'unité suivante : <br>` - // On y ajoute le champ de réponse - this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${N}\\, \\text{${unitesList[n_unite]}} =$`, texteApres: `$\\text{ ${symbolesUniteConvertieList[n_sousunite]}}\\text{${unitesList[n_unite]}}$` }) + + if (this.interactif) { + // On y ajoute le champ de réponse interactif + this.question = ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${N}\\, \\text{${unitesList[nUnite]}} =$`, texteApres: `$\\text{ ${symbolesUniteConvertieList[nSousUnite]}}\\text{${unitesList[nUnite]}}$` }) + } else { + this.question = `$${N}\\, \\text{${unitesList[nUnite]}} = ... \\, \\text{ ${symbolesUniteConvertieList[nSousUnite]}}\\text{${unitesList[nUnite]}}$ + ` + } + // On génère la réponse - this.reponse = NConvertiList[n_sousunite] + this.reponse = NConvertiList[nSousUnite] // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) // On écrit la correction - this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[n_sousunite]} correspond à ${explicitationUniteConvertieList[n_sousunite]} d'une unité. <br> - Une unité est donc ${facteursConversionUniteList[n_sousunite]} qu'un ${unitesConvertieList[n_sousunite]} . <br> - Par conséquent $${N} ${unitesList[n_unite]}= ${NExpressionConvertiList[n_sousunite]}=${NConvertiList[n_sousunite]}\\,${symbolesUniteConvertieList[n_sousunite]}${unitesList[n_unite]}$` + this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[nSousUnite]} correspond à ${explicitationUniteConvertieList[nSousUnite]} d'une unité. <br> + Une unité est donc ${facteursConversionUniteList[nSousUnite]} qu'un ${unitesConvertieList[nSousUnite]} . <br> + Par conséquent $${N}\\, \\text{${unitesList[nUnite]}} = ${NExpressionConvertiList[nSousUnite]}=${chiffresSignificatifs(NConvertiList[nSousUnite], nbcs)}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}$` // fin question break case 'confirme': - // On énonce la question - this.question = `Aide ${prenom()} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` - // On y ajoute le champ de réponse - this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${Vkmh}\\, \\text{km/h} =$`, texteApres: 'm/s' }) + if (this.interactif) { + // On y ajoute le champ de réponse interactif + this.question = ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${chiffresSignificatifs(Vkmh, nbcs)}\\, \\text{km/h} =$`, texteApres: '$\\text{m/s}$' }) + } else { + this.question = `$${chiffresSignificatifs(Vkmh, nbcs)}\\, \\text{km/h} = ... \\, \\text{m/s}$ + ` + } // On génère la réponse this.reponse = Vms // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T @@ -95,52 +108,56 @@ export default class Conversions extends Exercice { <li>1 kilomètre correspond à 1000 mètres,</li> <li>1 heure correspond à 3 600 secondes ($60\\times 60\\,\\text{s}$).</li> </ul> - Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> - $v=\\frac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\frac{${Vkmh}\\,\\text{km}}{1 h}=\\frac{${Vkmh}\\times\\text{1 km}}{1 h}$<br> - Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> - $v=\\frac{${Vkmh}\\times\\text{1 km}}{\\text{1 h}}=\\frac{${Vkmh}\\times\\text{1 000 m}}{\\text{3600 s}}=${Vms} \\,\\text{m/s}$<br> - On peut donc écrire que $v=${Vkmh} \\,\\text{km/h} =${Vms} \\,\\text{m/s}$ + Ramenons-nous à la formule de la vitesse en faisant figurer les unités :<br><br> + $v=\\cfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\cfrac{${chiffresSignificatifs(Vkmh, nbcs)}\\,\\text{km}}{1\\, \\text{h}}=\\cfrac{${chiffresSignificatifs(Vkmh, nbcs)}\\times\\text{1 km}}{1\\, \\text{h}}$<br><br> + Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br><br> + $v=\\cfrac{${chiffresSignificatifs(Vkmh, nbcs)}\\times\\text{1 km}}{\\text{1\\, \\text{h}}}=\\cfrac{${chiffresSignificatifs(Vkmh, nbcs)}\\times\\text{1 000 m}}{\\text{3600 s}}=${chiffresSignificatifs(Vms, nbcs)} \\,\\text{m/s}$<br><br> + On peut donc écrire que $v=${chiffresSignificatifs(Vkmh, nbcs)} \\,\\text{km/h} =${chiffresSignificatifs(Vms, nbcs)} \\,\\text{m/s}$ ` // fin question break case 'expert': - // On énonce la question - this.question = `Aider ${prenom()} à réaliser l(a)es conversion(s) d'unité de vitesse suivante(s) : <br>` - // On y ajoute le champ de réponse - this.question += ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${Vms}\\, \\text{m/s} =$`, texteApres: 'km/h' }) + if (this.interactif) { + // On y ajoute le champ de réponse interactif + this.question = ajouteChampTexteMathLive(this, i, 'inline largeur01', { texteAvant: `$${chiffresSignificatifs(Vms, nbcs)}\\, \\text{m/s} =$`, texteApres: '$\\text{hm/h}$' }) + } else { + this.question = `$${chiffresSignificatifs(Vms, nbcs)}\\, \\text{m/s} = ... \\, \\text{km/h}$ + ` + } // On génère la réponse - this.reponse = Vms + this.reponse = Vkmh // On gère la réponse. Ici, on utilise la fonction approximatelyCompare pour vérifier la valeur de T handleAnswers(this, i, { reponse: { value: this.reponse, compare: approximatelyCompare } }) // On écrit la correction this.correction = `Il s'agit de faire ici une double conversion : les mètres en kilomètres et les secondes en heures. <br> <ul> - <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\\frac{1}{1000}\\,\\text{km}$.</li> - <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\\frac{1}{3600}\\,\\text{h}$. <br> - Le raisonnement précédent peut se ramener à une situation de proportionnalité : <br> - $\\def\\arraystretch{1.5} - \\begin{array}{|c|c|} - \\hline - 1 h & 3 600 \\text{s}\\\\ - \\hline - $\\frac{1 h}{3 600}&1\\ \\text{s} \\\\ - \\hline - \\end{array} - $<br><br> + <li>Comme 1 kilomètre correspond à 1000 mètre alors 1 mètre correspond donc à $\\cfrac{1}{1000}\\,\\text{km}$.</li> + <li>Comme 1 heure correspond à 3 600 s alors 1 seconde correspond donc à $\\cfrac{1}{3600}\\,\\text{h}$. <br> + Le raisonnement précédent peut se ramener à une situation de proportionnalité : <br><br> + + $\\def\\arraystretch{1.5} + \\begin{array}{|c|c|} + \\hline + 1 \\text{h} & 3 600 \\text{s}\\\\ + \\hline + \\cfrac{1 \\text{h}}{3 600} &1\\ \\text{s} \\\\ + \\hline + \\end{array} + $<br><br> </li> </ul> - Ramenons-non à la formule de la vitesse en faisant figurer les unités :<br> - $v=\\frac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\frac{${Vms}\\,\\text{m}}{1 s}=\\frac{${Vkmh}\\times\\text{1 m}}{1 s}$<br> - Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br> - $v=\\frac{${Vms}\\times\\text{1 m}}{\\text{1 s}}=\\frac{\\frac{${Vms}\\times\\text{1 km}}{\\text{1 000}}}{\\frac{\\text{1 h}}{3 600}}=${Vkmh} \\,\\text{km/h}$<br> - On peut donc écrire que $v=${Vms} \\,\\text{m/s} =${Vkmh} \\,\\text{km/h}$ + Ramenons-nous à la formule de la vitesse en faisant figurer les unités :<br><br> + $v=\\cfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\,\\text{m}}{1\\, \\text{s}}=\\cfrac{${chiffresSignificatifs(Vkmh, nbcs)}\\times\\text{1 m}}{1\\, \\text{s}}$<br><br> + Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br><br> + $v=\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\times\\text{1 m}}{\\text{1 s}}=\\cfrac{\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\times\\text{1 km}}{\\text{1 000}}}{\\cfrac{\\text{1 h}}{3 600}}=${chiffresSignificatifs(Vkmh, nbcs)} \\,\\text{km/h}$<br><br> + On peut donc écrire que $v=${chiffresSignificatifs(Vms, nbcs)} \\,\\text{m/s} =${chiffresSignificatifs(Vkmh, nbcs)} \\,\\text{km/h}$ ` // fin question break } - if (this.questionJamaisPosee(i)) { // Si la question n'a jamais été posée, on en créé une autre, tgL ne peut pas prendre la même valeur + if (this.questionJamaisPosee(i, N!)) { // Si la question n'a jamais été posée, on en créé une autre this.listeQuestions.push(this.question!) // Sinon on enregistre la question dans listeQuestions this.listeCorrections.push(this.correction!) // On fait pareil pour la correction i++ // On passe à la question suivante -- GitLab From 6632cf3d74a788833a0a781c2c68561ea6283ade Mon Sep 17 00:00:00 2001 From: ThibGiauffret <thibault.giauffret@ac-nice.fr> Date: Sat, 4 Jan 2025 12:47:50 +0100 Subject: [PATCH 7/7] =?UTF-8?q?Corrections=20mineures=20(pb=20de=20sous=20?= =?UTF-8?q?unit=C3=A9=20et=20=C3=A9criture=20scientifique).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercices/2NDE/2DS-REA.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/exercices/2NDE/2DS-REA.ts b/src/exercices/2NDE/2DS-REA.ts index c8482b91e..dbc77fe85 100644 --- a/src/exercices/2NDE/2DS-REA.ts +++ b/src/exercices/2NDE/2DS-REA.ts @@ -7,7 +7,7 @@ import { combinaisonListes } from '../../lib/outils/arrayOutils' import Exercice from '../Exercice' import { listeQuestionsToContenu, randint } from '../../modules/outils.js' -import { chiffresSignificatifs } from '../../lib/outils_phys/ecritures' +import { chiffresSignificatifs, ecritureScientifique } from '../../lib/outils_phys/ecritures' import { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js' import { approximatelyCompare } from '../../lib/interactif/comparisonFunctions' import { handleAnswers } from '../../lib/interactif/gestionInteractif' @@ -61,7 +61,7 @@ export default class Conversions extends Exercice { const symbolesUniteConvertieList = ['d', 'c', 'm', 'da', 'h', 'k'] const explicitationUniteConvertieList = ['un dixième', 'un centième', 'un millième', 'une dizaine', 'une centaine', 'un millier'] const facteursConversionUniteList = ['10 fois plus grand', '100 fois plus grand', '1000 fois plus grand', '10 fois plus petit', '100 fois plus petit', '1000 fois plus petit'] - const NExpressionConvertiList = [`${N}\\, \\text{${unitesList[nUnite]}}\\times 10`, `${N}\\, \\text{${unitesList[nUnite]}}\\times 100`, `${N}\\, \\text{${unitesList[nUnite]}}\\times 1000`, `\\cfrac{${N}\\, \\text{${unitesList[nUnite]}}}{10}`, `\\cfrac{${N}\\, \\text{${unitesList[nUnite]}}}{100}`, `\\cfrac{\\, \\text{${unitesList[nUnite]}}}{1000}`] + const NExpressionConvertiList = [`${N}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}\\times 10`, `${N}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}\\times 100`, `${N}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}\\times 1000`, `\\cfrac{${N}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}}{10}`, `\\cfrac{${N}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}}{100}`, `\\cfrac{${N}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}}{1000}`] const NConvertiList = [N * 10, N * 100, N * 1000, N / 10, N / 100, N / 1000] // variables conversions vitesse const Vkmh = randint(25, 120) @@ -87,7 +87,9 @@ export default class Conversions extends Exercice { // On écrit la correction this.correction = `Pour réaliser la conversion, il suffit de savoir que 1 ${unitesConvertieList[nSousUnite]} correspond à ${explicitationUniteConvertieList[nSousUnite]} d'une unité. <br> Une unité est donc ${facteursConversionUniteList[nSousUnite]} qu'un ${unitesConvertieList[nSousUnite]} . <br> - Par conséquent $${N}\\, \\text{${unitesList[nUnite]}} = ${NExpressionConvertiList[nSousUnite]}=${chiffresSignificatifs(NConvertiList[nSousUnite], nbcs)}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}$` + Par conséquent $${N}\\, \\text{${unitesList[nUnite]}} = ${NExpressionConvertiList[nSousUnite]}=${NConvertiList[nSousUnite]}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}$.<br><br> + En tenant compte des chiffres significatifs, on peut écrire que $${N}\\, \\text{${unitesList[nUnite]}} = ${ecritureScientifique(NConvertiList[nSousUnite], nbcs)}\\, \\text{${symbolesUniteConvertieList[nSousUnite]}${unitesList[nUnite]}}$. + ` // fin question break case 'confirme': @@ -148,7 +150,7 @@ export default class Conversions extends Exercice { </li> </ul> Ramenons-nous à la formule de la vitesse en faisant figurer les unités :<br><br> - $v=\\cfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\,\\text{m}}{1\\, \\text{s}}=\\cfrac{${chiffresSignificatifs(Vkmh, nbcs)}\\times\\text{1 m}}{1\\, \\text{s}}$<br><br> + $v=\\cfrac{\\text{distance parcourue}}{\\text{durée du trajet}}=\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\,\\text{m}}{1\\, \\text{s}}=\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\times\\text{1 m}}{1\\, \\text{s}}$<br><br> Il s'agit maintenant de reporter les conversions d'unité directement dans la formule comme suit :<br><br> $v=\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\times\\text{1 m}}{\\text{1 s}}=\\cfrac{\\cfrac{${chiffresSignificatifs(Vms, nbcs)}\\times\\text{1 km}}{\\text{1 000}}}{\\cfrac{\\text{1 h}}{3 600}}=${chiffresSignificatifs(Vkmh, nbcs)} \\,\\text{km/h}$<br><br> On peut donc écrire que $v=${chiffresSignificatifs(Vms, nbcs)} \\,\\text{m/s} =${chiffresSignificatifs(Vkmh, nbcs)} \\,\\text{km/h}$ -- GitLab