HEX
Server: Apache
System: Linux vps.mmtprep.com 4.18.0-477.21.1.el8_8.x86_64 #1 SMP Thu Aug 10 13:51:50 EDT 2023 x86_64
User: mmtprep (1001)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
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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"}