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.
Files changed (65) hide show
  1. package/lib/exercises/math/calcul/arithmetics/index.d.ts +1 -0
  2. package/lib/exercises/math/calcul/arithmetics/index.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/index.js +1 -0
  4. package/lib/exercises/math/calcul/arithmetics/ppcmCalcul.d.ts +8 -0
  5. package/lib/exercises/math/calcul/arithmetics/ppcmCalcul.d.ts.map +1 -0
  6. package/lib/exercises/math/calcul/arithmetics/ppcmCalcul.js +87 -0
  7. package/lib/exercises/math/calcul/proportionality/proportionalityTable.d.ts.map +1 -1
  8. package/lib/exercises/math/calcul/proportionality/proportionalityTable.js +2 -2
  9. package/lib/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.d.ts.map +1 -1
  10. package/lib/exercises/math/calculLitteral/equation/binomialsTrinomialsProposedSolutions.js +7 -1
  11. package/lib/exercises/math/functions/basics/imageFunctionGeogebra.d.ts.map +1 -1
  12. package/lib/exercises/math/functions/basics/imageFunctionGeogebra.js +16 -0
  13. package/lib/exercises/math/geometry/areas/triangleArea.d.ts.map +1 -1
  14. package/lib/exercises/math/geometry/areas/triangleArea.js +34 -2
  15. package/lib/exercises/math/geometry/areas/triangleAreaV2.d.ts.map +1 -1
  16. package/lib/exercises/math/geometry/areas/triangleAreaV2.js +54 -8
  17. package/lib/exercises/math/geometry/cartesian/readAbscissOnLine.d.ts.map +1 -1
  18. package/lib/exercises/math/geometry/cartesian/readAbscissOnLine.js +29 -1
  19. package/lib/exercises/math/geometry/cartesian/readAbscissOnSemiLine.d.ts.map +1 -1
  20. package/lib/exercises/math/geometry/cartesian/readAbscissOnSemiLine.js +25 -1
  21. package/lib/exercises/math/geometry/lines/directorVectorFromAnother.d.ts.map +1 -1
  22. package/lib/exercises/math/geometry/lines/directorVectorFromAnother.js +1 -0
  23. package/lib/exercises/math/geometry/lines/index.d.ts +1 -0
  24. package/lib/exercises/math/geometry/lines/index.d.ts.map +1 -1
  25. package/lib/exercises/math/geometry/lines/index.js +1 -0
  26. package/lib/exercises/math/geometry/vectors/findCoordForAligment.d.ts +6 -0
  27. package/lib/exercises/math/geometry/vectors/findCoordForAligment.d.ts.map +1 -1
  28. package/lib/exercises/math/geometry/vectors/findCoordForAligment.js +161 -92
  29. package/lib/exercises/math/geometry/vectors/index.d.ts +1 -0
  30. package/lib/exercises/math/geometry/vectors/index.d.ts.map +1 -1
  31. package/lib/exercises/math/geometry/vectors/index.js +1 -0
  32. package/lib/exercises/math/geometry/volumes/coneVolume.d.ts.map +1 -1
  33. package/lib/exercises/math/geometry/volumes/coneVolume.js +68 -6
  34. package/lib/exercises/math/geometry/volumes/parallelepipedVolume.d.ts.map +1 -1
  35. package/lib/exercises/math/geometry/volumes/parallelepipedVolume.js +55 -11
  36. package/lib/exercises/math/geometry/volumes/sphereVolume.d.ts.map +1 -1
  37. package/lib/exercises/math/geometry/volumes/sphereVolume.js +31 -3
  38. package/lib/exercises/math/geometry/volumes/volumeOfCube.d.ts.map +1 -1
  39. package/lib/exercises/math/geometry/volumes/volumeOfCube.js +46 -18
  40. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithSquareOrRectBase.d.ts.map +1 -1
  41. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithSquareOrRectBase.js +114 -63
  42. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.d.ts.map +1 -1
  43. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.js +102 -64
  44. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleRectBase.d.ts.map +1 -1
  45. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleRectBase.js +99 -53
  46. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts.map +1 -1
  47. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.js +12 -3
  48. package/lib/exercises/math/trigonometry/remarkableValues.d.ts.map +1 -1
  49. package/lib/exercises/math/trigonometry/remarkableValues.js +9 -0
  50. package/lib/index.d.ts +8 -0
  51. package/lib/index.d.ts.map +1 -1
  52. package/lib/math/geometry/line.d.ts.map +1 -1
  53. package/lib/math/geometry/line.js +0 -1
  54. package/lib/math/geometry/vector.d.ts +2 -0
  55. package/lib/math/geometry/vector.d.ts.map +1 -1
  56. package/lib/math/geometry/vector.js +6 -2
  57. package/lib/math/utils/arithmetic/lcm.d.ts +2 -0
  58. package/lib/math/utils/arithmetic/lcm.d.ts.map +1 -0
  59. package/lib/math/utils/arithmetic/lcm.js +5 -0
  60. package/lib/playground.d.ts.map +1 -1
  61. package/lib/playground.js +33 -0
  62. package/lib/tree/nodes/operators/fractionNode.d.ts +2 -2
  63. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  64. package/lib/tree/nodes/operators/fractionNode.js +6 -6
  65. package/package.json +1 -1
@@ -5,4 +5,5 @@ export * from "./pgcdCalcul.js";
5
5
  export * from "./divisorsList.js";
6
6
  export * from "./commonDivisorsList.js";
7
7
  export * from "./divisibiltyCriteria.js";
8
+ export * from "./ppcmCalcul.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -5,3 +5,4 @@ export * from "./pgcdCalcul.js";
5
5
  export * from "./divisorsList.js";
6
6
  export * from "./commonDivisorsList.js";
7
7
  export * from "./divisibiltyCriteria.js";
8
+ export * from "./ppcmCalcul.js";
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ b: number;
5
+ };
6
+ export declare const ppcmCalcul: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=ppcmCalcul.d.ts.map
@@ -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;AAiGF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAgBtD,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,
@@ -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;AA2FF,KAAK,OAAO,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAYF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CACzD,WAAW,EACX,OAAO,CAiBR,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 `Le nombre $${solution.toTex()}$ est-il une solution de l'équation $${equation.toTex()}$ ?`;
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,EAkBT,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;AA0SF,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AACF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBhE,CAAC"}
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,EAWT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAGL,mBAAmB,EACpB,MAAM,2CAA2C,CAAC;AAOnD,OAAO,EAGL,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAKxC,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;AA4GF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAiB9C,CAAC"}
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,EAQT,MAAM,6BAA6B,CAAC;AAKrC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAgEF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAchD,CAAC"}
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 getTriangleAreaV2 = () => {
24
- const randomSide = randint(0, sides.length);
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: `Calculer l'aire du triangle rectangle dont les côtés mesurent : $${sides[randomSide][0]}$ cm, $${sides[randomSide][1]}$ cm et $${sides[randomSide][2]}$ cm.`,
30
- answer: answerTex,
73
+ instruction: getInstruction(identifiers),
74
+ answer: getAnswer(identifiers),
31
75
  answerFormat: "tex",
32
76
  keys: ["cm", "cm2"],
33
- identifiers: { randomSide },
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,EAkBT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAY1D,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;AAwJF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAgBnD,CAAC"}
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,EAkBT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAW1D,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;AAyJF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAgBvD,CAAC"}
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,CAiB3D,CAAC"}
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"}
@@ -119,4 +119,5 @@ export const directorVectorFromAnother = {
119
119
  getCorrection,
120
120
  getAnswer,
121
121
  getQuestionFromIdentifiers,
122
+ hasHintAndCorrection: true,
122
123
  };
@@ -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"}