math-exercises 1.3.3 → 1.3.5

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 (102) hide show
  1. package/lib/exercises/calcul/addAndSub.js +11 -12
  2. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +15 -15
  3. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +15 -14
  4. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +13 -13
  5. package/lib/exercises/calcul/fractions/fractionsDivision.js +12 -12
  6. package/lib/exercises/calcul/fractions/fractionsProduct.js +11 -12
  7. package/lib/exercises/calcul/fractions/fractionsSum.js +11 -12
  8. package/lib/exercises/calcul/fractions/simplifyFraction.js +10 -11
  9. package/lib/exercises/calcul/operations/operationsPriorities.js +98 -0
  10. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.js +111 -0
  11. package/lib/exercises/calcul/rounding/rounding.js +36 -37
  12. package/lib/exercises/calculLitteral/distributivity/allIdentities.js +8 -8
  13. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.js +15 -16
  14. package/lib/exercises/calculLitteral/distributivity/firstIdentity.js +10 -11
  15. package/lib/exercises/calculLitteral/distributivity/secondIdentity.js +17 -18
  16. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.js +16 -17
  17. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.js +15 -16
  18. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +15 -16
  19. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +19 -20
  20. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +19 -20
  21. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +20 -21
  22. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +20 -21
  23. package/lib/exercises/exercises.js +11 -1
  24. package/lib/exercises/geometry/cartesian/midpoint.js +29 -0
  25. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +28 -0
  26. package/lib/exercises/geometry/vectors/scalarProductViaNorms.js +27 -0
  27. package/lib/exercises/powers/powersDivision.js +23 -24
  28. package/lib/exercises/powers/powersOfTenToDecimal.js +13 -14
  29. package/lib/exercises/powers/powersPower.js +19 -20
  30. package/lib/exercises/powers/powersProduct.js +22 -23
  31. package/lib/exercises/powers/scientificToDecimal.js +17 -18
  32. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.js +24 -0
  33. package/lib/exercises/sequences/geometric/geometricFindReason.js +23 -0
  34. package/lib/exercises/squareRoots/simpifySquareRoot.js +9 -10
  35. package/lib/exercises/trigonometry/mainRemarkableValues.js +28 -0
  36. package/lib/exercises/trigonometry/remarkableValues.js +28 -0
  37. package/lib/exercises/utils/getDistinctQuestions.js +1 -1
  38. package/lib/geometry/point.js +26 -0
  39. package/lib/geometry/vector.js +31 -0
  40. package/lib/index.js +1 -0
  41. package/lib/math/geometry/point.js +27 -0
  42. package/lib/math/geometry/vector.js +31 -0
  43. package/lib/math/numbers/decimals/decimal.js +140 -0
  44. package/lib/math/numbers/epsilon.js +10 -0
  45. package/lib/math/numbers/integer/integer.js +68 -0
  46. package/lib/math/numbers/integer/power.js +52 -0
  47. package/lib/math/numbers/nombre.js +10 -0
  48. package/lib/math/numbers/rationals/rational.js +113 -0
  49. package/lib/math/numbers/reals/real.js +16 -0
  50. package/lib/math/numbers/reals/squareRoot.js +63 -0
  51. package/lib/math/polynomials/affine.js +42 -0
  52. package/lib/math/polynomials/polynomial.js +125 -0
  53. package/lib/math/sequences/arithmeticSequence.js +1 -0
  54. package/lib/math/sequences/geometricSequence.js +8 -0
  55. package/lib/math/sequences/sequence.js +18 -0
  56. package/lib/math/sets/discreteSet.js +28 -0
  57. package/lib/math/sets/emptySet.js +6 -0
  58. package/lib/math/sets/intervals/intervals.js +104 -0
  59. package/lib/math/sets/mathSet.js +10 -0
  60. package/lib/math/sets/mathSetInterface.js +2 -0
  61. package/lib/math/trigonometry/remarkableValue.js +29 -0
  62. package/lib/math/trigonometry/remarkableValues.js +51 -0
  63. package/lib/math/utils/arithmetic/coprimesOf.js +13 -0
  64. package/lib/math/utils/arithmetic/dividersOf.js +12 -0
  65. package/lib/math/utils/arithmetic/gcd.js +7 -0
  66. package/lib/math/utils/arithmetic/isSquare.js +7 -0
  67. package/lib/math/utils/arithmetic/lcd.js +12 -0
  68. package/lib/math/utils/arithmetic/nonCoprimesOf.js +13 -0
  69. package/lib/math/utils/arithmetic/nonDividersOf.js +14 -0
  70. package/lib/math/utils/arithmetic/primeFactors.js +22 -0
  71. package/lib/math/utils/decimals/decimalPartLengthOf.js +14 -0
  72. package/lib/math/utils/random/randTupleInt.js +30 -0
  73. package/lib/math/utils/random/randint.js +18 -0
  74. package/lib/math/utils/round.js +8 -0
  75. package/lib/mathutils/random/randTupleInt.js +30 -0
  76. package/lib/sets/intervals/intervals.js +14 -18
  77. package/lib/tree/nodes/functions/cosNode.js +21 -0
  78. package/lib/tree/nodes/functions/functionNode.js +2 -0
  79. package/lib/tree/nodes/functions/oppositeNode.js +16 -3
  80. package/lib/tree/nodes/functions/sinNode.js +1 -0
  81. package/lib/tree/nodes/functions/sqrtNode.js +6 -3
  82. package/lib/tree/nodes/node.js +4 -3
  83. package/lib/tree/nodes/numbers/constantNode.js +18 -0
  84. package/lib/tree/nodes/numbers/numberNode.js +7 -3
  85. package/lib/tree/nodes/numbers/piNode.js +5 -0
  86. package/lib/tree/nodes/operators/addNode.js +7 -3
  87. package/lib/tree/nodes/operators/divideNode.js +20 -3
  88. package/lib/tree/nodes/operators/equalNode.js +6 -3
  89. package/lib/tree/nodes/operators/fractionNode.js +6 -3
  90. package/lib/tree/nodes/operators/multiplyNode.js +33 -3
  91. package/lib/tree/nodes/operators/operatorNode.js +5 -5
  92. package/lib/tree/nodes/operators/powerNode.js +23 -3
  93. package/lib/tree/nodes/operators/substractNode.js +14 -3
  94. package/lib/tree/nodes/variables/variableNode.js +9 -6
  95. package/lib/tree/parsers/derivateParser.js +61 -59
  96. package/lib/tree/parsers/latexParser.js +109 -116
  97. package/lib/tree/parsers/simplify.js +52 -0
  98. package/lib/trigonometry/remarkableValue.js +29 -0
  99. package/lib/trigonometry/remarkableValues.js +51 -0
  100. package/lib/utils/arrayEqual.js +13 -0
  101. package/lib/utils/coinFlip.js +7 -0
  102. package/package.json +2 -2
@@ -1,20 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRoundQuestions = exports.allRoundings = exports.roundToMillieme = exports.roundToCentieme = exports.roundToDixieme = exports.roundToUnit = void 0;
4
- const randint_1 = require("../../../mathutils/random/randint");
5
- const decimal_1 = require("../../../numbers/decimals/decimal");
6
- const latexParser_1 = require("../../../tree/parsers/latexParser");
7
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const decimal_1 = require("src/math/numbers/decimals/decimal");
6
+ const randint_1 = require("src/math/utils/random/randint");
8
7
  /**
9
8
  * arrondi à l'unité
10
9
  */
11
10
  exports.roundToUnit = {
12
- id: "roundToUnit",
13
- connector: "\\approx",
11
+ id: 'roundToUnit',
12
+ connector: '\\approx',
14
13
  instruction: "Arrondir à l'unité :",
15
14
  label: "Arrondir à l'unité",
16
- levels: ["6", "5"],
17
- section: "Calculs",
15
+ levels: ['6', '5'],
16
+ section: 'Calculs',
18
17
  isSingleStep: true,
19
18
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(0), nb),
20
19
  };
@@ -22,12 +21,12 @@ exports.roundToUnit = {
22
21
  * arrondi à l'unité
23
22
  */
24
23
  exports.roundToDixieme = {
25
- id: "roundToDixieme",
26
- connector: "\\approx",
27
- instruction: "Arrondir au dixième :",
28
- label: "Arrondir au dixième",
29
- levels: ["6", "5"],
30
- section: "Calculs",
24
+ id: 'roundToDixieme',
25
+ connector: '\\approx',
26
+ instruction: 'Arrondir au dixième :',
27
+ label: 'Arrondir au dixième',
28
+ levels: ['6', '5'],
29
+ section: 'Calculs',
31
30
  isSingleStep: true,
32
31
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(1), nb),
33
32
  };
@@ -35,12 +34,12 @@ exports.roundToDixieme = {
35
34
  * arrondi à l'unité
36
35
  */
37
36
  exports.roundToCentieme = {
38
- id: "roundToCentieme",
39
- connector: "\\approx",
40
- instruction: "Arrondir au centième :",
41
- label: "Arrondir au centième",
42
- levels: ["6", "5"],
43
- section: "Calculs",
37
+ id: 'roundToCentieme',
38
+ connector: '\\approx',
39
+ instruction: 'Arrondir au centième :',
40
+ label: 'Arrondir au centième',
41
+ levels: ['6', '5'],
42
+ section: 'Calculs',
44
43
  isSingleStep: true,
45
44
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(2), nb),
46
45
  };
@@ -48,38 +47,38 @@ exports.roundToCentieme = {
48
47
  * arrondi à l'unité
49
48
  */
50
49
  exports.roundToMillieme = {
51
- id: "roundToMillieme",
52
- connector: "\\approx",
53
- instruction: "Arrondir au millième :",
54
- label: "Arrondir au millième",
55
- levels: ["6", "5"],
56
- section: "Calculs",
50
+ id: 'roundToMillieme',
51
+ connector: '\\approx',
52
+ instruction: 'Arrondir au millième :',
53
+ label: 'Arrondir au millième',
54
+ levels: ['6', '5'],
55
+ section: 'Calculs',
57
56
  isSingleStep: true,
58
57
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(3), nb),
59
58
  };
60
59
  exports.allRoundings = {
61
- id: "allRoundings",
62
- connector: "\\approx",
63
- instruction: "",
64
- label: "Arrondir un nombre décimal",
65
- levels: ["6", "5"],
66
- section: "Calculs",
60
+ id: 'allRoundings',
61
+ connector: '\\approx',
62
+ instruction: '',
63
+ label: 'Arrondir un nombre décimal',
64
+ levels: ['6', '5'],
65
+ section: 'Calculs',
67
66
  isSingleStep: true,
68
67
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions((0, randint_1.randint)(0, 4)), nb),
69
68
  };
70
69
  const instructions = [
71
70
  "Arrondir à l'unité :",
72
- "Arrondir au dixième :",
73
- "Arrondir au centième :",
74
- "Arrondir au millième :",
71
+ 'Arrondir au dixième :',
72
+ 'Arrondir au centième :',
73
+ 'Arrondir au millième :',
75
74
  ];
76
75
  function getRoundQuestions(precisionAsked = 0) {
77
76
  const precision = (0, randint_1.randint)(precisionAsked + 1, precisionAsked + 5);
78
77
  const dec = decimal_1.DecimalConstructor.random(0, 1000, precision);
79
78
  const question = {
80
79
  instruction: instructions[precisionAsked],
81
- startStatement: (0, latexParser_1.latexParser)(dec.toTree()),
82
- answer: (0, latexParser_1.latexParser)(dec.round(precisionAsked).toTree()),
80
+ startStatement: dec.toTree().toTex(),
81
+ answer: dec.round(precisionAsked).toTree().toTex(),
83
82
  };
84
83
  return question;
85
84
  }
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAllIdentitiesQuestion = exports.allIdentities = void 0;
4
- const random_1 = require("../../../utils/random");
5
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const random_1 = require("src/utils/random");
6
6
  const firstIdentity_1 = require("./firstIdentity");
7
7
  const secondIdentity_1 = require("./secondIdentity");
8
8
  const thirdIdentity_1 = require("./thirdIdentity");
9
9
  exports.allIdentities = {
10
- id: "allIdRmq",
11
- connector: "=",
12
- instruction: "Développer et réduire :",
13
- label: "Identités remarquables (toutes)",
14
- levels: ["3", "2"],
10
+ id: 'allIdRmq',
11
+ connector: '=',
12
+ instruction: 'Développer et réduire :',
13
+ label: 'Identités remarquables (toutes)',
14
+ levels: ['3', '2'],
15
15
  isSingleStep: false,
16
- section: "Calcul littéral",
16
+ section: 'Calcul littéral',
17
17
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getAllIdentitiesQuestion, nb),
18
18
  };
19
19
  function getAllIdentitiesQuestion() {
@@ -1,31 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDoubleDistributivityQuestion = exports.doubleDistributivity = void 0;
4
- const integer_1 = require("../../../numbers/integer/integer");
5
- const affine_1 = require("../../../polynomials/affine");
6
- const discreteSet_1 = require("../../../sets/discreteSet");
7
- const intervals_1 = require("../../../sets/intervals/intervals");
8
- const latexParser_1 = require("../../../tree/parsers/latexParser");
9
- const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
10
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("src/math/numbers/integer/integer");
6
+ const affine_1 = require("src/math/polynomials/affine");
7
+ const discreteSet_1 = require("src/math/sets/discreteSet");
8
+ const intervals_1 = require("src/math/sets/intervals/intervals");
9
+ const multiplyNode_1 = require("src/tree/nodes/operators/multiplyNode");
11
10
  exports.doubleDistributivity = {
12
- id: "doubleDistri",
13
- connector: "=",
14
- instruction: "Développer et réduire :",
15
- label: "Distributivité double",
16
- levels: ["3", "2"],
11
+ id: 'doubleDistri',
12
+ connector: '=',
13
+ instruction: 'Développer et réduire :',
14
+ label: 'Distributivité double',
15
+ levels: ['3', '2'],
17
16
  isSingleStep: false,
18
- section: "Calcul littéral",
17
+ section: 'Calcul littéral',
19
18
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getDoubleDistributivityQuestion, nb),
20
19
  };
21
20
  function getDoubleDistributivityQuestion() {
22
- const interval = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
21
+ const interval = new intervals_1.Interval('[[-10; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
23
22
  const affines = affine_1.AffineConstructor.differentRandoms(2, interval, interval);
24
23
  const statementTree = new multiplyNode_1.MultiplyNode(affines[0].toTree(), affines[1].toTree());
25
24
  const answerTree = affines[0].multiply(affines[1]).toTree();
26
25
  return {
27
- startStatement: (0, latexParser_1.latexParser)(statementTree),
28
- answer: (0, latexParser_1.latexParser)(answerTree),
26
+ startStatement: statementTree.toTex(),
27
+ answer: answerTree.toTex(),
29
28
  };
30
29
  }
31
30
  exports.getDoubleDistributivityQuestion = getDoubleDistributivityQuestion;
@@ -2,31 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFirstIdentityQuestion = exports.firstIdentity = void 0;
4
4
  const integer_1 = require("../../../numbers/integer/integer");
5
- const affine_1 = require("../../../polynomials/affine");
5
+ const affine_1 = require("../../../math/polynomials/affine");
6
6
  const discreteSet_1 = require("../../../sets/discreteSet");
7
7
  const intervals_1 = require("../../../sets/intervals/intervals");
8
- const latexParser_1 = require("../../../tree/parsers/latexParser");
9
8
  const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
10
9
  const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
11
10
  const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
12
11
  exports.firstIdentity = {
13
- id: "idRmq1",
14
- connector: "=",
15
- instruction: "Développer et réduire :",
16
- label: "Identité remarquable $(a+b)^2$",
17
- levels: ["3", "2"],
12
+ id: 'idRmq1',
13
+ connector: '=',
14
+ instruction: 'Développer et réduire :',
15
+ label: 'Identité remarquable $(a+b)^2$',
16
+ levels: ['3', '2'],
18
17
  isSingleStep: false,
19
- section: "Calcul littéral",
18
+ section: 'Calcul littéral',
20
19
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFirstIdentityQuestion, nb),
21
20
  };
22
21
  function getFirstIdentityQuestion() {
23
- const interval = new intervals_1.Interval("[[1; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
22
+ const interval = new intervals_1.Interval('[[1; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
24
23
  const affine = affine_1.AffineConstructor.random(interval, interval);
25
24
  const statementTree = new powerNode_1.PowerNode(affine.toTree(), new numberNode_1.NumberNode(2));
26
25
  const answerTree = affine.multiply(affine).toTree();
27
26
  return {
28
- startStatement: (0, latexParser_1.latexParser)(statementTree),
29
- answer: (0, latexParser_1.latexParser)(answerTree),
27
+ startStatement: statementTree.toTex(),
28
+ answer: answerTree.toTex(),
30
29
  };
31
30
  }
32
31
  exports.getFirstIdentityQuestion = getFirstIdentityQuestion;
@@ -1,33 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSecondIdentityQuestion = exports.secondIdentity = void 0;
4
- const integer_1 = require("../../../numbers/integer/integer");
5
- const affine_1 = require("../../../polynomials/affine");
6
- const discreteSet_1 = require("../../../sets/discreteSet");
7
- const intervals_1 = require("../../../sets/intervals/intervals");
8
- const latexParser_1 = require("../../../tree/parsers/latexParser");
9
- const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
10
- const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
11
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("src/math/numbers/integer/integer");
6
+ const affine_1 = require("src/math/polynomials/affine");
7
+ const discreteSet_1 = require("src/math/sets/discreteSet");
8
+ const intervals_1 = require("src/math/sets/intervals/intervals");
9
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
10
+ const powerNode_1 = require("src/tree/nodes/operators/powerNode");
12
11
  exports.secondIdentity = {
13
- id: "idRmq2",
14
- connector: "=",
15
- instruction: "Développer et réduire :",
16
- label: "Identité remarquable $(a-b)^2$",
17
- levels: ["3", "2"],
12
+ id: 'idRmq2',
13
+ connector: '=',
14
+ instruction: 'Développer et réduire :',
15
+ label: 'Identité remarquable $(a-b)^2$',
16
+ levels: ['3', '2'],
18
17
  isSingleStep: false,
19
- section: "Calcul littéral",
18
+ section: 'Calcul littéral',
20
19
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSecondIdentityQuestion, nb),
21
20
  };
22
21
  function getSecondIdentityQuestion() {
23
- const intervalA = new intervals_1.Interval("[[0; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
24
- const intervalB = new intervals_1.Interval("[[-10; 0]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
22
+ const intervalA = new intervals_1.Interval('[[0; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
23
+ const intervalB = new intervals_1.Interval('[[-10; 0]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
25
24
  const affine = affine_1.AffineConstructor.random(intervalA, intervalB);
26
25
  const statementTree = new powerNode_1.PowerNode(affine.toTree(), new numberNode_1.NumberNode(2));
27
26
  const answerTree = affine.multiply(affine).toTree();
28
27
  return {
29
- startStatement: (0, latexParser_1.latexParser)(statementTree),
30
- answer: (0, latexParser_1.latexParser)(answerTree),
28
+ startStatement: statementTree.toTex(),
29
+ answer: answerTree.toTex(),
31
30
  };
32
31
  }
33
32
  exports.getSecondIdentityQuestion = getSecondIdentityQuestion;
@@ -1,33 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSimpleDistributivityQuestion = exports.simpleDistributivity = void 0;
4
- const integer_1 = require("../../../numbers/integer/integer");
5
- const affine_1 = require("../../../polynomials/affine");
6
- const discreteSet_1 = require("../../../sets/discreteSet");
7
- const intervals_1 = require("../../../sets/intervals/intervals");
8
- const latexParser_1 = require("../../../tree/parsers/latexParser");
9
- const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
10
- const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
11
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("src/math/numbers/integer/integer");
6
+ const affine_1 = require("src/math/polynomials/affine");
7
+ const discreteSet_1 = require("src/math/sets/discreteSet");
8
+ const intervals_1 = require("src/math/sets/intervals/intervals");
9
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
10
+ const multiplyNode_1 = require("src/tree/nodes/operators/multiplyNode");
12
11
  exports.simpleDistributivity = {
13
- id: "simpleDistri",
14
- connector: "=",
15
- instruction: "Développer et réduire :",
16
- label: "Distributivité simple",
17
- levels: ["3", "2"],
12
+ id: 'simpleDistri',
13
+ connector: '=',
14
+ instruction: 'Développer et réduire :',
15
+ label: 'Distributivité simple',
16
+ levels: ['3', '2'],
18
17
  isSingleStep: false,
19
- section: "Calcul littéral",
18
+ section: 'Calcul littéral',
20
19
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSimpleDistributivityQuestion, nb),
21
20
  };
22
21
  function getSimpleDistributivityQuestion() {
23
- const interval = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
22
+ const interval = new intervals_1.Interval('[[-10; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
24
23
  const affine = affine_1.AffineConstructor.random(interval, interval);
25
24
  const coeff = interval.getRandomElement();
26
25
  const statementTree = new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(coeff.value), affine.toTree());
27
26
  const answerTree = affine.times(coeff.value).toTree();
28
27
  return {
29
- startStatement: (0, latexParser_1.latexParser)(statementTree),
30
- answer: (0, latexParser_1.latexParser)(answerTree),
28
+ startStatement: statementTree.toTex(),
29
+ answer: answerTree.toTex(),
31
30
  };
32
31
  }
33
32
  exports.getSimpleDistributivityQuestion = getSimpleDistributivityQuestion;
@@ -1,32 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getThirdIdentityQuestion = exports.thirdIdentity = void 0;
4
- const integer_1 = require("../../../numbers/integer/integer");
5
- const affine_1 = require("../../../polynomials/affine");
6
- const discreteSet_1 = require("../../../sets/discreteSet");
7
- const intervals_1 = require("../../../sets/intervals/intervals");
8
- const latexParser_1 = require("../../../tree/parsers/latexParser");
9
- const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
10
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("src/math/numbers/integer/integer");
6
+ const affine_1 = require("src/math/polynomials/affine");
7
+ const discreteSet_1 = require("src/math/sets/discreteSet");
8
+ const intervals_1 = require("src/math/sets/intervals/intervals");
9
+ const multiplyNode_1 = require("src/tree/nodes/operators/multiplyNode");
11
10
  exports.thirdIdentity = {
12
- id: "idRmq3",
13
- connector: "=",
14
- instruction: "Développer et réduire :",
15
- label: "Identité remarquable $(a+b)(a-b)$",
16
- levels: ["3", "2"],
11
+ id: 'idRmq3',
12
+ connector: '=',
13
+ instruction: 'Développer et réduire :',
14
+ label: 'Identité remarquable $(a+b)(a-b)$',
15
+ levels: ['3', '2'],
17
16
  isSingleStep: false,
18
- section: "Calcul littéral",
17
+ section: 'Calcul littéral',
19
18
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThirdIdentityQuestion, nb),
20
19
  };
21
20
  function getThirdIdentityQuestion() {
22
- const interval = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
21
+ const interval = new intervals_1.Interval('[[-10; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
23
22
  const affine = affine_1.AffineConstructor.random(interval, interval);
24
23
  const affine2 = new affine_1.Affine(affine.a, -affine.b);
25
24
  const statementTree = new multiplyNode_1.MultiplyNode(affine.toTree(), affine2.toTree());
26
25
  const answerTree = affine.multiply(affine2).toTree();
27
26
  return {
28
- startStatement: (0, latexParser_1.latexParser)(statementTree),
29
- answer: (0, latexParser_1.latexParser)(answerTree),
27
+ startStatement: statementTree.toTex(),
28
+ answer: answerTree.toTex(),
30
29
  };
31
30
  }
32
31
  exports.getThirdIdentityQuestion = getThirdIdentityQuestion;
@@ -1,36 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEquationType1ExerciseQuestion = exports.equationType1Exercise = void 0;
4
- const integer_1 = require("../../../numbers/integer/integer");
5
- const affine_1 = require("../../../polynomials/affine");
6
- const discreteSet_1 = require("../../../sets/discreteSet");
7
- const intervals_1 = require("../../../sets/intervals/intervals");
8
- const latexParser_1 = require("../../../tree/parsers/latexParser");
9
- const equalNode_1 = require("../../../tree/nodes/operators/equalNode");
10
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("src/math/numbers/integer/integer");
6
+ const affine_1 = require("src/math/polynomials/affine");
7
+ const discreteSet_1 = require("src/math/sets/discreteSet");
8
+ const intervals_1 = require("src/math/sets/intervals/intervals");
9
+ const equalNode_1 = require("src/tree/nodes/operators/equalNode");
11
10
  /**
12
11
  * type x+a=b
13
12
  */
14
13
  exports.equationType1Exercise = {
15
- id: "equa1",
16
- connector: "\\iff",
17
- instruction: "Résoudre : ",
18
- label: "Equations $x+a = b$",
19
- levels: ["4", "3", "2"],
20
- section: "Calcul littéral",
14
+ id: 'equa1',
15
+ connector: '\\iff',
16
+ instruction: 'Résoudre : ',
17
+ label: 'Equations $x+a = b$',
18
+ levels: ['4', '3', '2'],
19
+ section: 'Calcul littéral',
21
20
  isSingleStep: true,
22
21
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationType1ExerciseQuestion, nb),
23
22
  };
24
23
  function getEquationType1ExerciseQuestion() {
25
- const interval = new intervals_1.Interval("[[-10; 10]]");
26
- const intervalStar = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
24
+ const interval = new intervals_1.Interval('[[-10; 10]]');
25
+ const intervalStar = new intervals_1.Interval('[[-10; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
27
26
  const b = interval.getRandomElement();
28
27
  const a = intervalStar.getRandomElement();
29
28
  const solution = b.value - a.value;
30
29
  const affine = new affine_1.Affine(1, a.value).toTree();
31
30
  const tree = new equalNode_1.EqualNode(affine, b.toTree());
32
31
  const question = {
33
- startStatement: (0, latexParser_1.latexParser)(tree),
32
+ startStatement: tree.toTex(),
34
33
  answer: `x = ${solution}`,
35
34
  };
36
35
  return question;
@@ -1,40 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEquationType2ExerciseQuestion = exports.equationType2Exercise = void 0;
4
- const integer_1 = require("../../../numbers/integer/integer");
5
- const rational_1 = require("../../../numbers/rationals/rational");
6
- const affine_1 = require("../../../polynomials/affine");
7
- const discreteSet_1 = require("../../../sets/discreteSet");
8
- const intervals_1 = require("../../../sets/intervals/intervals");
9
- const latexParser_1 = require("../../../tree/parsers/latexParser");
10
- const equalNode_1 = require("../../../tree/nodes/operators/equalNode");
11
- const variableNode_1 = require("../../../tree/nodes/variables/variableNode");
12
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("src/math/numbers/integer/integer");
6
+ const rational_1 = require("src/math/numbers/rationals/rational");
7
+ const affine_1 = require("src/math/polynomials/affine");
8
+ const discreteSet_1 = require("src/math/sets/discreteSet");
9
+ const intervals_1 = require("src/math/sets/intervals/intervals");
10
+ const equalNode_1 = require("src/tree/nodes/operators/equalNode");
11
+ const variableNode_1 = require("src/tree/nodes/variables/variableNode");
13
12
  /**
14
13
  * type ax=b
15
14
  */
16
15
  exports.equationType2Exercise = {
17
- id: "equa2",
18
- connector: "\\iff",
19
- instruction: "Résoudre : ",
20
- label: "Equations $ax=b$",
21
- levels: ["4", "3", "2"],
22
- section: "Calcul littéral",
16
+ id: 'equa2',
17
+ connector: '\\iff',
18
+ instruction: 'Résoudre : ',
19
+ label: 'Equations $ax=b$',
20
+ levels: ['4', '3', '2'],
21
+ section: 'Calcul littéral',
23
22
  isSingleStep: true,
24
23
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationType2ExerciseQuestion, nb),
25
24
  };
26
25
  function getEquationType2ExerciseQuestion() {
27
- const interval = new intervals_1.Interval("[[-10; 10]]");
28
- const intervalStar = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
26
+ const interval = new intervals_1.Interval('[[-10; 10]]');
27
+ const intervalStar = new intervals_1.Interval('[[-10; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
29
28
  const b = interval.getRandomElement();
30
29
  const a = intervalStar.getRandomElement();
31
30
  const solution = new rational_1.Rational(b.value, a.value).simplify();
32
31
  const affine = new affine_1.Affine(a.value, 0).toTree();
33
32
  const tree = new equalNode_1.EqualNode(affine, b.toTree());
34
- const answer = new equalNode_1.EqualNode(new variableNode_1.VariableNode("x"), solution.toTree());
33
+ const answer = new equalNode_1.EqualNode(new variableNode_1.VariableNode('x'), solution.toTree());
35
34
  const question = {
36
- startStatement: (0, latexParser_1.latexParser)(tree),
37
- answer: (0, latexParser_1.latexParser)(answer),
35
+ startStatement: tree.toTex(),
36
+ answer: answer.toTex(),
38
37
  };
39
38
  return question;
40
39
  }
@@ -1,41 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEquationType3ExerciseQuestion = exports.equationType3Exercise = void 0;
4
- const integer_1 = require("../../../numbers/integer/integer");
5
- const rational_1 = require("../../../numbers/rationals/rational");
6
- const affine_1 = require("../../../polynomials/affine");
7
- const discreteSet_1 = require("../../../sets/discreteSet");
8
- const intervals_1 = require("../../../sets/intervals/intervals");
9
- const latexParser_1 = require("../../../tree/parsers/latexParser");
10
- const equalNode_1 = require("../../../tree/nodes/operators/equalNode");
11
- const variableNode_1 = require("../../../tree/nodes/variables/variableNode");
12
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("src/math/numbers/integer/integer");
6
+ const rational_1 = require("src/math/numbers/rationals/rational");
7
+ const affine_1 = require("src/math/polynomials/affine");
8
+ const discreteSet_1 = require("src/math/sets/discreteSet");
9
+ const intervals_1 = require("src/math/sets/intervals/intervals");
10
+ const equalNode_1 = require("src/tree/nodes/operators/equalNode");
11
+ const variableNode_1 = require("src/tree/nodes/variables/variableNode");
13
12
  /**
14
13
  * type ax+b=c
15
14
  */
16
15
  exports.equationType3Exercise = {
17
- id: "equa3",
18
- connector: "\\iff",
19
- instruction: "Résoudre : ",
20
- label: "Equations $ax+b=c$",
21
- levels: ["4", "3", "2"],
22
- section: "Calcul littéral",
16
+ id: 'equa3',
17
+ connector: '\\iff',
18
+ instruction: 'Résoudre : ',
19
+ label: 'Equations $ax+b=c$',
20
+ levels: ['4', '3', '2'],
21
+ section: 'Calcul littéral',
23
22
  isSingleStep: false,
24
23
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationType3ExerciseQuestion, nb),
25
24
  };
26
25
  function getEquationType3ExerciseQuestion() {
27
- const interval = new intervals_1.Interval("[[-10; 10]]");
28
- const intervalStar = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
26
+ const interval = new intervals_1.Interval('[[-10; 10]]');
27
+ const intervalStar = new intervals_1.Interval('[[-10; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
29
28
  const b = intervalStar.getRandomElement();
30
29
  const a = intervalStar.getRandomElement();
31
30
  const c = interval.getRandomElement();
32
31
  const affine = new affine_1.Affine(a.value, b.value).toTree();
33
32
  const solution = new rational_1.Rational(c.value - b.value, a.value).simplify();
34
33
  const statementTree = new equalNode_1.EqualNode(affine, c.toTree());
35
- const answerTree = new equalNode_1.EqualNode(new variableNode_1.VariableNode("x"), solution.toTree());
34
+ const answerTree = new equalNode_1.EqualNode(new variableNode_1.VariableNode('x'), solution.toTree());
36
35
  const question = {
37
- startStatement: (0, latexParser_1.latexParser)(statementTree),
38
- answer: (0, latexParser_1.latexParser)(answerTree),
36
+ startStatement: statementTree.toTex(),
37
+ answer: answerTree.toTex(),
39
38
  };
40
39
  return question;
41
40
  }