math-exercises 3.0.54 → 3.0.56
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/index.d.ts +1 -0
- package/lib/exercises/math/calcul/arithmetics/index.d.ts.map +1 -1
- package/lib/exercises/math/calcul/arithmetics/index.js +1 -0
- package/lib/exercises/math/calcul/arithmetics/ppcmCalcul.d.ts +8 -0
- package/lib/exercises/math/calcul/arithmetics/ppcmCalcul.d.ts.map +1 -0
- package/lib/exercises/math/calcul/arithmetics/ppcmCalcul.js +87 -0
- package/lib/exercises/math/calcul/proportionality/proportionalityTable.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/proportionalityTable.js +2 -2
- package/lib/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.js +7 -1
- package/lib/exercises/math/functions/basics/imageFunctionGeogebra.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/imageFunctionGeogebra.js +16 -0
- package/lib/exercises/math/geometry/areas/triangleArea.d.ts.map +1 -1
- package/lib/exercises/math/geometry/areas/triangleArea.js +34 -2
- package/lib/exercises/math/geometry/areas/triangleAreaV2.d.ts.map +1 -1
- package/lib/exercises/math/geometry/areas/triangleAreaV2.js +54 -8
- package/lib/exercises/math/geometry/cartesian/readAbscissOnLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/cartesian/readAbscissOnLine.js +29 -1
- package/lib/exercises/math/geometry/cartesian/readAbscissOnSemiLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/cartesian/readAbscissOnSemiLine.js +25 -1
- package/lib/exercises/math/geometry/lines/directorVectorFromAnother.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/directorVectorFromAnother.js +1 -0
- package/lib/exercises/math/geometry/lines/index.d.ts +1 -0
- package/lib/exercises/math/geometry/lines/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/index.js +1 -0
- package/lib/exercises/math/geometry/vectors/findCoordForAligment.d.ts +6 -0
- package/lib/exercises/math/geometry/vectors/findCoordForAligment.d.ts.map +1 -1
- package/lib/exercises/math/geometry/vectors/findCoordForAligment.js +161 -92
- package/lib/exercises/math/geometry/vectors/index.d.ts +1 -0
- package/lib/exercises/math/geometry/vectors/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/vectors/index.js +1 -0
- package/lib/exercises/math/geometry/volumes/coneVolume.d.ts.map +1 -1
- package/lib/exercises/math/geometry/volumes/coneVolume.js +68 -6
- package/lib/exercises/math/geometry/volumes/parallelepipedVolume.d.ts.map +1 -1
- package/lib/exercises/math/geometry/volumes/parallelepipedVolume.js +55 -11
- package/lib/exercises/math/geometry/volumes/sphereVolume.d.ts.map +1 -1
- package/lib/exercises/math/geometry/volumes/sphereVolume.js +31 -3
- package/lib/exercises/math/geometry/volumes/volumeOfCube.d.ts.map +1 -1
- package/lib/exercises/math/geometry/volumes/volumeOfCube.js +46 -18
- package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithSquareOrRectBase.d.ts.map +1 -1
- package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithSquareOrRectBase.js +114 -63
- package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.d.ts.map +1 -1
- package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.js +102 -64
- package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleRectBase.d.ts.map +1 -1
- package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleRectBase.js +99 -53
- package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts.map +1 -1
- package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.js +12 -3
- package/lib/exercises/math/trigonometry/remarkableValues.d.ts.map +1 -1
- package/lib/exercises/math/trigonometry/remarkableValues.js +9 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/line.d.ts.map +1 -1
- package/lib/math/geometry/line.js +0 -1
- package/lib/math/geometry/vector.d.ts +2 -0
- package/lib/math/geometry/vector.d.ts.map +1 -1
- package/lib/math/geometry/vector.js +6 -2
- package/lib/math/utils/arithmetic/lcm.d.ts +2 -0
- package/lib/math/utils/arithmetic/lcm.d.ts.map +1 -0
- package/lib/math/utils/arithmetic/lcm.js +5 -0
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +33 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts +2 -2
- package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/fractionNode.js +6 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ppcmCalcul.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/ppcmCalcul.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA4EF,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAiB5C,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
|
|
4
|
+
import { gcd } from "../../../../math/utils/arithmetic/gcd.js";
|
|
5
|
+
import { lcm } from "../../../../math/utils/arithmetic/lcm.js";
|
|
6
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
7
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
8
|
+
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
9
|
+
const getPropositions = (n, { answer, ...identifiers }) => {
|
|
10
|
+
const propositions = [];
|
|
11
|
+
addValidProp(propositions, answer);
|
|
12
|
+
const { a, b } = identifiers;
|
|
13
|
+
tryToAddWrongProp(propositions, a * b + "");
|
|
14
|
+
tryToAddWrongProp(propositions, gcd(a, b) + "");
|
|
15
|
+
while (propositions.length < n) {
|
|
16
|
+
tryToAddWrongProp(propositions, randint(10, 60) + "");
|
|
17
|
+
}
|
|
18
|
+
return shuffleProps(propositions, n);
|
|
19
|
+
};
|
|
20
|
+
const getAnswer = (identifiers) => {
|
|
21
|
+
const { a, b } = identifiers;
|
|
22
|
+
const ppcm = lcm(a, b);
|
|
23
|
+
return ppcm + "";
|
|
24
|
+
};
|
|
25
|
+
const getInstruction = (identifiers) => {
|
|
26
|
+
const { a, b } = identifiers;
|
|
27
|
+
return `Déterminer le PPCM (plus petit commun multiple) des nombres $${a}$ et $${b}$.`;
|
|
28
|
+
};
|
|
29
|
+
const getHint = (identifiers) => {
|
|
30
|
+
return ``;
|
|
31
|
+
};
|
|
32
|
+
const getCorrection = (identifiers) => {
|
|
33
|
+
return ``;
|
|
34
|
+
};
|
|
35
|
+
const getKeys = (identifiers) => {
|
|
36
|
+
return [];
|
|
37
|
+
};
|
|
38
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
39
|
+
try {
|
|
40
|
+
return numberVEA(ans, answer);
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
return handleVEAError(err);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const getPpcmCalculQuestion = (ops) => {
|
|
47
|
+
const areCoPrimes = coinFlip();
|
|
48
|
+
let a;
|
|
49
|
+
let b;
|
|
50
|
+
do {
|
|
51
|
+
a = randint(2, 40);
|
|
52
|
+
b = randint(2, 40, [a]);
|
|
53
|
+
} while (areCoPrimes ? gcd(a, b) !== 1 : gcd(a, b) === 1);
|
|
54
|
+
const identifiers = {
|
|
55
|
+
a,
|
|
56
|
+
b,
|
|
57
|
+
};
|
|
58
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
59
|
+
};
|
|
60
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
61
|
+
return {
|
|
62
|
+
answer: getAnswer(identifiers),
|
|
63
|
+
instruction: getInstruction(identifiers),
|
|
64
|
+
keys: getKeys(identifiers),
|
|
65
|
+
answerFormat: "tex",
|
|
66
|
+
identifiers,
|
|
67
|
+
hint: getHint(identifiers),
|
|
68
|
+
correction: getCorrection(identifiers),
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
export const ppcmCalcul = {
|
|
72
|
+
id: "ppcmCalcul",
|
|
73
|
+
connector: "=",
|
|
74
|
+
label: "Calculer un PPCM",
|
|
75
|
+
isSingleStep: true,
|
|
76
|
+
generator: (nb, opts) => getDistinctQuestions(() => getPpcmCalculQuestion(opts), nb),
|
|
77
|
+
qcmTimer: 60,
|
|
78
|
+
freeTimer: 60,
|
|
79
|
+
getPropositions,
|
|
80
|
+
isAnswerValid,
|
|
81
|
+
subject: "Mathématiques",
|
|
82
|
+
getInstruction,
|
|
83
|
+
getHint,
|
|
84
|
+
getCorrection,
|
|
85
|
+
getAnswer,
|
|
86
|
+
getQuestionFromIdentifiers,
|
|
87
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proportionalityTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/proportionality/proportionalityTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"proportionalityTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/proportionality/proportionalityTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB,CAAC;AAmGF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CActD,CAAC"}
|
|
@@ -69,6 +69,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
|
|
|
69
69
|
style: {
|
|
70
70
|
tableHasNoHeader: true,
|
|
71
71
|
},
|
|
72
|
+
// hint: getHint(identifiers),
|
|
73
|
+
// correction: getCorrection(identifiers)
|
|
72
74
|
};
|
|
73
75
|
return question;
|
|
74
76
|
};
|
|
@@ -87,9 +89,7 @@ export const proportionalityTable = {
|
|
|
87
89
|
id: "proportionalityTable",
|
|
88
90
|
connector: "=",
|
|
89
91
|
label: "Calcul dans un tableau de proportionnalité",
|
|
90
|
-
levels: ["5ème", "4ème", "3ème", "CAP", "2ndPro", "1rePro"],
|
|
91
92
|
isSingleStep: false,
|
|
92
|
-
sections: ["Proportionnalité"],
|
|
93
93
|
generator: (nb) => getDistinctQuestions(getProportionalityTable, nb),
|
|
94
94
|
qcmTimer: 60,
|
|
95
95
|
freeTimer: 60,
|
package/lib/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binomialsTrinomialsProposedSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAGL,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAW7C,KAAK,WAAW,GAAG;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,oBAAoB,CAAC;CACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"binomialsTrinomialsProposedSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAGL,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAW7C,KAAK,WAAW,GAAG;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAiGF,KAAK,OAAO,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAYF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CACzD,WAAW,EACX,OAAO,CAiBR,CAAC"}
|
|
@@ -14,7 +14,13 @@ const getInstruction = (identifiers) => {
|
|
|
14
14
|
const { solutionNodeIds, equationNodeIds } = identifiers;
|
|
15
15
|
const solution = reifyAlgebraic(solutionNodeIds, true);
|
|
16
16
|
const equation = reifyAlgebraic(equationNodeIds, true);
|
|
17
|
-
return `
|
|
17
|
+
return `On considère l'équation suivante :
|
|
18
|
+
|
|
19
|
+
$$
|
|
20
|
+
${equation.toTex()}
|
|
21
|
+
$$
|
|
22
|
+
|
|
23
|
+
Le nombre $${solution.toTex()}$ est-il une solution de cette équation ?`;
|
|
18
24
|
};
|
|
19
25
|
function generateTrinomialFromRoot(root, constante) {
|
|
20
26
|
const a = randint(1, 5);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageFunctionGeogebra.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/imageFunctionGeogebra.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"imageFunctionGeogebra.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/imageFunctionGeogebra.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAoBT,MAAM,6BAA6B,CAAC;AAyBrC,KAAK,WAAW,GAAG;IACjB,cAAc;IAMd,UAAU;IAMV,UAAU;IACV,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AA4TF,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AACF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAsBhE,CAAC"}
|
|
@@ -69,6 +69,19 @@ const getAnswer = (identifiers) => {
|
|
|
69
69
|
return "\\text{Aucun}";
|
|
70
70
|
return y.frenchify();
|
|
71
71
|
};
|
|
72
|
+
const getHint = (identifiers) => {
|
|
73
|
+
return `L'image d'un nombre $x$ par $f$ est l'ordonnée du point de la courbe de $f$ dont l'abscisse est $x$.`;
|
|
74
|
+
};
|
|
75
|
+
const getCorrection = (identifiers) => {
|
|
76
|
+
const { x, y } = identifiers;
|
|
77
|
+
return `On cherche le point sur la courbe de $f$ qui a pour abscisse $${x}$.
|
|
78
|
+
|
|
79
|
+
${y === undefined
|
|
80
|
+
? `On voit qu'il n'y a pas de tel point. On en conclut que l'image de $x$ par $f$ n'existe pas.`
|
|
81
|
+
: `On voit que c'est le point de coordonnées $\\left(${x};${y}\\right)$.
|
|
82
|
+
|
|
83
|
+
On en conclut que l'image de $${x}$ par $f$ est $${y}$.`}`;
|
|
84
|
+
};
|
|
72
85
|
const getGGBOptions = (identifiers) => {
|
|
73
86
|
const { functionType, otherPoints, wrongY, x, y, functionCommand } = identifiers;
|
|
74
87
|
const allPoints = [...otherPoints];
|
|
@@ -180,6 +193,8 @@ const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
|
180
193
|
ggbOptions: getGGBOptions(identifiers, opts),
|
|
181
194
|
answerFormat: "tex",
|
|
182
195
|
identifiers,
|
|
196
|
+
hint: getHint(identifiers),
|
|
197
|
+
correction: getCorrection(identifiers),
|
|
183
198
|
};
|
|
184
199
|
return question;
|
|
185
200
|
};
|
|
@@ -298,4 +313,5 @@ export const imageFunctionGeogebra = {
|
|
|
298
313
|
getQuestionFromIdentifiers,
|
|
299
314
|
getKeys,
|
|
300
315
|
getStartStatement,
|
|
316
|
+
hasHintAndCorrection: true,
|
|
301
317
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triangleArea.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/areas/triangleArea.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"triangleArea.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/areas/triangleArea.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAGL,mBAAmB,EACpB,MAAM,2CAA2C,CAAC;AAOnD,OAAO,EAGL,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAOxC,KAAK,WAAW,GAAG;IACjB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAiJF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAiB9C,CAAC"}
|
|
@@ -12,6 +12,8 @@ import { Segment, SegmentConstructor, } from "../../../../math/geometry/segment.
|
|
|
12
12
|
import { round } from "../../../../math/utils/round.js";
|
|
13
13
|
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
14
14
|
import { valueParser } from "../../../../tree/parsers/valueParser.js";
|
|
15
|
+
import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
|
|
16
|
+
import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
15
17
|
const getInstruction = (identifiers) => {
|
|
16
18
|
const { triangleIdentifiers, heightIdentifiers, height, base } = identifiers;
|
|
17
19
|
const triangle = TriangleConstructor.fromIdentifiers(triangleIdentifiers);
|
|
@@ -40,6 +42,31 @@ const getGGBOptions = (identifiers) => {
|
|
|
40
42
|
coords: ggb.getCoordsForPoints(points),
|
|
41
43
|
});
|
|
42
44
|
};
|
|
45
|
+
const getHint = (identifiers) => {
|
|
46
|
+
return `Repère une hauteur du triangle et sa base associée. L'aire du triangle s'obtient alors par la formule :
|
|
47
|
+
|
|
48
|
+
$$
|
|
49
|
+
A = \\frac{\\text{base}\\times \\text{hauteur}}{2}
|
|
50
|
+
$$`;
|
|
51
|
+
};
|
|
52
|
+
const getCorrection = (identifiers) => {
|
|
53
|
+
const { triangleIdentifiers, heightIdentifiers, height, base } = identifiers;
|
|
54
|
+
const triangle = TriangleConstructor.fromIdentifiers(triangleIdentifiers);
|
|
55
|
+
const heightSegment = SegmentConstructor.fromIdentifiers(heightIdentifiers);
|
|
56
|
+
return `L'aire d'un triangle s'obtient par la formule :
|
|
57
|
+
|
|
58
|
+
$$
|
|
59
|
+
A = \\frac{\\text{base}\\times \\text{hauteur}}{2}
|
|
60
|
+
$$
|
|
61
|
+
|
|
62
|
+
Dans le triangle $${triangle.name}$, $${heightSegment.toTex()}$ est une hauteur et sa base associée est le côté $${triangle.sides[1].toTex()}$.
|
|
63
|
+
|
|
64
|
+
On a donc :
|
|
65
|
+
|
|
66
|
+
$$
|
|
67
|
+
A = ${frac(multiply(base, height), 2).toTex()} = ${getAnswer(identifiers)}
|
|
68
|
+
$$`;
|
|
69
|
+
};
|
|
43
70
|
const getTriangleArea = () => {
|
|
44
71
|
//segment de taille fixé
|
|
45
72
|
//puis hauteur de taille fixée placée sur segment (élargi)
|
|
@@ -65,6 +92,9 @@ const getTriangleArea = () => {
|
|
|
65
92
|
base,
|
|
66
93
|
heightIdentifiers: heightSegment.toIdentifiers(),
|
|
67
94
|
};
|
|
95
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
96
|
+
};
|
|
97
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
68
98
|
const question = {
|
|
69
99
|
instruction: getInstruction(identifiers),
|
|
70
100
|
answer: getAnswer(identifiers),
|
|
@@ -72,6 +102,8 @@ const getTriangleArea = () => {
|
|
|
72
102
|
ggbOptions: getGGBOptions(identifiers),
|
|
73
103
|
answerFormat: "tex",
|
|
74
104
|
identifiers,
|
|
105
|
+
hint: getHint(identifiers),
|
|
106
|
+
correction: getCorrection(identifiers),
|
|
75
107
|
};
|
|
76
108
|
return question;
|
|
77
109
|
};
|
|
@@ -100,9 +132,7 @@ export const triangleArea = {
|
|
|
100
132
|
id: "triangleArea",
|
|
101
133
|
connector: "=",
|
|
102
134
|
label: "Calculer l'aire d'un triangle (avec figure)",
|
|
103
|
-
levels: ["5ème", "4ème", "3ème", "2nde"],
|
|
104
135
|
isSingleStep: false,
|
|
105
|
-
sections: ["Aires", "Géométrie euclidienne"],
|
|
106
136
|
generator: (nb) => getDistinctQuestions(getTriangleArea, nb),
|
|
107
137
|
qcmTimer: 60,
|
|
108
138
|
freeTimer: 60,
|
|
@@ -113,4 +143,6 @@ export const triangleArea = {
|
|
|
113
143
|
getInstruction,
|
|
114
144
|
getAnswer,
|
|
115
145
|
getGGBOptions,
|
|
146
|
+
getQuestionFromIdentifiers,
|
|
147
|
+
hasHintAndCorrection: true,
|
|
116
148
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triangleAreaV2.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/areas/triangleAreaV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"triangleAreaV2.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/areas/triangleAreaV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAkHF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAchD,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { addValidProp, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
2
|
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
3
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
4
|
+
import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
|
|
5
|
+
import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
4
6
|
import { shuffle } from "../../../../utils/alea/shuffle.js";
|
|
5
7
|
const sides = [
|
|
6
8
|
[3, 4, 5],
|
|
@@ -20,17 +22,61 @@ const sides = [
|
|
|
20
22
|
[39, 80, 89],
|
|
21
23
|
[65, 72, 97],
|
|
22
24
|
];
|
|
23
|
-
const
|
|
24
|
-
const randomSide =
|
|
25
|
+
const getInstruction = (identifiers) => {
|
|
26
|
+
const { randomSide } = identifiers;
|
|
27
|
+
return `Calculer l'aire d'un triangle rectangle dont les côtés mesurent $${sides[randomSide][0]}$ cm, $${sides[randomSide][1]}$ cm et $${sides[randomSide][2]}$ cm.`;
|
|
28
|
+
};
|
|
29
|
+
const getHint = (identifiers) => {
|
|
30
|
+
return `L'aire d'un triangle s'obtient par la formule :
|
|
31
|
+
|
|
32
|
+
$$
|
|
33
|
+
A = \\frac{\\text{base}\\times \\text{hauteur}}{2}
|
|
34
|
+
$$
|
|
35
|
+
|
|
36
|
+
Dans un triangle rectangle, un des angles est un angle droit. On peut en déduire une base et une hauteur du triangle.`;
|
|
37
|
+
};
|
|
38
|
+
const getCorrection = (identifiers) => {
|
|
39
|
+
const { randomSide } = identifiers;
|
|
40
|
+
return `Dans ce triangle rectangle, l'hypoténuse est le côté le plus grand : c'est donc celui qui mesure $${sides[randomSide][2]}$ cm.
|
|
41
|
+
|
|
42
|
+
Les deux autres côtés sont perpendiculaires. Ils forment donc une base et une hauteur.
|
|
43
|
+
|
|
44
|
+
Or, l'aire d'un triangle s'obtient par la formule :
|
|
45
|
+
|
|
46
|
+
$$
|
|
47
|
+
A = \\frac{\\text{base}\\times \\text{hauteur}}{2}
|
|
48
|
+
$$
|
|
49
|
+
|
|
50
|
+
Ici, on a donc :
|
|
51
|
+
|
|
52
|
+
$$
|
|
53
|
+
A = ${frac(multiply(sides[randomSide][0], sides[randomSide][1]), 2).toTex({
|
|
54
|
+
forceNoSimplification: true,
|
|
55
|
+
})} = ${getAnswer(identifiers)}
|
|
56
|
+
$$
|
|
57
|
+
`;
|
|
58
|
+
};
|
|
59
|
+
const getAnswer = (identifiers) => {
|
|
60
|
+
const { randomSide } = identifiers;
|
|
25
61
|
const area = (sides[randomSide][0] * sides[randomSide][1]) / 2;
|
|
26
62
|
const answer = area + "";
|
|
27
63
|
const answerTex = answer + "\\text{cm}^2";
|
|
64
|
+
return answerTex;
|
|
65
|
+
};
|
|
66
|
+
const getTriangleAreaV2 = () => {
|
|
67
|
+
const randomSide = randint(0, sides.length);
|
|
68
|
+
const identifiers = { randomSide };
|
|
69
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
70
|
+
};
|
|
71
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
28
72
|
const question = {
|
|
29
|
-
instruction:
|
|
30
|
-
answer:
|
|
73
|
+
instruction: getInstruction(identifiers),
|
|
74
|
+
answer: getAnswer(identifiers),
|
|
31
75
|
answerFormat: "tex",
|
|
32
76
|
keys: ["cm", "cm2"],
|
|
33
|
-
identifiers
|
|
77
|
+
identifiers,
|
|
78
|
+
hint: getHint(identifiers),
|
|
79
|
+
correction: getCorrection(identifiers),
|
|
34
80
|
};
|
|
35
81
|
return question;
|
|
36
82
|
};
|
|
@@ -54,10 +100,8 @@ const isAnswerValid = (ans, { answer }) => {
|
|
|
54
100
|
export const triangleAreaV2 = {
|
|
55
101
|
id: "triangleAreaV2",
|
|
56
102
|
connector: "=",
|
|
57
|
-
label: "Calculer l'aire d'un triangle (sans figure)",
|
|
58
|
-
levels: ["5ème", "4ème", "3ème", "2nde"],
|
|
103
|
+
label: "Calculer l'aire d'un triangle rectangle (sans figure)",
|
|
59
104
|
isSingleStep: false,
|
|
60
|
-
sections: ["Aires", "Géométrie euclidienne"],
|
|
61
105
|
generator: (nb) => getDistinctQuestions(getTriangleAreaV2, nb, 16),
|
|
62
106
|
qcmTimer: 60,
|
|
63
107
|
freeTimer: 60,
|
|
@@ -65,4 +109,6 @@ export const triangleAreaV2 = {
|
|
|
65
109
|
getPropositions,
|
|
66
110
|
isAnswerValid,
|
|
67
111
|
subject: "Mathématiques",
|
|
112
|
+
getQuestionFromIdentifiers,
|
|
113
|
+
hasHintAndCorrection: true,
|
|
68
114
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readAbscissOnLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/cartesian/readAbscissOnLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"readAbscissOnLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/cartesian/readAbscissOnLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAe1D,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA4LF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAkBnD,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { randfloat } from "../../../../math/utils/random/randfloat.js";
|
|
|
7
7
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
8
8
|
import { round } from "../../../../math/utils/round.js";
|
|
9
9
|
import { FractionNode } from "../../../../tree/nodes/operators/fractionNode.js";
|
|
10
|
-
import { MultiplyNode } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
10
|
+
import { multiply, MultiplyNode, } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
11
11
|
import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
|
|
12
12
|
import { random } from "../../../../utils/alea/random.js";
|
|
13
13
|
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
@@ -21,6 +21,27 @@ const getPropositions = (n, { answer, absciss, abscissTex, abscissType, axisUnit
|
|
|
21
21
|
}
|
|
22
22
|
return shuffleProps(propositions, n);
|
|
23
23
|
};
|
|
24
|
+
const getHint = (identifiers) => {
|
|
25
|
+
const { absciss, axisUnit, oneUnitTex, abscissType, abscissTex, coeff } = identifiers;
|
|
26
|
+
return `Il faut compter le nombre de graduations entre les points $O$ et $A$. Puis, on utilise le fait qu'une graduation vaut $${oneUnitTex}$.
|
|
27
|
+
|
|
28
|
+
D'autre part, si $A$ est placé à gauche de $O$, alors son abscisse sera négative.`;
|
|
29
|
+
};
|
|
30
|
+
const getCorrection = (identifiers) => {
|
|
31
|
+
const { absciss, axisUnit, oneUnitTex, abscissType, abscissTex, coeff } = identifiers;
|
|
32
|
+
const oneUnitNode = parseAlgebraic(oneUnitTex);
|
|
33
|
+
return `Il y a $${Math.abs(coeff)}$ graduations entre $O$ et $A$. Puisqu'une graduation vaut $${oneUnitTex}$, cela représente un écart de :
|
|
34
|
+
|
|
35
|
+
$$
|
|
36
|
+
${multiply(Math.abs(coeff), oneUnitNode).toTex({
|
|
37
|
+
forceNoSimplification: true,
|
|
38
|
+
})} = ${multiply(Math.abs(coeff), oneUnitNode).simplify().toTex()}
|
|
39
|
+
$$
|
|
40
|
+
|
|
41
|
+
${coeff < 0
|
|
42
|
+
? `Puisque $A$ est placé à gauche du point $O$, son abscisse est négative. L'abscisse du point $A$ est donc $${abscissTex}$.`
|
|
43
|
+
: `L'abscisse du point $A$ est donc $${abscissTex}$.`}`;
|
|
44
|
+
};
|
|
24
45
|
const getAnswer = ({ absciss, abscissType, axisUnit, abscissTex, oneUnitTex, }) => {
|
|
25
46
|
return abscissTex;
|
|
26
47
|
};
|
|
@@ -119,6 +140,9 @@ const getReadAbscissOnLineQuestion = () => {
|
|
|
119
140
|
abscissTex,
|
|
120
141
|
coeff,
|
|
121
142
|
};
|
|
143
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
144
|
+
};
|
|
145
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
122
146
|
const question = {
|
|
123
147
|
answer: getAnswer(identifiers),
|
|
124
148
|
instruction: getInstruction(identifiers),
|
|
@@ -126,6 +150,8 @@ const getReadAbscissOnLineQuestion = () => {
|
|
|
126
150
|
answerFormat: "tex",
|
|
127
151
|
identifiers,
|
|
128
152
|
ggbOptions: getGGBOptions(identifiers),
|
|
153
|
+
hint: getHint(identifiers),
|
|
154
|
+
correction: getCorrection(identifiers),
|
|
129
155
|
};
|
|
130
156
|
return question;
|
|
131
157
|
};
|
|
@@ -144,4 +170,6 @@ export const readAbscissOnLine = {
|
|
|
144
170
|
getAnswer,
|
|
145
171
|
getGGBOptions,
|
|
146
172
|
hasGeogebra: true,
|
|
173
|
+
hasHintAndCorrection: true,
|
|
174
|
+
getQuestionFromIdentifiers,
|
|
147
175
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readAbscissOnSemiLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/cartesian/readAbscissOnSemiLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"readAbscissOnSemiLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/cartesian/readAbscissOnSemiLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAc1D,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAqLF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAkBvD,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { randfloat } from "../../../../math/utils/random/randfloat.js";
|
|
|
7
7
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
8
8
|
import { round } from "../../../../math/utils/round.js";
|
|
9
9
|
import { FractionNode } from "../../../../tree/nodes/operators/fractionNode.js";
|
|
10
|
-
import { MultiplyNode } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
10
|
+
import { multiply, MultiplyNode, } from "../../../../tree/nodes/operators/multiplyNode.js";
|
|
11
11
|
import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
|
|
12
12
|
import { random } from "../../../../utils/alea/random.js";
|
|
13
13
|
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
@@ -21,6 +21,23 @@ const getPropositions = (n, { answer, absciss, abscissTex, abscissType, axisUnit
|
|
|
21
21
|
}
|
|
22
22
|
return shuffleProps(propositions, n);
|
|
23
23
|
};
|
|
24
|
+
const getHint = (identifiers) => {
|
|
25
|
+
const { absciss, axisUnit, oneUnitTex, abscissType, abscissTex, coeff } = identifiers;
|
|
26
|
+
return `Il faut compter le nombre de graduations entre les points $O$ et $A$. Puis, on utilise le fait qu'une graduation vaut $${oneUnitTex}$.`;
|
|
27
|
+
};
|
|
28
|
+
const getCorrection = (identifiers) => {
|
|
29
|
+
const { absciss, axisUnit, oneUnitTex, abscissType, abscissTex, coeff } = identifiers;
|
|
30
|
+
const oneUnitNode = parseAlgebraic(oneUnitTex);
|
|
31
|
+
return `Il y a $${Math.abs(coeff)}$ graduations entre $O$ et $A$. Puisqu'une graduation vaut $${oneUnitTex}$, cela représente un écart de :
|
|
32
|
+
|
|
33
|
+
$$
|
|
34
|
+
${multiply(Math.abs(coeff), oneUnitNode).toTex({
|
|
35
|
+
forceNoSimplification: true,
|
|
36
|
+
})} = ${multiply(Math.abs(coeff), oneUnitNode).simplify().toTex()}
|
|
37
|
+
$$
|
|
38
|
+
|
|
39
|
+
L'abscisse du point $A$ est donc $${abscissTex}$.`;
|
|
40
|
+
};
|
|
24
41
|
const getAnswer = ({ absciss, abscissType, axisUnit, abscissTex, oneUnitTex, }) => {
|
|
25
42
|
return abscissTex;
|
|
26
43
|
};
|
|
@@ -120,6 +137,9 @@ const getReadAbscissOnSemiLineQuestion = () => {
|
|
|
120
137
|
abscissTex,
|
|
121
138
|
coeff,
|
|
122
139
|
};
|
|
140
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
141
|
+
};
|
|
142
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
123
143
|
const question = {
|
|
124
144
|
answer: getAnswer(identifiers),
|
|
125
145
|
instruction: getInstruction(identifiers),
|
|
@@ -127,6 +147,8 @@ const getReadAbscissOnSemiLineQuestion = () => {
|
|
|
127
147
|
answerFormat: "tex",
|
|
128
148
|
identifiers,
|
|
129
149
|
ggbOptions: getGGBOptions(identifiers),
|
|
150
|
+
hint: getHint(identifiers),
|
|
151
|
+
correction: getCorrection(identifiers),
|
|
130
152
|
};
|
|
131
153
|
return question;
|
|
132
154
|
};
|
|
@@ -145,4 +167,6 @@ export const readAbscissOnSemiLine = {
|
|
|
145
167
|
getAnswer,
|
|
146
168
|
getGGBOptions,
|
|
147
169
|
hasGeogebra: true,
|
|
170
|
+
getQuestionFromIdentifiers,
|
|
171
|
+
hasHintAndCorrection: true,
|
|
148
172
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directorVectorFromAnother.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/directorVectorFromAnother.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAO7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AA+GF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"directorVectorFromAnother.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/directorVectorFromAnother.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAO7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AA+GF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAkB3D,CAAC"}
|
|
@@ -14,4 +14,5 @@ export * from "./findParallelLineFromReductEquation.js";
|
|
|
14
14
|
export * from "./findParallelLineFromCartesianEquation.js";
|
|
15
15
|
export * from "./drawLineFromPointAndVector.js";
|
|
16
16
|
export * from "./cartesianEquationsIntersection.js";
|
|
17
|
+
export * from "./directorVectorFromAnother.js";
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC"}
|
|
@@ -14,3 +14,4 @@ export * from "./findParallelLineFromReductEquation.js";
|
|
|
14
14
|
export * from "./findParallelLineFromCartesianEquation.js";
|
|
15
15
|
export * from "./drawLineFromPointAndVector.js";
|
|
16
16
|
export * from "./cartesianEquationsIntersection.js";
|
|
17
|
+
export * from "./directorVectorFromAnother.js";
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { PointIdentifiers } from "../../../../math/geometry/point.js";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
pointsIdentifiers: PointIdentifiers[];
|
|
5
|
+
};
|
|
6
|
+
export declare const findCoordForAligment: Exercise<Identifiers>;
|
|
1
7
|
export {};
|
|
2
8
|
//# sourceMappingURL=findCoordForAligment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findCoordForAligment.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/vectors/findCoordForAligment.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"findCoordForAligment.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/vectors/findCoordForAligment.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAGL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAUtC,KAAK,WAAW,GAAG;IACjB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AAqJF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAmBtD,CAAC"}
|