math-exercises 3.0.149 → 3.0.151
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/calcul/arithmetics/primeNumbersAffirmations.js +1 -1
- package/lib/exercises/math/calculLitteral/equation/equa1.d.ts +4 -1
- package/lib/exercises/math/calculLitteral/equation/equa1.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/equa1.js +27 -7
- package/lib/exercises/math/calculLitteral/equation/equa2.d.ts +1 -0
- package/lib/exercises/math/calculLitteral/equation/equa2.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/equa2.js +18 -1
- package/lib/exercises/math/calculLitteral/equation/equa3.d.ts +4 -1
- package/lib/exercises/math/calculLitteral/equation/equa3.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/equa3.js +26 -6
- package/lib/exercises/math/calculLitteral/equation/equa4.d.ts +4 -1
- package/lib/exercises/math/calculLitteral/equation/equa4.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/equa4.js +27 -7
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa1.d.ts +14 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa1.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa1.js +129 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa2.d.ts +18 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa2.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa2.js +167 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa3.d.ts +15 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa3.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa3.js +129 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa4.d.ts +16 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa4.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/equa4.js +124 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType1.d.ts +9 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType1.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType1.js +107 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType2.d.ts +10 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType2.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType2.js +108 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType3.d.ts +11 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType3.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/firstDegreeEquationIntType3.js +104 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/index.d.ts +8 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/index.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/equation/firstDegree/index.js +7 -0
- package/lib/exercises/math/calculLitteral/equation/index.d.ts +1 -7
- package/lib/exercises/math/calculLitteral/equation/index.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/index.js +1 -7
- package/lib/exercises/math/dataRepresentations/histogram/etendueHistogram.d.ts +8 -0
- package/lib/exercises/math/dataRepresentations/histogram/etendueHistogram.d.ts.map +1 -0
- package/lib/exercises/math/dataRepresentations/histogram/etendueHistogram.js +175 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramCommenting.d.ts +9 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramCommenting.d.ts.map +1 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramCommenting.js +250 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramFillDataTableFromHistogramData.d.ts +9 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramFillDataTableFromHistogramData.d.ts.map +1 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramFillDataTableFromHistogramData.js +173 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramIsSameData.d.ts +14 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramIsSameData.d.ts.map +1 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramIsSameData.js +232 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramReading.d.ts +9 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramReading.d.ts.map +1 -0
- package/lib/exercises/math/dataRepresentations/histogram/histogramReading.js +163 -0
- package/lib/exercises/math/dataRepresentations/histogram/index.d.ts +6 -0
- package/lib/exercises/math/dataRepresentations/histogram/index.d.ts.map +1 -0
- package/lib/exercises/math/dataRepresentations/histogram/index.js +5 -0
- package/lib/exercises/math/dataRepresentations/index.d.ts +1 -1
- package/lib/exercises/math/dataRepresentations/index.d.ts.map +1 -1
- package/lib/exercises/math/dataRepresentations/index.js +1 -1
- package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.d.ts +4 -1
- package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.js +19 -4
- package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts +1 -0
- package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/leadingCoefficient.js +13 -1
- package/lib/exercises/math/functions/affines/recognizeAffineGraph.d.ts +4 -1
- package/lib/exercises/math/functions/affines/recognizeAffineGraph.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/recognizeAffineGraph.js +19 -4
- package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.d.ts +4 -1
- package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.d.ts.map +1 -1
- package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.js +18 -3
- package/lib/exercises/math/geometry/triangles/index.d.ts +1 -0
- package/lib/exercises/math/geometry/triangles/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/triangles/index.js +1 -0
- package/lib/exercises/math/geometry/triangles/similar/index.d.ts +4 -0
- package/lib/exercises/math/geometry/triangles/similar/index.d.ts.map +1 -0
- package/lib/exercises/math/geometry/triangles/similar/index.js +3 -0
- package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.d.ts +10 -0
- package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.d.ts.map +1 -0
- package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.js +122 -0
- package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWrtSideLengths.d.ts +15 -0
- package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWrtSideLengths.d.ts.map +1 -0
- package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWrtSideLengths.js +351 -0
- package/lib/exercises/math/geometry/triangles/similar/placeSegmentsOfSimilarTriangle.d.ts +11 -0
- package/lib/exercises/math/geometry/triangles/similar/placeSegmentsOfSimilarTriangle.d.ts.map +1 -0
- package/lib/exercises/math/geometry/triangles/similar/placeSegmentsOfSimilarTriangle.js +311 -0
- package/lib/exercises/math/probaStat/basicProbas/calculateProbaFromProbaLaw.d.ts +10 -0
- package/lib/exercises/math/probaStat/basicProbas/calculateProbaFromProbaLaw.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/basicProbas/calculateProbaFromProbaLaw.js +128 -0
- package/lib/exercises/math/probaStat/basicProbas/findEffectifFromProba.d.ts +9 -0
- package/lib/exercises/math/probaStat/basicProbas/findEffectifFromProba.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/basicProbas/findEffectifFromProba.js +109 -0
- package/lib/exercises/math/probaStat/basicProbas/index.d.ts +2 -0
- package/lib/exercises/math/probaStat/basicProbas/index.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/basicProbas/index.js +2 -0
- package/lib/exercises/math/scratch/index.d.ts +13 -0
- package/lib/exercises/math/scratch/index.d.ts.map +1 -1
- package/lib/exercises/math/scratch/index.js +14 -0
- package/lib/exercises/math/scratch/scratchCond1.d.ts +25 -0
- package/lib/exercises/math/scratch/scratchCond1.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchCond1.js +290 -0
- package/lib/exercises/math/scratch/scratchFunction1.d.ts +9 -0
- package/lib/exercises/math/scratch/scratchFunction1.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchFunction1.js +199 -0
- package/lib/exercises/math/scratch/scratchLoop1.d.ts +10 -0
- package/lib/exercises/math/scratch/scratchLoop1.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchLoop1.js +207 -0
- package/lib/exercises/math/scratch/scratchLoopCond1.d.ts +12 -0
- package/lib/exercises/math/scratch/scratchLoopCond1.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchLoopCond1.js +236 -0
- package/lib/exercises/math/scratch/scratchLoopCond2.d.ts +14 -0
- package/lib/exercises/math/scratch/scratchLoopCond2.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchLoopCond2.js +219 -0
- package/lib/exercises/math/scratch/scratchOperations1.d.ts +8 -0
- package/lib/exercises/math/scratch/scratchOperations1.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchOperations1.js +245 -0
- package/lib/exercises/math/scratch/scratchOperations2.d.ts +10 -0
- package/lib/exercises/math/scratch/scratchOperations2.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchOperations2.js +324 -0
- package/lib/exercises/math/scratch/scratchPrintXY.d.ts +9 -0
- package/lib/exercises/math/scratch/scratchPrintXY.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchPrintXY.js +194 -0
- package/lib/exercises/math/scratch/scratchStringLoop.d.ts +10 -0
- package/lib/exercises/math/scratch/scratchStringLoop.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchStringLoop.js +192 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond.d.ts +12 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond.js +270 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond2.d.ts +12 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond2.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond2.js +273 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond3.d.ts +12 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond3.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchStringLoopCond3.js +275 -0
- package/lib/exercises/math/scratch/scratchSwapUsingTmp.d.ts +10 -0
- package/lib/exercises/math/scratch/scratchSwapUsingTmp.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchSwapUsingTmp.js +199 -0
- package/lib/exercises/math/scratch/scratchVarWaterfall.d.ts +10 -0
- package/lib/exercises/math/scratch/scratchVarWaterfall.d.ts.map +1 -0
- package/lib/exercises/math/scratch/scratchVarWaterfall.js +371 -0
- package/lib/exercises/math/spaceGeometry/index.d.ts +1 -0
- package/lib/exercises/math/spaceGeometry/index.d.ts.map +1 -1
- package/lib/exercises/math/spaceGeometry/index.js +1 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfConeSection.d.ts +14 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfConeSection.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfConeSection.js +439 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfCylinderSection.d.ts +14 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfCylinderSection.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfCylinderSection.js +548 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfRectangularPrismSection.d.ts +11 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfRectangularPrismSection.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfRectangularPrismSection.js +360 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfSphereSection.d.ts +9 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfSphereSection.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/areaOfSphereSection.js +272 -0
- package/lib/exercises/math/spaceGeometry/sections/index.d.ts +9 -0
- package/lib/exercises/math/spaceGeometry/sections/index.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/index.js +8 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCone.d.ts +11 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCone.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCone.js +266 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCylinder.d.ts +11 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCylinder.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfCylinder.js +236 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfRectangularPrism.d.ts +7 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfRectangularPrism.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfRectangularPrism.js +92 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfSphereOrBall.d.ts +9 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfSphereOrBall.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/sections/recognizeSectionsOfSphereOrBall.js +236 -0
- package/lib/exercises/pc/mathExosInPC.d.ts +4 -4
- package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
- package/lib/exercises/pc/mathExosInPC.js +4 -4
- package/lib/index.d.ts +239 -45
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/spacePoint.d.ts +10 -0
- package/lib/math/geometry/spacePoint.d.ts.map +1 -1
- package/lib/math/geometry/spacePoint.js +13 -0
- package/lib/tree/nodes/operators/substractNode.d.ts +1 -0
- package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/substractNode.js +6 -0
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import { randTupleInt } from "../../../../math/utils/random/randTupleInt.js";
|
|
|
5
5
|
const rightAffirmations = [
|
|
6
6
|
"Tout entier naturel est diviseur de lui-même.",
|
|
7
7
|
"Il y a une infinité de nombres premiers.",
|
|
8
|
-
"Tout nombre entier admet au moins deux diviseurs.",
|
|
8
|
+
"Tout nombre entier, sauf $1$, admet au moins deux diviseurs.",
|
|
9
9
|
"$1$ est diviseur de tous les nombres entiers.",
|
|
10
10
|
"$2$ est le seul nombre premier pair.",
|
|
11
11
|
"Un nombre premier n'a que deux diviseurs : $1$ et lui-même.",
|
|
@@ -6,6 +6,9 @@ type Identifiers = {
|
|
|
6
6
|
a: number;
|
|
7
7
|
b: number;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
type Options = {
|
|
10
|
+
solutionFormat: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const equationType1Exercise: Exercise<Identifiers, Options>;
|
|
10
13
|
export {};
|
|
11
14
|
//# sourceMappingURL=equa1.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equa1.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"equa1.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAYrC;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqHF,KAAK,OAAO,GAAG;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAYF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoBhE,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
1
|
+
import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
-
import { equationKeys } from "../../../../exercises/utils/keys/equationKeys.js";
|
|
4
3
|
import { Affine } from "../../../../math/polynomials/affine.js";
|
|
5
4
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
6
5
|
import { NumberNode } from "../../../../tree/nodes/numbers/numberNode.js";
|
|
@@ -9,6 +8,7 @@ import { EqualNode } from "../../../../tree/nodes/equations/equalNode.js";
|
|
|
9
8
|
import { alignTex } from "../../../../utils/latex/alignTex.js";
|
|
10
9
|
import { AddNode } from "../../../../tree/nodes/operators/addNode.js";
|
|
11
10
|
import { equationVEA } from "../../../../exercises/vea/equationVEA.js";
|
|
11
|
+
import { equationKeys } from "../../../../exercises/utils/keys/equationKeys.js";
|
|
12
12
|
const getInstruction = (identifiers) => {
|
|
13
13
|
const { a, b } = identifiers;
|
|
14
14
|
const affine = new Affine(1, a).toTree();
|
|
@@ -54,18 +54,27 @@ const getStartStatement = (identifiers) => {
|
|
|
54
54
|
const statementTree = tree.toTex();
|
|
55
55
|
return statementTree;
|
|
56
56
|
};
|
|
57
|
-
const getEquationType1ExerciseQuestion = () => {
|
|
57
|
+
const getEquationType1ExerciseQuestion = (opts) => {
|
|
58
58
|
const b = randint(-10, 11);
|
|
59
59
|
const a = randint(-10, 11, [0]);
|
|
60
60
|
const identifiers = { a, b };
|
|
61
|
-
return getQuestionFromIdentifiers(identifiers);
|
|
61
|
+
return getQuestionFromIdentifiers(identifiers, opts);
|
|
62
|
+
};
|
|
63
|
+
const getKeys = (_identifiers, opts) => {
|
|
64
|
+
if (opts?.solutionFormat === "Ensemble") {
|
|
65
|
+
return ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"];
|
|
66
|
+
}
|
|
67
|
+
if (opts?.solutionFormat === "$x=\\ldots$") {
|
|
68
|
+
return ["x", "equal"];
|
|
69
|
+
}
|
|
70
|
+
return equationKeys;
|
|
62
71
|
};
|
|
63
|
-
const getQuestionFromIdentifiers = (identifiers) => {
|
|
72
|
+
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
64
73
|
const question = {
|
|
65
74
|
instruction: getInstruction(identifiers),
|
|
66
75
|
startStatement: getStartStatement(identifiers),
|
|
67
76
|
answer: getAnswer(identifiers),
|
|
68
|
-
keys:
|
|
77
|
+
keys: getKeys(identifiers, opts),
|
|
69
78
|
answerFormat: "tex",
|
|
70
79
|
identifiers,
|
|
71
80
|
hint: getHint(identifiers),
|
|
@@ -88,12 +97,22 @@ const isAnswerValid = (ans, { a, b }) => {
|
|
|
88
97
|
const solution = (b - a).toTree().toTex();
|
|
89
98
|
return equationVEA(ans, solution);
|
|
90
99
|
};
|
|
100
|
+
const options = [
|
|
101
|
+
{
|
|
102
|
+
id: "solutionFormat",
|
|
103
|
+
label: "Donner la solution sous la forme :",
|
|
104
|
+
target: GeneratorOptionTarget.generation,
|
|
105
|
+
type: GeneratorOptionType.select,
|
|
106
|
+
values: ["Ensemble", "$x=\\ldots$", "Permettre les deux"],
|
|
107
|
+
defaultValue: "Permettre les deux",
|
|
108
|
+
},
|
|
109
|
+
];
|
|
91
110
|
export const equationType1Exercise = {
|
|
92
111
|
id: "equa1",
|
|
93
112
|
connector: "\\iff",
|
|
94
113
|
label: "Résoudre une équation du type $x+a = b$",
|
|
95
114
|
isSingleStep: true,
|
|
96
|
-
generator: (nb) => getDistinctQuestions(getEquationType1ExerciseQuestion, nb),
|
|
115
|
+
generator: (nb, opts) => getDistinctQuestions(() => getEquationType1ExerciseQuestion(opts), nb),
|
|
97
116
|
getPropositions,
|
|
98
117
|
qcmTimer: 60,
|
|
99
118
|
freeTimer: 60,
|
|
@@ -106,4 +125,5 @@ export const equationType1Exercise = {
|
|
|
106
125
|
getAnswer,
|
|
107
126
|
getStartStatement,
|
|
108
127
|
getQuestionFromIdentifiers,
|
|
128
|
+
options,
|
|
109
129
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equa2.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"equa2.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAarC,OAAO,EAEL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAM7C;;GAEG;AAGH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAuJF,KAAK,OAAO,GAAG;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAqBF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoBhE,CAAC"}
|
|
@@ -85,12 +85,21 @@ const getEquationType2ExerciseQuestion = (opts) => {
|
|
|
85
85
|
};
|
|
86
86
|
return getQuestionFromIdentifiers(identifiers, opts);
|
|
87
87
|
};
|
|
88
|
+
const getKeys = (_identifiers, opts) => {
|
|
89
|
+
if (opts?.solutionFormat === "Ensemble") {
|
|
90
|
+
return ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"];
|
|
91
|
+
}
|
|
92
|
+
if (opts?.solutionFormat === "$x=\\ldots$") {
|
|
93
|
+
return ["x", "equal"];
|
|
94
|
+
}
|
|
95
|
+
return equationKeys;
|
|
96
|
+
};
|
|
88
97
|
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
89
98
|
const question = {
|
|
90
99
|
instruction: getInstruction(identifiers, opts),
|
|
91
100
|
startStatement: getStartStatement(identifiers, opts),
|
|
92
101
|
answer: getAnswer(identifiers, opts),
|
|
93
|
-
keys:
|
|
102
|
+
keys: getKeys(identifiers, opts),
|
|
94
103
|
answerFormat: "tex",
|
|
95
104
|
identifiers,
|
|
96
105
|
hint: getHint(identifiers, opts),
|
|
@@ -127,6 +136,14 @@ const options = [
|
|
|
127
136
|
defaultValue: ["Entier"],
|
|
128
137
|
values: ["Entier", "Rationnel"],
|
|
129
138
|
},
|
|
139
|
+
{
|
|
140
|
+
id: "solutionFormat",
|
|
141
|
+
label: "Donner la solution sous la forme :",
|
|
142
|
+
target: GeneratorOptionTarget.generation,
|
|
143
|
+
type: GeneratorOptionType.select,
|
|
144
|
+
values: ["Ensemble", "$x=\\ldots$", "Permettre les deux"],
|
|
145
|
+
defaultValue: "Permettre les deux",
|
|
146
|
+
},
|
|
130
147
|
];
|
|
131
148
|
export const equationType2Exercise = {
|
|
132
149
|
id: "equa2",
|
|
@@ -7,6 +7,9 @@ type Identifiers = {
|
|
|
7
7
|
b: number;
|
|
8
8
|
c: number;
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
type Options = {
|
|
11
|
+
solutionFormat: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const equationType3Exercise: Exercise<Identifiers, Options>;
|
|
11
14
|
export {};
|
|
12
15
|
//# sourceMappingURL=equa3.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equa3.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa3.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"equa3.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa3.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAerC;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAmHF,KAAK,OAAO,GAAG;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAYF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBhE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
1
|
+
import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
3
|
import { equationKeys } from "../../../../exercises/utils/keys/equationKeys.js";
|
|
4
4
|
import { Rational } from "../../../../math/numbers/rationals/rational.js";
|
|
@@ -53,21 +53,30 @@ const getAnswer = (identifiers) => {
|
|
|
53
53
|
const answer = answerTree.toTex();
|
|
54
54
|
return answer;
|
|
55
55
|
};
|
|
56
|
-
const getEquationType3ExerciseQuestion = () => {
|
|
56
|
+
const getEquationType3ExerciseQuestion = (opts) => {
|
|
57
57
|
const b = randint(-10, 11, [0]);
|
|
58
58
|
const a = randint(-10, 11, [0, 1]);
|
|
59
59
|
const c = randint(-10, 11);
|
|
60
60
|
const identifiers = { a, b, c };
|
|
61
|
-
return getQuestionFromIdentifiers(identifiers);
|
|
61
|
+
return getQuestionFromIdentifiers(identifiers, opts);
|
|
62
62
|
};
|
|
63
|
-
const
|
|
63
|
+
const getKeys = (_identifiers, opts) => {
|
|
64
|
+
if (opts?.solutionFormat === "Ensemble") {
|
|
65
|
+
return ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"];
|
|
66
|
+
}
|
|
67
|
+
if (opts?.solutionFormat === "$x=\\ldots$") {
|
|
68
|
+
return ["x", "equal"];
|
|
69
|
+
}
|
|
70
|
+
return equationKeys;
|
|
71
|
+
};
|
|
72
|
+
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
64
73
|
const question = {
|
|
65
74
|
instruction: getInstruction(identifiers),
|
|
66
75
|
hint: getHint(identifiers),
|
|
67
76
|
correction: getCorrection(identifiers),
|
|
68
77
|
startStatement: getStartStatement(identifiers),
|
|
69
78
|
answer: getAnswer(identifiers),
|
|
70
|
-
keys:
|
|
79
|
+
keys: getKeys(identifiers, opts),
|
|
71
80
|
answerFormat: "tex",
|
|
72
81
|
identifiers,
|
|
73
82
|
};
|
|
@@ -88,12 +97,22 @@ const isAnswerValid = (ans, { a, b, c }) => {
|
|
|
88
97
|
.toTex();
|
|
89
98
|
return equationVEA(ans, solution);
|
|
90
99
|
};
|
|
100
|
+
const options = [
|
|
101
|
+
{
|
|
102
|
+
id: "solutionFormat",
|
|
103
|
+
label: "Donner la solution sous la forme :",
|
|
104
|
+
target: GeneratorOptionTarget.generation,
|
|
105
|
+
type: GeneratorOptionType.select,
|
|
106
|
+
values: ["Ensemble", "$x=\\ldots$", "Permettre les deux"],
|
|
107
|
+
defaultValue: "Permettre les deux",
|
|
108
|
+
},
|
|
109
|
+
];
|
|
91
110
|
export const equationType3Exercise = {
|
|
92
111
|
id: "equa3",
|
|
93
112
|
connector: "\\iff",
|
|
94
113
|
label: "Résoudre une équation du type $ax+b=c$",
|
|
95
114
|
isSingleStep: false,
|
|
96
|
-
generator: (nb) => getDistinctQuestions(getEquationType3ExerciseQuestion, nb),
|
|
115
|
+
generator: (nb, opts) => getDistinctQuestions(() => getEquationType3ExerciseQuestion(opts), nb),
|
|
97
116
|
qcmTimer: 60,
|
|
98
117
|
freeTimer: 60,
|
|
99
118
|
getPropositions,
|
|
@@ -106,4 +125,5 @@ export const equationType3Exercise = {
|
|
|
106
125
|
getHint,
|
|
107
126
|
getStartStatement,
|
|
108
127
|
getQuestionFromIdentifiers,
|
|
128
|
+
options,
|
|
109
129
|
};
|
|
@@ -8,6 +8,9 @@ type Identifiers = {
|
|
|
8
8
|
c: number;
|
|
9
9
|
d: number;
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
type Options = {
|
|
12
|
+
solutionFormat: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const equationType4Exercise: Exercise<Identifiers, Options>;
|
|
12
15
|
export {};
|
|
13
16
|
//# sourceMappingURL=equa4.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equa4.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa4.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"equa4.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equa4.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAerC;;GAEG;AAEH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAgHF,KAAK,OAAO,GAAG;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAaF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAmBhE,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
1
|
+
import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
-
import { equationKeys } from "../../../../exercises/utils/keys/equationKeys.js";
|
|
4
3
|
import { Rational } from "../../../../math/numbers/rationals/rational.js";
|
|
5
4
|
import { Affine } from "../../../../math/polynomials/affine.js";
|
|
6
5
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
@@ -9,6 +8,7 @@ import { VariableNode } from "../../../../tree/nodes/variables/variableNode.js";
|
|
|
9
8
|
import { shuffle } from "../../../../utils/alea/shuffle.js";
|
|
10
9
|
import { equationVEA } from "../../../../exercises/vea/equationVEA.js";
|
|
11
10
|
import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
|
|
11
|
+
import { equationKeys } from "../../../../exercises/utils/keys/equationKeys.js";
|
|
12
12
|
const getStatementNode = (identifiers) => {
|
|
13
13
|
const { a, b, c, d } = identifiers;
|
|
14
14
|
const affines = [new Affine(a, b), new Affine(c, d)];
|
|
@@ -32,7 +32,7 @@ const getAnswer = (identifiers) => {
|
|
|
32
32
|
const answer = answerTree.toTex();
|
|
33
33
|
return answer;
|
|
34
34
|
};
|
|
35
|
-
const getEquationType4ExerciseQuestion = () => {
|
|
35
|
+
const getEquationType4ExerciseQuestion = (opts) => {
|
|
36
36
|
const a = randint(-10, 11, [0, 1]);
|
|
37
37
|
const b = randint(-10, 11, [0]);
|
|
38
38
|
const c = randint(-10, 11, [0, a]);
|
|
@@ -43,14 +43,23 @@ const getEquationType4ExerciseQuestion = () => {
|
|
|
43
43
|
c,
|
|
44
44
|
d,
|
|
45
45
|
};
|
|
46
|
-
return getQuestionFromIdentifiers(identifiers);
|
|
46
|
+
return getQuestionFromIdentifiers(identifiers, opts);
|
|
47
|
+
};
|
|
48
|
+
const getKeys = (_identifiers, opts) => {
|
|
49
|
+
if (opts?.solutionFormat === "Ensemble") {
|
|
50
|
+
return ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"];
|
|
51
|
+
}
|
|
52
|
+
if (opts?.solutionFormat === "$x=\\ldots$") {
|
|
53
|
+
return ["x", "equal"];
|
|
54
|
+
}
|
|
55
|
+
return equationKeys;
|
|
47
56
|
};
|
|
48
|
-
const getQuestionFromIdentifiers = (identifiers) => {
|
|
57
|
+
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
49
58
|
const question = {
|
|
50
59
|
instruction: getInstruction(identifiers),
|
|
51
60
|
startStatement: getStartStatement(identifiers),
|
|
52
61
|
answer: getAnswer(identifiers),
|
|
53
|
-
keys:
|
|
62
|
+
keys: getKeys(identifiers, opts),
|
|
54
63
|
answerFormat: "tex",
|
|
55
64
|
identifiers,
|
|
56
65
|
hint: getHint(identifiers),
|
|
@@ -84,12 +93,22 @@ const isAnswerValid = (ans, { a, b, c, d }) => {
|
|
|
84
93
|
.toTex();
|
|
85
94
|
return equationVEA(ans, solution);
|
|
86
95
|
};
|
|
96
|
+
const options = [
|
|
97
|
+
{
|
|
98
|
+
id: "solutionFormat",
|
|
99
|
+
label: "Donner la solution sous la forme :",
|
|
100
|
+
target: GeneratorOptionTarget.generation,
|
|
101
|
+
type: GeneratorOptionType.select,
|
|
102
|
+
values: ["Ensemble", "$x=\\ldots$", "Permettre les deux"],
|
|
103
|
+
defaultValue: "Permettre les deux",
|
|
104
|
+
},
|
|
105
|
+
];
|
|
87
106
|
export const equationType4Exercise = {
|
|
88
107
|
id: "equa4",
|
|
89
108
|
connector: "\\iff",
|
|
90
109
|
label: "Résoudre une équation du type $ax+b=cx+d$",
|
|
91
110
|
isSingleStep: false,
|
|
92
|
-
generator: (nb) => getDistinctQuestions(getEquationType4ExerciseQuestion, nb),
|
|
111
|
+
generator: (nb, opts) => getDistinctQuestions(() => getEquationType4ExerciseQuestion(opts), nb),
|
|
93
112
|
qcmTimer: 60,
|
|
94
113
|
freeTimer: 60,
|
|
95
114
|
getPropositions,
|
|
@@ -101,4 +120,5 @@ export const equationType4Exercise = {
|
|
|
101
120
|
getHint,
|
|
102
121
|
getCorrection,
|
|
103
122
|
hasHintAndCorrection: true,
|
|
123
|
+
options,
|
|
104
124
|
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Exercise } from "../../../../../exercises/exercise.js";
|
|
2
|
+
/**
|
|
3
|
+
* type x+a=b
|
|
4
|
+
*/
|
|
5
|
+
type Identifiers = {
|
|
6
|
+
a: number;
|
|
7
|
+
b: number;
|
|
8
|
+
};
|
|
9
|
+
type Options = {
|
|
10
|
+
solutionFormat: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const equationType1Exercise: Exercise<Identifiers, Options>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=equa1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equa1.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/calculLitteral/equation/firstDegree/equa1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAYrC;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqHF,KAAK,OAAO,GAAG;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAYF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoBhE,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, tryToAddWrongProp, } from "../../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { Affine } from "../../../../../math/polynomials/affine.js";
|
|
4
|
+
import { randint } from "../../../../../math/utils/random/randint.js";
|
|
5
|
+
import { NumberNode } from "../../../../../tree/nodes/numbers/numberNode.js";
|
|
6
|
+
import { shuffle } from "../../../../../utils/alea/shuffle.js";
|
|
7
|
+
import { EqualNode } from "../../../../../tree/nodes/equations/equalNode.js";
|
|
8
|
+
import { alignTex } from "../../../../../utils/latex/alignTex.js";
|
|
9
|
+
import { AddNode } from "../../../../../tree/nodes/operators/addNode.js";
|
|
10
|
+
import { equationVEA } from "../../../../../exercises/vea/equationVEA.js";
|
|
11
|
+
import { equationKeys } from "../../../../../exercises/utils/keys/equationKeys.js";
|
|
12
|
+
const getInstruction = (identifiers) => {
|
|
13
|
+
const { a, b } = identifiers;
|
|
14
|
+
const affine = new Affine(1, a).toTree();
|
|
15
|
+
const tree = new EqualNode(affine, new NumberNode(b));
|
|
16
|
+
const statementTree = tree.toTex();
|
|
17
|
+
return `Résoudre :
|
|
18
|
+
|
|
19
|
+
$$
|
|
20
|
+
${statementTree}
|
|
21
|
+
$$`;
|
|
22
|
+
};
|
|
23
|
+
const getAnswer = (identifiers) => {
|
|
24
|
+
const { a, b } = identifiers;
|
|
25
|
+
const solution = b - a;
|
|
26
|
+
const answer = `x=${solution}`;
|
|
27
|
+
return answer;
|
|
28
|
+
};
|
|
29
|
+
const getHint = (identifiers) => {
|
|
30
|
+
const { a } = identifiers;
|
|
31
|
+
return `Il faut isoler $x$ à gauche. Pour cela, effectue des deux côtés de l'équation l'opération qui permet de supprimer le terme $${a < 0 ? "" : "+"}${a}$.`;
|
|
32
|
+
};
|
|
33
|
+
const getCorrection = (identifiers) => {
|
|
34
|
+
const { a, b } = identifiers;
|
|
35
|
+
const affine = new Affine(1, a).toTree();
|
|
36
|
+
const tree = new EqualNode(affine, new NumberNode(b));
|
|
37
|
+
const statementTree = tree.toTex();
|
|
38
|
+
const answer = getAnswer(identifiers);
|
|
39
|
+
return `Pour isoler $x$ à gauche, on effectue l'opération $${a > 0 ? `-${a}` : `+${Math.abs(a)}`}$ des deux côtés de l'équation :
|
|
40
|
+
|
|
41
|
+
${alignTex([
|
|
42
|
+
[
|
|
43
|
+
`${statementTree}`,
|
|
44
|
+
"\\iff",
|
|
45
|
+
new EqualNode(new AddNode(affine, new NumberNode(-a)), new AddNode(b.toTree(), new NumberNode(-a))).toTex(),
|
|
46
|
+
],
|
|
47
|
+
["", "\\iff", answer],
|
|
48
|
+
])}`;
|
|
49
|
+
};
|
|
50
|
+
const getStartStatement = (identifiers) => {
|
|
51
|
+
const { a, b } = identifiers;
|
|
52
|
+
const affine = new Affine(1, a).toTree();
|
|
53
|
+
const tree = new EqualNode(affine, new NumberNode(b));
|
|
54
|
+
const statementTree = tree.toTex();
|
|
55
|
+
return statementTree;
|
|
56
|
+
};
|
|
57
|
+
const getEquationType1ExerciseQuestion = (opts) => {
|
|
58
|
+
const b = randint(-10, 11);
|
|
59
|
+
const a = randint(-10, 11, [0]);
|
|
60
|
+
const identifiers = { a, b };
|
|
61
|
+
return getQuestionFromIdentifiers(identifiers, opts);
|
|
62
|
+
};
|
|
63
|
+
const getKeys = (_identifiers, opts) => {
|
|
64
|
+
if (opts?.solutionFormat === "Ensemble") {
|
|
65
|
+
return ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"];
|
|
66
|
+
}
|
|
67
|
+
if (opts?.solutionFormat === "$x=\\ldots$") {
|
|
68
|
+
return ["x", "equal"];
|
|
69
|
+
}
|
|
70
|
+
return equationKeys;
|
|
71
|
+
};
|
|
72
|
+
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
73
|
+
const question = {
|
|
74
|
+
instruction: getInstruction(identifiers),
|
|
75
|
+
startStatement: getStartStatement(identifiers),
|
|
76
|
+
answer: getAnswer(identifiers),
|
|
77
|
+
keys: getKeys(identifiers, opts),
|
|
78
|
+
answerFormat: "tex",
|
|
79
|
+
identifiers,
|
|
80
|
+
hint: getHint(identifiers),
|
|
81
|
+
correction: getCorrection(identifiers),
|
|
82
|
+
};
|
|
83
|
+
return question;
|
|
84
|
+
};
|
|
85
|
+
const getPropositions = (n, { answer, a, b }) => {
|
|
86
|
+
const propositions = [];
|
|
87
|
+
addValidProp(propositions, answer);
|
|
88
|
+
const solution = b - a;
|
|
89
|
+
tryToAddWrongProp(propositions, `x=${b + a}`);
|
|
90
|
+
propWhile(propositions, n, () => {
|
|
91
|
+
const wrongAnswer = solution + randint(-3, 4, [0]);
|
|
92
|
+
tryToAddWrongProp(propositions, `x=${wrongAnswer}`);
|
|
93
|
+
});
|
|
94
|
+
return shuffle(propositions);
|
|
95
|
+
};
|
|
96
|
+
const isAnswerValid = (ans, { a, b }) => {
|
|
97
|
+
const solution = (b - a).toTree().toTex();
|
|
98
|
+
return equationVEA(ans, solution);
|
|
99
|
+
};
|
|
100
|
+
const options = [
|
|
101
|
+
{
|
|
102
|
+
id: "solutionFormat",
|
|
103
|
+
label: "Donner la solution sous la forme :",
|
|
104
|
+
target: GeneratorOptionTarget.generation,
|
|
105
|
+
type: GeneratorOptionType.select,
|
|
106
|
+
values: ["Ensemble", "$x=\\ldots$", "Permettre les deux"],
|
|
107
|
+
defaultValue: "Permettre les deux",
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
export const equationType1Exercise = {
|
|
111
|
+
id: "equa1",
|
|
112
|
+
connector: "\\iff",
|
|
113
|
+
label: "Résoudre une équation du type $x+a = b$",
|
|
114
|
+
isSingleStep: true,
|
|
115
|
+
generator: (nb, opts) => getDistinctQuestions(() => getEquationType1ExerciseQuestion(opts), nb),
|
|
116
|
+
getPropositions,
|
|
117
|
+
qcmTimer: 60,
|
|
118
|
+
freeTimer: 60,
|
|
119
|
+
isAnswerValid,
|
|
120
|
+
subject: "Mathématiques",
|
|
121
|
+
hasHintAndCorrection: true,
|
|
122
|
+
getCorrection,
|
|
123
|
+
getHint,
|
|
124
|
+
getInstruction,
|
|
125
|
+
getAnswer,
|
|
126
|
+
getStartStatement,
|
|
127
|
+
getQuestionFromIdentifiers,
|
|
128
|
+
options,
|
|
129
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Exercise } from "../../../../../exercises/exercise.js";
|
|
2
|
+
import { NodeIdentifiers } from "../../../../../tree/nodes/nodeConstructor.js";
|
|
3
|
+
/**
|
|
4
|
+
* type ax=b
|
|
5
|
+
*/
|
|
6
|
+
type Identifiers = {
|
|
7
|
+
a: NodeIdentifiers;
|
|
8
|
+
b: NodeIdentifiers;
|
|
9
|
+
isXRight: boolean;
|
|
10
|
+
aNumberType: string;
|
|
11
|
+
};
|
|
12
|
+
type Options = {
|
|
13
|
+
aNumberType: string[];
|
|
14
|
+
solutionFormat: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const equationType2Exercise: Exercise<Identifiers, Options>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=equa2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equa2.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/calculLitteral/equation/firstDegree/equa2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAarC,OAAO,EAEL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAM7C;;GAEG;AAGH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAuJF,KAAK,OAAO,GAAG;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAqBF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoBhE,CAAC"}
|