File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/3I12-1-JwtGS4nM.js.map
{"version":3,"file":"3I12-1-JwtGS4nM.js","sources":["../../src/exercices/3e/3I12-1.js"],"sourcesContent":["import { choice, compteOccurences } from '../../lib/outils/arrayOutils'\nimport { lampeMessage } from '../../lib/format/message.js'\nimport { lettreDepuisChiffre } from '../../lib/outils/outilString.js'\nimport Exercice from '../deprecatedExercice.js'\nimport { gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { scratchblock } from '../../modules/scratchblock.js'\nimport { context } from '../../modules/context.js'\nexport const titre = 'Complete a Scratch script - 1'\nexport const amcReady = true\nexport const amcType = 'AMCOpen'\n\nexport const dateDePublication = '20/09/2022'\nexport const dateDeModifImportante = '08/05/2023' // par EE : Le nb de questions peut être supérieur à 1.\n\n/**\n * Compléter un script sur les multiples et diviseurs\n * @author Eric Elter\n */\nexport const uuid = '39a32'\nexport const ref = '3I12-1'\nexport default function CompleterScriptMultiple () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.sup = 5\n this.sup2 = 5\n this.sup3 = 4\n this.sup4 = 3\n this.spacing = 2\n this.nbQuestions = 1\n this.typeExercice = 'Scratch'\n this.nbCols = 1\n this.nbColsCorr = 1\n this.listePackages = 'scratch3'\n this.nouvelleVersion = function () {\n this.introduction = lampeMessage({\n titre: context.isHtml ? `${scratchblock('\\\\begin{scratch}[print,fill,blocks,scale=0.5]\\n\\\\ovaloperator{\\\\ovalnum{ } modulo \\\\ovalnum{ }}\\\\end{scratch}')}` : 'Information',\n texte: (context.isHtml\n ? ''\n : '$\\\\setscratch{print}\\\\ovaloperator{\\\\ovalnum{ } modulo \\\\ovalnum{ }}$<br>') + 'This brick gives the remainder of the Euclidean division of the number on the left by the number on the right.',\n couleur: 'numbers'\n })\n\n this.consigne = 'Complete the missing bricks.'\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n /*\n let briquesATrouver = []\n if (!this.sup) { // Si aucune liste n'est saisie\n briquesATrouver = [randint(1, 4)]\n } else {\n if (typeof (this.sup) === 'number') {\n this.sup = contraindreValeur(1, 5, this.sup, 5)\n briquesATrouver = [this.sup === 5 ? randint(1, 4) : this.sup]\n } else {\n briquesATrouver = this.sup.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -\n for (let i = 0; i < briquesATrouver.length; i++) { // on a un tableau avec des strings : ['1', '1', '2']\n briquesATrouver[i] = contraindreValeur(1, 5, parseInt(briquesATrouver[i]), 5)\n }\n if (compteOccurences(briquesATrouver, 5) > 0) briquesATrouver = [randint(1, 4)]\n }\n }\n */\n\n const briquesATrouver = gestionnaireFormulaireTexte({\n max: 4,\n defaut: 5,\n melange: 5,\n nbQuestions: this.nbQuestions,\n shuffle: false,\n saisie: this.sup\n })\n\n const choixLignes3et5 = compteOccurences(briquesATrouver, 1) > 0\n const choixLigne6 = compteOccurences(briquesATrouver, 2) > 0\n const choixLignes7et8Extremes = compteOccurences(briquesATrouver, 3) > 0\n const choixLignes7et8Centre = compteOccurences(briquesATrouver, 4) > 0\n\n /*\n let optionsBriques = []\n if (!this.sup2) { // Si aucune liste n'est saisie\n optionsBriques = [randint(1, 4)]\n } else {\n if (typeof (this.sup2) === 'number') {\n this.sup2 = contraindreValeur(1, 5, this.sup2, 5)\n optionsBriques = [this.sup2 === 5 ? randint(1, 4) : this.sup2]\n } else {\n optionsBriques = this.sup2.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -\n for (let i = 0; i < optionsBriques.length; i++) { // on a un tableau avec des strings : ['1', '1', '2']\n optionsBriques[i] = contraindreValeur(1, 5, parseInt(optionsBriques[i]), 5)\n }\n if (compteOccurences(optionsBriques, 5) > 0) optionsBriques = [randint(1, 4)]\n else optionsBriques = combinaisonListes(optionsBriques, optionsBriques.length)\n }\n }\n const briqueInitiale = optionsBriques[0]\n */\n\n const briqueInitiale = gestionnaireFormulaireTexte({\n max: 4,\n defaut: 5,\n melange: 5,\n nbQuestions: this.nbQuestions,\n saisie: this.sup2\n })\n\n /*\n optionsBriques = []\n if (!this.sup3) { // Si aucune liste n'est saisie\n optionsBriques = [randint(1, 3)]\n } else {\n if (typeof (this.sup3) === 'number') {\n this.sup3 = contraindreValeur(1, 4, this.sup3, 4)\n optionsBriques = [this.sup3 === 4 ? randint(1, 3) : this.sup3]\n } else {\n optionsBriques = this.sup3.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -\n for (let i = 0; i < optionsBriques.length; i++) { // on a un tableau avec des strings : ['1', '1', '2']\n optionsBriques[i] = contraindreValeur(1, 4, parseInt(optionsBriques[i]), 4)\n }\n if (compteOccurences(optionsBriques, 4) > 0) optionsBriques = [randint(1, 3)]\n else optionsBriques = combinaisonListes(optionsBriques, optionsBriques.length)\n }\n }\n const choixScript = optionsBriques[0]\n */\n\n const choixScript = gestionnaireFormulaireTexte({\n max: 3,\n defaut: 4,\n melange: 4,\n nbQuestions: this.nbQuestions,\n saisie: this.sup3\n })\n\n for (let i = 0, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n const diviseurEnPremier = this.sup4 === 3 ? choice([true, false]) : this.sup4 === 2\n\n const tableauTouches = []\n for (let i = 1; i < 27; i++) tableauTouches.push(String.fromCharCode(64 + i).toLowerCase())\n for (let i = 0; i < 10; i++) tableauTouches.push(i)\n tableauTouches.push('space')\n tableauTouches.push('up arrow')\n tableauTouches.push('down arrow')\n tableauTouches.push('right arrow')\n tableauTouches.push('left arrow')\n const touchePressee = choice(tableauTouches)\n\n const nb1 = randint(1, 26, [23, 9, 15, 17]) // Pour éviter I,O,Q et W\n const nb2 = randint(1, 26, [23, 9, 15, 17, nb1]) // Pour éviter I,O,Q et W\n let var1 = lettreDepuisChiffre(nb1)\n let var2 = lettreDepuisChiffre(nb2)\n let texteScratch = '\\\\begin{scratch}[print,fill,blocks,scale=1]\\n'\n switch (briqueInitiale[i]) {\n case 1 :\n texteScratch += '\\\\blockinit{when \\\\greenflag is clicked}\\n'\n break\n case 2 :\n texteScratch += '\\\\blockinit{when this sprite is clicked}\\n'\n break\n case 3 :\n texteScratch += `\\\\blockinit{when the \\\\selectmenu{${touchePressee}} key is pressed}\\n`\n break\n case 4 :\n texteScratch += '\\\\blockinit{when the \\\\selectmenu{any} key is pressed}\\n'\n break\n }\n texteScratch += '\\\\blockmove{ask \\\\ovalnum{Give me an integer.} and wait}\\n'\n const texteSansTrou = [texteScratch]\n texteSansTrou.push(`\\\\blockvariable{set \\\\selectmenu{${var1}} to \\\\ovalsensing{response}}\\n`)\n texteScratch += choixLignes3et5\n ? `\\\\blockvariable{set \\\\selectmenu{${var1}} to \\\\ovalnum{ ................ }}\\n`\n : texteSansTrou[1]\n texteSansTrou.push('\\\\blockmove{ask \\\\ovalnum{Give me a second integer.} and wait}\\n')\n texteScratch += texteSansTrou[2]\n texteSansTrou.push(`\\\\blockvariable{set \\\\selectmenu{${var2}} to \\\\ovalsensing{response}}\\n`)\n texteScratch += choixLignes3et5\n ? `\\\\blockvariable{set \\\\selectmenu{${var2}} to \\\\ovalnum{ ................ }}\\n`\n : texteSansTrou[3]\n const var3 = lettreDepuisChiffre(nb1)\n var1 = diviseurEnPremier ? var2 : var1\n var2 = diviseurEnPremier ? var3 : var2\n texteSansTrou.push(`\\\\blockifelse{if \\\\booloperator{\\\\ovaloperator{\\\\ovalmove{${var1}} modulo \\\\ovalmove{${var2}}} = \\\\ovalnum{0}} then}\\n`)\n texteScratch += choixLigne6\n ? '\\\\blockifelse{si \\\\booloperator{\\\\ovaloperator{\\\\ovalnum{ ................ } modulo \\\\ovalnum{ ........... ..... }} = \\\\ovalnum{0}} then}\\n'\n : texteSansTrou[4]\n switch (choixScript[i]) {\n case 1 : // .... est un multiple de ....\n texteSansTrou.push(`{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var1}} and \\\\ovaloperator{group \\\\ovalnum{ is a multiple of } and \\\\ovalmove{${var2}}}} and \\\\ovalnum {.}}}\\n}\\n`)\n texteScratch += choixLignes7et8Extremes\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalnum{ ................ } and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? '................' : ' is a multiple of'}} and \\\\ovalnum{ ................ }}} and \\\\ovalnum{.}}}\\n}\\n`\n : choixLignes7et8Centre\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var1}} and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' is a multiple of'}} and \\\\ovalmove{${var2}}}} and \\\\ovalnum{.} }}\\n}\\n`\n : texteSansTrou[5]\n texteSansTrou.push(`{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var1}} and \\\\ovaloperator{group \\\\ovalnum{ is not a multiple of } and \\\\ovalmove{${var2}}}} and \\\\ovalnum{.}}}\\n}\\n`)\n texteScratch += choixLignes7et8Extremes\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalnum{ ................ } and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' is not a multiple of'}} and \\\\ovalnum{ ................ }}} and \\\\ovalnum{.}}}\\n}\\n`\n : choixLignes7et8Centre\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var1}} and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' is not a multiple of'}} and \\\\ovalmove{${var2}}}} and \\\\ovalnum{.} }}\\n}\\n`\n : texteSansTrou[6]\n break\n case 2 : // .... divise ....\n texteSansTrou.push(`{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{ divide } and \\\\ovalmove{${var1}}}} and \\\\ovalnum{.} }}\\n}\\n`)\n texteScratch += choixLignes7et8Extremes\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalnum{ ................ } and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' split'}} and \\\\ovalnum{ ................ }}} and \\\\ovalnum{.}}}\\n}\\n`\n : choixLignes7et8Centre\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' split'}} and \\\\ovalmove{${var1}}}} and \\\\ovalnum{.} }}\\n}\\n`\n : texteSansTrou[5]\n texteSansTrou.push(`{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{ does not divide } and \\\\ovalmove{${var1}}}} and \\\\ovalnum{ .}}}\\n}\\n`)\n texteScratch += choixLignes7et8Extremes\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalnum{ ................ } and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' do not divide'}} and \\\\ovalnum{ ................ }}} and \\\\ovalnum{.}}}\\n}\\n`\n : choixLignes7et8Centre\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' do not divide'}} and \\\\ovalmove{${var1}}}} and \\\\ovalnum{.} }}\\n}\\n`\n : texteSansTrou[6]\n break\n case 3 : // .... est un diviseur de ....\n texteSansTrou.push(`{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{ is a divisor of } and \\\\ovalmove{${var1}}}} and \\\\ovalnum {.}}}\\n}\\n`)\n texteScratch += choixLignes7et8Extremes\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalnum{ ................ } and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' is a divisor of'}} and \\\\ovalnum{ ................ }}} and \\\\ovalnum{.}}}\\n}\\n`\n : choixLignes7et8Centre\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' is a divisor of'}} and \\\\ovalmove{${var1}}}} and \\\\ovalnum{.} }}\\n}\\n`\n : texteSansTrou[5]\n texteSansTrou.push(`{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{ is not a divisor of } and \\\\ovalmove{${var1}}}} and \\\\ovalnum{.}}}\\n}\\n`)\n texteScratch += choixLignes7et8Extremes\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalnum{ ................ } and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' is not a divisor of'}} and \\\\ovalnum{ ................ }}} and \\\\ovalnum{.}}}\\n}\\n`\n : choixLignes7et8Centre\n ? `{\\\\blocklook{say \\\\ovaloperator{group \\\\ovaloperator{group \\\\ovalmove{${var2}} and \\\\ovaloperator{group \\\\ovalnum{${choixLignes7et8Centre ? ' ................' : ' is not a divisor of'}} and \\\\ovalmove{${var1}}}} and \\\\ovalnum{.} }}\\n}\\n`\n : texteSansTrou[6]\n break\n }\n texteSansTrou.push('\\\\end{scratch}')\n texteScratch += texteSansTrou[7]\n texteScratch = scratchblock(texteScratch)\n\n texte = texteScratch\n texteCorr = scratchblock(texteSansTrou.join(''))\n if (context.isAmc) {\n this.autoCorrection = [{\n enonce: this.consigne + '<br>' + texteScratch + '<br>',\n propositions: [{ statut: 3, sanscadre: true }]\n }]\n }\n\n if (this.questionJamaisPosee(i, texte)) {\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n this.besoinFormulaireTexte = [\n 'Brick(s) to find',\n 'Numbers separated by hyphens\\n1: Lines 3 and 5\\n2: Line 6\\n3: Lines 7 and 8 (at the extremes)\\n4: Lines 7 and 8 (in the center)\\n5: One of the previous possibilities chosen at random'\n ]\n this.besoinFormulaire2Texte = [\n 'Choice on the initial brick',\n 'Numbers separated by hyphens\\n1: The initial brick is a click on green flag.\\n2: The initial brick is a click on sprite.\\n3: The initial brick is a press on imposed key\\n4: The initial brick is a pressing a non-imposed key\\n5: One of the previous possibilities chosen at random'\n ]\n this.besoinFormulaire3Texte = [\n 'Choice on one of the final sentences',\n 'Numbers separated by hyphens\\n1: A final sentence contains: ... is a multiple of ...\\n2: A final sentence contains: ... divides ...\\n3: A final sentence contains: ... is a divisor of ...\\n4: One of the previous possibilities chosen at random'\n ]\n this.besoinFormulaire4Numerique = [\n 'Choice of order on the modulo brick', 3,\n '1: First integer requested modulo the second\\n2: Second integer requested modulo the first \\n3: One of the previous possibilities chosen at random'\n ]\n}\n"],"names":["titre","amcReady","amcType","dateDePublication","dateDeModifImportante","uuid","ref","CompleterScriptMultiple","Exercice","lampeMessage","context","scratchblock","briquesATrouver","gestionnaireFormulaireTexte","choixLignes3et5","compteOccurences","choixLigne6","choixLignes7et8Extremes","choixLignes7et8Centre","briqueInitiale","choixScript","texte","texteCorr","cpt","diviseurEnPremier","choice","tableauTouches","i","touchePressee","nb1","randint","nb2","var1","lettreDepuisChiffre","var2","texteScratch","texteSansTrou","var3","listeQuestionsToContenu"],"mappings":"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"}