math-exercises 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/lib/exercises/exercise.d.ts +1 -1
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/functions/affines/affineExpressionReading.d.ts.map +1 -1
  4. package/lib/exercises/math/functions/affines/affineExpressionReading.js +1 -0
  5. package/lib/exercises/math/functions/affines/interceptReading.d.ts.map +1 -1
  6. package/lib/exercises/math/functions/affines/interceptReading.js +1 -0
  7. package/lib/exercises/math/percent/findProportion.d.ts +8 -0
  8. package/lib/exercises/math/percent/findProportion.d.ts.map +1 -0
  9. package/lib/exercises/math/percent/findProportion.js +48 -0
  10. package/lib/exercises/math/percent/index.d.ts +1 -0
  11. package/lib/exercises/math/percent/index.d.ts.map +1 -1
  12. package/lib/exercises/math/percent/index.js +1 -0
  13. package/lib/exercises/math/powers/decimalToScientific.js +4 -4
  14. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
  15. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +4 -1
  16. package/lib/exercises/math/sequences/arithmetic/recognizeReasonFromGraph.d.ts.map +1 -1
  17. package/lib/exercises/math/sequences/arithmetic/recognizeReasonFromGraph.js +4 -1
  18. package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.d.ts +8 -0
  19. package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.d.ts.map +1 -0
  20. package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.js +58 -0
  21. package/lib/exercises/pc/chemicalElements/calculateProtonsNumberFromMass.d.ts +8 -0
  22. package/lib/exercises/pc/chemicalElements/calculateProtonsNumberFromMass.d.ts.map +1 -0
  23. package/lib/exercises/pc/chemicalElements/calculateProtonsNumberFromMass.js +63 -0
  24. package/lib/exercises/pc/chemicalElements/calculateVolumetricMass.d.ts +5 -0
  25. package/lib/exercises/pc/chemicalElements/calculateVolumetricMass.d.ts.map +1 -0
  26. package/lib/exercises/pc/chemicalElements/calculateVolumetricMass.js +76 -0
  27. package/lib/exercises/pc/chemicalElements/findAtomicStructureElement.d.ts +10 -0
  28. package/lib/exercises/pc/chemicalElements/findAtomicStructureElement.d.ts.map +1 -0
  29. package/lib/exercises/pc/chemicalElements/findAtomicStructureElement.js +68 -0
  30. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromElectronicConfiguration.d.ts +8 -0
  31. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromElectronicConfiguration.d.ts.map +1 -0
  32. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromElectronicConfiguration.js +58 -0
  33. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromTable.d.ts +8 -0
  34. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromTable.d.ts.map +1 -0
  35. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromTable.js +59 -0
  36. package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.d.ts +8 -0
  37. package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.d.ts.map +1 -0
  38. package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.js +101 -0
  39. package/lib/exercises/pc/chemicalElements/index.d.ts +9 -0
  40. package/lib/exercises/pc/chemicalElements/index.d.ts.map +1 -0
  41. package/lib/exercises/pc/chemicalElements/index.js +24 -0
  42. package/lib/exercises/pc/chemicalElements/weightPercent.d.ts +10 -0
  43. package/lib/exercises/pc/chemicalElements/weightPercent.d.ts.map +1 -0
  44. package/lib/exercises/pc/chemicalElements/weightPercent.js +107 -0
  45. package/lib/exercises/pc/chemicalEquations.js +1 -1
  46. package/lib/exercises/pc/forces/gravitationalAttractionValue.d.ts +7 -0
  47. package/lib/exercises/pc/forces/gravitationalAttractionValue.d.ts.map +1 -0
  48. package/lib/exercises/pc/forces/gravitationalAttractionValue.js +71 -0
  49. package/lib/exercises/pc/forces/index.d.ts +2 -0
  50. package/lib/exercises/pc/forces/index.d.ts.map +1 -0
  51. package/lib/exercises/pc/forces/index.js +17 -0
  52. package/lib/exercises/pc/index.d.ts +12 -0
  53. package/lib/exercises/pc/index.d.ts.map +1 -1
  54. package/lib/exercises/pc/index.js +14 -0
  55. package/lib/exercises/pc/math/index.d.ts +2 -0
  56. package/lib/exercises/pc/math/index.d.ts.map +1 -0
  57. package/lib/exercises/pc/math/index.js +18 -0
  58. package/lib/exercises/pc/math/isolateVariables.d.ts +8 -0
  59. package/lib/exercises/pc/math/isolateVariables.d.ts.map +1 -0
  60. package/lib/exercises/pc/math/isolateVariables.js +304 -0
  61. package/lib/exercises/pc/math/proportionnalityCoeffFromLine.d.ts +10 -0
  62. package/lib/exercises/pc/math/proportionnalityCoeffFromLine.d.ts.map +1 -0
  63. package/lib/exercises/pc/math/proportionnalityCoeffFromLine.js +81 -0
  64. package/lib/exercises/pc/motion/recognizeFreeFall.d.ts +1 -0
  65. package/lib/exercises/pc/motion/recognizeFreeFall.d.ts.map +1 -0
  66. package/lib/exercises/pc/motion/recognizeFreeFall.js +53 -0
  67. package/lib/exercises/pc/sound/findPeriodFromGraph.d.ts +8 -0
  68. package/lib/exercises/pc/sound/findPeriodFromGraph.d.ts.map +1 -0
  69. package/lib/exercises/pc/sound/findPeriodFromGraph.js +80 -0
  70. package/lib/exercises/pc/sound/findSoundFrequencyFromPeriod.d.ts +7 -0
  71. package/lib/exercises/pc/sound/findSoundFrequencyFromPeriod.d.ts.map +1 -0
  72. package/lib/exercises/pc/sound/findSoundFrequencyFromPeriod.js +51 -0
  73. package/lib/exercises/pc/sound/findSoundPeriodFromFrequency.d.ts +7 -0
  74. package/lib/exercises/pc/sound/findSoundPeriodFromFrequency.d.ts.map +1 -0
  75. package/lib/exercises/pc/sound/findSoundPeriodFromFrequency.js +58 -0
  76. package/lib/exercises/pc/sound/frequencyComparison.d.ts +9 -0
  77. package/lib/exercises/pc/sound/frequencyComparison.d.ts.map +1 -0
  78. package/lib/exercises/pc/sound/frequencyComparison.js +51 -0
  79. package/lib/exercises/pc/sound/index.d.ts +5 -0
  80. package/lib/exercises/pc/sound/index.d.ts.map +1 -0
  81. package/lib/exercises/pc/sound/index.js +20 -0
  82. package/lib/exercises/pc/waves/findDistanceFromEarth.d.ts +7 -0
  83. package/lib/exercises/pc/waves/findDistanceFromEarth.d.ts.map +1 -0
  84. package/lib/exercises/pc/waves/findDistanceFromEarth.js +66 -0
  85. package/lib/exercises/pc/waves/index.d.ts +2 -0
  86. package/lib/exercises/pc/waves/index.d.ts.map +1 -0
  87. package/lib/exercises/pc/waves/index.js +17 -0
  88. package/lib/exercises/pc/weight/index.d.ts +2 -0
  89. package/lib/exercises/pc/weight/index.d.ts.map +1 -0
  90. package/lib/exercises/pc/weight/index.js +17 -0
  91. package/lib/exercises/pc/weight/weightOnTheMoon.d.ts +8 -0
  92. package/lib/exercises/pc/weight/weightOnTheMoon.d.ts.map +1 -0
  93. package/lib/exercises/pc/weight/weightOnTheMoon.js +64 -0
  94. package/lib/exercises/utils/getAtoms.d.ts +2 -0
  95. package/lib/exercises/utils/getAtoms.d.ts.map +1 -0
  96. package/lib/exercises/utils/getAtoms.js +11 -0
  97. package/lib/exercises/utils/getElectronicConfigurationFromShells.d.ts +2 -0
  98. package/lib/exercises/utils/getElectronicConfigurationFromShells.d.ts.map +1 -0
  99. package/lib/exercises/utils/getElectronicConfigurationFromShells.js +19 -0
  100. package/lib/geogebra/geogebraConstructor.d.ts +2 -0
  101. package/lib/geogebra/geogebraConstructor.d.ts.map +1 -1
  102. package/lib/geogebra/geogebraConstructor.js +2 -0
  103. package/lib/index.d.ts +126 -0
  104. package/lib/index.d.ts.map +1 -1
  105. package/lib/index.js +4 -0
  106. package/lib/math/numbers/decimals/decimal.d.ts +3 -3
  107. package/lib/math/numbers/decimals/decimal.d.ts.map +1 -1
  108. package/lib/math/numbers/decimals/decimal.js +39 -19
  109. package/lib/math/utils/random/randfloat.d.ts +1 -1
  110. package/lib/math/utils/random/randfloat.d.ts.map +1 -1
  111. package/lib/math/utils/random/randfloat.js +4 -7
  112. package/lib/math/utils/round.d.ts +2 -1
  113. package/lib/math/utils/round.d.ts.map +1 -1
  114. package/lib/math/utils/round.js +10 -3
  115. package/lib/pc/constants/atoms.d.ts +8 -0
  116. package/lib/pc/constants/atoms.d.ts.map +1 -0
  117. package/lib/pc/constants/atoms.js +9 -0
  118. package/lib/pc/constants/earth.d.ts +9 -0
  119. package/lib/pc/constants/earth.d.ts.map +1 -0
  120. package/lib/pc/constants/earth.js +12 -0
  121. package/lib/pc/constants/gravity.d.ts +10 -0
  122. package/lib/pc/constants/gravity.d.ts.map +1 -0
  123. package/lib/pc/constants/gravity.js +16 -0
  124. package/lib/pc/measure/measure.d.ts +15 -0
  125. package/lib/pc/measure/measure.d.ts.map +1 -0
  126. package/lib/pc/measure/measure.js +97 -0
  127. package/lib/pc/molecularChemistry/atome.d.ts +3 -2
  128. package/lib/pc/molecularChemistry/atome.d.ts.map +1 -1
  129. package/lib/pc/molecularChemistry/atome.js +156 -120
  130. package/lib/pc/molecularChemistry/molecule.d.ts +3 -2
  131. package/lib/pc/molecularChemistry/molecule.d.ts.map +1 -1
  132. package/lib/pc/molecularChemistry/molecule.js +11 -0
  133. package/lib/pc/molecularChemistry/reaction.d.ts +2 -1
  134. package/lib/pc/molecularChemistry/reaction.d.ts.map +1 -1
  135. package/lib/pc/molecularChemistry/reaction.js +9 -0
  136. package/lib/server.d.ts +1 -0
  137. package/lib/server.d.ts.map +1 -1
  138. package/lib/server.js +5 -0
  139. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  140. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  141. package/lib/tree/nodes/complex/complexNode.d.ts.map +1 -1
  142. package/lib/tree/nodes/equations/equalNode.d.ts.map +1 -1
  143. package/lib/tree/nodes/equations/equalNode.js +0 -1
  144. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  145. package/lib/tree/nodes/node.d.ts +1 -0
  146. package/lib/tree/nodes/node.d.ts.map +1 -1
  147. package/lib/tree/nodes/numbers/numberNode.js +1 -1
  148. package/lib/tree/nodes/numbers/piNode.d.ts.map +1 -1
  149. package/lib/tree/nodes/operators/multiplyNode.d.ts +2 -2
  150. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  151. package/lib/tree/nodes/operators/multiplyNode.js +6 -5
  152. package/lib/types/keyIds.d.ts +4 -2
  153. package/lib/types/keyIds.d.ts.map +1 -1
  154. package/lib/utils/numberPrototype/toScientific.d.ts +3 -0
  155. package/lib/utils/numberPrototype/toScientific.d.ts.map +1 -0
  156. package/lib/utils/numberPrototype/toScientific.js +110 -0
  157. package/lib/utils/requiresApostropheBefore.d.ts +2 -0
  158. package/lib/utils/requiresApostropheBefore.d.ts.map +1 -0
  159. package/lib/utils/requiresApostropheBefore.js +7 -0
  160. package/package.json +1 -1
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findValenceElectronsNumberFromTable = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getAtoms_1 = require("../../../exercises/utils/getAtoms");
6
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
7
+ const randint_1 = require("../../../math/utils/random/randint");
8
+ const atome_1 = require("../../../pc/molecularChemistry/atome");
9
+ const random_1 = require("../../../utils/random");
10
+ const requiresApostropheBefore_1 = require("../../../utils/requiresApostropheBefore");
11
+ const getFindValenceElectronsNumberFromTableQuestion = () => {
12
+ const atom = (0, random_1.random)((0, getAtoms_1.getAtoms)(3));
13
+ const instruction = `
14
+ À l'aide du tableau périodique simplifié, définir le nombre d'électrons de valence d'un atome ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(atom.name) ? "d'" : "de "}${atom.name}.
15
+ ![](https://heureuxhasarddocsbucket.s3.eu-west-3.amazonaws.com/xpliveV2/activities/quizzes/generator/periodicTable.png)`;
16
+ const question = {
17
+ answer: `${atom.valenceElectronsNumber}`,
18
+ instruction,
19
+ keys: [],
20
+ answerFormat: "tex",
21
+ identifiers: { atomSymbol: atom.symbole },
22
+ };
23
+ return question;
24
+ };
25
+ const getPropositions = (n, { answer, atomSymbol }) => {
26
+ const propositions = [];
27
+ (0, exercise_1.addValidProp)(propositions, answer);
28
+ const atom = atome_1.atomes.find((a) => a.symbole === atomSymbol);
29
+ const atomsWithTheSameInitial = (0, getAtoms_1.getAtoms)(3).filter((a) => a.symbole[0] === atomSymbol[0]);
30
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${atom.valenceElectronsNumber + 10}`);
31
+ if (atomsWithTheSameInitial?.length) {
32
+ atomsWithTheSameInitial.forEach((atom) => (0, exercise_1.tryToAddWrongProp)(propositions, `${atom.valenceElectronsNumber}`), (0, exercise_1.tryToAddWrongProp)(propositions, `${atom.numeroAtomique}`));
33
+ }
34
+ if (atom.valenceElectronsNumber - 2 >= 0) {
35
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${atom.valenceElectronsNumber - 2}`);
36
+ }
37
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${atom.numeroAtomique}`);
38
+ while (propositions.length < n) {
39
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${(0, randint_1.randint)(1, 19)}`);
40
+ }
41
+ return (0, exercise_1.shuffleProps)(propositions, n);
42
+ };
43
+ const isAnswerValid = (ans, { answer }) => {
44
+ return ans === answer;
45
+ };
46
+ exports.findValenceElectronsNumberFromTable = {
47
+ id: "findValenceElectronsNumberFromTable",
48
+ label: "Dénombrer les électrons de valence à l'aide du tableau périodique",
49
+ levels: ["2nde"],
50
+ isSingleStep: true,
51
+ sections: ["Chimie organique"],
52
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFindValenceElectronsNumberFromTableQuestion, nb, 18),
53
+ qcmTimer: 60,
54
+ freeTimer: 60,
55
+ getPropositions,
56
+ isAnswerValid,
57
+ subject: "Chimie",
58
+ maxAllowedQuestions: 18,
59
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ import { AtomSymbols } from "../../../pc/molecularChemistry/atomSymbols";
3
+ type Identifiers = {
4
+ atomSymbol: AtomSymbols;
5
+ };
6
+ export declare const identifyRightElectronicConfiguration: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=identifyRightElectronicConfiguration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifyRightElectronicConfiguration.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAKtE,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,WAAW,CAAC;CACzB,CAAC;AA8GF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,WAAW,CAmBtE,CAAC"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.identifyRightElectronicConfiguration = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getAtoms_1 = require("../../../exercises/utils/getAtoms");
6
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
7
+ const getElectronicConfigurationFromShells_1 = require("../../../exercises/utils/getElectronicConfigurationFromShells");
8
+ const atome_1 = require("../../../pc/molecularChemistry/atome");
9
+ const random_1 = require("../../../utils/random");
10
+ const requiresApostropheBefore_1 = require("../../../utils/requiresApostropheBefore");
11
+ const getIdentifyRightElectronicConfigurationQuestion = () => {
12
+ const atom = (0, random_1.random)((0, getAtoms_1.getAtoms)(3).slice(2));
13
+ const question = {
14
+ answer: `${(0, getElectronicConfigurationFromShells_1.getElectronicConfigurationFromShells)(atom.electronsShells)}`,
15
+ instruction: `L'atome ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(atom.name) ? "d'" : "de "}${atom.name} a pour numéro atomique ${atom.numeroAtomique}. Quelle est sa configuration électronique ?`,
16
+ keys: [],
17
+ answerFormat: "tex",
18
+ identifiers: { atomSymbol: atom.symbole },
19
+ };
20
+ return question;
21
+ };
22
+ const getPropositions = (n, { answer, atomSymbol }) => {
23
+ const propositions = [];
24
+ (0, exercise_1.addValidProp)(propositions, answer);
25
+ const atom = atome_1.atomes.find((a) => a.symbole === atomSymbol);
26
+ const shells = atom.electronsShells;
27
+ const electrons = atom.numeroAtomique;
28
+ if (electrons === 3) {
29
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${(0, getElectronicConfigurationFromShells_1.getElectronicConfigurationFromShells)([1, 1, 1])}`);
30
+ (0, exercise_1.tryToAddWrongProp)(propositions, `1s^2\\ 2p^1`);
31
+ (0, exercise_1.tryToAddWrongProp)(propositions, `1s^3`);
32
+ }
33
+ if (electrons === 4) {
34
+ (0, exercise_1.tryToAddWrongProp)(propositions, `1p^2\\ 2s^2`);
35
+ }
36
+ while (propositions.length < n) {
37
+ const wrongNumberInShells = shells.map((shell, index) => {
38
+ if (electrons <= 4) {
39
+ if (index === 1)
40
+ return shell + 1;
41
+ return shell;
42
+ }
43
+ if (electrons <= 10) {
44
+ if (index === 2)
45
+ return shell + 1;
46
+ return shell;
47
+ }
48
+ if (electrons <= 12) {
49
+ if (index === 3)
50
+ return shell + 1;
51
+ return shell;
52
+ }
53
+ if (index === 4)
54
+ return shell + 1;
55
+ return shell;
56
+ });
57
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${(0, getElectronicConfigurationFromShells_1.getElectronicConfigurationFromShells)(wrongNumberInShells)}`);
58
+ const wrongSecondLetter = (0, getElectronicConfigurationFromShells_1.getElectronicConfigurationFromShells)(atom.electronsShells)
59
+ .split("2s^")
60
+ .join("2p^");
61
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${wrongSecondLetter}`);
62
+ if (electrons >= 5) {
63
+ const wrongThirdLetter = (0, getElectronicConfigurationFromShells_1.getElectronicConfigurationFromShells)(atom.electronsShells)
64
+ .split("2p^")
65
+ .join("2s^");
66
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${wrongThirdLetter}`);
67
+ }
68
+ if (electrons >= 6) {
69
+ const wrongShells = shells.map((shell, index) => {
70
+ if (index === 0 || index > 2)
71
+ return shell;
72
+ if (index === 1)
73
+ return shell + 1;
74
+ if (index === 2)
75
+ return shell - 1;
76
+ return 1;
77
+ });
78
+ (0, exercise_1.tryToAddWrongProp)(propositions, `${(0, getElectronicConfigurationFromShells_1.getElectronicConfigurationFromShells)(wrongShells)}`);
79
+ }
80
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, getElectronicConfigurationFromShells_1.getElectronicConfigurationFromShells)(atom.electronsShells).replace("s", "p"));
81
+ }
82
+ return (0, exercise_1.shuffleProps)(propositions, n);
83
+ };
84
+ const isAnswerValid = (ans, { answer }) => {
85
+ return ans === answer;
86
+ };
87
+ exports.identifyRightElectronicConfiguration = {
88
+ id: "identifyRightElectronicConfiguration",
89
+ label: "Identifier la bonne configuration électronique",
90
+ levels: ["2nde"],
91
+ isSingleStep: true,
92
+ sections: ["Chimie organique"],
93
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getIdentifyRightElectronicConfigurationQuestion, nb, 16),
94
+ qcmTimer: 60,
95
+ freeTimer: 60,
96
+ getPropositions,
97
+ isAnswerValid,
98
+ subject: "Chimie",
99
+ answerType: "QCM",
100
+ maxAllowedQuestions: 16,
101
+ };
@@ -0,0 +1,9 @@
1
+ export * from "./findAtomicStructureElement";
2
+ export * from "./atomicStructureOfNucleus";
3
+ export * from "./calculateProtonsNumberFromMass";
4
+ export * from "./findValenceElectronsNumberFromTable";
5
+ export * from "./weightPercent";
6
+ export * from "./calculateVolumetricMass";
7
+ export * from "./findValenceElectronsNumberFromElectronicConfiguration";
8
+ export * from "./identifyRightElectronicConfiguration";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/chemicalElements/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yDAAyD,CAAC;AACxE,cAAc,wCAAwC,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./findAtomicStructureElement"), exports);
18
+ __exportStar(require("./atomicStructureOfNucleus"), exports);
19
+ __exportStar(require("./calculateProtonsNumberFromMass"), exports);
20
+ __exportStar(require("./findValenceElectronsNumberFromTable"), exports);
21
+ __exportStar(require("./weightPercent"), exports);
22
+ __exportStar(require("./calculateVolumetricMass"), exports);
23
+ __exportStar(require("./findValenceElectronsNumberFromElectronicConfiguration"), exports);
24
+ __exportStar(require("./identifyRightElectronicConfiguration"), exports);
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ totalWeight: number;
4
+ percent: number;
5
+ elWeight: number;
6
+ type: number;
7
+ };
8
+ export declare const weightPercent: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=weightPercent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weightPercent.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/chemicalElements/weightPercent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAMlC,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA4GF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAa/C,CAAC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.weightPercent = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
7
+ const randint_1 = require("../../../math/utils/random/randint");
8
+ const round_1 = require("../../../math/utils/round");
9
+ //m_A = m * P_A
10
+ const getWeightPercentQuestion = () => {
11
+ // const totalWeight = round(randfloat(1, 100), 1);
12
+ // const percent = round(randfloat(1, 100), 1);
13
+ // const elWeight = round((totalWeight * percent) / 100, 1);
14
+ let percent = 0;
15
+ let totalWeight = 0;
16
+ let elWeight = 0;
17
+ const type = (0, randint_1.randint)(1, 4);
18
+ let instruction = "";
19
+ let answer = "";
20
+ switch (type) {
21
+ case 1:
22
+ percent = (0, round_1.round)((0, randfloat_1.randfloat)(1, 90), 1);
23
+ elWeight = (0, round_1.round)((0, randfloat_1.randfloat)(1, 100), 1);
24
+ totalWeight = (0, round_1.round)((100 * elWeight) / percent, 1);
25
+ instruction = `Dans un mélange, une espèce chimique $A$ a un pourcentage massique de $P_m(A) = ${percent.frenchify()}\\%$ et sa masse dans ce mélange est $${elWeight.frenchify()}\\ \\text{g}$. Quelle est la masse totale du mélange ?`;
26
+ answer = totalWeight.frenchify() + "g";
27
+ break;
28
+ case 2:
29
+ totalWeight = (0, round_1.round)((0, randfloat_1.randfloat)(30, 200), 1);
30
+ percent = (0, round_1.round)((0, randfloat_1.randfloat)(1, 90), 1);
31
+ elWeight = (0, round_1.round)((percent * totalWeight) / 100, 1);
32
+ instruction = `Dans un mélange de masse $${totalWeight.frenchify()}\\ \\text{g}$, une espèce chimique $A$ a un pourcentage massique de $P_m(A) = ${percent.frenchify()}\\%$. Quelle est la masse de l'espèce chimique dans le mélange ?`;
33
+ answer = elWeight.frenchify() + "g";
34
+ break;
35
+ case 3:
36
+ totalWeight = (0, round_1.round)((0, randfloat_1.randfloat)(30, 200), 1);
37
+ elWeight = (0, round_1.round)((0, randfloat_1.randfloat)(1, totalWeight - 10), 1);
38
+ percent = (0, round_1.round)((elWeight / totalWeight) * 100, 1);
39
+ instruction = `Dans un mélange de masse $${totalWeight.frenchify()}\\ \\text{g}$, une espèce chimique $A$ a une masse de $${elWeight.frenchify()}\\ \\text{g}$. Quel est le pourcentage massique $P_m(A)$ de l'espèce $A$ dans ce mélange ?`;
40
+ answer = percent.frenchify() + "\\%";
41
+ break;
42
+ }
43
+ const question = {
44
+ answer,
45
+ instruction,
46
+ keys: ["percent", "g"],
47
+ answerFormat: "tex",
48
+ identifiers: { elWeight, type, percent, totalWeight },
49
+ };
50
+ return question;
51
+ };
52
+ //m_A = P_A*m
53
+ const getPropositions = (n, { answer, type, elWeight, percent, totalWeight }) => {
54
+ const propositions = [];
55
+ (0, exercise_1.addValidProp)(propositions, answer);
56
+ switch (type) {
57
+ case 1:
58
+ //total
59
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(percent / (elWeight * 100), 1).frenchify() + "g");
60
+ break;
61
+ case 2:
62
+ //el
63
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(percent / (totalWeight * 100), 1).frenchify() + "g");
64
+ break;
65
+ case 3:
66
+ //percent
67
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(totalWeight / elWeight, 1).frenchify() + "\\%");
68
+ break;
69
+ }
70
+ while (propositions.length < n) {
71
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)((0, randfloat_1.randfloat)(1, 100), 1).frenchify() + (type === 3 ? "\\%" : "g"));
72
+ }
73
+ return (0, exercise_1.shuffleProps)(propositions, n);
74
+ };
75
+ //m_A = P_A*m
76
+ const isAnswerValid = (ans, { answer, type }) => {
77
+ const texs = [answer];
78
+ switch (type) {
79
+ case 1:
80
+ //total
81
+ texs.push(answer.replace("g", ""));
82
+ break;
83
+ case 2:
84
+ //el
85
+ texs.push(answer.replace("g", ""));
86
+ break;
87
+ case 3:
88
+ //percent
89
+ texs.push(answer.replace("\\%", ""));
90
+ break;
91
+ }
92
+ return texs.includes(ans);
93
+ };
94
+ exports.weightPercent = {
95
+ id: "weightPercent",
96
+ connector: "=",
97
+ label: "Utiliser ou calculer un pourcentage massique",
98
+ levels: ["2nde"],
99
+ isSingleStep: true,
100
+ sections: ["Pourcentages"],
101
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getWeightPercentQuestion, nb),
102
+ qcmTimer: 60,
103
+ freeTimer: 60,
104
+ getPropositions,
105
+ isAnswerValid,
106
+ subject: "Chimie",
107
+ };
@@ -12,7 +12,7 @@ const getChemicalEquations = () => {
12
12
  instruction: "Equilibrez la réaction suivante :$\\\\$ " +
13
13
  reaction.getReactionWithoutCoef(),
14
14
  answer,
15
- keys: [...reaction.getSpeciesName(), "rightarrow"],
15
+ keys: [...reaction.getKeyIds(), "rightarrow"],
16
16
  answerFormat: "tex",
17
17
  identifiers: { reactionArray: reaction.reactionArray },
18
18
  };
@@ -0,0 +1,7 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ mass: number;
4
+ };
5
+ export declare const gravitationalAttractionValue: Exercise<Identifiers>;
6
+ export {};
7
+ //# sourceMappingURL=gravitationalAttractionValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gravitationalAttractionValue.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/forces/gravitationalAttractionValue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAQlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA8DF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAc9D,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gravitationalAttractionValue = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
7
+ const randint_1 = require("../../../math/utils/random/randint");
8
+ const round_1 = require("../../../math/utils/round");
9
+ const earth_1 = require("../../../pc/constants/earth");
10
+ const gravity_1 = require("../../../pc/constants/gravity");
11
+ const getGravitationalAttractionValueQuestion = () => {
12
+ const mass = (0, randint_1.randint)(20, 900);
13
+ //F = G/(Rt^2) * mT * mb
14
+ const G = gravity_1.earthG.measure;
15
+ const RT = earth_1.earthRayon.measure.times(1000);
16
+ const massKG = mass / 1000;
17
+ const massEarth = earth_1.earthMass.measure;
18
+ const answerMeasure = G.times(massKG).times(massEarth).divide(RT.times(RT));
19
+ // const answerMeasure = G.times(massKG);
20
+ console.log(mass, answerMeasure.significantPart, answerMeasure.exponent);
21
+ const answer = answerMeasure.toTex({ scientific: 2 }) + "N";
22
+ const question = {
23
+ answer,
24
+ instruction: `On lance un objet de masse $${mass}\\ \\text{g}$. Déterminer la valeur de la force d'attraction gravitationnelle exercée par la Terre sur cet objet.
25
+
26
+ Données :
27
+ + Rayon de la Terre : $R_T = ${earth_1.earthRayon.measure.toTex({
28
+ scientific: 2,
29
+ })}\\ ${earth_1.earthRayon.unit}$
30
+
31
+ + Masse de la Terre : $m_T = ${earth_1.earthMass.measure.toTex({ scientific: 2 })}\\ ${earth_1.earthMass.unit}$
32
+
33
+ + $G = ${gravity_1.earthG.measure.toTex({ scientific: 2 })}\\ ${gravity_1.earthG.unit}$`,
34
+ keys: ["N"],
35
+ answerFormat: "tex",
36
+ identifiers: { mass },
37
+ };
38
+ return question;
39
+ };
40
+ const getPropositions = (n, { answer, mass }) => {
41
+ const propositions = [];
42
+ (0, exercise_1.addValidProp)(propositions, answer);
43
+ const G = gravity_1.earthG.measure;
44
+ const RT = earth_1.earthRayon.measure;
45
+ const massEarth = earth_1.earthMass.measure;
46
+ (0, exercise_1.tryToAddWrongProp)(propositions, G.times(mass)
47
+ .times(massEarth)
48
+ .divide(RT.times(RT))
49
+ .toTex({ scientific: 2 }) + "N");
50
+ while (propositions.length < n) {
51
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)((0, randfloat_1.randfloat)(1, 20), 2).frenchify() + "N");
52
+ }
53
+ return (0, exercise_1.shuffleProps)(propositions, n);
54
+ };
55
+ const isAnswerValid = (ans, { answer }) => {
56
+ return [answer, answer.replace("N", "")].includes(ans);
57
+ };
58
+ exports.gravitationalAttractionValue = {
59
+ id: "gravitationalAttractionValue",
60
+ connector: "=",
61
+ label: "Calculer la force d'attraction gravitationnelle",
62
+ levels: ["2nde"],
63
+ isSingleStep: true,
64
+ sections: ["Forces"],
65
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getGravitationalAttractionValueQuestion, nb),
66
+ qcmTimer: 60,
67
+ freeTimer: 60,
68
+ getPropositions,
69
+ isAnswerValid,
70
+ subject: "Physique",
71
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./gravitationalAttractionValue";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/forces/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./gravitationalAttractionValue"), exports);
@@ -10,4 +10,16 @@ export * from "./pH";
10
10
  export * from "./perceivedFrequency";
11
11
  export * from "./potentialEnergy";
12
12
  export * from "./snellDescartes";
13
+ export * from "./sound";
14
+ export * from "./math";
15
+ export * from "./weight";
16
+ export * from "./forces";
17
+ /**exos pris des maths */
18
+ export * from "../math/percent/findProportion";
19
+ export * from "../math/calcul/proportionality/proportionalityTable";
20
+ export { powersOfTenDivision } from "../math/powers/powersDivision";
21
+ export * from "../math/powers/decimalToScientific";
22
+ export * from "./waves";
23
+ export * from "./chemicalElements";
24
+ export * from "../math/calcul/mentalCaluls/mentalAddAndSub";
13
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,MAAM,CAAC;AACrB,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,MAAM,CAAC;AACrB,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AAEzB,yBAAyB;AACzB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qDAAqD,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,cAAc,oCAAoC,CAAC;AACnD,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,6CAA6C,CAAC"}
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.powersOfTenDivision = void 0;
17
18
  __exportStar(require("./chemicalEquations"), exports);
18
19
  __exportStar(require("./chemicalReactionsProduct"), exports);
19
20
  __exportStar(require("./delution"), exports);
@@ -26,3 +27,16 @@ __exportStar(require("./pH"), exports);
26
27
  __exportStar(require("./perceivedFrequency"), exports);
27
28
  __exportStar(require("./potentialEnergy"), exports);
28
29
  __exportStar(require("./snellDescartes"), exports);
30
+ __exportStar(require("./sound"), exports);
31
+ __exportStar(require("./math"), exports);
32
+ __exportStar(require("./weight"), exports);
33
+ __exportStar(require("./forces"), exports);
34
+ /**exos pris des maths */
35
+ __exportStar(require("../math/percent/findProportion"), exports);
36
+ __exportStar(require("../math/calcul/proportionality/proportionalityTable"), exports);
37
+ var powersDivision_1 = require("../math/powers/powersDivision");
38
+ Object.defineProperty(exports, "powersOfTenDivision", { enumerable: true, get: function () { return powersDivision_1.powersOfTenDivision; } });
39
+ __exportStar(require("../math/powers/decimalToScientific"), exports);
40
+ __exportStar(require("./waves"), exports);
41
+ __exportStar(require("./chemicalElements"), exports);
42
+ __exportStar(require("../math/calcul/mentalCaluls/mentalAddAndSub"), exports);
@@ -0,0 +1,2 @@
1
+ export * from "./proportionnalityCoeffFromLine";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/math/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./proportionnalityCoeffFromLine"), exports);
18
+ // export * from "./isolateVariables";
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ formulaType: number;
4
+ varAsked: string;
5
+ };
6
+ export declare const isolateVariables: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=isolateVariables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolateVariables.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/math/isolateVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAMlC,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAoSF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAclD,CAAC"}