math-exercises 3.0.168 → 3.0.170
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/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts +4 -3
- package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.js +236 -52
- package/lib/exercises/math/derivation/derivativeNumber/expressFAPlusH.d.ts +13 -0
- package/lib/exercises/math/derivation/derivativeNumber/expressFAPlusH.d.ts.map +1 -0
- package/lib/exercises/math/derivation/derivativeNumber/expressFAPlusH.js +225 -0
- package/lib/exercises/math/derivation/derivativeNumber/findAverageRateLimit.d.ts +14 -0
- package/lib/exercises/math/derivation/derivativeNumber/findAverageRateLimit.d.ts.map +1 -0
- package/lib/exercises/math/derivation/derivativeNumber/findAverageRateLimit.js +162 -0
- package/lib/exercises/math/derivation/derivativeNumber/index.d.ts +3 -0
- package/lib/exercises/math/derivation/derivativeNumber/index.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivativeNumber/index.js +3 -1
- package/lib/exercises/math/derivation/tangent/derivativeNumberReading.d.ts +4 -1
- package/lib/exercises/math/derivation/tangent/derivativeNumberReading.d.ts.map +1 -1
- package/lib/exercises/math/derivation/tangent/derivativeNumberReading.js +50 -9
- package/lib/exercises/math/derivation/variations/signVarTableFromDerivativeGraph.js +1 -1
- package/lib/exercises/math/derivation/variations/signVarTableFromGraph.js +1 -1
- package/lib/exercises/math/functions/trinoms/equation/findTwoNumbersFromSumAndProduct.d.ts +8 -0
- package/lib/exercises/math/functions/trinoms/equation/findTwoNumbersFromSumAndProduct.d.ts.map +1 -0
- package/lib/exercises/math/functions/trinoms/equation/findTwoNumbersFromSumAndProduct.js +182 -0
- package/lib/exercises/math/functions/trinoms/equation/index.d.ts +1 -0
- package/lib/exercises/math/functions/trinoms/equation/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/equation/index.js +1 -0
- package/lib/exercises/math/functions/trinoms/equation/trinomSelectEquationWithoutDeltaNeeded.js +1 -1
- package/lib/exercises/math/functions/trinoms/index.d.ts +1 -0
- package/lib/exercises/math/functions/trinoms/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/index.js +1 -0
- package/lib/exercises/math/functions/trinoms/problems/index.d.ts +3 -0
- package/lib/exercises/math/functions/trinoms/problems/index.d.ts.map +1 -0
- package/lib/exercises/math/functions/trinoms/problems/index.js +2 -0
- package/lib/exercises/math/functions/trinoms/problems/maxSurfaceForGivenClosure.d.ts +11 -0
- package/lib/exercises/math/functions/trinoms/problems/maxSurfaceForGivenClosure.d.ts.map +1 -0
- package/lib/exercises/math/functions/trinoms/problems/maxSurfaceForGivenClosure.js +212 -0
- package/lib/exercises/math/functions/trinoms/problems/swedishFlag.d.ts +8 -0
- package/lib/exercises/math/functions/trinoms/problems/swedishFlag.d.ts.map +1 -0
- package/lib/exercises/math/functions/trinoms/problems/swedishFlag.js +174 -0
- package/lib/exercises/math/functions/trinoms/summitAndCanonical/findTrinomCanonicalFormFromGraph.js +2 -2
- package/lib/exercises/math/functions/trinoms/summitAndCanonical/summitReading.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/summitAndCanonical/summitReading.js +22 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts +4 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +45 -20
- package/lib/exercises/math/sequences/arithmetic/recognizeReasonFromGraph.d.ts +4 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeReasonFromGraph.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/recognizeReasonFromGraph.js +43 -9
- package/lib/exercises/math/sequences/index.d.ts +1 -0
- package/lib/exercises/math/sequences/index.d.ts.map +1 -1
- package/lib/exercises/math/sequences/index.js +1 -0
- package/lib/exercises/math/sequences/variations/expressConsecutiveTermsDifference.d.ts +11 -0
- package/lib/exercises/math/sequences/variations/expressConsecutiveTermsDifference.d.ts.map +1 -0
- package/lib/exercises/math/sequences/variations/expressConsecutiveTermsDifference.js +160 -0
- package/lib/exercises/math/sequences/variations/index.d.ts +2 -0
- package/lib/exercises/math/sequences/variations/index.d.ts.map +1 -0
- package/lib/exercises/math/sequences/variations/index.js +1 -0
- package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.js +0 -1
- package/lib/exercises/math/trigonometry/circle/findAssociateAnglePointOnTrigoCircle.d.ts +8 -0
- package/lib/exercises/math/trigonometry/circle/findAssociateAnglePointOnTrigoCircle.d.ts.map +1 -0
- package/lib/exercises/math/trigonometry/circle/findAssociateAnglePointOnTrigoCircle.js +158 -0
- package/lib/exercises/math/trigonometry/circle/index.d.ts +2 -0
- package/lib/exercises/math/trigonometry/circle/index.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/circle/index.js +2 -0
- package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.js +8 -3
- package/lib/exercises/math/trigonometry/circle/placeAssociateAngleOnCircle.d.ts +8 -0
- package/lib/exercises/math/trigonometry/circle/placeAssociateAngleOnCircle.d.ts.map +1 -0
- package/lib/exercises/math/trigonometry/circle/placeAssociateAngleOnCircle.js +167 -0
- package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts +2 -0
- package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts.map +1 -1
- package/lib/exercises/utils/geogebra/toolBarConstructor.js +4 -0
- package/lib/index.d.ts +52 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/segment.d.ts +1 -1
- package/lib/math/polynomials/trinom.d.ts +1 -1
- package/lib/math/polynomials/trinom.d.ts.map +1 -1
- package/lib/math/polynomials/trinom.js +2 -2
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +1 -3
- package/lib/tree/nodes/algebraicNode.d.ts +2 -0
- package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
- package/lib/tree/nodes/complex/complexNode.d.ts +1 -0
- package/lib/tree/nodes/complex/complexNode.d.ts.map +1 -1
- package/lib/tree/nodes/complex/complexNode.js +3 -0
- package/lib/tree/nodes/equations/equalNode.d.ts +1 -0
- package/lib/tree/nodes/equations/equalNode.d.ts.map +1 -1
- package/lib/tree/nodes/equations/equalNode.js +3 -0
- package/lib/tree/nodes/equations/equationSolutionNode.d.ts +1 -0
- package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
- package/lib/tree/nodes/equations/equationSolutionNode.js +3 -0
- package/lib/tree/nodes/equations/multiEqualNode.d.ts +1 -0
- package/lib/tree/nodes/equations/multiEqualNode.d.ts.map +1 -1
- package/lib/tree/nodes/equations/multiEqualNode.js +3 -0
- package/lib/tree/nodes/equations/notEqualNode.d.ts +1 -0
- package/lib/tree/nodes/equations/notEqualNode.d.ts.map +1 -1
- package/lib/tree/nodes/equations/notEqualNode.js +3 -0
- package/lib/tree/nodes/functions/absNode.d.ts +1 -0
- package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/absNode.js +3 -0
- package/lib/tree/nodes/functions/arcSinNode.d.ts +1 -0
- package/lib/tree/nodes/functions/arcSinNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/arcSinNode.js +3 -0
- package/lib/tree/nodes/functions/arccosNode.d.ts +1 -0
- package/lib/tree/nodes/functions/arccosNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/arccosNode.js +3 -0
- package/lib/tree/nodes/functions/arctanNode.d.ts +1 -0
- package/lib/tree/nodes/functions/arctanNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/arctanNode.js +3 -0
- package/lib/tree/nodes/functions/cosNode.d.ts +1 -0
- package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/cosNode.js +3 -0
- package/lib/tree/nodes/functions/expNode.d.ts +1 -0
- package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/expNode.js +3 -0
- package/lib/tree/nodes/functions/integralNode.d.ts +1 -0
- package/lib/tree/nodes/functions/integralNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/integralNode.js +3 -0
- package/lib/tree/nodes/functions/log10Node.d.ts +1 -0
- package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
- package/lib/tree/nodes/functions/log10Node.js +3 -0
- package/lib/tree/nodes/functions/logNode.d.ts +1 -0
- package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/logNode.js +3 -0
- package/lib/tree/nodes/functions/oppositeNode.d.ts +1 -0
- package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/oppositeNode.js +6 -0
- package/lib/tree/nodes/functions/sinNode.d.ts +1 -0
- package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sinNode.js +3 -0
- package/lib/tree/nodes/functions/sqrtNode.d.ts +1 -2
- package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/tanNode.d.ts +1 -0
- package/lib/tree/nodes/functions/tanNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/tanNode.js +3 -0
- package/lib/tree/nodes/geometry/degree.d.ts +1 -0
- package/lib/tree/nodes/geometry/degree.d.ts.map +1 -1
- package/lib/tree/nodes/geometry/degree.js +3 -0
- package/lib/tree/nodes/geometry/lengthNode.d.ts +1 -0
- package/lib/tree/nodes/geometry/lengthNode.d.ts.map +1 -1
- package/lib/tree/nodes/geometry/lengthNode.js +3 -0
- package/lib/tree/nodes/geometry/pointNode.d.ts +1 -0
- package/lib/tree/nodes/geometry/pointNode.d.ts.map +1 -1
- package/lib/tree/nodes/geometry/pointNode.js +3 -0
- package/lib/tree/nodes/geometry/vectorNode.d.ts +1 -0
- package/lib/tree/nodes/geometry/vectorNode.d.ts.map +1 -1
- package/lib/tree/nodes/geometry/vectorNode.js +3 -0
- package/lib/tree/nodes/inequations/inequationNode.d.ts +1 -0
- package/lib/tree/nodes/inequations/inequationNode.d.ts.map +1 -1
- package/lib/tree/nodes/inequations/inequationNode.js +3 -0
- package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +1 -0
- package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
- package/lib/tree/nodes/inequations/inequationSolutionNode.js +3 -0
- package/lib/tree/nodes/numbers/constantNode.d.ts +3 -2
- package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/constantNode.js +7 -1
- package/lib/tree/nodes/numbers/numberNode.d.ts +1 -0
- package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/numberNode.js +6 -0
- package/lib/tree/nodes/numbers/percentNode.d.ts +1 -0
- package/lib/tree/nodes/numbers/percentNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/percentNode.js +3 -0
- package/lib/tree/nodes/operators/addNode.js +17 -14
- package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts +1 -0
- package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/binomialCoefficientNode.js +3 -0
- package/lib/tree/nodes/operators/divideNode.d.ts +1 -0
- package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/divideNode.js +3 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/limitNode.d.ts +1 -0
- package/lib/tree/nodes/operators/limitNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/limitNode.js +3 -0
- package/lib/tree/nodes/operators/powerNode.d.ts +1 -0
- package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/powerNode.js +6 -0
- package/lib/tree/nodes/polynomials/monomNode.d.ts +1 -0
- package/lib/tree/nodes/polynomials/monomNode.d.ts.map +1 -1
- package/lib/tree/nodes/polynomials/monomNode.js +3 -0
- package/lib/tree/nodes/polynomials/trinomNode.d.ts +1 -0
- package/lib/tree/nodes/polynomials/trinomNode.d.ts.map +1 -1
- package/lib/tree/nodes/polynomials/trinomNode.js +3 -0
- package/lib/tree/nodes/sets/belongsNode.d.ts +1 -0
- package/lib/tree/nodes/sets/belongsNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/belongsNode.js +3 -0
- package/lib/tree/nodes/sets/discreteSetNode.d.ts +1 -0
- package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/discreteSetNode.js +3 -0
- package/lib/tree/nodes/sets/intervalNode.d.ts +1 -0
- package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/intervalNode.js +3 -0
- package/lib/tree/nodes/sets/unionIntervalNode.d.ts +1 -0
- package/lib/tree/nodes/sets/unionIntervalNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/unionIntervalNode.js +3 -0
- package/lib/tree/nodes/variables/variableNode.d.ts +1 -0
- package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
- package/lib/tree/nodes/variables/variableNode.js +3 -0
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
1
|
+
import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
|
|
3
4
|
import { GeogebraConstructor } from "../../../../geogebra/geogebraConstructor.js";
|
|
4
5
|
import { Point } from "../../../../math/geometry/point.js";
|
|
5
6
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
@@ -11,11 +12,12 @@ const getAnswer = (identifiers) => {
|
|
|
11
12
|
const answer = reason + "";
|
|
12
13
|
return answer;
|
|
13
14
|
};
|
|
14
|
-
const getGGBOptions = (identifiers) => {
|
|
15
|
+
const getGGBOptions = (identifiers, opts) => {
|
|
15
16
|
const { sequence } = identifiers;
|
|
17
|
+
const rankOne = opts?.firstTermRankOne ? 1 : 0;
|
|
16
18
|
const yMin = Math.min(...sequence.slice(0, 5));
|
|
17
19
|
const yMax = Math.max(...sequence.slice(0, 5));
|
|
18
|
-
const commands = sequence.flatMap((nb, index) => new Point(`A_${index}`, index.toTree(), nb.toTree()).toGGBCommand({
|
|
20
|
+
const commands = sequence.flatMap((nb, index) => new Point(`A_{${index + rankOne}}`, (index + rankOne).toTree(), nb.toTree()).toGGBCommand({
|
|
19
21
|
showLabel: false,
|
|
20
22
|
}));
|
|
21
23
|
const ggb = new GeogebraConstructor({
|
|
@@ -27,25 +29,47 @@ const getGGBOptions = (identifiers) => {
|
|
|
27
29
|
coords: [-1, 7, Math.min(-1, yMin - 2), Math.max(1, yMax + 2)],
|
|
28
30
|
});
|
|
29
31
|
};
|
|
30
|
-
const
|
|
32
|
+
const getHint = () => {
|
|
33
|
+
return `Une suite est arithmétique si, pour passer d'un terme au suivant, on ajoute toujours le même nombre (appelé la raison de la suite).
|
|
34
|
+
|
|
35
|
+
Lit graphiquement les premiers termes de la suite pour déterminer ce nombre.`;
|
|
36
|
+
};
|
|
37
|
+
const getCorrection = (identifiers, opts) => {
|
|
38
|
+
const rankOne = opts?.firstTermRankOne ? 1 : 0;
|
|
39
|
+
const { sequence, reason } = identifiers;
|
|
40
|
+
return `On peut lire graphiquement les premiers termes de la suite :
|
|
41
|
+
|
|
42
|
+
${sequence
|
|
43
|
+
.slice(0, 5)
|
|
44
|
+
.map((e, i) => `$$
|
|
45
|
+
u_{${i + rankOne}} = ${e.frenchify()}
|
|
46
|
+
$$`)
|
|
47
|
+
.join("\n \n")}
|
|
48
|
+
|
|
49
|
+
Pour passer d'un terme à l'autre, on ajoute donc toujours $${reason.frenchify()}$ : c'est la raison de la suite $u$.
|
|
50
|
+
`;
|
|
51
|
+
};
|
|
52
|
+
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
31
53
|
const question = {
|
|
32
54
|
answer: getAnswer(identifiers),
|
|
33
55
|
instruction: getInstruction(identifiers),
|
|
34
56
|
keys: [],
|
|
35
|
-
ggbOptions: getGGBOptions(identifiers),
|
|
57
|
+
ggbOptions: getGGBOptions(identifiers, opts),
|
|
36
58
|
answerFormat: "tex",
|
|
37
59
|
identifiers,
|
|
60
|
+
hint: getHint(identifiers),
|
|
61
|
+
correction: getCorrection(identifiers, opts),
|
|
38
62
|
};
|
|
39
63
|
return question;
|
|
40
64
|
};
|
|
41
|
-
const getRecognizeReasonFromGraphQuestion = () => {
|
|
65
|
+
const getRecognizeReasonFromGraphQuestion = (opts) => {
|
|
42
66
|
const firstTerm = randint(1, 20);
|
|
43
67
|
const reason = randint(-5, 6, [0]);
|
|
44
68
|
const sequence = new Array(10)
|
|
45
69
|
.fill(0)
|
|
46
70
|
.map((_el, index) => firstTerm + index * reason);
|
|
47
71
|
const identifiers = { reason, sequence };
|
|
48
|
-
return getQuestionFromIdentifiers(identifiers);
|
|
72
|
+
return getQuestionFromIdentifiers(identifiers, opts);
|
|
49
73
|
};
|
|
50
74
|
const getPropositions = (n, { answer }) => {
|
|
51
75
|
const propositions = [];
|
|
@@ -56,13 +80,21 @@ const getPropositions = (n, { answer }) => {
|
|
|
56
80
|
return shuffleProps(propositions, n);
|
|
57
81
|
};
|
|
58
82
|
const isAnswerValid = (ans, { answer }) => {
|
|
59
|
-
return ans
|
|
83
|
+
return numberVEA(ans, answer);
|
|
60
84
|
};
|
|
85
|
+
const options = [
|
|
86
|
+
{
|
|
87
|
+
id: "firstTermRankOne",
|
|
88
|
+
label: "Utiliser $u_1$ comme premier terme",
|
|
89
|
+
target: GeneratorOptionTarget.generation,
|
|
90
|
+
type: GeneratorOptionType.checkbox,
|
|
91
|
+
},
|
|
92
|
+
];
|
|
61
93
|
export const recognizeReasonFromGraph = {
|
|
62
94
|
id: "recognizeReasonFromGraph",
|
|
63
95
|
label: "Reconnaître graphiquement la raison d'une suite arithmétique",
|
|
64
96
|
isSingleStep: true,
|
|
65
|
-
generator: (nb) => getDistinctQuestions(getRecognizeReasonFromGraphQuestion, nb),
|
|
97
|
+
generator: (nb, opts) => getDistinctQuestions(() => getRecognizeReasonFromGraphQuestion(opts), nb),
|
|
66
98
|
qcmTimer: 60,
|
|
67
99
|
freeTimer: 60,
|
|
68
100
|
getPropositions,
|
|
@@ -70,4 +102,6 @@ export const recognizeReasonFromGraph = {
|
|
|
70
102
|
hasGeogebra: true,
|
|
71
103
|
subject: "Mathématiques",
|
|
72
104
|
getQuestionFromIdentifiers,
|
|
105
|
+
options,
|
|
106
|
+
hasHintAndCorrection: true,
|
|
73
107
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sequences/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
formulaIds: NodeIdentifiers;
|
|
5
|
+
};
|
|
6
|
+
type Options = {
|
|
7
|
+
sequenceTypes: string[];
|
|
8
|
+
};
|
|
9
|
+
export declare const expressConsecutiveTermsDifference: Exercise<Identifiers, Options>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=expressConsecutiveTermsDifference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expressConsecutiveTermsDifference.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/variations/expressConsecutiveTermsDifference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAS7C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAmJF,KAAK,OAAO,GAAG;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAWF,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAwB1E,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, propWhile, GeneratorOptionTarget, GeneratorOptionType, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { AffineConstructor } from "../../../../math/polynomials/affine.js";
|
|
4
|
+
import { TrinomConstructor } from "../../../../math/polynomials/trinom.js";
|
|
5
|
+
import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
|
|
6
|
+
import { add } from "../../../../tree/nodes/operators/addNode.js";
|
|
7
|
+
import { substract } from "../../../../tree/nodes/operators/substractNode.js";
|
|
8
|
+
import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
|
|
9
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
10
|
+
import { random } from "../../../../utils/alea/random.js";
|
|
11
|
+
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
12
|
+
import { alignTex } from "../../../../utils/latex/alignTex.js";
|
|
13
|
+
const getPropositions = (n, { answer, formulaIds }) => {
|
|
14
|
+
const propositions = [];
|
|
15
|
+
addValidProp(propositions, answer);
|
|
16
|
+
const formula = reifyAlgebraic(formulaIds);
|
|
17
|
+
const un1 = formula.toDetailedEvaluation({ n: add("n", 1) });
|
|
18
|
+
tryToAddWrongProp(propositions, un1.simplify({ towardsDistribute: true, forbidFactorize: true }).toTex());
|
|
19
|
+
tryToAddWrongProp(propositions, add(un1, formula)
|
|
20
|
+
.simplify({
|
|
21
|
+
towardsDistribute: true,
|
|
22
|
+
forbidFactorize: true,
|
|
23
|
+
})
|
|
24
|
+
.toTex());
|
|
25
|
+
propWhile(propositions, n, () => {
|
|
26
|
+
tryToAddWrongProp(propositions, coinFlip()
|
|
27
|
+
? AffineConstructor.random(undefined, undefined, "n").toTree().toTex()
|
|
28
|
+
: TrinomConstructor.random(undefined, undefined, undefined, "n")
|
|
29
|
+
.toTree()
|
|
30
|
+
.toTex());
|
|
31
|
+
});
|
|
32
|
+
return shuffleProps(propositions, n);
|
|
33
|
+
};
|
|
34
|
+
const getAnswer = (identifiers) => {
|
|
35
|
+
const { formulaIds } = identifiers;
|
|
36
|
+
const formula = reifyAlgebraic(formulaIds);
|
|
37
|
+
const un1 = formula.toDetailedEvaluation({ n: add("n", 1) });
|
|
38
|
+
return substract(un1, formula)
|
|
39
|
+
.simplify({
|
|
40
|
+
towardsDistribute: true,
|
|
41
|
+
forbidFactorize: true,
|
|
42
|
+
})
|
|
43
|
+
.toTex();
|
|
44
|
+
};
|
|
45
|
+
const getInstruction = (identifiers) => {
|
|
46
|
+
const { formulaIds } = identifiers;
|
|
47
|
+
const formula = reifyAlgebraic(formulaIds);
|
|
48
|
+
return `On considère la suite $u$ définie sur $\\mathbb{N}$ par :
|
|
49
|
+
|
|
50
|
+
$$
|
|
51
|
+
u_n = ${formula.toTex()}
|
|
52
|
+
$$
|
|
53
|
+
|
|
54
|
+
Pour $n\\geq 0$, exprimer en fonction de $n$ la différence :
|
|
55
|
+
|
|
56
|
+
$$
|
|
57
|
+
u_{n+1}-u_n
|
|
58
|
+
$$`;
|
|
59
|
+
};
|
|
60
|
+
const getHint = () => {
|
|
61
|
+
return `Calcule en fonction de $n$ le terme $u_{n+1}$, en remplaçant $n$ par $n+1$ dans la formule donnée.
|
|
62
|
+
|
|
63
|
+
Puis, soustrait $u_n$ et simplifie.`;
|
|
64
|
+
};
|
|
65
|
+
const getCorrection = (identifiers) => {
|
|
66
|
+
const { formulaIds } = identifiers;
|
|
67
|
+
const formula = reifyAlgebraic(formulaIds);
|
|
68
|
+
const un1 = formula.toDetailedEvaluation({ n: add("n", 1) });
|
|
69
|
+
const un1Simp = un1.simplify({
|
|
70
|
+
towardsDistribute: true,
|
|
71
|
+
forbidFactorize: true,
|
|
72
|
+
});
|
|
73
|
+
return `On exprime d'abord $u_{n+1}$ :
|
|
74
|
+
|
|
75
|
+
${alignTex([
|
|
76
|
+
["u_{n+1}", "=", un1.toTex()],
|
|
77
|
+
["", "=", un1Simp.toTex()],
|
|
78
|
+
])}
|
|
79
|
+
|
|
80
|
+
On a donc :
|
|
81
|
+
|
|
82
|
+
${alignTex([
|
|
83
|
+
["u_{n+1}-u_n", "=", substract(un1Simp, formula).toTex()],
|
|
84
|
+
[
|
|
85
|
+
"",
|
|
86
|
+
"=",
|
|
87
|
+
substract(un1Simp, formula)
|
|
88
|
+
.simplify({ towardsDistribute: true, forbidFactorize: true })
|
|
89
|
+
.toTex(),
|
|
90
|
+
],
|
|
91
|
+
])}`;
|
|
92
|
+
};
|
|
93
|
+
const getKeys = () => {
|
|
94
|
+
return ["n"];
|
|
95
|
+
};
|
|
96
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
97
|
+
try {
|
|
98
|
+
const parsed = parseAlgebraic(ans);
|
|
99
|
+
if (!parsed)
|
|
100
|
+
return false;
|
|
101
|
+
return (parsed
|
|
102
|
+
.simplify({ towardsDistribute: true, forbidFactorize: true })
|
|
103
|
+
.toTex() === answer);
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
return handleVEAError(err);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
const getExpressConsecutiveTermsDifferenceQuestion = (opts) => {
|
|
110
|
+
const type = opts?.sequenceTypes
|
|
111
|
+
? random(opts?.sequenceTypes)
|
|
112
|
+
: random(["Premier degré", "Second degré"]);
|
|
113
|
+
const formula = type === "Premier degré"
|
|
114
|
+
? AffineConstructor.random(undefined, undefined, "n")
|
|
115
|
+
: TrinomConstructor.random(undefined, undefined, undefined, "n");
|
|
116
|
+
const identifiers = {
|
|
117
|
+
formulaIds: formula.toTree().toIdentifiers(),
|
|
118
|
+
};
|
|
119
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
120
|
+
};
|
|
121
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
122
|
+
return {
|
|
123
|
+
answer: getAnswer(identifiers),
|
|
124
|
+
instruction: getInstruction(identifiers),
|
|
125
|
+
keys: getKeys(identifiers),
|
|
126
|
+
answerFormat: "tex",
|
|
127
|
+
identifiers,
|
|
128
|
+
hint: getHint(identifiers),
|
|
129
|
+
correction: getCorrection(identifiers),
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
const options = [
|
|
133
|
+
{
|
|
134
|
+
id: "sequenceTypes",
|
|
135
|
+
label: "Type de fonctions",
|
|
136
|
+
target: GeneratorOptionTarget.generation,
|
|
137
|
+
type: GeneratorOptionType.multiselect,
|
|
138
|
+
values: ["Premier degré", "Second degré"],
|
|
139
|
+
defaultValue: ["Premier degré", "Second degré"],
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
export const expressConsecutiveTermsDifference = {
|
|
143
|
+
id: "expressConsecutiveTermsDifference",
|
|
144
|
+
connector: "=",
|
|
145
|
+
label: "Exprimer la différence de deux termes consécutifs $u_{n+1}-u_n$ pour une suite donnée explicitement",
|
|
146
|
+
isSingleStep: true,
|
|
147
|
+
generator: (nb, opts) => getDistinctQuestions(() => getExpressConsecutiveTermsDifferenceQuestion(opts), nb),
|
|
148
|
+
qcmTimer: 60,
|
|
149
|
+
freeTimer: 60,
|
|
150
|
+
getPropositions,
|
|
151
|
+
isAnswerValid,
|
|
152
|
+
subject: "Mathématiques",
|
|
153
|
+
getInstruction,
|
|
154
|
+
getHint,
|
|
155
|
+
getCorrection,
|
|
156
|
+
getAnswer,
|
|
157
|
+
getQuestionFromIdentifiers,
|
|
158
|
+
options,
|
|
159
|
+
hasHintAndCorrection: true,
|
|
160
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/variations/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./expressConsecutiveTermsDifference.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findAngleFromCosAndSin.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/findAngleFromCosAndSin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"findAngleFromCosAndSin.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/findAngleFromCosAndSin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAoHF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAkBxD,CAAC"}
|
|
@@ -11,7 +11,6 @@ const getPropositions = (n, { answer }) => {
|
|
|
11
11
|
propWhile(propositions, n, () => {
|
|
12
12
|
tryToAddWrongProp(propositions, random(mainTrigoValues).angle.toTex());
|
|
13
13
|
});
|
|
14
|
-
throw Error("correction not over");
|
|
15
14
|
return shuffleProps(propositions, n);
|
|
16
15
|
};
|
|
17
16
|
const getAnswer = (identifiers) => {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
type Identifiers = {
|
|
3
|
+
associateType: number;
|
|
4
|
+
startPoint: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const findAssociateAnglePointOnTrigoCircle: Exercise<Identifiers>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=findAssociateAnglePointOnTrigoCircle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findAssociateAnglePointOnTrigoCircle.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/findAssociateAnglePointOnTrigoCircle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAuKF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,WAAW,CAqBtE,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
4
|
+
import { opposite } from "../../../../tree/nodes/functions/oppositeNode.js";
|
|
5
|
+
import { PiNode } from "../../../../tree/nodes/numbers/piNode.js";
|
|
6
|
+
import { add } from "../../../../tree/nodes/operators/addNode.js";
|
|
7
|
+
import { substract } from "../../../../tree/nodes/operators/substractNode.js";
|
|
8
|
+
import { random } from "../../../../utils/alea/random.js";
|
|
9
|
+
import { doWhile } from "../../../../utils/doWhile.js";
|
|
10
|
+
const points = [
|
|
11
|
+
"I",
|
|
12
|
+
"A",
|
|
13
|
+
"B",
|
|
14
|
+
"C",
|
|
15
|
+
"D",
|
|
16
|
+
"E",
|
|
17
|
+
"J",
|
|
18
|
+
"F",
|
|
19
|
+
"G",
|
|
20
|
+
"H",
|
|
21
|
+
"K",
|
|
22
|
+
"L",
|
|
23
|
+
"M",
|
|
24
|
+
"N",
|
|
25
|
+
"P",
|
|
26
|
+
"Q",
|
|
27
|
+
"R",
|
|
28
|
+
"S",
|
|
29
|
+
"T",
|
|
30
|
+
"U",
|
|
31
|
+
"V",
|
|
32
|
+
"W",
|
|
33
|
+
"X",
|
|
34
|
+
"Y",
|
|
35
|
+
];
|
|
36
|
+
const getPropositions = (n, { answer, startPoint }) => {
|
|
37
|
+
const propositions = [];
|
|
38
|
+
addValidProp(propositions, answer);
|
|
39
|
+
tryToAddWrongProp(propositions, getAnswer({
|
|
40
|
+
associateType: 0,
|
|
41
|
+
startPoint,
|
|
42
|
+
}));
|
|
43
|
+
tryToAddWrongProp(propositions, getAnswer({
|
|
44
|
+
associateType: 1,
|
|
45
|
+
startPoint,
|
|
46
|
+
}));
|
|
47
|
+
tryToAddWrongProp(propositions, getAnswer({
|
|
48
|
+
associateType: 2,
|
|
49
|
+
startPoint,
|
|
50
|
+
}));
|
|
51
|
+
propWhile(propositions, n, () => {
|
|
52
|
+
tryToAddWrongProp(propositions, random(points));
|
|
53
|
+
});
|
|
54
|
+
return shuffleProps(propositions, n);
|
|
55
|
+
};
|
|
56
|
+
const getAnswer = (identifiers) => {
|
|
57
|
+
//pi+a :index +12
|
|
58
|
+
//-a : length - index
|
|
59
|
+
const { associateType, startPoint } = identifiers;
|
|
60
|
+
const startIndex = points.indexOf(startPoint);
|
|
61
|
+
switch (associateType) {
|
|
62
|
+
case 0:
|
|
63
|
+
return points[points.length - startIndex];
|
|
64
|
+
case 1:
|
|
65
|
+
return points[(startIndex + 12) % points.length];
|
|
66
|
+
case 2:
|
|
67
|
+
default:
|
|
68
|
+
if (startIndex <= 12)
|
|
69
|
+
return points[12 - startIndex];
|
|
70
|
+
else
|
|
71
|
+
return points[12 + (points.length - startIndex)];
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const getAssociateAngle = (identifiers) => {
|
|
75
|
+
const { associateType } = identifiers;
|
|
76
|
+
switch (associateType) {
|
|
77
|
+
case 0:
|
|
78
|
+
return opposite("a");
|
|
79
|
+
case 1:
|
|
80
|
+
return add(PiNode, "a");
|
|
81
|
+
case 2:
|
|
82
|
+
default:
|
|
83
|
+
return substract(PiNode, "a");
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const getInstruction = (identifiers) => {
|
|
87
|
+
const { startPoint } = identifiers;
|
|
88
|
+
return `On considère un réel $a$, dont le point-image est $${startPoint}$ sur le cercle trigonométrique ci-dessous.
|
|
89
|
+
|
|
90
|
+
Quel est le point-image de $${getAssociateAngle(identifiers).toTex()}$ ?
|
|
91
|
+
|
|
92
|
+
`;
|
|
93
|
+
};
|
|
94
|
+
const getHint = (identifiers) => {
|
|
95
|
+
const { associateType } = identifiers;
|
|
96
|
+
switch (associateType) {
|
|
97
|
+
case 0:
|
|
98
|
+
return `Sur le cercle trigonométrique, le point image de $-a$ est le symétrique du point image de $a$ par rapport à l'axe des abscisses.`;
|
|
99
|
+
case 1:
|
|
100
|
+
return `Sur le cercle trigonométrique, le point image de $\\pi+a$ est le symétrique du point image de $a$ par rapport à l'origine du repère.`;
|
|
101
|
+
case 2:
|
|
102
|
+
default:
|
|
103
|
+
return `Sur le cercle trigonométrique, le point image de $\\pi-a$ est le symétrique du point image de $a$ par rapport à l'axe des ordonnées.`;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const getCorrection = (identifiers) => {
|
|
107
|
+
const { associateType } = identifiers;
|
|
108
|
+
switch (associateType) {
|
|
109
|
+
case 0:
|
|
110
|
+
return `Sur le cercle trigonométrique, le point image de $-a$ est le symétrique du point image de $a$ par rapport à l'axe des abscisses.
|
|
111
|
+
|
|
112
|
+
Le point-image associé à l'angle $${getAssociateAngle(identifiers).toTex()}$ est donc $${getAnswer(identifiers)}$.`;
|
|
113
|
+
case 1:
|
|
114
|
+
return `Sur le cercle trigonométrique, le point image de $\\pi+a$ est le symétrique du point image de $a$ par rapport à l'origine du repère.
|
|
115
|
+
|
|
116
|
+
Le point-image associé à l'angle $${getAssociateAngle(identifiers).toTex()}$ est donc $${getAnswer(identifiers)}$.`;
|
|
117
|
+
case 2:
|
|
118
|
+
default:
|
|
119
|
+
return `Sur le cercle trigonométrique, le point image de $\\pi-a$ est le symétrique du point image de $a$ par rapport à l'axe des ordonnées.
|
|
120
|
+
|
|
121
|
+
Le point-image associé à l'angle $${getAssociateAngle(identifiers).toTex()}$ est donc $${getAnswer(identifiers)}$.`;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
const getFindAssociateAnglePointOnTrigoCircleQuestion = () => {
|
|
125
|
+
const startPoint = doWhile(() => random(points), (p) => ["I", "J", "M", "T"].includes(p));
|
|
126
|
+
const identifiers = {
|
|
127
|
+
associateType: randint(0, 3),
|
|
128
|
+
startPoint,
|
|
129
|
+
};
|
|
130
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
131
|
+
};
|
|
132
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
133
|
+
return {
|
|
134
|
+
answer: getAnswer(identifiers),
|
|
135
|
+
instruction: getInstruction(identifiers),
|
|
136
|
+
answerFormat: "tex",
|
|
137
|
+
identifiers,
|
|
138
|
+
hint: getHint(identifiers),
|
|
139
|
+
correction: getCorrection(identifiers),
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
export const findAssociateAnglePointOnTrigoCircle = {
|
|
143
|
+
id: "findAssociateAnglePointOnTrigoCircle",
|
|
144
|
+
label: "Repérer le point-image d'un angle associé à un autre sur le cercle trigonométrique",
|
|
145
|
+
isSingleStep: true,
|
|
146
|
+
generator: (nb, opts) => getDistinctQuestions(() => getFindAssociateAnglePointOnTrigoCircleQuestion(opts), nb),
|
|
147
|
+
qcmTimer: 60,
|
|
148
|
+
freeTimer: 60,
|
|
149
|
+
getPropositions,
|
|
150
|
+
subject: "Mathématiques",
|
|
151
|
+
getInstruction,
|
|
152
|
+
getHint,
|
|
153
|
+
getCorrection,
|
|
154
|
+
getAnswer,
|
|
155
|
+
getQuestionFromIdentifiers,
|
|
156
|
+
hasHintAndCorrection: true,
|
|
157
|
+
answerType: "QCU",
|
|
158
|
+
};
|
|
@@ -4,4 +4,6 @@ export * from "./mainRemarkableValues.js";
|
|
|
4
4
|
export * from "./remarkableValues.js";
|
|
5
5
|
export * from "./areReelsOnTheSameTrigoCirclePoint.js";
|
|
6
6
|
export * from "./associateReelToTrigoCirclePoint.js";
|
|
7
|
+
export * from "./placeAssociateAngleOnCircle.js";
|
|
8
|
+
export * from "./findAssociateAnglePointOnTrigoCircle.js";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAErD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2CAA2C,CAAC"}
|
|
@@ -5,3 +5,5 @@ export * from "./remarkableValues.js";
|
|
|
5
5
|
export * from "./areReelsOnTheSameTrigoCirclePoint.js";
|
|
6
6
|
export * from "./associateReelToTrigoCirclePoint.js";
|
|
7
7
|
// export * from "./findAngleFromCosAndSin.js";
|
|
8
|
+
export * from "./placeAssociateAngleOnCircle.js";
|
|
9
|
+
export * from "./findAssociateAnglePointOnTrigoCircle.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mainAngleMeasure.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/mainAngleMeasure.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"mainAngleMeasure.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/mainAngleMeasure.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAkGF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAelD,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { addValidProp, shuffleProps, tryToAddWrongProp,
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp,
|
|
2
|
+
// GetCorrection,
|
|
3
|
+
// GetHint,
|
|
4
|
+
} from "../../../../exercises/exercise.js";
|
|
2
5
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
6
|
import { mainTrigoValues, } from "../../../../math/trigonometry/remarkableValues.js";
|
|
4
7
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
@@ -43,9 +46,10 @@ $$
|
|
|
43
46
|
};
|
|
44
47
|
// const getHint: GetHint<Identifiers> = (identifiers) => {
|
|
45
48
|
// const angle = NodeConstructor.fromIdentifiers(identifiers.nodeIds);
|
|
46
|
-
// return `La mesure principale d'un angle en radian est sa valeur appartenant à l'intervalle $]-\\pi; \\pi]$.
|
|
49
|
+
// return `La mesure principale d'un angle en radian est sa valeur appartenant à l'intervalle $]-\\pi; \\pi]$.
|
|
50
|
+
// Il faut donc ajouter (ou retirer) $2\\pi$ à $${angle.toTex()}$ jusqu'à ce que le résultat soit dans cet intervalle.`;
|
|
47
51
|
// };
|
|
48
|
-
// const getCorrection: GetCorrection<Identifiers> = (
|
|
52
|
+
// const getCorrection: GetCorrection<Identifiers> = () => {
|
|
49
53
|
// return `a`;
|
|
50
54
|
// };
|
|
51
55
|
const getKeys = () => {
|
|
@@ -97,4 +101,5 @@ export const mainAngleMeasure = {
|
|
|
97
101
|
isAnswerValid,
|
|
98
102
|
subject: "Mathématiques",
|
|
99
103
|
getQuestionFromIdentifiers,
|
|
104
|
+
// hasHintAndCorrection: true,
|
|
100
105
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
type Identifiers = {
|
|
3
|
+
degree: number;
|
|
4
|
+
associateType: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const placeAssociateAngleOnCircle: Exercise<Identifiers>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=placeAssociateAngleOnCircle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeAssociateAngleOnCircle.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/circle/placeAssociateAngleOnCircle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAerC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AA4LF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,WAAW,CAqB7D,CAAC"}
|