File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/4C10-6-eKTi6o3C.js.map
{"version":3,"file":"4C10-6-eKTi6o3C.js","sources":["../../src/exercices/4e/4C10-6.js"],"sourcesContent":["import { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { texteEnCouleurEtGras } from '../../lib/outils/embellissements'\nimport { ecritureNombreRelatif } from '../../lib/outils/ecritures.js'\nimport { lettreDepuisChiffre } from '../../lib/outils/outilString.js'\nimport { Relatif } from '../../modules/Relatif.js'\nimport Exercice from '../Exercice.js'\nimport {\n listeQuestionsToContenu, randint\n} from '../../modules/outils.js'\nimport { propositionsQcm } from '../../lib/interactif/qcm.js'\nexport const interactifReady = true\nexport const interactifType = 'qcm'\nexport const amcReady = true\nexport const amcType = 'qcmMono'\nexport const titre = 'Relative multiplications and quotients: sign with a letter'\n\n/**\n* Effectuer des multiplications de relatifs dans un tableau à double entrée\n*\n* @author Cédric GROLLEAU\n* 4C10-6\n*/\nexport const uuid = '73187'\nexport const ref = '4C10-6'\nexport default function ExerciceTableauMultiplicationsRelatifs () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.sup = 3\n this.consigne = ''\n this.correctionDetailleeDisponible = true\n this.correctionDetaillee = false\n this.spacing = 2\n this.nbQuestions = 3\n this.nbQuestionsModifiable = true\n\n this.nouvelleVersion = function () {\n this.autoCorrection = []\n this.sup = parseInt(this.sup)\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n let typesDeQuestionsDisponibles\n switch (this.sup) {\n case 1: // multiplications\n typesDeQuestionsDisponibles = [1]\n break\n case 2: // Quotient\n typesDeQuestionsDisponibles = [2]\n break\n case 3: // multiplications et quotients\n typesDeQuestionsDisponibles = [1, 2]\n break\n case 4: // avec puissances\n typesDeQuestionsDisponibles = [3, 4]\n break\n case 5: // mélange\n typesDeQuestionsDisponibles = [1, 2, 3, 4]\n break\n }\n const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n for (let i = 0, texte, texteCorr, nbLettres, nbNum, expLettre, reponse, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n this.autoCorrection[i] = {}\n // we only choose numbers between 1 and 20\n const nbMax = 20\n // The table of necessary relatives, I need max 5!\n const num = new Relatif(\n randint(-1, 1, [0]) * randint(1, nbMax),\n randint(-1, 1, [0]) * randint(1, nbMax),\n randint(-1, 1, [0]) * randint(1, nbMax),\n randint(-1, 1, [0]) * randint(1, nbMax),\n randint(-1, 1, [0]) * randint(1, nbMax)\n )\n const lettreTab = ['n', 'x', 'y', 'a', 'm']\n const lettre = lettreTab[randint(0, lettreTab.length - 1)]\n const nomExpression = lettreDepuisChiffre(i + 1)\n const signeExpression = randint(-1, 1, [0])\n const nbTermes = listeTypeDeQuestions[i] === 1 ? randint(3, 5) : randint(4, 6)\n let placeLettre = randint(0, nbTermes - 1)\n const listeNombres = num.relatifs.slice(0, nbTermes - 1)\n const listeTermes = []\n for (let indice = 0; indice < listeNombres.length; indice++) {\n listeTermes.push(ecritureNombreRelatif(listeNombres[indice]))\n }\n listeTermes.splice(placeLettre, 0, lettre)\n let calcul = ''\n let signeLettre, calculNombres\n texte = `Give the sign of $${lettre}$ so that ${nomExpression} is ${signeExpression === -1 ? 'negative' : 'positive'}. <br>`\n texteCorr = `${texteEnCouleurEtGras('suppose that' + lettre + ' is positive:')}`\n switch (listeTypeDeQuestions[i]) {\n case 1: // multiplications\n calcul += `${listeTermes[0]}`\n for (let k = 1; k < nbTermes; k++) {\n calcul += `\\\\times ${listeTermes[k]}`\n }\n texte += ` ${nomExpression} = $${calcul}$ <br>`\n if (this.correctionDetaillee) {\n // textCorr += `<br> $${ecritureNombreRelatif(listeNombres[0])}$ is ${num.getSigneString()[0]}`;\n // for (let k=1; k<nbTerms-2; k++) {\n // textCorr += ` , $ ${ecritureNombreRelatif(listeNombres[k])} $ is ${num.getSigneString()[k]}`\n // }\n // textCorr += ` and $${ecritureNombreRelatif(listeNombres[parseInt(nbTermes-2)])}$ is ${num.getSigneString()[parseInt(nbTermes-2)]}`;\n listeNombres.push(1)\n texteCorr += `<br> ${num.setRegleSigneProduit(...listeNombres)}`\n texteCorr += `<br><br> So if ${texteEnCouleurEtGras(lettre + ' is positive', 'black')} $ ${calcul} $ is ${texteEnCouleurEtGras(num.getSigneProduitString(...listeNombres), 'black')}.`\n texteCorr += `<br><br> ${texteEnCouleurEtGras('Now suppose that' + lettre + ' or negative:')}`\n // textCorr += `$${ecritureNombreRelatif(listeNombres[0])}$ is ${num.getSigneString()[0]}`;\n // for (let k=1; k<nbTerms-1; k++) {\n // textCorr += ` , $ ${ecritureNombreRelatif(listeNombres[k])} $ is ${num.getSigneString()[k]}`\n // }\n // textCorr += ` and ${lettre} is negative.`;\n listeNombres.push(-1)\n texteCorr += `<br><br> ${num.setRegleSigneProduit(...listeNombres)}`\n texteCorr += `<br><br> So if ${texteEnCouleurEtGras(lettre + ' is negative', 'black')} $ ${calcul} $ is ${texteEnCouleurEtGras(num.getSigneProduitString(...listeNombres), 'black')}.`\n texteCorr += `<br><br> ${texteEnCouleurEtGras('Conclusion :')} <br>` + texteEnCouleurEtGras(`It is therefore necessary that $ ${lettre} $ be ${signeExpression === num.getSigneProduitNumber(...listeNombres) ? 'negative' : 'positive'} for ${nomExpression} to be ${signeExpression === -1 ? 'negative' : 'positive'}`, 'black')\n } else {\n texteCorr = `$${lettre}$ must be ${signeExpression === num.getSigneProduitNumber(...listeNombres) ? 'positive' : 'negative'} for ${nomExpression} to be ${signeExpression === -1 ? 'negative' : 'positive'}.`\n reponse = signeExpression === num.getSigneProduitNumber(...listeNombres) ? 'positive' : 'negative'\n }\n break\n case 2: // quotient de 2 produits\n calcul += '\\\\dfrac {' + listeTermes[0]\n nbNum = randint(2, nbTermes - 2)\n for (let k = 1; k < nbNum + 1; k++) {\n calcul += `\\\\times ${listeTermes[k]}`\n }\n calcul += '}{' + listeTermes[nbNum + 1]\n for (let denom = nbNum + 2; denom < nbTermes; denom++) {\n calcul += `\\\\times ${listeTermes[denom]}`\n }\n calcul += '}'\n texte += ` ${nomExpression} = $${calcul}$ <br>`\n if (this.correctionDetaillee) {\n // corrtext += `$${ecritureNombreRelatif(listeNombres[0])}$ is ${num.getSigneString()[0]}`;\n // for (let k=1; k<nbTerms-1; k++) {\n // textCorr += ` and $${ecritureNombreRelatif(listeNombres[k])}$ is ${num.getSigneString()[k]}`\n // }\n texteCorr += `<br> ${num.setRegleSigneQuotient(...listeNombres)}`\n texteCorr += `<br><br> So if ${texteEnCouleurEtGras(lettre + ' is positive', 'black')} $ ${calcul} $ is ${texteEnCouleurEtGras(num.getSigneProduitString(...listeNombres), 'black')}.`\n texteCorr += `<br><br> ${texteEnCouleurEtGras('Now suppose that' + lettre + ' or negative:')}`\n // $${ecritureNombreRelatif(listeNombres[0])}$ is ${num.getSigneString()[0]}`;\n // for (let k=1; k<nbTerms-1; k++) {\n // textCorr += ` and $${ecritureNombreRelatif(listeNombres[k])}$ is ${num.getSigneString()[k]}`\n // }\n listeNombres.push(-1)\n texteCorr += `<br> ${num.setRegleSigneQuotient(...listeNombres)}`\n texteCorr += `<br><br> So if ${texteEnCouleurEtGras(lettre + ' is negative', 'black')} $ ${calcul} $ is ${texteEnCouleurEtGras(num.getSigneProduitString(...listeNombres), 'black')}.`\n texteCorr += `<br><br> ${texteEnCouleurEtGras('Conclusion :')} <br>` + texteEnCouleurEtGras(`It is therefore necessary that $ ${lettre} $ be ${signeExpression === num.getSigneProduitNumber(...listeNombres) ? 'negative' : 'positive'} for ${nomExpression} to be ${signeExpression === -1 ? 'negative' : 'positive'}`, 'black')\n } else {\n texteCorr = `$${lettre}$ must be ${signeExpression === num.getSigneProduitNumber(...listeNombres) ? 'positive' : 'negative'} for ${nomExpression} to be ${signeExpression === -1 ? 'negative' : 'positive'}.`\n }\n reponse = signeExpression === num.getSigneProduitNumber(...listeNombres) ? 'positive' : 'negative'\n\n break\n case 3: // produit avec plusieurs fois la lettre\n signeLettre = randint(-1, 1, [0])\n texte = `Gives the sign of ${nomExpression} if $${lettre}$ is ${signeLettre === -1 ? 'negative' : 'positive'}. <br>`\n texteCorr = ''\n nbLettres = randint(1, 3)\n placeLettre = randint(0, nbTermes - 1)\n for (let k = 0; k < nbLettres; k++) {\n listeTermes.splice(placeLettre, 0, lettre)\n }\n calcul += `${listeTermes[0]}`\n for (let k = 1; k < nbTermes + nbLettres; k++) {\n calcul += `\\\\times ${listeTermes[k]}`\n }\n calculNombres = `${listeNombres[0]}`\n for (let k = 1; k < nbTermes - 1; k++) {\n calculNombres += `\\\\times ${listeNombres[k]}`\n }\n texte += ` ${nomExpression} = $${calcul}$ <br>`\n if (this.correctionDetaillee) {\n if (nbLettres === 1 || nbLettres === 3) {\n texteCorr += `We find ${nbLettres + 1} times the factor $ ${lettre} $.<br> But ${nbLettres + 1} is even so their product will be positive.`\n texteCorr += `<br>The sign of the expression therefore has the sign of: $ ${calculNombres} $`\n texteCorr += `<br><br> ${num.setRegleSigneProduit(...listeNombres)}`\n texteCorr += '<br><br>' + texteEnCouleurEtGras(`So ${nomExpression} is ${num.getSigneProduitString(...listeNombres)} whatever the sign of $${lettre}$.`, 'black')\n } else {\n texteCorr += `We find ${nbLettres + 1} times the factor $${lettre}$. <br> But ${nbLettres + 1} is odd so their product has the sign of $ ${lettre} $ or ${signeLettre === -1 ? 'negative' : 'positive'}.`\n if (signeLettre === -1) {\n texteCorr += `<br>The sign of the expression therefore has the opposite sign to: $ ${calculNombres} $`\n texteCorr += `<br><br> ${num.setRegleSigneProduit(...listeNombres)}`\n listeNombres.push(-1)\n texteCorr += '<br><br>' + texteEnCouleurEtGras(`So ${nomExpression} is ${num.getSigneProduitString(...listeNombres)} when $${lettre}$ is ${signeLettre === -1 ? 'negative' : 'positive'}.`, 'black')\n } else {\n texteCorr += `<br>The sign of the expression therefore has the opposite sign to: $ ${calculNombres} $`\n texteCorr += `<br><br> ${num.setRegleSigneProduit(...listeNombres)}`\n texteCorr += '<br><br>' + texteEnCouleurEtGras(`So ${nomExpression} is ${num.getSigneProduitString(...listeNombres)} when $${lettre}$ is ${signeLettre === -1 ? 'negative' : 'positive'}.`, 'black')\n }\n }\n reponse = num.getSigneProduitString(...listeNombres)\n } else {\n if (nbLettres === 1 || nbLettres === 3) {\n texteCorr = `${nomExpression} is ${num.getSigneProduitString(...listeNombres)} whatever the sign of $${lettre}$.<br>`\n } else {\n if (signeLettre === -1) {\n listeNombres.push(-1)\n texteCorr = `${nomExpression} is ${num.getSigneProduitString(...listeNombres)} if $${lettre}$ is negative.<br>`\n } else {\n texteCorr = `${nomExpression} is ${num.getSigneProduitString(...listeNombres)} if $${lettre}$ is positive.<br>`\n }\n }\n reponse = num.getSigneProduitString(...listeNombres)\n }\n break\n case 4: // produit avec plusieurs fois la lettre\n signeLettre = randint(-1, 1, [0])\n texte = `Gives the sign of ${nomExpression} if $${lettre}$ is ${signeLettre === -1 ? 'negative' : 'positive'}. <br>`\n texteCorr = ''\n expLettre = randint(2, 7)\n if (placeLettre === 0) {\n calcul += listeTermes[0] + '^{' + expLettre + '}'\n } else {\n calcul += listeTermes[0]\n }\n for (let k = 1; k < nbTermes; k++) {\n if (k === placeLettre) {\n calcul += '\\\\times' + listeTermes[k] + '^{' + expLettre + '}'\n } else {\n calcul += '\\\\times' + listeTermes[k]\n }\n }\n calculNombres = `${listeNombres[0]}`\n for (let k = 1; k < nbTermes - 1; k++) {\n calculNombres += `\\\\times ${listeNombres[k]}`\n }\n texte += ` ${nomExpression} = $${calcul}$ <br>`\n if (this.correctionDetaillee) {\n if (expLettre % 2 === 0) {\n texteCorr += `We find ${expLettre} times the factor $ ${lettre} $.<br> But ${expLettre} is even so their product will be positive.`\n texteCorr += `<br>The sign of the expression therefore has the sign of: $ ${calculNombres} $`\n texteCorr += `<br><br> ${num.setRegleSigneProduit(...listeNombres)}`\n texteCorr += '<br><br>' + texteEnCouleurEtGras(`So ${nomExpression} is ${num.getSigneProduitString(...listeNombres)} whatever the sign of $${lettre}$.`, 'black')\n reponse = num.getSigneProduitString(...listeNombres)\n } else {\n texteCorr += `We find ${expLettre} times the factor $${lettre}$. <br> But ${expLettre} is odd so their product has the sign of $ ${lettre} $ or ${signeLettre === -1 ? 'negative' : 'positive'}.`\n if (signeLettre === -1) {\n texteCorr += `<br>The sign of the expression therefore has the opposite sign to: $ ${calculNombres} $`\n texteCorr += `<br><br> ${num.setRegleSigneProduit(...listeNombres)}`\n listeNombres.push(-1)\n texteCorr += '<br><br>' + texteEnCouleurEtGras(`So ${nomExpression} is ${num.getSigneProduitString(...listeNombres)} when $${lettre}$ is ${signeLettre === -1 ? 'negative' : 'positive'}.`, 'black')\n } else {\n texteCorr += `<br>The sign of the expression therefore has the opposite sign to: $ ${calculNombres} $`\n texteCorr += `<br><br> ${num.setRegleSigneProduit(...listeNombres)}`\n texteCorr += '<br><br>' + texteEnCouleurEtGras(`So ${nomExpression} is ${num.getSigneProduitString(...listeNombres)} when $${lettre}$ is ${signeLettre === -1 ? 'negative' : 'positive'}.`, 'black')\n }\n reponse = num.getSigneProduitString(...listeNombres)\n }\n } else {\n if (expLettre % 2 === 0) {\n texteCorr = `${nomExpression} is ${num.getSigneProduitString(...listeNombres)} whatever the sign of $${lettre}$.<br>`\n } else {\n if (signeLettre === -1) {\n listeNombres.push(-1)\n texteCorr = `${nomExpression} is ${num.getSigneProduitString(...listeNombres)} if $${lettre}$ is negative.<br>`\n } else {\n texteCorr = `${nomExpression} is ${num.getSigneProduitString(...listeNombres)} if $${lettre}$ is positive.<br>`\n }\n }\n reponse = num.getSigneProduitString(...listeNombres)\n }\n break\n }\n this.autoCorrection[i] = {\n enonce: texte,\n options: { ordered: true },\n propositions: [\n {\n texte: 'negative',\n statut: reponse === 'negative'\n },\n {\n texte: 'zero',\n statut: false\n },\n {\n texte: 'positive',\n statut: reponse === 'positive'\n }\n ]\n }\n\n texte += propositionsQcm(this, i).texte\n if (this.questionJamaisPosee(i, listeTypeDeQuestions[i], ...listeNombres)) {\n // If the question has never been asked, we create another one\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n this.besoinFormulaireNumerique = [\n 'Difficulty level',\n 5,\n '1: Multiplications\\n2: Quotients \\n3: Multiplications and quotients \\n4: Multiplications with several times the letter (including powers) \\n5: Mixture'\n ]\n}\n"],"names":["interactifReady","interactifType","amcReady","amcType","titre","uuid","ref","ExerciceTableauMultiplicationsRelatifs","Exercice","typesDeQuestionsDisponibles","listeTypeDeQuestions","combinaisonListes","i","texte","texteCorr","nbLettres","nbNum","expLettre","reponse","cpt","nbMax","num","Relatif","randint","lettreTab","lettre","nomExpression","lettreDepuisChiffre","signeExpression","nbTermes","placeLettre","listeNombres","listeTermes","indice","ecritureNombreRelatif","calcul","signeLettre","calculNombres","texteEnCouleurEtGras","k","denom","propositionsQcm","listeQuestionsToContenu"],"mappings":"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"}