math-exercises 2.2.37 → 2.2.39
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.
- package/lib/exercises/math/conversion/aeraConversion.d.ts.map +1 -1
- package/lib/exercises/math/conversion/aeraConversion.js +1 -2
- package/lib/exercises/math/derivation/derivative/thirdDegreeDerivative.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/thirdDegreeDerivative.js +1 -1
- package/lib/exercises/math/functions/basics/imageAntecedentFromSentence.d.ts +9 -0
- package/lib/exercises/math/functions/basics/imageAntecedentFromSentence.d.ts.map +1 -0
- package/lib/exercises/math/functions/basics/imageAntecedentFromSentence.js +76 -0
- package/lib/exercises/math/functions/basics/index.d.ts +1 -0
- package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/index.js +1 -0
- package/lib/exercises/math/geometry/areas/circleRadiusFromArea.d.ts +7 -0
- package/lib/exercises/math/geometry/areas/circleRadiusFromArea.d.ts.map +1 -0
- package/lib/exercises/math/geometry/areas/circleRadiusFromArea.js +108 -0
- package/lib/exercises/math/geometry/areas/index.d.ts +3 -0
- package/lib/exercises/math/geometry/areas/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/areas/index.js +3 -0
- package/lib/exercises/math/geometry/areas/rectangleSideFromArea.d.ts +8 -0
- package/lib/exercises/math/geometry/areas/rectangleSideFromArea.d.ts.map +1 -0
- package/lib/exercises/math/geometry/areas/rectangleSideFromArea.js +95 -0
- package/lib/exercises/math/geometry/areas/squareSideFromArea.d.ts +8 -0
- package/lib/exercises/math/geometry/areas/squareSideFromArea.d.ts.map +1 -0
- package/lib/exercises/math/geometry/areas/squareSideFromArea.js +77 -0
- package/lib/exercises/math/geometry/cartesian/readAbscissOnSemiLine.js +1 -1
- package/lib/exercises/math/geometry/perimeters/circleRadiusFromPerimeter.d.ts +7 -0
- package/lib/exercises/math/geometry/perimeters/circleRadiusFromPerimeter.d.ts.map +1 -0
- package/lib/exercises/math/geometry/perimeters/circleRadiusFromPerimeter.js +102 -0
- package/lib/exercises/math/geometry/perimeters/index.d.ts +3 -0
- package/lib/exercises/math/geometry/perimeters/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/perimeters/index.js +3 -0
- package/lib/exercises/math/geometry/perimeters/rectangleSideFromPerimeter.d.ts +8 -0
- package/lib/exercises/math/geometry/perimeters/rectangleSideFromPerimeter.d.ts.map +1 -0
- package/lib/exercises/math/geometry/perimeters/rectangleSideFromPerimeter.js +114 -0
- package/lib/exercises/math/geometry/perimeters/squareSideFromPerimeter.d.ts +7 -0
- package/lib/exercises/math/geometry/perimeters/squareSideFromPerimeter.d.ts.map +1 -0
- package/lib/exercises/math/geometry/perimeters/squareSideFromPerimeter.js +74 -0
- package/lib/exercises/math/trigonometry/arcValue.js +1 -1
- package/lib/exercises/math/trigonometry/equationCosOnRandomInterval.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/equationCosOnRandomInterval.js +14 -5
- package/lib/exercises/math/trigonometry/equationSinOnRandomInterval.js +1 -1
- package/lib/exercises/math/trigonometry/index.d.ts +1 -0
- package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/index.js +1 -1
- package/lib/exercises/math/trigonometry/trigonometryAngleCalcul.js +1 -1
- package/lib/exercises/pc/calibrationCurveOfSolution.js +4 -4
- package/lib/exercises/pc/chemicalEquations.d.ts.map +1 -1
- package/lib/exercises/pc/chemicalEquations.js +1 -0
- package/lib/exercises/pc/chemicalReactions/titrationEquivalenceRelation.js +22 -22
- package/lib/exercises/pc/forces/calculateNormalOrFrictionForce.js +2 -2
- package/lib/exercises/pc/forces/forceWork.js +1 -1
- package/lib/exercises/pc/forces/gravitationalForcePlanets.d.ts.map +1 -1
- package/lib/exercises/pc/forces/gravitationalForcePlanets.js +2 -0
- package/lib/exercises/pc/mole/moleculeCountFromMol.js +1 -1
- package/lib/exercises/pc/potentialEnergy.d.ts.map +1 -1
- package/lib/exercises/pc/potentialEnergy.js +2 -1
- package/lib/exercises/pc/snellDescartes.js +4 -4
- package/lib/exercises/pc/sound/frequencyComparison.d.ts.map +1 -1
- package/lib/exercises/pc/sound/frequencyComparison.js +1 -0
- package/lib/exercises/pc/waves/lightDistanceConversion.d.ts.map +1 -1
- package/lib/exercises/pc/waves/lightDistanceConversion.js +13 -4
- package/lib/index.d.ts +22 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/math/numbers/reals/real.d.ts +2 -0
- package/lib/math/numbers/reals/real.d.ts.map +1 -1
- package/lib/math/numbers/reals/real.js +7 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/fractionNode.js +2 -1
- package/lib/types/keyIds.d.ts +1 -1
- package/lib/types/keyIds.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rectangleSideFromPerimeter = 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 round_1 = require("../../../../math/utils/round");
|
|
8
|
+
const fractionNode_1 = require("../../../../tree/nodes/operators/fractionNode");
|
|
9
|
+
const alignTex_1 = require("../../../../utils/latex/alignTex");
|
|
10
|
+
const getPropositions = (n, { answer, perimeter, width }) => {
|
|
11
|
+
const propositions = [];
|
|
12
|
+
(0, exercise_1.addValidProp)(propositions, answer);
|
|
13
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(perimeter / 4, 2).frenchify());
|
|
14
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(perimeter - width, 2).frenchify());
|
|
15
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(perimeter - 2 * width, 2).frenchify());
|
|
16
|
+
while (propositions.length < n) {
|
|
17
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(1, 100, 2).frenchify());
|
|
18
|
+
}
|
|
19
|
+
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
20
|
+
};
|
|
21
|
+
const getAnswer = (identifiers) => {
|
|
22
|
+
return (0, round_1.round)((identifiers.perimeter - 2 * identifiers.width) / 2, 2).frenchify();
|
|
23
|
+
};
|
|
24
|
+
const getInstruction = (identifiers) => {
|
|
25
|
+
return `Calculer la longueur d'un rectangle de périmètre $${identifiers.perimeter.frenchify()}$ et de largeur $${identifiers.width.frenchify()}$.`;
|
|
26
|
+
};
|
|
27
|
+
const getHint = (identifiers) => {
|
|
28
|
+
return `Le périmètre d'un rectangle est égal à :
|
|
29
|
+
|
|
30
|
+
$$
|
|
31
|
+
P = 2\\times l + 2\\times L
|
|
32
|
+
$$
|
|
33
|
+
|
|
34
|
+
où $l$ et la largeur et $L$ et la longueur.`;
|
|
35
|
+
};
|
|
36
|
+
const getCorrection = (identifiers) => {
|
|
37
|
+
const lengthDouble = (0, round_1.round)(identifiers.perimeter - 2 * identifiers.width, 3);
|
|
38
|
+
return `Le périmètre d'un rectangle est égal à :
|
|
39
|
+
|
|
40
|
+
$$
|
|
41
|
+
P = 2\\times l + 2\\times L
|
|
42
|
+
$$
|
|
43
|
+
|
|
44
|
+
Ici, on a donc :
|
|
45
|
+
|
|
46
|
+
$$
|
|
47
|
+
${identifiers.perimeter.frenchify()} = 2\\times ${identifiers.width.frenchify()} + 2\\times L
|
|
48
|
+
$$
|
|
49
|
+
|
|
50
|
+
Pour retrouver la longueur, on isole $L$ dans cette équation. On obtient :
|
|
51
|
+
|
|
52
|
+
${(0, alignTex_1.alignTex)([
|
|
53
|
+
[
|
|
54
|
+
"2\\times L",
|
|
55
|
+
"=",
|
|
56
|
+
`${identifiers.perimeter.frenchify()}- 2\\times ${identifiers.width.frenchify()}`,
|
|
57
|
+
],
|
|
58
|
+
["", "=", `${lengthDouble.frenchify()}`],
|
|
59
|
+
])}
|
|
60
|
+
|
|
61
|
+
Ainsi, la longueur du rectangle vaut :
|
|
62
|
+
|
|
63
|
+
${(0, alignTex_1.alignTex)([
|
|
64
|
+
[
|
|
65
|
+
"L",
|
|
66
|
+
"=",
|
|
67
|
+
`${new fractionNode_1.FractionNode(lengthDouble.toTree(), (2).toTree()).toTex()}`,
|
|
68
|
+
],
|
|
69
|
+
["", "=", getAnswer(identifiers)],
|
|
70
|
+
])}
|
|
71
|
+
`;
|
|
72
|
+
};
|
|
73
|
+
const getKeys = (identifiers) => {
|
|
74
|
+
return [];
|
|
75
|
+
};
|
|
76
|
+
const isAnswerValid = (ans, { answer, perimeter, width }) => {
|
|
77
|
+
const node = new fractionNode_1.FractionNode((perimeter - 2 * width).toTree(), (2).toTree());
|
|
78
|
+
return node.toAllValidTexs({ allowFractionToDecimal: true }).includes(ans);
|
|
79
|
+
};
|
|
80
|
+
const getRectangleSideFromPerimeterQuestion = () => {
|
|
81
|
+
const width = (0, randfloat_1.randfloat)(1, 50, 1);
|
|
82
|
+
const perimeter = (0, randfloat_1.randfloat)(2 * width + 2, 2 * width + 50, 1);
|
|
83
|
+
const length = (0, round_1.round)((perimeter - 2 * width) / 2, 2);
|
|
84
|
+
const identifiers = {
|
|
85
|
+
perimeter,
|
|
86
|
+
width: Math.min(width, length),
|
|
87
|
+
};
|
|
88
|
+
const question = {
|
|
89
|
+
answer: getAnswer(identifiers),
|
|
90
|
+
instruction: getInstruction(identifiers),
|
|
91
|
+
keys: getKeys(identifiers),
|
|
92
|
+
answerFormat: "tex",
|
|
93
|
+
identifiers,
|
|
94
|
+
hint: getHint(identifiers),
|
|
95
|
+
correction: getCorrection(identifiers),
|
|
96
|
+
};
|
|
97
|
+
return question;
|
|
98
|
+
};
|
|
99
|
+
exports.rectangleSideFromPerimeter = {
|
|
100
|
+
id: "rectangleSideFromPerimeter",
|
|
101
|
+
connector: "=",
|
|
102
|
+
label: "Calculer la longueur d'un rectangle en connaissant son périmètre et sa largeur",
|
|
103
|
+
isSingleStep: true,
|
|
104
|
+
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getRectangleSideFromPerimeterQuestion, nb),
|
|
105
|
+
qcmTimer: 60,
|
|
106
|
+
freeTimer: 60,
|
|
107
|
+
getPropositions,
|
|
108
|
+
isAnswerValid,
|
|
109
|
+
subject: "Mathématiques",
|
|
110
|
+
getHint,
|
|
111
|
+
getCorrection,
|
|
112
|
+
getAnswer,
|
|
113
|
+
hasHintAndCorrection: true,
|
|
114
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"squareSideFromPerimeter.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/perimeters/squareSideFromPerimeter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAQlC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAmEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAgBzD,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.squareSideFromPerimeter = void 0;
|
|
4
|
+
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
|
+
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
|
+
const real_1 = require("../../../../math/numbers/reals/real");
|
|
7
|
+
const randfloat_1 = require("../../../../math/utils/random/randfloat");
|
|
8
|
+
const round_1 = require("../../../../math/utils/round");
|
|
9
|
+
const fractionNode_1 = require("../../../../tree/nodes/operators/fractionNode");
|
|
10
|
+
const getPropositions = (n, { answer, perimeter }) => {
|
|
11
|
+
const propositions = [];
|
|
12
|
+
(0, exercise_1.addValidProp)(propositions, answer);
|
|
13
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (4 * perimeter).frenchify());
|
|
14
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(perimeter / 2, 3).frenchify());
|
|
15
|
+
const sqrt = new real_1.SquareRoot(perimeter).basicSimplify().toTree().toTex();
|
|
16
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, sqrt);
|
|
17
|
+
while (propositions.length < n) {
|
|
18
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(1, 100, 2).frenchify());
|
|
19
|
+
}
|
|
20
|
+
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
21
|
+
};
|
|
22
|
+
const getAnswer = (identifiers) => {
|
|
23
|
+
return (0, round_1.round)(identifiers.perimeter / 4, 3).frenchify();
|
|
24
|
+
};
|
|
25
|
+
const getInstruction = (identifiers) => {
|
|
26
|
+
return `Calculer le côté d'un carré de périmètre $${identifiers.perimeter.frenchify()}$.`;
|
|
27
|
+
};
|
|
28
|
+
const getHint = (identifiers) => {
|
|
29
|
+
return `Le périmètre d'un carré est égal à $4$ fois la longueur du côté.`;
|
|
30
|
+
};
|
|
31
|
+
const getCorrection = (identifiers) => {
|
|
32
|
+
return `Le périmètre d'un carré est égal à $4$ fois la longueur du côté. Pour retrouver le côté à partir du périmètre, il faut donc diviser le périmètre par $4$. Le côté du carré est donc égal à :
|
|
33
|
+
|
|
34
|
+
$$
|
|
35
|
+
${new fractionNode_1.FractionNode(identifiers.perimeter.toTree(), (4).toTree()).toTex()}=${getAnswer(identifiers)}
|
|
36
|
+
$$
|
|
37
|
+
`;
|
|
38
|
+
};
|
|
39
|
+
const getKeys = (identifiers) => {
|
|
40
|
+
return [];
|
|
41
|
+
};
|
|
42
|
+
const isAnswerValid = (ans, { answer, perimeter }) => {
|
|
43
|
+
const node = new fractionNode_1.FractionNode(perimeter.toTree(), (4).toTree());
|
|
44
|
+
return node.toAllValidTexs({ allowFractionToDecimal: true }).includes(ans);
|
|
45
|
+
};
|
|
46
|
+
const getSquareSideFromPerimeterQuestion = () => {
|
|
47
|
+
const identifiers = { perimeter: (0, randfloat_1.randfloat)(1, 100, 1) };
|
|
48
|
+
const question = {
|
|
49
|
+
answer: getAnswer(identifiers),
|
|
50
|
+
instruction: getInstruction(identifiers),
|
|
51
|
+
keys: getKeys(identifiers),
|
|
52
|
+
answerFormat: "tex",
|
|
53
|
+
identifiers,
|
|
54
|
+
hint: getHint(identifiers),
|
|
55
|
+
correction: getCorrection(identifiers),
|
|
56
|
+
};
|
|
57
|
+
return question;
|
|
58
|
+
};
|
|
59
|
+
exports.squareSideFromPerimeter = {
|
|
60
|
+
id: "squareSideFromPerimeter",
|
|
61
|
+
connector: "=",
|
|
62
|
+
label: "Calculer le côté d'un carré en connaissant son périmètre",
|
|
63
|
+
isSingleStep: true,
|
|
64
|
+
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSquareSideFromPerimeterQuestion, nb),
|
|
65
|
+
qcmTimer: 60,
|
|
66
|
+
freeTimer: 60,
|
|
67
|
+
getPropositions,
|
|
68
|
+
isAnswerValid,
|
|
69
|
+
subject: "Mathématiques",
|
|
70
|
+
getHint,
|
|
71
|
+
getCorrection,
|
|
72
|
+
getAnswer,
|
|
73
|
+
hasHintAndCorrection: true,
|
|
74
|
+
};
|
|
@@ -69,7 +69,7 @@ ${(0, alignTex_1.alignTex)([
|
|
|
69
69
|
],
|
|
70
70
|
])}
|
|
71
71
|
|
|
72
|
-
En arrondissant à l'unité, on a donc $\\theta \\approx ${answer}
|
|
72
|
+
En arrondissant à l'unité, on a donc $\\theta \\approx ${answer}^{\\circ}$.`,
|
|
73
73
|
identifiers: { trigFunction: selectedFunction, trigValue, angleInDegrees },
|
|
74
74
|
};
|
|
75
75
|
return question;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equationCosOnRandomInterval.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/equationCosOnRandomInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"equationCosOnRandomInterval.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/equationCosOnRandomInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAqBlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AA6HF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,WAAW,CAgB7D,CAAC"}
|
|
@@ -14,11 +14,19 @@ const closure_1 = require("../../../tree/nodes/sets/closure");
|
|
|
14
14
|
const discreteSetNode_1 = require("../../../tree/nodes/sets/discreteSetNode");
|
|
15
15
|
const intervalNode_1 = require("../../../tree/nodes/sets/intervalNode");
|
|
16
16
|
const random_1 = require("../../../utils/alea/random");
|
|
17
|
-
const getPropositions = (n, { answer }) => {
|
|
17
|
+
const getPropositions = (n, { answer, degree, leftBoundPiMultiple }) => {
|
|
18
18
|
const propositions = [];
|
|
19
19
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
20
|
+
//distracteur avec une solution manquante
|
|
21
|
+
if (degree !== 0 && degree !== 180) {
|
|
22
|
+
const answerNode = getAnswerNode({ degree, leftBoundPiMultiple });
|
|
23
|
+
const newSet = answerNode.solutionsSet.toDeleteRandomElement();
|
|
24
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, new equationSolutionNode_1.EquationSolutionNode(newSet).toTex());
|
|
25
|
+
}
|
|
20
26
|
while (propositions.length < n) {
|
|
21
|
-
|
|
27
|
+
const value = (0, random_1.random)(remarkableValues_1.mainPositiveTrigovalues);
|
|
28
|
+
const randDegree = value.degree;
|
|
29
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, getAnswer({ degree: randDegree, leftBoundPiMultiple }));
|
|
22
30
|
}
|
|
23
31
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
24
32
|
};
|
|
@@ -66,10 +74,11 @@ const getCorrection = (identifiers) => {
|
|
|
66
74
|
return "";
|
|
67
75
|
};
|
|
68
76
|
const getKeys = (identifiers) => {
|
|
69
|
-
return ["pi"];
|
|
77
|
+
return ["x", "S", "equal", "lbrace", "semicolon", "rbrace", "pi"];
|
|
70
78
|
};
|
|
71
|
-
const isAnswerValid = (ans, { answer }) => {
|
|
72
|
-
|
|
79
|
+
const isAnswerValid = (ans, { answer, degree, leftBoundPiMultiple }) => {
|
|
80
|
+
const answerNode = getAnswerNode({ degree, leftBoundPiMultiple });
|
|
81
|
+
return answerNode.toAllValidTexs().includes(ans);
|
|
73
82
|
};
|
|
74
83
|
const getEquationCosOnRandomIntervalQuestion = () => {
|
|
75
84
|
const value = (0, random_1.random)(remarkableValues_1.mainPositiveTrigovalues);
|
|
@@ -90,7 +90,7 @@ const getEquationSinOnRandomIntervalQuestion = () => {
|
|
|
90
90
|
exports.equationSinOnRandomInterval = {
|
|
91
91
|
id: "equationSinOnRandomInterval",
|
|
92
92
|
connector: "\\iff",
|
|
93
|
-
label: "Résoudre une équation du type $\\
|
|
93
|
+
label: "Résoudre une équation du type $\\sin\\left(x\\right)=k$ sur un intervalle donné",
|
|
94
94
|
isSingleStep: true,
|
|
95
95
|
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationSinOnRandomIntervalQuestion, nb),
|
|
96
96
|
qcmTimer: 60,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC"}
|
|
@@ -28,4 +28,4 @@ __exportStar(require("./basicTrigoSystemEquation"), exports);
|
|
|
28
28
|
__exportStar(require("./mainAngleMeasure"), exports);
|
|
29
29
|
__exportStar(require("./degreeToRadians"), exports);
|
|
30
30
|
__exportStar(require("./arcLength"), exports);
|
|
31
|
-
|
|
31
|
+
__exportStar(require("./equationCosOnRandomInterval"), exports);
|
|
@@ -56,7 +56,7 @@ const getPropositions = (n, { answer }) => {
|
|
|
56
56
|
const propositions = [];
|
|
57
57
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
58
58
|
while (propositions.length < n) {
|
|
59
|
-
(0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(20, 80) + "
|
|
59
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(20, 80) + "^{\\circ}");
|
|
60
60
|
}
|
|
61
61
|
return (0, shuffle_1.shuffle)(propositions);
|
|
62
62
|
};
|
|
@@ -58,7 +58,7 @@ const generateExercise = () => {
|
|
|
58
58
|
const epsilon = (0, randint_1.randint)(1, 3);
|
|
59
59
|
const l = (0, randint_1.randint)(1, 3);
|
|
60
60
|
const instruction = `Dans un laboratoire, vous avez effectué l'étalonnage d'une solution ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(molecule.name) ? "d'" : "de "}${molecule.name}. \n
|
|
61
|
-
Vous disposez du coefficient d'extinction molaire
|
|
61
|
+
Vous disposez du coefficient d'extinction molaire $\\varepsilon$ 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
|
|
62
62
|
Tracer la courbe d'étalonnage de cette solution.`;
|
|
63
63
|
return {
|
|
64
64
|
instruction,
|
|
@@ -70,13 +70,13 @@ const generateExercise = () => {
|
|
|
70
70
|
};
|
|
71
71
|
const getCorrection = () => {
|
|
72
72
|
return `1 - Choisir deux coordonnées $x_1$ et $x_2$. \n \\
|
|
73
|
-
2 - Calculer $A_1 = x_1\\cdot l \\cdot
|
|
73
|
+
2 - Calculer $A_1 = x_1\\cdot l \\cdot \\varepsilon$ et $A_2 = x_2\\cdot l \\cdot \\varepsilon$. \n \\
|
|
74
74
|
3 - Tracer la droite qui passe par les deux points $(x_1,A_1)$ et $(x_2,A_2)$.`;
|
|
75
75
|
};
|
|
76
76
|
const getHint = () => {
|
|
77
|
-
return `Utiliser la formule $A=C\\cdot \\ell\\cdot
|
|
77
|
+
return `Utiliser la formule $A=C\\cdot \\ell\\cdot \\varepsilon$, où :\n
|
|
78
78
|
- $A$ est l'absorbance (une grandeur sans unité)\n
|
|
79
|
-
-
|
|
79
|
+
- $\\varepsilon$ est le coefficient d'extinction molaire (ou coefficient d'absorption molaire) en $\\text{L}\\cdot\\text{mol}^{-1}\\cdot\\text{cm}^{-1}$\n
|
|
80
80
|
- $C$ est la concentration de la solution en $\\text{mol}\\cdot\\text{L}^{-1}$\n
|
|
81
81
|
- $\\ell$ est la longueur du chemin optique en centimètres $(\\text{cm})$`;
|
|
82
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chemicalEquations.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/chemicalEquations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAGL,eAAe,EAChB,MAAM,gDAAgD,CAAC;AAGxD,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,eAAe,EAAE,CAAC;CAClC,CAAC;AAkCF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"chemicalEquations.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/chemicalEquations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAGL,eAAe,EAChB,MAAM,gDAAgD,CAAC;AAGxD,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,eAAe,EAAE,CAAC;CAClC,CAAC;AAkCF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAcnD,CAAC"}
|
|
@@ -16,61 +16,61 @@ const titrationReactions = [
|
|
|
16
16
|
{
|
|
17
17
|
titré: { name: "de l'acide chlorhydrique", symbol: "HCl" },
|
|
18
18
|
titrant: { name: "de l'hydroxyde de sodium", symbol: "NaOH" },
|
|
19
|
-
produit: "NaCl +
|
|
19
|
+
produit: "NaCl + H_2O",
|
|
20
20
|
coeff: [1, 1],
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
titré: { name: "de l'acide acétique", symbol: "
|
|
23
|
+
titré: { name: "de l'acide acétique", symbol: "CH_3COOH" },
|
|
24
24
|
titrant: { name: "de l'hydroxyde de sodium", symbol: "NaOH" },
|
|
25
|
-
produit: "
|
|
25
|
+
produit: "CH_3COONa + H_2O",
|
|
26
26
|
coeff: [1, 1],
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
|
-
titré: { name: "de l'acide sulfurique", symbol: "
|
|
29
|
+
titré: { name: "de l'acide sulfurique", symbol: "H_2SO_4" },
|
|
30
30
|
titrant: { name: "de l'hydroxyde de sodium", symbol: "NaOH" },
|
|
31
|
-
produit: "
|
|
31
|
+
produit: "Na_2SO_4 + H_2O",
|
|
32
32
|
coeff: [1, 2],
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
titré: { name: "de l'acide nitrique", symbol: "
|
|
35
|
+
titré: { name: "de l'acide nitrique", symbol: "HNO_3" },
|
|
36
36
|
titrant: { name: "de l'hydroxyde de sodium", symbol: "NaOH" },
|
|
37
|
-
produit: "
|
|
37
|
+
produit: "NaNO_3 + H_2O",
|
|
38
38
|
coeff: [1, 1],
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
titré: { name: "de l'acide oxalique", symbol: "
|
|
42
|
-
titrant: { name: "du permanganate de potassium", symbol: "
|
|
43
|
-
produit: "
|
|
41
|
+
titré: { name: "de l'acide oxalique", symbol: "H_2C_2O_4" },
|
|
42
|
+
titrant: { name: "du permanganate de potassium", symbol: "KMnO_4" },
|
|
43
|
+
produit: "MnSO_4 + CO_2 + H_2O",
|
|
44
44
|
coeff: [5, 2],
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
titré: { name: "du chlorure de sodium", symbol: "NaCl" },
|
|
48
|
-
titrant: { name: "du nitrate d'argent", symbol: "
|
|
49
|
-
produit: "AgCl +
|
|
48
|
+
titrant: { name: "du nitrate d'argent", symbol: "AgNO_3" },
|
|
49
|
+
produit: "AgCl + NaNO_3",
|
|
50
50
|
coeff: [1, 1],
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
|
-
titré: { name: "de l'acide ascorbique", symbol: "
|
|
54
|
-
titrant: { name: "de l'iode", symbol: "
|
|
55
|
-
produit: "
|
|
53
|
+
titré: { name: "de l'acide ascorbique", symbol: "C_6H_8O_6" },
|
|
54
|
+
titrant: { name: "de l'iode", symbol: "I_2" },
|
|
55
|
+
produit: "C_6H_6O_6 + HI",
|
|
56
56
|
coeff: [1, 1],
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
|
-
titré: { name: "de l'hydroxyde de calcium", symbol: "Ca(OH)
|
|
59
|
+
titré: { name: "de l'hydroxyde de calcium", symbol: "Ca(OH)_2" },
|
|
60
60
|
titrant: { name: "de l'acide chlorhydrique", symbol: "HCl" },
|
|
61
|
-
produit: "
|
|
61
|
+
produit: "CaCl_2 + H_2O",
|
|
62
62
|
coeff: [1, 2],
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
titré: { name: "de l'acide phosphorique", symbol: "
|
|
65
|
+
titré: { name: "de l'acide phosphorique", symbol: "H_3PO_4" },
|
|
66
66
|
titrant: { name: "de l'hydroxyde de sodium", symbol: "NaOH" },
|
|
67
|
-
produit: "
|
|
67
|
+
produit: "Na_3PO_4 + H_2O",
|
|
68
68
|
coeff: [1, 3],
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
titré: { name: "de l'acide borique", symbol: "
|
|
71
|
+
titré: { name: "de l'acide borique", symbol: "H_3BO_3" },
|
|
72
72
|
titrant: { name: "de l'hydroxyde de sodium", symbol: "NaOH" },
|
|
73
|
-
produit: "NaB(OH)
|
|
73
|
+
produit: "NaB(OH)_4",
|
|
74
74
|
coeff: [1, 1],
|
|
75
75
|
},
|
|
76
76
|
];
|
|
@@ -120,7 +120,7 @@ const generateExo = () => {
|
|
|
120
120
|
const cB = new measure_1.Measure((0, random_1.random)([0.05, 0.1, 0.2, 0.25, 0.5, 0.75, 1.0]), 0, new divideUnit_1.DivideUnit(AmountOfSubstance_1.AmountOfSubstance.mol, volumeUnit_1.VolumeUnit.mL));
|
|
121
121
|
const vB = new measure_1.Measure(5 * (0, randint_1.randint)(1, 11), 0, volumeUnit_1.VolumeUnit.mL);
|
|
122
122
|
const reactionString = `${reaction.coeff[0] !== 1 ? reaction.coeff[0] : ""}${reaction.titré.symbol} + ${reaction.coeff[1] !== 1 ? reaction.coeff[1] : ""}${reaction.titrant.symbol} \\Rightarrow ${reaction.produit}`;
|
|
123
|
-
const hint = `Rappel : Au point d'équivalence, les quantités de matière
|
|
123
|
+
const hint = `Rappel : Au point d'équivalence, les quantités de matière $${reaction.titré.name}$ et $${reaction.titrant.name}$ sont égales , c'est-à-dire :
|
|
124
124
|
|
|
125
125
|
- $${reaction.coeff[0]} \\times n(${reaction.titré.symbol}) = ${reaction.coeff[1]} \\times n(${reaction.titrant.symbol})$`;
|
|
126
126
|
const instruction = `On réalise un titrage entre une solution ${reaction.titré.name}$(${reaction.titré.symbol})$ et une solution ${reaction.titrant.name}$(${reaction.titrant.symbol})$.
|
|
@@ -54,7 +54,7 @@ const generateExercise = () => {
|
|
|
54
54
|
Les données du problème sont les suivantes :
|
|
55
55
|
|
|
56
56
|
- La masse du bloc : $m = ${mass}\\ kg$
|
|
57
|
-
- L'angle du plan incliné par rapport à l'horizontale : $\\alpha = 45
|
|
57
|
+
- L'angle du plan incliné par rapport à l'horizontale : $\\alpha = 45^{\\circ}$
|
|
58
58
|
|
|
59
59
|
Calculer la force de ${isAsking} en $N$, arrondie au centième.`;
|
|
60
60
|
const answer = getAnswer(isAsking, mass).frenchify();
|
|
@@ -80,7 +80,7 @@ const getCorrection = (isAsking, answer) => {
|
|
|
80
80
|
? `1 - Calculer la composante perpendicualire du poids : $P_{\\perp} = \\cos(45°) \\times m \\cdot g$
|
|
81
81
|
|
|
82
82
|
2 - $R = P_{\\perp}\\ \\Rightarrow\\ R = ${answer}\\ N$`
|
|
83
|
-
: `1 - Calculer la composante parallèle du poids : $P_{\\parallel} = \\sin(45
|
|
83
|
+
: `1 - Calculer la composante parallèle du poids : $P_{\\parallel} = \\sin(45^{\\circ}) \\times m \\cdot g$
|
|
84
84
|
|
|
85
85
|
2 - $f = -P_{\\parallel}\\ \\Rightarrow\\ f = ${answer}\\ N$`;
|
|
86
86
|
};
|
|
@@ -17,7 +17,7 @@ const getForceWorkQuestion = () => {
|
|
|
17
17
|
const rounded = (0, round_1.roundSignificant)(answer, 1);
|
|
18
18
|
const question = {
|
|
19
19
|
answer: rounded + "J",
|
|
20
|
-
instruction: `Soit une force $\\overrightarrow F$ constante dont le point d'application se déplace d'une position $A$ à une position $B$ telle que $F = ${(0, round_1.roundSignificant)(forceValue, 1)}\\ \\text{N}$, $AB = ${(0, round_1.roundSignificant)(length, 1)}\\ \\text{m}$ et $\\widehat{\\left(\\overrightarrow F ; \\overrightarrow{AB}\\right)} = ${angle.degree}
|
|
20
|
+
instruction: `Soit une force $\\overrightarrow F$ constante dont le point d'application se déplace d'une position $A$ à une position $B$ telle que $F = ${(0, round_1.roundSignificant)(forceValue, 1)}\\ \\text{N}$, $AB = ${(0, round_1.roundSignificant)(length, 1)}\\ \\text{m}$ et $\\widehat{\\left(\\overrightarrow F ; \\overrightarrow{AB}\\right)} = ${angle.degree}^{\\circ}$. Calculer le travail de la force $\\overrightarrow F$ lors du déplacement de $A$ vers $B$.`,
|
|
21
21
|
keys: ["J", "timesTenPower"],
|
|
22
22
|
answerFormat: "tex",
|
|
23
23
|
identifiers: { length, forceValue, angleDegree: angle.degree },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gravitationalForcePlanets.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/forces/gravitationalForcePlanets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAOnD,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"gravitationalForcePlanets.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/forces/gravitationalForcePlanets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAOnD,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAmJF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAgB3D,CAAC"}
|
|
@@ -35,10 +35,12 @@ Données:
|
|
|
35
35
|
})}$`;
|
|
36
36
|
const hint = `Utilisez la formule de la force gravitationnelle.`;
|
|
37
37
|
const correction = `La force gravitationnelle est donnée par la formule vectorielle :
|
|
38
|
+
|
|
38
39
|
$$\\vec{F}_{\\text{Soleil/${selectedPlanet.name}}} = -G \\cdot \\frac{m_{\\text{soleil}} \\cdot m_{${selectedPlanet.name.charAt(0)}}}{d^2} \\cdot \\vec{u}_{\\text{Soleil→${selectedPlanet.name}}}$$. \n
|
|
39
40
|
La formule de la force gravitationnelle en valeur est :
|
|
40
41
|
$$F_{\\text{Soleil/${selectedPlanet.name}}} = G \\cdot \\frac{m_{\\text{soleil}} \\cdot m_{${selectedPlanet.name.charAt(0)}}}{d^2}$$. \n
|
|
41
42
|
En utilisant les valeurs fournies :
|
|
43
|
+
|
|
42
44
|
$$F_{\\text{Soleil/${selectedPlanet.name}}} = ${G.toTex({
|
|
43
45
|
scientific: 2,
|
|
44
46
|
})} \\cdot \\frac{${selectedPlanet.mass.toTex({
|
|
@@ -23,7 +23,7 @@ const getPropositions = (n, { answer, quantity }) => {
|
|
|
23
23
|
const propositions = [];
|
|
24
24
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
25
25
|
const w1 = atoms_1.avogadroConstant.value.divide(quantity).toSignificant(2);
|
|
26
|
-
const w2 =
|
|
26
|
+
const w2 = `${answer}\\ mol`;
|
|
27
27
|
(0, exercise_1.tryToAddWrongProp)(propositions, w1.toTex());
|
|
28
28
|
(0, exercise_1.tryToAddWrongProp)(propositions, w2);
|
|
29
29
|
while (propositions.length < n) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"potentialEnergy.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/potentialEnergy.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"potentialEnergy.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/potentialEnergy.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAwDF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAajD,CAAC"}
|
|
@@ -41,7 +41,8 @@ const getPropositions = (n, { answer, height, mass }) => {
|
|
|
41
41
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
42
42
|
const potentialEnergy = mass * 9.81 * height;
|
|
43
43
|
while (propositions.length < n) {
|
|
44
|
-
(0, exercise_1.tryToAddWrongProp)(propositions, (0, frenchify_1.frenchify)((0, round_1.round)(potentialEnergy * (0.3 + Math.random() * 1.5), 2)) +
|
|
44
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, frenchify_1.frenchify)((0, round_1.round)(potentialEnergy * (0.3 + Math.random() * 1.5), 2)) +
|
|
45
|
+
"\\text{J}");
|
|
45
46
|
}
|
|
46
47
|
return (0, shuffle_1.shuffle)(propositions);
|
|
47
48
|
};
|
|
@@ -65,15 +65,15 @@ const getSnellDescartes = () => {
|
|
|
65
65
|
const n1 = refractionIndex[randomMaterial1].n;
|
|
66
66
|
const n2 = refractionIndex[randomMaterial2].n;
|
|
67
67
|
const ramdonAngleIncidenceDeg = (0, randint_1.randint)(10, 90);
|
|
68
|
-
const instruction = `Un rayon de lumière se propage dans ${refractionIndex[randomMaterial1].Material} (n1
|
|
69
|
-
(n2
|
|
68
|
+
const instruction = `Un rayon de lumière se propage dans ${refractionIndex[randomMaterial1].Material} ($n1 \\approx ${n1}$) et atteint une surface ${refractionIndex[randomMaterial2].Material2}
|
|
69
|
+
($n2 \\approx ${n2}$) sous un angle d'incidence de $${ramdonAngleIncidenceDeg}$ degrés. $\\\\$ Calculer l'angle de
|
|
70
70
|
réfraction de la lumière à l'intérieur ${refractionIndex[randomMaterial2].Material3} en utilisant la loi de Snell-Descartes.`;
|
|
71
71
|
const angleIncidenceRad = (ramdonAngleIncidenceDeg * Math.PI) / 180;
|
|
72
72
|
// Calculer l'angle de réfraction en radians
|
|
73
73
|
const angleRefractionRad = Math.asin((n1 / n2) * Math.sin(angleIncidenceRad));
|
|
74
74
|
// Convertir l'angle de réfraction de radians à degrés
|
|
75
75
|
const angleRefractionDeg = (angleRefractionRad * 180) / Math.PI;
|
|
76
|
-
const answer = `${(0, frenchify_1.frenchify)((0, round_1.round)(angleRefractionDeg, 1))}
|
|
76
|
+
const answer = `${(0, frenchify_1.frenchify)((0, round_1.round)(angleRefractionDeg, 1))}^{\\circ}`;
|
|
77
77
|
const question = {
|
|
78
78
|
instruction,
|
|
79
79
|
answer,
|
|
@@ -87,7 +87,7 @@ const getPropositions = (n, { answer }) => {
|
|
|
87
87
|
const propositions = [];
|
|
88
88
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
89
89
|
while (propositions.length < n) {
|
|
90
|
-
(0, exercise_1.tryToAddWrongProp)(propositions, (0, frenchify_1.frenchify)((0, round_1.round)((0, randint_1.randint)(100, 900) / 10, 1)) + "
|
|
90
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, frenchify_1.frenchify)((0, round_1.round)((0, randint_1.randint)(100, 900) / 10, 1)) + "^{\\circ}");
|
|
91
91
|
}
|
|
92
92
|
return (0, shuffle_1.shuffle)(propositions);
|
|
93
93
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frequencyComparison.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/sound/frequencyComparison.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAKlC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAqDF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"frequencyComparison.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/sound/frequencyComparison.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAKlC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAqDF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAerD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightDistanceConversion.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/waves/lightDistanceConversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGnD,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;
|
|
1
|
+
{"version":3,"file":"lightDistanceConversion.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/waves/lightDistanceConversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGnD,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AA8KF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAczD,CAAC"}
|
|
@@ -36,6 +36,7 @@ const getLightDistanceConversionQuestion = () => {
|
|
|
36
36
|
- Il y a $365.25 \\text{ jours} \\times 24 \\text{ heures/jour} \\times 3600 \\text{ secondes/heure}$ secondes dans une année (Le 0.25 compte pour la moyenne sur quatres années dont une bissextile).
|
|
37
37
|
|
|
38
38
|
La distance parcourue par la lumière en une année est :
|
|
39
|
+
|
|
39
40
|
$$
|
|
40
41
|
c \\times \\text{secondes par année}
|
|
41
42
|
$$
|
|
@@ -43,46 +44,54 @@ const getLightDistanceConversionQuestion = () => {
|
|
|
43
44
|
Pour convertir des mètres en années-lumière, divisez la distance en mètres par la distance parcourue par la lumière en une année.`;
|
|
44
45
|
const correction = isLightYearToMeters
|
|
45
46
|
? `La distance parcourue par la lumière en une année est donnée par :
|
|
47
|
+
|
|
46
48
|
$$
|
|
47
49
|
c \\times \\text{secondes par année} = 3 \\times 10^8 \\text{ m/s} \\times 365.25 \\times 24 \\times 3600 \\text{ s}
|
|
48
50
|
$$
|
|
49
51
|
|
|
50
52
|
En simplifiant, nous obtenons :
|
|
53
|
+
|
|
51
54
|
$$
|
|
52
55
|
3 \\times 10^8 \\text{ m/s} \\times 31,557,600 \\text{ s} = 9.46728 \\times 10^{15} \\text{ m}
|
|
53
56
|
$$
|
|
54
57
|
|
|
55
58
|
Pour convertir des années-lumière en mètres, nous utilisons la relation suivante :
|
|
59
|
+
|
|
56
60
|
$$
|
|
57
|
-
\\text{distance en
|
|
61
|
+
\\text{distance en années-lumière} \\times 9.46728 \\times 10^{15} \\text{ m}
|
|
58
62
|
$$
|
|
59
63
|
|
|
60
64
|
En appliquant cette relation avec la valeur donnée de ${lightYear} années-lumière, nous obtenons :
|
|
65
|
+
|
|
61
66
|
$$
|
|
62
67
|
\\text{distance en mètres} = ${lightYear} \\times 9.46728 \\times 10^{15} = ${distanceFromEarthMeters
|
|
63
68
|
.toSignificant(2)
|
|
64
69
|
.toTex()} \\text{ m}
|
|
65
70
|
$$`
|
|
66
71
|
: `La distance parcourue par la lumière en une année est donnée par :
|
|
67
|
-
|
|
72
|
+
|
|
73
|
+
$$
|
|
68
74
|
c \\times \\text{secondes par année} = 3 \\times 10^8 \\text{ m/s} \\times 365.25 \\times 24 \\times 3600 \\text{ s}
|
|
69
75
|
$$
|
|
70
76
|
|
|
71
77
|
En simplifiant, nous obtenons :
|
|
78
|
+
|
|
72
79
|
$$
|
|
73
80
|
3 \\times 10^8 \\text{ m/s} \\times 31,557,600 \\text{ s} = 9.46728 \\times 10^{15} \\text{ m}
|
|
74
81
|
$$
|
|
75
82
|
|
|
76
83
|
Pour convertir des mètres en années-lumière, nous utilisons la relation suivante :
|
|
84
|
+
|
|
77
85
|
$$
|
|
78
|
-
\\
|
|
86
|
+
\\frac{\\text{distance en mètres}}{9.46728 \\times 10^{15} \\text{ m}}
|
|
79
87
|
$$
|
|
80
88
|
|
|
81
89
|
En appliquant cette relation avec la valeur donnée de $${distanceFromEarthMeters
|
|
82
90
|
.toSignificant(2)
|
|
83
91
|
.toTex()} \\text{m}$, nous obtenons :
|
|
92
|
+
|
|
84
93
|
$$
|
|
85
|
-
\\
|
|
94
|
+
\\frac{${distanceFromEarthMeters
|
|
86
95
|
.toSignificant(2)
|
|
87
96
|
.toTex()}}{9.46728 \\times 10^{15}} = ${lightYear.toScientific(2).toTex()}
|
|
88
97
|
$$`;
|