math-exercises 2.1.26 → 2.2.0

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 (108) hide show
  1. package/lib/exercises/exercise.d.ts +27 -4
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/paritySumsAndProducts.js +1 -1
  4. package/lib/exercises/math/calcul/digitDecimalRank.d.ts +8 -0
  5. package/lib/exercises/math/calcul/digitDecimalRank.d.ts.map +1 -0
  6. package/lib/exercises/math/calcul/digitDecimalRank.js +58 -0
  7. package/lib/exercises/math/calcul/digitRank.d.ts +8 -0
  8. package/lib/exercises/math/calcul/digitRank.d.ts.map +1 -0
  9. package/lib/exercises/math/calcul/digitRank.js +58 -0
  10. package/lib/exercises/math/calcul/index.d.ts +2 -0
  11. package/lib/exercises/math/calcul/index.d.ts.map +1 -1
  12. package/lib/exercises/math/calcul/index.js +2 -0
  13. package/lib/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.js +1 -1
  14. package/lib/exercises/math/calculLitteral/systems/verifySystemSolution.js +1 -1
  15. package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.js +1 -1
  16. package/lib/exercises/math/derivation/derivative/convexityTrinomials.js +1 -1
  17. package/lib/exercises/math/equaDiff/equaDiffCheckSolutionFirstOrder.js +1 -1
  18. package/lib/exercises/math/functions/affines/affineAdjustmentComplete.js +1 -1
  19. package/lib/exercises/math/functions/affines/affineExpressionReading.js +1 -1
  20. package/lib/exercises/math/functions/parity/parityFromAlgebra.js +1 -1
  21. package/lib/exercises/math/functions/parity/parityFromGraph.js +1 -1
  22. package/lib/exercises/math/functions/trinoms/extremumTypeFromAlgebricForm.js +1 -1
  23. package/lib/exercises/math/functions/trinoms/variationsFromAlgebricForm.js +1 -1
  24. package/lib/exercises/math/geometry/cartesian/drawAlineInGGB.d.ts +8 -0
  25. package/lib/exercises/math/geometry/cartesian/drawAlineInGGB.d.ts.map +1 -0
  26. package/lib/exercises/math/geometry/cartesian/drawAlineInGGB.js +70 -0
  27. package/lib/exercises/math/geometry/cartesian/index.d.ts +2 -0
  28. package/lib/exercises/math/geometry/cartesian/index.d.ts.map +1 -1
  29. package/lib/exercises/math/geometry/cartesian/index.js +2 -0
  30. package/lib/exercises/math/geometry/cartesian/placeAPoint.d.ts +5 -0
  31. package/lib/exercises/math/geometry/cartesian/placeAPoint.d.ts.map +1 -0
  32. package/lib/exercises/math/geometry/cartesian/placeAPoint.js +46 -0
  33. package/lib/exercises/math/geometry/convexity/convexityTrinomialsGeo.js +1 -1
  34. package/lib/exercises/math/geometry/vectors/alignementViaColinearity.js +1 -1
  35. package/lib/exercises/math/geometry/vectors/colinearity.js +1 -1
  36. package/lib/exercises/math/geometry/vectors/drawAVectorInGGB.d.ts +8 -0
  37. package/lib/exercises/math/geometry/vectors/drawAVectorInGGB.d.ts.map +1 -0
  38. package/lib/exercises/math/geometry/vectors/drawAVectorInGGB.js +71 -0
  39. package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.js +1 -1
  40. package/lib/exercises/math/geometry/vectors/index.d.ts +1 -0
  41. package/lib/exercises/math/geometry/vectors/index.d.ts.map +1 -1
  42. package/lib/exercises/math/geometry/vectors/index.js +1 -0
  43. package/lib/exercises/math/geometry/vectors/paralellismViaColinearity.js +1 -1
  44. package/lib/exercises/math/geometry/vectors/parallelogramViaEqualVectors.js +1 -1
  45. package/lib/exercises/math/matrices/matrixGeneralTerm.js +1 -1
  46. package/lib/exercises/math/percent/isTableProportional.js +1 -1
  47. package/lib/exercises/math/probaStat/independancy.js +1 -1
  48. package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.js +1 -1
  49. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.js +1 -1
  50. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +1 -1
  51. package/lib/exercises/math/sequences/genericSequenceVariations.js +1 -1
  52. package/lib/exercises/pc/calibrationCurveOfSolution.d.ts +8 -0
  53. package/lib/exercises/pc/calibrationCurveOfSolution.d.ts.map +1 -0
  54. package/lib/exercises/pc/calibrationCurveOfSolution.js +92 -0
  55. package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.js +1 -1
  56. package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.js +1 -1
  57. package/lib/exercises/pc/chemicalReactions/identifyLimitingReagent.js +1 -1
  58. package/lib/exercises/pc/chemicalReactions/identifyStoichiometricMixture.js +1 -1
  59. package/lib/exercises/pc/dosage/beerLambertRandomValue.d.ts +12 -0
  60. package/lib/exercises/pc/dosage/beerLambertRandomValue.d.ts.map +1 -0
  61. package/lib/exercises/pc/dosage/beerLambertRandomValue.js +163 -0
  62. package/lib/exercises/pc/dosage/index.d.ts +2 -0
  63. package/lib/exercises/pc/dosage/index.d.ts.map +1 -0
  64. package/lib/exercises/pc/dosage/index.js +17 -0
  65. package/lib/exercises/pc/index.d.ts +3 -0
  66. package/lib/exercises/pc/index.d.ts.map +1 -1
  67. package/lib/exercises/pc/index.js +3 -0
  68. package/lib/exercises/pc/mole/concentrationReading.js +2 -2
  69. package/lib/exercises/pc/moleculeNomenclature.js +1 -1
  70. package/lib/exercises/pc/sound/frequencyComparison.js +1 -1
  71. package/lib/exercises/pc/spectral/index.d.ts +2 -0
  72. package/lib/exercises/pc/spectral/index.d.ts.map +1 -0
  73. package/lib/exercises/pc/spectral/index.js +17 -0
  74. package/lib/exercises/pc/spectral/spectralEnergy.d.ts +10 -0
  75. package/lib/exercises/pc/spectral/spectralEnergy.d.ts.map +1 -0
  76. package/lib/exercises/pc/spectral/spectralEnergy.js +129 -0
  77. package/lib/exercises/utils/geogebra/getPointFromGGB.d.ts +3 -0
  78. package/lib/exercises/utils/geogebra/getPointFromGGB.d.ts.map +1 -0
  79. package/lib/exercises/utils/geogebra/getPointFromGGB.js +15 -0
  80. package/lib/exercises/utils/geogebra/getVectorFromGGB.d.ts +3 -0
  81. package/lib/exercises/utils/geogebra/getVectorFromGGB.d.ts.map +1 -0
  82. package/lib/exercises/utils/geogebra/getVectorFromGGB.js +11 -0
  83. package/lib/exercises/utils/geogebra/isGGBLine.d.ts +2 -0
  84. package/lib/exercises/utils/geogebra/isGGBLine.d.ts.map +1 -0
  85. package/lib/exercises/utils/geogebra/isGGBLine.js +8 -0
  86. package/lib/exercises/utils/geogebra/isGGBPoint.d.ts +2 -0
  87. package/lib/exercises/utils/geogebra/isGGBPoint.d.ts.map +1 -0
  88. package/lib/exercises/utils/geogebra/isGGBPoint.js +8 -0
  89. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts +9 -0
  90. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts.map +1 -0
  91. package/lib/exercises/utils/geogebra/toolBarConstructor.js +20 -0
  92. package/lib/index.d.ts +26 -0
  93. package/lib/index.d.ts.map +1 -1
  94. package/lib/math/numbers/decimals/decimal.d.ts +1 -0
  95. package/lib/math/numbers/decimals/decimal.d.ts.map +1 -1
  96. package/lib/math/numbers/decimals/decimal.js +2 -1
  97. package/lib/math/numbers/integer/integer.d.ts +1 -0
  98. package/lib/math/numbers/integer/integer.d.ts.map +1 -1
  99. package/lib/math/numbers/integer/integer.js +7 -1
  100. package/lib/pc/constants/quantic.d.ts +9 -0
  101. package/lib/pc/constants/quantic.d.ts.map +1 -0
  102. package/lib/pc/constants/quantic.js +14 -0
  103. package/lib/server.js +24 -10
  104. package/lib/utils/arrayEqual.d.ts.map +1 -1
  105. package/lib/utils/arrayHasSameElement.d.ts +2 -0
  106. package/lib/utils/arrayHasSameElement.d.ts.map +1 -0
  107. package/lib/utils/arrayHasSameElement.js +8 -0
  108. package/package.json +1 -1
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drawAVectorInGGB = void 0;
4
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
5
+ const toolBarConstructor_1 = require("../../../../exercises/utils/geogebra/toolBarConstructor");
6
+ const vector_1 = require("../../../../math/geometry/vector");
7
+ const randint_1 = require("../../../../math/utils/random/randint");
8
+ const getDrawAVectorInGgbQuestion = () => {
9
+ const x = (0, randint_1.randint)(-3, 3);
10
+ const y = x === 0 ? (0, randint_1.randint)(-3, 3, [0]) : (0, randint_1.randint)(-3, 3);
11
+ const vector = new vector_1.Vector("u", x.toTree(), y.toTree());
12
+ const question = {
13
+ ggbAnswer: [`Vector((-2, -2), (${-2 + x}, ${-2 + y}))`],
14
+ instruction: `Tracer le vecteur $${vector.toTex()}${vector.toInlineCoordsTex()}$`,
15
+ keys: [],
16
+ studentGgbOptions: {
17
+ customToolBar: (0, toolBarConstructor_1.toolBarConstructor)({
18
+ vector: true,
19
+ }),
20
+ isGridSimple: true,
21
+ coords: [-5, 5, -6, 6],
22
+ enableShiftDragZoom: true,
23
+ },
24
+ answerFormat: "tex",
25
+ identifiers: { x, y },
26
+ };
27
+ return question;
28
+ };
29
+ const isGGBAnswerValid = (ans, { ggbAnswer, x, y }) => {
30
+ const vector = ans.find((s) => !!s.match(/[a-z]=/)?.length);
31
+ if (!vector)
32
+ return false;
33
+ const points = vector
34
+ .substring(vector.indexOf("["))
35
+ .replaceAll("[", "")
36
+ .replaceAll("]", "")
37
+ .replaceAll(" ", "")
38
+ .split(",");
39
+ const origin = ans.find((s) => s[0] === points[0]);
40
+ const end = ans.find((s) => s[0] === points[1]);
41
+ if (!origin || !end)
42
+ return false;
43
+ const originCoords = origin
44
+ .split("=")[1]
45
+ .replaceAll("(", "")
46
+ .replaceAll(")", "")
47
+ .split(",");
48
+ const endCoords = end
49
+ .split("=")[1]
50
+ .replaceAll("(", "")
51
+ .replaceAll(")", "")
52
+ .split(",");
53
+ const coords = [
54
+ Number(endCoords[0]) - Number(originCoords[0]),
55
+ Number(endCoords[1]) - Number(originCoords[1]),
56
+ ];
57
+ return Number(coords[0]) === x && Number(coords[1]) === y;
58
+ };
59
+ exports.drawAVectorInGGB = {
60
+ id: "drawAVectorInGGB",
61
+ label: "Tracer un vecteur",
62
+ levels: ["2nde"],
63
+ isSingleStep: true,
64
+ sections: ["Géométrie cartésienne"],
65
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getDrawAVectorInGgbQuestion, nb),
66
+ qcmTimer: 60,
67
+ freeTimer: 60,
68
+ answerType: "GGB",
69
+ isGGBAnswerValid,
70
+ subject: "Mathématiques",
71
+ };
@@ -190,7 +190,7 @@ exports.equalCaracteristicFromGraph = {
190
190
  freeTimer: 60,
191
191
  getPropositions,
192
192
  isAnswerValid,
193
- answerType: "QCM",
193
+ answerType: "QCU",
194
194
  hasGeogebra: true,
195
195
  subject: "Mathématiques",
196
196
  };
@@ -13,4 +13,5 @@ export * from "./equalCaracteristicFromGraph";
13
13
  export * from "./vectorLinearCombination";
14
14
  export * from "./vectorNormCalculation";
15
15
  export * from "./lineFromDirectorVector";
16
+ export * from "./drawAVectorInGGB";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/vectors/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/vectors/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
@@ -29,3 +29,4 @@ __exportStar(require("./equalCaracteristicFromGraph"), exports);
29
29
  __exportStar(require("./vectorLinearCombination"), exports);
30
30
  __exportStar(require("./vectorNormCalculation"), exports);
31
31
  __exportStar(require("./lineFromDirectorVector"), exports);
32
+ __exportStar(require("./drawAVectorInGGB"), exports);
@@ -71,6 +71,6 @@ exports.paralellismViaColinearity = {
71
71
  qcmTimer: 60,
72
72
  freeTimer: 60,
73
73
  getPropositions,
74
- answerType: "QCM",
74
+ answerType: "QCU",
75
75
  subject: "Mathématiques",
76
76
  };
@@ -63,6 +63,6 @@ exports.parallelogramViaEqualVectors = {
63
63
  qcmTimer: 60,
64
64
  freeTimer: 60,
65
65
  getPropositions,
66
- answerType: "QCM",
66
+ answerType: "QCU",
67
67
  subject: "Mathématiques",
68
68
  };
@@ -53,6 +53,6 @@ exports.matrixGeneralTerm = {
53
53
  freeTimer: 60,
54
54
  getPropositions,
55
55
  isAnswerValid,
56
- answerType: "QCM",
56
+ answerType: "QCU",
57
57
  subject: "Mathématiques",
58
58
  };
@@ -68,6 +68,6 @@ exports.isTableProportional = {
68
68
  freeTimer: 60,
69
69
  getPropositions,
70
70
  isAnswerValid,
71
- answerType: "QCM",
71
+ answerType: "QCU",
72
72
  subject: "Mathématiques",
73
73
  };
@@ -55,6 +55,6 @@ exports.independancy = {
55
55
  qcmTimer: 60,
56
56
  freeTimer: 60,
57
57
  getPropositions,
58
- answerType: "QCM",
58
+ answerType: "QCU",
59
59
  subject: "Mathématiques",
60
60
  };
@@ -97,7 +97,7 @@ exports.fineAdjustementExercise = {
97
97
  levels: ["TermSpé"],
98
98
  isSingleStep: true,
99
99
  hasGeogebra: true,
100
- answerType: "QCM",
100
+ answerType: "QCU",
101
101
  sections: ["Statistiques"],
102
102
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFineAdjustementExerciseQuestion, nb),
103
103
  qcmTimer: 60,
@@ -67,6 +67,6 @@ exports.recognizeArithmeticFromFirstTerms = {
67
67
  freeTimer: 60,
68
68
  getPropositions,
69
69
  isAnswerValid,
70
- answerType: "QCM",
70
+ answerType: "QCU",
71
71
  subject: "Mathématiques",
72
72
  };
@@ -86,7 +86,7 @@ exports.recognizeArithmeticFromGraph = {
86
86
  freeTimer: 60,
87
87
  getPropositions,
88
88
  isAnswerValid,
89
- answerType: "QCM",
89
+ answerType: "QCU",
90
90
  hasGeogebra: true,
91
91
  subject: "Mathématiques",
92
92
  };
@@ -47,7 +47,7 @@ exports.genericSequenceVariations = {
47
47
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getGenericSequenceVariationsQuestion, nb),
48
48
  qcmTimer: 60,
49
49
  freeTimer: 60,
50
- answerType: "QCM",
50
+ answerType: "QCU",
51
51
  getPropositions,
52
52
  subject: "Mathématiques",
53
53
  };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../exercises/exercise";
2
+ type Identifiers = {
3
+ epsilon: number;
4
+ l: number;
5
+ };
6
+ export declare const calibrationCurveOfSolution: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=calibrationCurveOfSolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibrationCurveOfSolution.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/calibrationCurveOfSolution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,0BAA0B,CAAC;AAWlC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAuFF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAa5D,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calibrationCurveOfSolution = void 0;
4
+ const getDistinctQuestions_1 = require("../../exercises/utils/getDistinctQuestions");
5
+ const randint_1 = require("../../math/utils/random/randint");
6
+ const molecule_1 = require("../../pc/molecularChemistry/molecule");
7
+ const arrayEqual_1 = require("../../utils/arrayEqual");
8
+ const random_1 = require("../../utils/random");
9
+ const requiresApostropheBefore_1 = require("../../utils/requiresApostropheBefore");
10
+ const getPointFromGGB_1 = require("../utils/geogebra/getPointFromGGB");
11
+ const isGGBPoint_1 = require("../utils/geogebra/isGGBPoint");
12
+ const toolBarConstructor_1 = require("../utils/geogebra/toolBarConstructor");
13
+ const getCalibrationCurveOfSolutionQuestion = () => {
14
+ const exo = generateExercise();
15
+ const minY = 5 * exo.epsilon * exo.l - 10;
16
+ const maxY = 10 * exo.epsilon * exo.l + 5;
17
+ const question = {
18
+ ggbAnswer: [
19
+ `(5,${5 * exo.epsilon * exo.l})`,
20
+ `(10,${10 * exo.epsilon * exo.l})`,
21
+ `Line(A, B)`,
22
+ ],
23
+ instruction: exo.instruction,
24
+ keys: [],
25
+ studentGgbOptions: {
26
+ coords: [-1, 5, -1, 6],
27
+ isAxesRatioFixed: false,
28
+ enableShiftDragZoom: true,
29
+ axisLabels: ["$\\small{C}$", "$\\small{A}$"],
30
+ customToolBar: (0, toolBarConstructor_1.toolBarConstructor)({
31
+ join: true,
32
+ }),
33
+ },
34
+ hint: exo.hint,
35
+ correction: exo.correction,
36
+ identifiers: {
37
+ epsilon: exo.epsilon,
38
+ l: exo.l,
39
+ },
40
+ };
41
+ return question;
42
+ };
43
+ const isGGBAnswerValid = (ans, { ggbAnswer, epsilon, l }) => {
44
+ const studentAnswer = ans.map((s) => s.split("=")[1]);
45
+ if ((0, arrayEqual_1.arrayEqual)(studentAnswer, ggbAnswer))
46
+ return true;
47
+ const points = studentAnswer
48
+ .filter((command) => (0, isGGBPoint_1.isGGBPoint)(command))
49
+ .map((value) => (0, getPointFromGGB_1.getPointFromGGB)(value, "", false));
50
+ return (points.length !== 0 &&
51
+ points.every((value) => value.getXnumber() * epsilon * l === value.getYnumber()));
52
+ };
53
+ const generateExercise = () => {
54
+ const molecule = (0, random_1.random)(molecule_1.molecules);
55
+ const epsilon = (0, randint_1.randint)(1, 3);
56
+ const l = (0, randint_1.randint)(1, 3);
57
+ const instruction = `Dans un laboratoire, vous avez effectué l'étalonnage d'une solution ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(molecule.name) ? "d'" : "de "}${molecule.name}. \n
58
+ Vous disposez du coefficient d'extinction molaire $ε$ de $${epsilon}$ $\\text{L}\\cdot\\text{mol}^{-1}\\cdot\\text{cm}^{-1}$ et de la longueur de la cuve $l$ de $${l}$ $\\text{cm}$. \n
59
+ Tracer la courbe d'étalonnage de cette solution.`;
60
+ return {
61
+ instruction,
62
+ hint: getHint(),
63
+ correction: getCorrection(),
64
+ epsilon,
65
+ l,
66
+ };
67
+ };
68
+ const getCorrection = () => {
69
+ return `1 - Choisir deux coordonnées $x_1$ et $x_2$. \n \\
70
+ 2 - Calculer $A_1 = x_1\\cdot l \\cdotε$ et $A_2 = x_2\\cdot l \\cdotε$. \n \\
71
+ 3 - Tracer la droite qui passe par les deux points $(x_1,A_1)$ et $(x_2,A_2)$.`;
72
+ };
73
+ const getHint = () => {
74
+ return `Utiliser la formule $A=C\\cdot \\ell\\cdot ε$, où :\n
75
+ - $A$ est l'absorbance (une grandeur sans unité)\n
76
+ - $ε$ est le coefficient d'extinction molaire (ou coefficient d'absorption molaire) en $\\text{L}\\cdot\\text{mol}^{-1}\\cdot\\text{cm}^{-1}$\n
77
+ - $C$ est la concentration de la solution en $\\text{mol}\\cdot\\text{L}^{-1}$\n
78
+ - $\\ell$ est la longueur du chemin optique en centimètres $(\\text{cm})$`;
79
+ };
80
+ exports.calibrationCurveOfSolution = {
81
+ id: "calibrationCurveOfSolution",
82
+ label: "Tracer une courbe d'étalonnage",
83
+ levels: ["1reSpé"],
84
+ isSingleStep: true,
85
+ sections: ["Spectrophotométrie"],
86
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getCalibrationCurveOfSolutionQuestion, nb),
87
+ qcmTimer: 60,
88
+ freeTimer: 60,
89
+ isGGBAnswerValid,
90
+ answerType: "GGB",
91
+ subject: "Physique",
92
+ };
@@ -54,5 +54,5 @@ exports.atomicStructureOfNucleus = {
54
54
  getPropositions,
55
55
  isAnswerValid,
56
56
  subject: "Chimie",
57
- answerType: "QCM",
57
+ answerType: "QCU",
58
58
  };
@@ -96,6 +96,6 @@ exports.identifyRightElectronicConfiguration = {
96
96
  getPropositions,
97
97
  isAnswerValid,
98
98
  subject: "Chimie",
99
- answerType: "QCM",
99
+ answerType: "QCU",
100
100
  maxAllowedQuestions: 16,
101
101
  };
@@ -55,5 +55,5 @@ exports.identifyLimitingReagent = {
55
55
  getPropositions,
56
56
  isAnswerValid,
57
57
  subject: "Chimie",
58
- answerType: "QCM",
58
+ answerType: "QCU",
59
59
  };
@@ -64,5 +64,5 @@ exports.identifyStoichiometricMixture = {
64
64
  getPropositions,
65
65
  isAnswerValid,
66
66
  subject: "Chimie",
67
- answerType: "QCM",
67
+ answerType: "QCU",
68
68
  };
@@ -0,0 +1,12 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ moleculeName: string;
4
+ concentration: number;
5
+ molarAbsorptivity: number;
6
+ pathLength: number;
7
+ absorbance: number;
8
+ randomIndex: number;
9
+ };
10
+ export declare const BeerLambertRandomValueExercise: Exercise<Identifiers>;
11
+ export {};
12
+ //# sourceMappingURL=beerLambertRandomValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beerLambertRandomValue.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/dosage/beerLambertRandomValue.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AASlC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAmNF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,WAAW,CAahE,CAAC"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BeerLambertRandomValueExercise = void 0;
4
+ const frenchify_1 = require("../../../math/utils/latex/frenchify");
5
+ const exercise_1 = require("../../../exercises/exercise");
6
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
7
+ const round_1 = require("../../../math/utils/round");
8
+ const molecule_1 = require("../../../pc/molecularChemistry/molecule");
9
+ const random_1 = require("../../../utils/random");
10
+ const requiresApostropheBefore_1 = require("../../../utils/requiresApostropheBefore");
11
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
12
+ const randint_1 = require("../../../math/utils/random/randint");
13
+ const getBeerLambertRandomValueQuestion = () => {
14
+ const molecule = (0, random_1.random)(molecule_1.molecules);
15
+ const concentration = (0, round_1.round)((0, randfloat_1.randfloat)(0.01, 0.1), 2); // Concentration in mol/L
16
+ const molarAbsorptivity = (0, round_1.round)((0, randfloat_1.randfloat)(10, 100), 1); // Molar absorptivity in L·mol^-1·cm^-1
17
+ const pathLength = (0, round_1.round)((0, randfloat_1.randfloat)(1, 5), 1); // Path length in cm
18
+ const absorbance = (0, round_1.round)(concentration * molarAbsorptivity * pathLength, 2); // Absorbance
19
+ const variables = [
20
+ {
21
+ name: "concentration",
22
+ value: concentration,
23
+ unit: "\\text{mol} \\cdot \\text{L}^{-1}",
24
+ },
25
+ {
26
+ name: "molarAbsorptivity",
27
+ value: molarAbsorptivity,
28
+ unit: "\\text{L} \\cdot \\text{mol}^{-1} \\cdot \\text{cm}^{-1}",
29
+ },
30
+ { name: "pathLength", value: pathLength, unit: "\\text{cm}" },
31
+ { name: "absorbance", value: absorbance, unit: "" },
32
+ ];
33
+ const randomIndex = (0, randint_1.randint)(0, variables.length);
34
+ const targetVariable = variables[randomIndex];
35
+ const knownVariables = variables.filter((_, index) => index !== randomIndex);
36
+ const knownVariablesText = knownVariables
37
+ .map((v) => `${v.name === "concentration"
38
+ ? "- Concentration"
39
+ : v.name === "molarAbsorptivity"
40
+ ? "- Coefficient d'absorption molaire"
41
+ : v.name === "pathLength"
42
+ ? "- Longueur du trajet optique"
43
+ : "- Absorbance"} : ${v.name === "concentration"
44
+ ? "$C$"
45
+ : v.name === "molarAbsorptivity"
46
+ ? "$\\varepsilon$"
47
+ : v.name === "pathLength"
48
+ ? "$\\ell$"
49
+ : "$A$"} = $${(0, frenchify_1.frenchify)(v.value)}\\ ${v.unit}$`)
50
+ .join(",\n");
51
+ const instruction = `Vous êtes en train de réaliser l'étalonnage d'une solution ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(molecule.name.toLowerCase()) ? "d'" : "de "}${molecule.name.toLowerCase()} en utilisant une solution étalon. Vous avez mesuré les données suivantes :\n
52
+ ${knownVariablesText}.\n
53
+
54
+ À partir de ces données, déterminez ${targetVariable.name === "concentration"
55
+ ? "la concentration en $\\text{mol} \\cdot \\text{L}^{-1}$"
56
+ : targetVariable.name === "molarAbsorptivity"
57
+ ? "le coefficient d'absorption molaire en $\\text{L} \\cdot \\text{mol}^{-1} \\cdot \\text{cm}^{-1}$"
58
+ : targetVariable.name === "pathLength"
59
+ ? "la longueur du trajet optique en $\\text{cm}$"
60
+ : "l'absorbance"} de cette solution.`;
61
+ const hint = `Rappelez-vous la loi de Beer-Lambert : $A = \\varepsilon \\cdot C \\cdot \\ell$. Voici les éléments de cette formule :
62
+ - $A$ : l'absorbance
63
+ - $\\varepsilon$ : le coefficient d'absorption molaire en $\\text{L} \\cdot \\text{mol}^{-1} \\cdot \\text{cm}^{-1}$
64
+ - $C$ : la concentration en $\\text{mol} \\cdot \\text{L}^{-1}$
65
+ - $\\ell$ : la longueur du trajet optique en $\\text{cm}$
66
+
67
+ Réorganisez cette formule pour isoler la variable à trouver.`;
68
+ const correction = `La loi de Beer-Lambert est donnée par :
69
+ $$A = \\varepsilon \\cdot \\ell \\cdot C$$
70
+
71
+ Pour résoudre le problème, nous devons réorganiser la formule pour isoler la variable inconnue. En utilisant les valeurs fournies pour $\\varepsilon$, $C$, et $\\ell$, nous pouvons résoudre pour trouver la variable manquante.
72
+
73
+ Si $A$ est l'absorbance, $\\varepsilon$ est le coefficient d'absorption molaire, $C$ est la concentration et $\\ell$ est la longueur du trajet optique, alors:
74
+
75
+ ${targetVariable.name === "concentration"
76
+ ? "$$C = \\frac{A}{\\varepsilon \\cdot \\ell}$$"
77
+ : ""}
78
+ ${targetVariable.name === "molarAbsorptivity"
79
+ ? "$$\\varepsilon = \\frac{A}{C \\cdot \\ell}$$"
80
+ : ""}
81
+ ${targetVariable.name === "pathLength"
82
+ ? "$$\\ell = \\frac{A}{\\varepsilon \\cdot C}$$"
83
+ : ""}
84
+ ${targetVariable.name === "absorbance"
85
+ ? "$$A = \\varepsilon \\cdot C \\cdot \\ell$$"
86
+ : ""}
87
+
88
+ En appliquant les valeurs:
89
+
90
+ ${targetVariable.name === "concentration"
91
+ ? `$$C = \\frac{${(0, frenchify_1.frenchify)(absorbance)}}{${(0, frenchify_1.frenchify)(molarAbsorptivity)} \\cdot ${(0, frenchify_1.frenchify)(pathLength)}} = ${(0, frenchify_1.frenchify)((0, round_1.round)(absorbance / (molarAbsorptivity * pathLength), 2))}\\ \\text{mol} \\cdot \\text{L}^{-1}$$`
92
+ : ""}
93
+ ${targetVariable.name === "molarAbsorptivity"
94
+ ? `$$\\varepsilon = \\frac{${(0, frenchify_1.frenchify)(absorbance)}}{${(0, frenchify_1.frenchify)(concentration)} \\cdot ${(0, frenchify_1.frenchify)(pathLength)}} = ${(0, frenchify_1.frenchify)((0, round_1.round)(absorbance / (concentration * pathLength), 1))}\\ \\text{L} \\cdot \\text{mol}^{-1} \\cdot \\text{cm}^{-1}$$`
95
+ : ""}
96
+ ${targetVariable.name === "pathLength"
97
+ ? `$$\\ell = \\frac{${(0, frenchify_1.frenchify)(absorbance)}}{${(0, frenchify_1.frenchify)(molarAbsorptivity)} \\cdot ${(0, frenchify_1.frenchify)(concentration)}} = ${(0, frenchify_1.frenchify)((0, round_1.round)(absorbance / (molarAbsorptivity * concentration), 1))}\\ \\text{cm}$$`
98
+ : ""}
99
+ ${targetVariable.name === "absorbance"
100
+ ? `$$A = ${(0, frenchify_1.frenchify)(molarAbsorptivity)} \\cdot ${(0, frenchify_1.frenchify)(concentration)} \\cdot ${(0, frenchify_1.frenchify)(pathLength)} = ${(0, frenchify_1.frenchify)(absorbance)}$$`
101
+ : ""}`;
102
+ const question = {
103
+ answer: targetVariable.value.toTree().toTex(),
104
+ instruction,
105
+ hint,
106
+ correction,
107
+ keys: [],
108
+ answerFormat: "tex",
109
+ identifiers: {
110
+ moleculeName: molecule.name.toLowerCase(),
111
+ concentration,
112
+ molarAbsorptivity,
113
+ pathLength,
114
+ absorbance,
115
+ randomIndex,
116
+ },
117
+ };
118
+ return question;
119
+ };
120
+ const getPropositions = (n, { answer, concentration, molarAbsorptivity, pathLength, absorbance }) => {
121
+ const propositions = [];
122
+ (0, exercise_1.addValidProp)(propositions, answer);
123
+ (0, exercise_1.tryToAddWrongProp)(propositions, concentration.toTree().toTex());
124
+ (0, exercise_1.tryToAddWrongProp)(propositions, molarAbsorptivity.toTree().toTex());
125
+ (0, exercise_1.tryToAddWrongProp)(propositions, pathLength.toTree().toTex());
126
+ (0, exercise_1.tryToAddWrongProp)(propositions, absorbance.toTree().toTex());
127
+ while (propositions.length < n) {
128
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(0, 10, 2).toTree().toTex());
129
+ }
130
+ return (0, exercise_1.shuffleProps)(propositions, n);
131
+ };
132
+ const isAnswerValid = (ans, { answer, randomIndex, concentration, molarAbsorptivity, pathLength, absorbance, }) => {
133
+ const variables = [
134
+ {
135
+ name: "concentration",
136
+ value: concentration,
137
+ unit: "\\text{mol} \\cdot \\text{L}^{-1}",
138
+ },
139
+ {
140
+ name: "molarAbsorptivity",
141
+ value: molarAbsorptivity,
142
+ unit: "\\text{L} \\cdot \\text{mol}^{-1} \\cdot \\text{cm}^{-1}",
143
+ },
144
+ { name: "pathLength", value: pathLength, unit: "\\text{cm}" },
145
+ { name: "absorbance", value: absorbance, unit: "" },
146
+ ];
147
+ const validAnswer = variables[randomIndex].value;
148
+ const latexs = validAnswer.toTree().toAllValidTexs();
149
+ return latexs.includes(ans);
150
+ };
151
+ exports.BeerLambertRandomValueExercise = {
152
+ id: "beerLambertRandomValue",
153
+ label: "Utiliser la loi de Beer-Lambert",
154
+ levels: ["1reSpé"],
155
+ isSingleStep: true,
156
+ sections: ["Spectrophotométrie"],
157
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getBeerLambertRandomValueQuestion, nb),
158
+ qcmTimer: 60,
159
+ freeTimer: 60,
160
+ getPropositions,
161
+ isAnswerValid,
162
+ subject: "Chimie",
163
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./beerLambertRandomValue";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/dosage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,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("./beerLambertRandomValue"), exports);
@@ -21,6 +21,9 @@ export * from "./mole";
21
21
  export * from "./mecanicalWaves";
22
22
  export * from "./fluids";
23
23
  export * from "./electricity";
24
+ export * from "./calibrationCurveOfSolution";
25
+ export * from "./dosage";
26
+ export * from "./spectral";
24
27
  /**exos pris des maths */
25
28
  export * from "../math/percent/findProportion";
26
29
  export * from "../math/calcul/proportionality/proportionalityTable";
@@ -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;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAE9B,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,6CAA6C,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,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;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAE3B,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,6CAA6C,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC"}
@@ -38,6 +38,9 @@ __exportStar(require("./mole"), exports);
38
38
  __exportStar(require("./mecanicalWaves"), exports);
39
39
  __exportStar(require("./fluids"), exports);
40
40
  __exportStar(require("./electricity"), exports);
41
+ __exportStar(require("./calibrationCurveOfSolution"), exports);
42
+ __exportStar(require("./dosage"), exports);
43
+ __exportStar(require("./spectral"), exports);
41
44
  /**exos pris des maths */
42
45
  __exportStar(require("../math/percent/findProportion"), exports);
43
46
  __exportStar(require("../math/calcul/proportionality/proportionalityTable"), exports);
@@ -10,7 +10,7 @@ const getConcentrationReadingQuestion = () => {
10
10
  const absorbtion = (0, randfloat_1.randfloat)(0.5, 5);
11
11
  const concentration = (0, randfloat_1.randfloat)(0.1, 2);
12
12
  const commands = [
13
- `L = Line((0,0), (${concentration}, ${absorbtion}))`,
13
+ `L = Line[(0,0), (${concentration}, ${absorbtion})]`,
14
14
  `SetFixed(L, true)`,
15
15
  `SetColor(L, "${(0, colors_1.randomColor)()}")`,
16
16
  ];
@@ -53,5 +53,5 @@ exports.concentrationReading = {
53
53
  freeTimer: 60,
54
54
  getPropositions,
55
55
  isAnswerValid,
56
- subject: "Mathématiques",
56
+ subject: "Chimie",
57
57
  };
@@ -22,7 +22,7 @@ const getMoleculeNomenclature = () => {
22
22
  };
23
23
  const getPropositions = (n, { answer }) => {
24
24
  const propositions = [];
25
- (0, exercise_1.addValidProp)(propositions, answer);
25
+ (0, exercise_1.addValidProp)(propositions, answer, "raw");
26
26
  const organicMolecule = molecule_1.molecules.filter((molecule) => molecule.isOrganic && molecule.type);
27
27
  while (propositions.length < n) {
28
28
  const randomMoleculeIndex = Math.floor(Math.random() * organicMolecule.length);
@@ -47,5 +47,5 @@ exports.frequencyComparison = {
47
47
  getPropositions,
48
48
  isAnswerValid,
49
49
  subject: "Physique",
50
- answerType: "QCM",
50
+ answerType: "QCU",
51
51
  };
@@ -0,0 +1,2 @@
1
+ export * from "./spectralEnergy";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/spectral/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,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("./spectralEnergy"), exports);
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ import { Measure } from "../../../pc/measure/measure";
3
+ type Identifiers = {
4
+ wavelengths: Measure[];
5
+ targetColor: "bleue" | "verte" | "rouge";
6
+ energy: Measure;
7
+ };
8
+ export declare const SpectralEnergyExercise: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=spectralEnergy.d.ts.map