math-exercises 1.2.2 → 1.2.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-exercises",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "Générateurs d'exercices et questions mathématiques en latex",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -41,7 +41,10 @@ function getPriorityQuestions() {
41
41
  new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new addNode_1.AddNode(new numberNode_1.NumberNode(c), new numberNode_1.NumberNode(d))).shuffle()
42
42
  : //a*b middle
43
43
  new addNode_1.AddNode(new addNode_1.AddNode(new numberNode_1.NumberNode(c), new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b))), new numberNode_1.NumberNode(d));
44
- answer = a * b + c + d + "";
44
+ answer = (a * b + c + d).toString();
45
+ console.log("type", type);
46
+ console.log("statement", statement);
47
+ console.log("answer", answer);
45
48
  break;
46
49
  case 2: // a/b ±c±d
47
50
  _c = [1, 2, 3].map(function (el) { return (0, randint_1.randint)(-10, 11, [0]); }), b = _c[0], c = _c[1], d = _c[2];
@@ -51,33 +54,48 @@ function getPriorityQuestions() {
51
54
  new addNode_1.AddNode(new divideNode_1.DivideNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new addNode_1.AddNode(new numberNode_1.NumberNode(c), new numberNode_1.NumberNode(d))).shuffle()
52
55
  : //a/b middle
53
56
  new addNode_1.AddNode(new addNode_1.AddNode(new numberNode_1.NumberNode(c), new divideNode_1.DivideNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b))), new numberNode_1.NumberNode(d));
54
- answer = a / b + c + d + "";
57
+ answer = (a / b + c + d).toString();
58
+ console.log("type", type);
59
+ console.log("statement", statement);
60
+ console.log("answer", answer);
55
61
  break;
56
62
  case 3: // a*b ± c*d
57
63
  _d = [1, 2, 3, 4].map(function (el) { return (0, randint_1.randint)(-10, 11); }), a = _d[0], b = _d[1], c = _d[2], d = _d[3];
58
64
  statement = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(c), new numberNode_1.NumberNode(d)));
59
- answer = a * b + c * d + "";
65
+ answer = (a * b + c * d).toString();
66
+ console.log("type", type);
67
+ console.log("statement", statement);
68
+ console.log("answer", answer);
60
69
  break;
61
70
  case 4: // a*b ± c/d
62
71
  _e = [1, 2].map(function (el) { return (0, randint_1.randint)(-10, 11); }), a = _e[0], b = _e[1];
63
72
  d = (0, randint_1.randint)(-10, 11, [0]);
64
73
  c = d * (0, randint_1.randint)(0, 11);
65
74
  statement = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new divideNode_1.DivideNode(new numberNode_1.NumberNode(c), new numberNode_1.NumberNode(d))).shuffle();
66
- answer = a * b + c / d + "";
75
+ answer = (a * b + c / d).toString();
76
+ console.log("type", type);
77
+ console.log("statement", statement);
78
+ console.log("answer", answer);
67
79
  break;
68
80
  case 5: // a/b ± c/d
69
81
  _f = [1, 2].map(function (el) { return (0, randint_1.randint)(-10, 11, [0]); }), b = _f[0], d = _f[1];
70
82
  a = b * (0, randint_1.randint)(0, 11);
71
83
  c = d * (0, randint_1.randint)(0, 11);
72
84
  statement = new addNode_1.AddNode(new divideNode_1.DivideNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new divideNode_1.DivideNode(new numberNode_1.NumberNode(c), new numberNode_1.NumberNode(d)));
73
- answer = a / b + c / d + "";
85
+ answer = (a / b + c / d).toString();
86
+ console.log("type", type);
87
+ console.log("statement", statement);
88
+ console.log("answer", answer);
74
89
  break;
75
90
  case 5: // a*b*c ± d
76
91
  _g = [1, 2].map(function (el) { return (0, randint_1.randint)(-10, 11, [0]); }), b = _g[0], d = _g[1];
77
92
  a = b * (0, randint_1.randint)(0, 11);
78
93
  c = d * (0, randint_1.randint)(0, 11);
79
94
  statement = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new numberNode_1.NumberNode(c)), new numberNode_1.NumberNode(d)).shuffle();
80
- answer = (a * b * c) / d + "";
95
+ answer = a * b * c + d + "";
96
+ console.log("type", type);
97
+ console.log("statement", statement.toString());
98
+ console.log("answer", answer);
81
99
  break;
82
100
  }
83
101
  var question = {
@@ -1,7 +1,4 @@
1
1
  import { randint } from "../../mathutils/random/randint";
2
- import { Integer } from "../../numbers/integer/integer";
3
- import { DiscreteSet } from "../../sets/discreteSet";
4
- import { Interval } from "../../sets/intervals/intervals";
5
2
  import { latexParse } from "../../tree/latexParser/latexParse";
6
3
  import { Node } from "../../tree/nodes/node";
7
4
  import { NumberNode } from "../../tree/nodes/numbers/numberNode";
@@ -52,7 +49,7 @@ export function getPriorityQuestions(): Question {
52
49
  new AddNode(new NumberNode(c), new MultiplyNode(new NumberNode(a), new NumberNode(b))),
53
50
  new NumberNode(d)
54
51
  );
55
- answer = a * b + c + d + "";
52
+ answer = (a * b + c + d).toString();
56
53
  break;
57
54
  case 2: // a/b ±c±d
58
55
  [b, c, d] = [1, 2, 3].map((el) => randint(-10, 11, [0]));
@@ -68,7 +65,7 @@ export function getPriorityQuestions(): Question {
68
65
  new AddNode(new NumberNode(c), new DivideNode(new NumberNode(a), new NumberNode(b))),
69
66
  new NumberNode(d)
70
67
  );
71
- answer = a / b + c + d + "";
68
+ answer = (a / b + c + d).toString();
72
69
  break;
73
70
  case 3: // a*b ± c*d
74
71
  [a, b, c, d] = [1, 2, 3, 4].map((el) => randint(-10, 11));
@@ -76,7 +73,7 @@ export function getPriorityQuestions(): Question {
76
73
  new MultiplyNode(new NumberNode(a), new NumberNode(b)),
77
74
  new MultiplyNode(new NumberNode(c), new NumberNode(d))
78
75
  );
79
- answer = a * b + c * d + "";
76
+ answer = (a * b + c * d).toString();
80
77
  break;
81
78
  case 4: // a*b ± c/d
82
79
  [a, b] = [1, 2].map((el) => randint(-10, 11));
@@ -86,7 +83,7 @@ export function getPriorityQuestions(): Question {
86
83
  new MultiplyNode(new NumberNode(a), new NumberNode(b)),
87
84
  new DivideNode(new NumberNode(c), new NumberNode(d))
88
85
  ).shuffle();
89
- answer = a * b + c / d + "";
86
+ answer = (a * b + c / d).toString();
90
87
  break;
91
88
  case 5: // a/b ± c/d
92
89
  [b, d] = [1, 2].map((el) => randint(-10, 11, [0]));
@@ -96,7 +93,7 @@ export function getPriorityQuestions(): Question {
96
93
  new DivideNode(new NumberNode(a), new NumberNode(b)),
97
94
  new DivideNode(new NumberNode(c), new NumberNode(d))
98
95
  );
99
- answer = a / b + c / d + "";
96
+ answer = (a / b + c / d).toString();
100
97
  break;
101
98
  case 5: // a*b*c ± d
102
99
  [b, d] = [1, 2].map((el) => randint(-10, 11, [0]));
@@ -106,7 +103,7 @@ export function getPriorityQuestions(): Question {
106
103
  new MultiplyNode(new MultiplyNode(new NumberNode(a), new NumberNode(b)), new NumberNode(c)),
107
104
  new NumberNode(d)
108
105
  ).shuffle();
109
- answer = (a * b * c) / d + "";
106
+ answer = (a * b * c + d).toString();
110
107
  break;
111
108
  }
112
109
 
@@ -18,7 +18,7 @@ exports.equationType1Exercise = {
18
18
  label: "Equations $x+a = b$",
19
19
  levels: ["4", "3", "2"],
20
20
  section: "Calcul littéral",
21
- isSingleStep: false,
21
+ isSingleStep: true,
22
22
  generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationType1ExerciseQuestion, nb); }
23
23
  };
24
24
  function getEquationType1ExerciseQuestion() {
@@ -17,7 +17,7 @@ export const equationType1Exercise: Exercise = {
17
17
  label: "Equations $x+a = b$",
18
18
  levels: ["4", "3", "2"],
19
19
  section: "Calcul littéral",
20
- isSingleStep: false,
20
+ isSingleStep: true,
21
21
  generator: (nb: number) => getDistinctQuestions(getEquationType1ExerciseQuestion, nb),
22
22
  };
23
23
 
@@ -20,7 +20,7 @@ exports.equationType2Exercise = {
20
20
  label: "Equations $ax=b$",
21
21
  levels: ["4", "3", "2"],
22
22
  section: "Calcul littéral",
23
- isSingleStep: false,
23
+ isSingleStep: true,
24
24
  generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationType2ExerciseQuestion, nb); }
25
25
  };
26
26
  function getEquationType2ExerciseQuestion() {
@@ -20,7 +20,7 @@ export const equationType2Exercise: Exercise = {
20
20
  label: "Equations $ax=b$",
21
21
  levels: ["4", "3", "2"],
22
22
  section: "Calcul littéral",
23
- isSingleStep: false,
23
+ isSingleStep: true,
24
24
  generator: (nb: number) => getDistinctQuestions(getEquationType2ExerciseQuestion, nb),
25
25
  };
26
26
 
package/src/index.ts CHANGED
@@ -1,6 +1,11 @@
1
+ import { operationsPriorities } from "./exercises/calcul/operationsPriorities";
1
2
  import { exercises } from "./exercises/exercises";
3
+ import { latexParse } from "./tree/latexParser/latexParse";
4
+ import { NumberNode } from "./tree/nodes/numbers/numberNode";
5
+ import { MultiplyNode } from "./tree/nodes/operators/multiplyNode";
2
6
 
3
7
  // exercises.forEach((exo) => {
4
8
  // console.log(exo.instruction, exo.generator(10));
5
9
  // });
10
+
6
11
  export { exercises };
@@ -62,13 +62,7 @@ function latexParse(node) {
62
62
  }
63
63
  if (needBrackets)
64
64
  rightTex = "(".concat(rightTex, ")");
65
- // permet de gérer le cas 3*2^x
66
- var showTimesSign = !isNaN(+rightTex[0]);
67
- if (rightChild.type === node_1.NodeType.operator) {
68
- var operatorRightChild = rightChild;
69
- showTimesSign || (showTimesSign = [operatorNode_1.OperatorIds.fraction].includes(operatorRightChild.id));
70
- }
71
- return "".concat(leftTex).concat(showTimesSign ? "\\div " : "").concat(rightTex);
65
+ return "".concat(leftTex, " \\div ").concat(rightTex);
72
66
  }
73
67
  case operatorNode_1.OperatorIds.fraction: {
74
68
  return "\\frac{".concat(leftTex, "}{").concat(rightTex, "}");
@@ -65,13 +65,7 @@ export function latexParse(node: Node): string {
65
65
  }
66
66
  if (needBrackets) rightTex = `(${rightTex})`;
67
67
 
68
- // permet de gérer le cas 3*2^x
69
- let showTimesSign = !isNaN(+rightTex[0]);
70
- if (rightChild.type === NodeType.operator) {
71
- const operatorRightChild = rightChild as OperatorNode;
72
- showTimesSign ||= [OperatorIds.fraction].includes(operatorRightChild.id);
73
- }
74
- return `${leftTex}${showTimesSign ? "\\div " : ""}${rightTex}`;
68
+ return `${leftTex} \\div ${rightTex}`;
75
69
  }
76
70
 
77
71
  case OperatorIds.fraction: {