math-exercises 1.2.8 → 1.2.10

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 (216) hide show
  1. package/lib/exercises/calcul/addAndSub.js +40 -0
  2. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +35 -0
  3. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +31 -0
  4. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +32 -0
  5. package/lib/exercises/calcul/fractions/fractionsDivision.js +29 -0
  6. package/lib/exercises/calcul/fractions/fractionsProduct.js +29 -0
  7. package/lib/exercises/calcul/fractions/fractionsSum.js +29 -0
  8. package/lib/exercises/calcul/fractions/simplifyFraction.js +25 -0
  9. package/lib/exercises/calcul/operations/operationsPriorities.js +88 -0
  10. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.js +111 -0
  11. package/{src → lib}/exercises/calcul/operationsPriorities.js +88 -89
  12. package/{src → lib}/exercises/calcul/rounding/rounding.js +86 -87
  13. package/{src → lib}/exercises/calculLitteral/distributivity/allIdentities.js +27 -27
  14. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.js +31 -0
  15. package/lib/exercises/calculLitteral/distributivity/firstIdentity.js +32 -0
  16. package/lib/exercises/calculLitteral/distributivity/secondIdentity.js +33 -0
  17. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.js +33 -0
  18. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.js +32 -0
  19. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +38 -0
  20. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +41 -0
  21. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +42 -0
  22. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +44 -0
  23. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +39 -0
  24. package/{src → lib}/exercises/exercise.js +7 -7
  25. package/lib/exercises/exercises.js +95 -0
  26. package/lib/exercises/geometry/cartesian/midpoint.js +29 -0
  27. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +29 -0
  28. package/lib/exercises/geometry/vectors/scalarProductViaNorms.js +27 -0
  29. package/lib/exercises/powers/powersDivision.js +45 -0
  30. package/lib/exercises/powers/powersOfTenToDecimal.js +33 -0
  31. package/lib/exercises/powers/powersPower.js +44 -0
  32. package/lib/exercises/powers/powersProduct.js +45 -0
  33. package/lib/exercises/powers/scientificToDecimal.js +38 -0
  34. package/{src → lib}/exercises/squareRoots/simpifySquareRoot.js +28 -28
  35. package/lib/exercises/utils/getDistinctQuestions.js +16 -0
  36. package/lib/geometry/point.js +27 -0
  37. package/lib/geometry/vector.js +31 -0
  38. package/lib/index.js +10 -0
  39. package/lib/mathutils/arithmetic/coprimesOf.js +13 -0
  40. package/lib/mathutils/arithmetic/dividersOf.js +12 -0
  41. package/{src → lib}/mathutils/arithmetic/gcd.js +7 -7
  42. package/{src → lib}/mathutils/arithmetic/isSquare.js +7 -7
  43. package/{src → lib}/mathutils/arithmetic/lcd.js +12 -12
  44. package/lib/mathutils/arithmetic/nonCoprimesOf.js +13 -0
  45. package/lib/mathutils/arithmetic/nonDividersOf.js +14 -0
  46. package/{src → lib}/mathutils/arithmetic/primeFactors.js +22 -22
  47. package/lib/mathutils/decimals/decimalPartLengthOf.js +14 -0
  48. package/lib/mathutils/random/randTupleInt.js +30 -0
  49. package/{src → lib}/mathutils/random/randint.js +18 -18
  50. package/{src → lib}/mathutils/round.js +8 -8
  51. package/{src → lib}/numbers/decimals/decimal.js +140 -144
  52. package/{src → lib}/numbers/epsilon.js +10 -10
  53. package/{src → lib}/numbers/integer/integer.js +68 -72
  54. package/{src → lib}/numbers/integer/power.js +52 -53
  55. package/{src → lib}/numbers/nombre.js +10 -10
  56. package/lib/numbers/rationals/rational.js +113 -0
  57. package/lib/numbers/reals/real.js +16 -0
  58. package/lib/numbers/reals/squareRoot.js +63 -0
  59. package/lib/polynomials/affine.js +42 -0
  60. package/lib/polynomials/polynomial.js +125 -0
  61. package/lib/sets/discreteSet.js +28 -0
  62. package/{src/sets/emptySet.ts → lib/sets/emptySet.js} +6 -6
  63. package/{src → lib}/sets/intervals/intervals.js +108 -113
  64. package/lib/sets/intervals/union.js +1 -0
  65. package/lib/sets/mathSet.js +10 -0
  66. package/lib/sets/mathSetInterface.js +2 -0
  67. package/{src → lib}/tree/nodes/functions/functionNode.js +18 -19
  68. package/lib/tree/nodes/functions/oppositeNode.js +13 -0
  69. package/lib/tree/nodes/functions/sqrtNode.js +15 -0
  70. package/{src → lib}/tree/nodes/node.js +10 -10
  71. package/lib/tree/nodes/numbers/numberNode.js +18 -0
  72. package/lib/tree/nodes/operators/addNode.js +15 -0
  73. package/lib/tree/nodes/operators/divideNode.js +17 -0
  74. package/lib/tree/nodes/operators/equalNode.js +13 -0
  75. package/lib/tree/nodes/operators/fractionNode.js +17 -0
  76. package/lib/tree/nodes/operators/multiplyNode.js +13 -0
  77. package/{src → lib}/tree/nodes/operators/operatorNode.js +35 -37
  78. package/lib/tree/nodes/operators/powerNode.js +13 -0
  79. package/lib/tree/nodes/operators/substractNode.js +13 -0
  80. package/lib/tree/nodes/variables/variableNode.js +16 -0
  81. package/{src → lib}/tree/parsers/derivateParser.js +60 -60
  82. package/{src → lib}/tree/parsers/latexParser.js +117 -117
  83. package/lib/utils/arrayEqual.js +13 -0
  84. package/{src → lib}/utils/coin.js +7 -7
  85. package/{src → lib}/utils/random.js +7 -7
  86. package/lib/utils/shuffle.js +15 -0
  87. package/package.json +35 -28
  88. package/nodemon.json +0 -5
  89. package/src/exercises/calcul/addAndSub.js +0 -40
  90. package/src/exercises/calcul/addAndSub.ts +0 -39
  91. package/src/exercises/calcul/fractions/fractionAndIntegerDivision.js +0 -35
  92. package/src/exercises/calcul/fractions/fractionAndIntegerDivision.ts +0 -36
  93. package/src/exercises/calcul/fractions/fractionAndIntegerProduct.js +0 -31
  94. package/src/exercises/calcul/fractions/fractionAndIntegerProduct.ts +0 -32
  95. package/src/exercises/calcul/fractions/fractionAndIntegerSum.js +0 -32
  96. package/src/exercises/calcul/fractions/fractionAndIntegerSum.ts +0 -31
  97. package/src/exercises/calcul/fractions/fractionsDivision.js +0 -29
  98. package/src/exercises/calcul/fractions/fractionsDivision.ts +0 -30
  99. package/src/exercises/calcul/fractions/fractionsProduct.js +0 -29
  100. package/src/exercises/calcul/fractions/fractionsProduct.ts +0 -29
  101. package/src/exercises/calcul/fractions/fractionsSum.js +0 -29
  102. package/src/exercises/calcul/fractions/fractionsSum.ts +0 -28
  103. package/src/exercises/calcul/fractions/simplifyFraction.js +0 -25
  104. package/src/exercises/calcul/fractions/simplifyFraction.ts +0 -24
  105. package/src/exercises/calcul/operationsPriorities.ts +0 -115
  106. package/src/exercises/calcul/rounding/rounding.ts +0 -87
  107. package/src/exercises/calculLitteral/distributivity/allIdentities.ts +0 -26
  108. package/src/exercises/calculLitteral/distributivity/doubleDistributivity.js +0 -31
  109. package/src/exercises/calculLitteral/distributivity/doubleDistributivity.ts +0 -33
  110. package/src/exercises/calculLitteral/distributivity/firstIdentity.js +0 -32
  111. package/src/exercises/calculLitteral/distributivity/firstIdentity.ts +0 -33
  112. package/src/exercises/calculLitteral/distributivity/secondIdentity.js +0 -33
  113. package/src/exercises/calculLitteral/distributivity/secondIdentity.ts +0 -35
  114. package/src/exercises/calculLitteral/distributivity/simpleDistributivity.js +0 -33
  115. package/src/exercises/calculLitteral/distributivity/simpleDistributivity.ts +0 -33
  116. package/src/exercises/calculLitteral/distributivity/thirdIdentity.js +0 -32
  117. package/src/exercises/calculLitteral/distributivity/thirdIdentity.ts +0 -34
  118. package/src/exercises/calculLitteral/equation/equationType1Exercise.js +0 -38
  119. package/src/exercises/calculLitteral/equation/equationType1Exercise.ts +0 -38
  120. package/src/exercises/calculLitteral/equation/equationType2Exercise.js +0 -41
  121. package/src/exercises/calculLitteral/equation/equationType2Exercise.ts +0 -41
  122. package/src/exercises/calculLitteral/equation/equationType3Exercise.js +0 -42
  123. package/src/exercises/calculLitteral/equation/equationType3Exercise.ts +0 -43
  124. package/src/exercises/calculLitteral/equation/equationType4Exercise.js +0 -44
  125. package/src/exercises/calculLitteral/equation/equationType4Exercise.ts +0 -46
  126. package/src/exercises/calculLitteral/factorisation/factoType1Exercise.js +0 -39
  127. package/src/exercises/calculLitteral/factorisation/factoType1Exercise.ts +0 -54
  128. package/src/exercises/exercise.ts +0 -22
  129. package/src/exercises/exercises.js +0 -85
  130. package/src/exercises/exercises.ts +0 -94
  131. package/src/exercises/powers/powersDivision.js +0 -46
  132. package/src/exercises/powers/powersDivision.ts +0 -51
  133. package/src/exercises/powers/powersOfTenToDecimal.js +0 -33
  134. package/src/exercises/powers/powersOfTenToDecimal.ts +0 -37
  135. package/src/exercises/powers/powersPower.js +0 -45
  136. package/src/exercises/powers/powersPower.ts +0 -55
  137. package/src/exercises/powers/powersProduct.js +0 -46
  138. package/src/exercises/powers/powersProduct.ts +0 -51
  139. package/src/exercises/powers/scientificToDecimal.js +0 -38
  140. package/src/exercises/powers/scientificToDecimal.ts +0 -44
  141. package/src/exercises/squareRoots/simpifySquareRoot.ts +0 -27
  142. package/src/exercises/utils/getDistinctQuestions.js +0 -18
  143. package/src/exercises/utils/getDistinctQuestions.ts +0 -14
  144. package/src/index.js +0 -5
  145. package/src/index.ts +0 -13
  146. package/src/mathutils/arithmetic/coprimesOf.js +0 -13
  147. package/src/mathutils/arithmetic/coprimesOf.ts +0 -9
  148. package/src/mathutils/arithmetic/dividersOf.ts +0 -7
  149. package/src/mathutils/arithmetic/gcd.ts +0 -3
  150. package/src/mathutils/arithmetic/isSquare.ts +0 -3
  151. package/src/mathutils/arithmetic/lcd.ts +0 -7
  152. package/src/mathutils/arithmetic/nonCoprimesOf.ts +0 -9
  153. package/src/mathutils/arithmetic/nonDividersOf.ts +0 -12
  154. package/src/mathutils/arithmetic/primeFactors.ts +0 -18
  155. package/src/mathutils/decimals/decimalPartLengthOf.ts +0 -10
  156. package/src/mathutils/random/randint.ts +0 -12
  157. package/src/mathutils/round.ts +0 -5
  158. package/src/numbers/decimals/decimal.ts +0 -140
  159. package/src/numbers/epsilon.ts +0 -7
  160. package/src/numbers/integer/integer.ts +0 -72
  161. package/src/numbers/integer/power.ts +0 -49
  162. package/src/numbers/nombre.ts +0 -15
  163. package/src/numbers/number.js +0 -8
  164. package/src/numbers/rationals/rational.js +0 -128
  165. package/src/numbers/rationals/rational.ts +0 -122
  166. package/src/numbers/reals/real.js +0 -17
  167. package/src/numbers/reals/real.ts +0 -17
  168. package/src/numbers/reals/squareRoot.js +0 -85
  169. package/src/numbers/reals/squareRoot.ts +0 -70
  170. package/src/polynomials/affine.js +0 -71
  171. package/src/polynomials/affine.ts +0 -60
  172. package/src/polynomials/polynomial.js +0 -128
  173. package/src/polynomials/polynomial.ts +0 -137
  174. package/src/sets/discreteSet.js +0 -30
  175. package/src/sets/discreteSet.ts +0 -30
  176. package/src/sets/intervals/intervals.ts +0 -122
  177. package/src/sets/intervals/union.ts +0 -0
  178. package/src/sets/mathSet.js +0 -11
  179. package/src/sets/mathSet.ts +0 -12
  180. package/src/sets/mathSetInterface.js +0 -2
  181. package/src/sets/mathSetInterface.ts +0 -10
  182. package/src/tree/latexParser/latexParse.js +0 -117
  183. package/src/tree/nodes/functions/functionNode.ts +0 -18
  184. package/src/tree/nodes/functions/oppositeNode.js +0 -30
  185. package/src/tree/nodes/functions/oppositeNode.ts +0 -12
  186. package/src/tree/nodes/functions/sqrtNode.js +0 -33
  187. package/src/tree/nodes/functions/sqrtNode.ts +0 -12
  188. package/src/tree/nodes/node.ts +0 -12
  189. package/src/tree/nodes/numbers/numberNode.js +0 -16
  190. package/src/tree/nodes/numbers/numberNode.ts +0 -16
  191. package/src/tree/nodes/operators/addNode.js +0 -33
  192. package/src/tree/nodes/operators/addNode.ts +0 -13
  193. package/src/tree/nodes/operators/divideNode.js +0 -34
  194. package/src/tree/nodes/operators/divideNode.ts +0 -16
  195. package/src/tree/nodes/operators/equalNode.js +0 -30
  196. package/src/tree/nodes/operators/equalNode.ts +0 -11
  197. package/src/tree/nodes/operators/fractionNode.js +0 -34
  198. package/src/tree/nodes/operators/fractionNode.ts +0 -16
  199. package/src/tree/nodes/operators/multiplyNode.js +0 -30
  200. package/src/tree/nodes/operators/multiplyNode.ts +0 -12
  201. package/src/tree/nodes/operators/operatorNode.ts +0 -36
  202. package/src/tree/nodes/operators/oppositeNode.js +0 -18
  203. package/src/tree/nodes/operators/powerNode.js +0 -30
  204. package/src/tree/nodes/operators/powerNode.ts +0 -12
  205. package/src/tree/nodes/operators/substractNode.js +0 -30
  206. package/src/tree/nodes/operators/substractNode.ts +0 -11
  207. package/src/tree/nodes/variables/variableNode.js +0 -17
  208. package/src/tree/nodes/variables/variableNode.ts +0 -15
  209. package/src/tree/parsers/derivateParser.ts +0 -66
  210. package/src/tree/parsers/latexParser.ts +0 -122
  211. package/src/utils/coin.ts +0 -3
  212. package/src/utils/random.ts +0 -3
  213. package/src/utils/randomIn.js +0 -7
  214. package/src/utils/shuffle.js +0 -24
  215. package/src/utils/shuffle.ts +0 -11
  216. package/tsconfig.json +0 -110
@@ -1,89 +1,88 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.getPriorityQuestions = exports.operationsPriorities = void 0;
4
- var randint_1 = require("../../mathutils/random/randint");
5
- var latexParser_1 = require("../../tree/parsers/latexParser");
6
- var numberNode_1 = require("../../tree/nodes/numbers/numberNode");
7
- var addNode_1 = require("../../tree/nodes/operators/addNode");
8
- var divideNode_1 = require("../../tree/nodes/operators/divideNode");
9
- var multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
10
- var coin_1 = require("../../utils/coin");
11
- var getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
12
- /**
13
- * a*b ±c±d
14
- * a/b ±c±d
15
- * a*b*c ± d
16
- * a*b±c*d
17
- * a/b ± c*d
18
- */
19
- exports.operationsPriorities = {
20
- id: "operationsPriorities",
21
- connector: "=",
22
- instruction: "Calculer :",
23
- label: "Priorités opératoires",
24
- levels: ["6", "5", "4"],
25
- section: "Calculs",
26
- isSingleStep: true,
27
- generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(getPriorityQuestions, nb); }
28
- };
29
- function getPriorityQuestions() {
30
- var _a, _b, _c, _d, _e, _f, _g;
31
- var type = (0, randint_1.randint)(1, 6);
32
- var statement;
33
- var answer = "";
34
- var a, b, c, d;
35
- switch (type) {
36
- case 1: // a*b ±c±d
37
- _a = [1, 2, 3, 4].map(function (el) { return (0, randint_1.randint)(-10, 11, [0]); }), c = _a[0], d = _a[1];
38
- _b = [1, 2].map(function (el) { return (0, randint_1.randint)(-10, 11); }), a = _b[0], b = _b[1];
39
- statement = (0, coin_1.coin)()
40
- ? //a*b first ou last
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
- : //a*b middle
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).toString();
45
- break;
46
- case 2: // a/b ±c±d
47
- _c = [1, 2, 3].map(function (el) { return (0, randint_1.randint)(-10, 11, [0]); }), b = _c[0], c = _c[1], d = _c[2];
48
- a = b * (0, randint_1.randint)(0, 11);
49
- statement = (0, coin_1.coin)()
50
- ? //a/b first ou last
51
- 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
- : //a/b middle
53
- 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).toString();
55
- break;
56
- case 3: // a*b ± c*d
57
- _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
- 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).toString();
60
- break;
61
- case 4: // a*b ± c/d
62
- _e = [1, 2].map(function (el) { return (0, randint_1.randint)(-10, 11); }), a = _e[0], b = _e[1];
63
- d = (0, randint_1.randint)(-10, 11, [0]);
64
- c = d * (0, randint_1.randint)(0, 11);
65
- 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).toString();
67
- break;
68
- case 5: // a/b ± c/d
69
- _f = [1, 2].map(function (el) { return (0, randint_1.randint)(-10, 11, [0]); }), b = _f[0], d = _f[1];
70
- a = b * (0, randint_1.randint)(0, 11);
71
- c = d * (0, randint_1.randint)(0, 11);
72
- 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).toString();
74
- break;
75
- case 5: // a*b*c ± d
76
- _g = [1, 2].map(function (el) { return (0, randint_1.randint)(-10, 11, [0]); }), b = _g[0], d = _g[1];
77
- a = b * (0, randint_1.randint)(0, 11);
78
- c = d * (0, randint_1.randint)(0, 11);
79
- 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).toString();
81
- break;
82
- }
83
- var question = {
84
- startStatement: (0, latexParser_1.latexParser)(statement),
85
- answer: answer
86
- };
87
- return question;
88
- }
89
- exports.getPriorityQuestions = getPriorityQuestions;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPriorityQuestions = exports.operationsPriorities = void 0;
4
+ const randint_1 = require("../../mathutils/random/randint");
5
+ const latexParser_1 = require("../../tree/parsers/latexParser");
6
+ const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
7
+ const addNode_1 = require("../../tree/nodes/operators/addNode");
8
+ const divideNode_1 = require("../../tree/nodes/operators/divideNode");
9
+ const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
10
+ const coin_1 = require("../../utils/coin");
11
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
12
+ /**
13
+ * a*b ±c±d
14
+ * a/b ±c±d
15
+ * a*b*c ± d
16
+ * a*b±c*d
17
+ * a/b ± c*d
18
+ */
19
+ exports.operationsPriorities = {
20
+ id: "operationsPriorities",
21
+ connector: "=",
22
+ instruction: "Calculer :",
23
+ label: "Priorités opératoires",
24
+ levels: ["6", "5", "4"],
25
+ section: "Calculs",
26
+ isSingleStep: true,
27
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getPriorityQuestions, nb),
28
+ };
29
+ function getPriorityQuestions() {
30
+ const type = (0, randint_1.randint)(1, 6);
31
+ let statement;
32
+ let answer = "";
33
+ let a, b, c, d;
34
+ switch (type) {
35
+ case 1: // a*b ±c±d
36
+ [c, d] = [1, 2, 3, 4].map((el) => (0, randint_1.randint)(-10, 11, [0]));
37
+ [a, b] = [1, 2].map((el) => (0, randint_1.randint)(-10, 11));
38
+ statement = (0, coin_1.coin)()
39
+ ? //a*b first ou last
40
+ 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()
41
+ : //a*b middle
42
+ 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));
43
+ answer = (a * b + c + d).toString();
44
+ break;
45
+ case 2: // a/b ±c±d
46
+ [b, c, d] = [1, 2, 3].map((el) => (0, randint_1.randint)(-10, 11, [0]));
47
+ a = b * (0, randint_1.randint)(0, 11);
48
+ statement = (0, coin_1.coin)()
49
+ ? //a/b first ou last
50
+ 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()
51
+ : //a/b middle
52
+ 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));
53
+ answer = (a / b + c + d).toString();
54
+ break;
55
+ case 3: // a*b ± c*d
56
+ [a, b, c, d] = [1, 2, 3, 4].map((el) => (0, randint_1.randint)(-10, 11));
57
+ 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)));
58
+ answer = (a * b + c * d).toString();
59
+ break;
60
+ case 4: // a*b ± c/d
61
+ [a, b] = [1, 2].map((el) => (0, randint_1.randint)(-10, 11));
62
+ d = (0, randint_1.randint)(-10, 11, [0]);
63
+ c = d * (0, randint_1.randint)(0, 11);
64
+ 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();
65
+ answer = (a * b + c / d).toString();
66
+ break;
67
+ case 5: // a/b ± c/d
68
+ [b, d] = [1, 2].map((el) => (0, randint_1.randint)(-10, 11, [0]));
69
+ a = b * (0, randint_1.randint)(0, 11);
70
+ c = d * (0, randint_1.randint)(0, 11);
71
+ 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)));
72
+ answer = (a / b + c / d).toString();
73
+ break;
74
+ case 5: // a*b*c ± d
75
+ [b, d] = [1, 2].map((el) => (0, randint_1.randint)(-10, 11, [0]));
76
+ a = b * (0, randint_1.randint)(0, 11);
77
+ c = d * (0, randint_1.randint)(0, 11);
78
+ 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();
79
+ answer = (a * b * c + d).toString();
80
+ break;
81
+ }
82
+ const question = {
83
+ startStatement: (0, latexParser_1.latexParser)(statement),
84
+ answer: answer,
85
+ };
86
+ return question;
87
+ }
88
+ exports.getPriorityQuestions = getPriorityQuestions;
@@ -1,87 +1,86 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.getRoundQuestions = exports.allRoundings = exports.roundToMillieme = exports.roundToCentieme = exports.roundToDixieme = exports.roundToUnit = void 0;
4
- var randint_1 = require("../../../mathutils/random/randint");
5
- var decimal_1 = require("../../../numbers/decimals/decimal");
6
- var latexParser_1 = require("../../../tree/parsers/latexParser");
7
- var getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
8
- /**
9
- * arrondi à l'unité
10
- */
11
- exports.roundToUnit = {
12
- id: "roundToUnit",
13
- connector: "\\approx",
14
- instruction: "Arrondir à l'unité :",
15
- label: "Arrondir à l'unité",
16
- levels: ["6", "5"],
17
- section: "Calculs",
18
- isSingleStep: true,
19
- generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(function () { return getRoundQuestions(0); }, nb); }
20
- };
21
- /**
22
- * arrondi à l'unité
23
- */
24
- 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",
31
- isSingleStep: true,
32
- generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(function () { return getRoundQuestions(1); }, nb); }
33
- };
34
- /**
35
- * arrondi à l'unité
36
- */
37
- 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",
44
- isSingleStep: true,
45
- generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(function () { return getRoundQuestions(2); }, nb); }
46
- };
47
- /**
48
- * arrondi à l'unité
49
- */
50
- 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",
57
- isSingleStep: true,
58
- generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(function () { return getRoundQuestions(3); }, nb); }
59
- };
60
- exports.allRoundings = {
61
- id: "allRoundings",
62
- connector: "\\approx",
63
- instruction: "",
64
- label: "Arrondir un nombre décimal",
65
- levels: ["6", "5"],
66
- section: "Calculs",
67
- isSingleStep: true,
68
- generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(function () { return getRoundQuestions((0, randint_1.randint)(0, 4)); }, nb); }
69
- };
70
- var instructions = [
71
- "Arrondir à l'unité :",
72
- "Arrondir au dixième :",
73
- "Arrondir au centième :",
74
- "Arrondir au millième :",
75
- ];
76
- function getRoundQuestions(precisionAsked) {
77
- if (precisionAsked === void 0) { precisionAsked = 0; }
78
- var precision = (0, randint_1.randint)(precisionAsked + 1, precisionAsked + 5);
79
- var dec = decimal_1.DecimalConstructor.random(0, 1000, precision);
80
- var question = {
81
- instruction: instructions[precisionAsked],
82
- startStatement: (0, latexParser_1.latexParser)(dec.toTree()),
83
- answer: (0, latexParser_1.latexParser)(dec.round(precisionAsked).toTree())
84
- };
85
- return question;
86
- }
87
- exports.getRoundQuestions = getRoundQuestions;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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");
8
+ /**
9
+ * arrondi à l'unité
10
+ */
11
+ exports.roundToUnit = {
12
+ id: "roundToUnit",
13
+ connector: "\\approx",
14
+ instruction: "Arrondir à l'unité :",
15
+ label: "Arrondir à l'unité",
16
+ levels: ["6", "5"],
17
+ section: "Calculs",
18
+ isSingleStep: true,
19
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(0), nb),
20
+ };
21
+ /**
22
+ * arrondi à l'unité
23
+ */
24
+ 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",
31
+ isSingleStep: true,
32
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(1), nb),
33
+ };
34
+ /**
35
+ * arrondi à l'unité
36
+ */
37
+ 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",
44
+ isSingleStep: true,
45
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(2), nb),
46
+ };
47
+ /**
48
+ * arrondi à l'unité
49
+ */
50
+ 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",
57
+ isSingleStep: true,
58
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions(3), nb),
59
+ };
60
+ exports.allRoundings = {
61
+ id: "allRoundings",
62
+ connector: "\\approx",
63
+ instruction: "",
64
+ label: "Arrondir un nombre décimal",
65
+ levels: ["6", "5"],
66
+ section: "Calculs",
67
+ isSingleStep: true,
68
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getRoundQuestions((0, randint_1.randint)(0, 4)), nb),
69
+ };
70
+ const instructions = [
71
+ "Arrondir à l'unité :",
72
+ "Arrondir au dixième :",
73
+ "Arrondir au centième :",
74
+ "Arrondir au millième :",
75
+ ];
76
+ function getRoundQuestions(precisionAsked = 0) {
77
+ const precision = (0, randint_1.randint)(precisionAsked + 1, precisionAsked + 5);
78
+ const dec = decimal_1.DecimalConstructor.random(0, 1000, precision);
79
+ const question = {
80
+ instruction: instructions[precisionAsked],
81
+ startStatement: (0, latexParser_1.latexParser)(dec.toTree()),
82
+ answer: (0, latexParser_1.latexParser)(dec.round(precisionAsked).toTree()),
83
+ };
84
+ return question;
85
+ }
86
+ exports.getRoundQuestions = getRoundQuestions;
@@ -1,27 +1,27 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.getAllIdentitiesQuestion = exports.allIdentities = void 0;
4
- var random_1 = require("../../../utils/random");
5
- var getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
6
- var firstIdentity_1 = require("./firstIdentity");
7
- var secondIdentity_1 = require("./secondIdentity");
8
- var thirdIdentity_1 = require("./thirdIdentity");
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"],
15
- isSingleStep: false,
16
- section: "Calcul littéral",
17
- generator: function (nb) { return (0, getDistinctQuestions_1.getDistinctQuestions)(getAllIdentitiesQuestion, nb); }
18
- };
19
- function getAllIdentitiesQuestion() {
20
- var rand = (0, random_1.random)([1, 2, 3]);
21
- return rand === 1
22
- ? (0, firstIdentity_1.getFirstIdentityQuestion)()
23
- : rand === 2
24
- ? (0, secondIdentity_1.getSecondIdentityQuestion)()
25
- : (0, thirdIdentity_1.getThirdIdentityQuestion)();
26
- }
27
- exports.getAllIdentitiesQuestion = getAllIdentitiesQuestion;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAllIdentitiesQuestion = exports.allIdentities = void 0;
4
+ const random_1 = require("../../../utils/random");
5
+ const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
6
+ const firstIdentity_1 = require("./firstIdentity");
7
+ const secondIdentity_1 = require("./secondIdentity");
8
+ const thirdIdentity_1 = require("./thirdIdentity");
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"],
15
+ isSingleStep: false,
16
+ section: "Calcul littéral",
17
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getAllIdentitiesQuestion, nb),
18
+ };
19
+ function getAllIdentitiesQuestion() {
20
+ const rand = (0, random_1.random)([1, 2, 3]);
21
+ return rand === 1
22
+ ? (0, firstIdentity_1.getFirstIdentityQuestion)()
23
+ : rand === 2
24
+ ? (0, secondIdentity_1.getSecondIdentityQuestion)()
25
+ : (0, thirdIdentity_1.getThirdIdentityQuestion)();
26
+ }
27
+ exports.getAllIdentitiesQuestion = getAllIdentitiesQuestion;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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");
11
+ exports.doubleDistributivity = {
12
+ id: "doubleDistri",
13
+ connector: "=",
14
+ instruction: "Développer et réduire :",
15
+ label: "Distributivité double",
16
+ levels: ["3", "2"],
17
+ isSingleStep: false,
18
+ section: "Calcul littéral",
19
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getDoubleDistributivityQuestion, nb),
20
+ };
21
+ function getDoubleDistributivityQuestion() {
22
+ const interval = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
23
+ const affines = affine_1.AffineConstructor.differentRandoms(2, interval, interval);
24
+ const statementTree = new multiplyNode_1.MultiplyNode(affines[0].toTree(), affines[1].toTree());
25
+ const answerTree = affines[0].multiply(affines[1]).toTree();
26
+ return {
27
+ startStatement: (0, latexParser_1.latexParser)(statementTree),
28
+ answer: (0, latexParser_1.latexParser)(answerTree),
29
+ };
30
+ }
31
+ exports.getDoubleDistributivityQuestion = getDoubleDistributivityQuestion;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFirstIdentityQuestion = exports.firstIdentity = 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");
12
+ 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"],
18
+ isSingleStep: false,
19
+ section: "Calcul littéral",
20
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFirstIdentityQuestion, nb),
21
+ };
22
+ function getFirstIdentityQuestion() {
23
+ const interval = new intervals_1.Interval("[[1; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
24
+ const affine = affine_1.AffineConstructor.random(interval, interval);
25
+ const statementTree = new powerNode_1.PowerNode(affine.toTree(), new numberNode_1.NumberNode(2));
26
+ const answerTree = affine.multiply(affine).toTree();
27
+ return {
28
+ startStatement: (0, latexParser_1.latexParser)(statementTree),
29
+ answer: (0, latexParser_1.latexParser)(answerTree),
30
+ };
31
+ }
32
+ exports.getFirstIdentityQuestion = getFirstIdentityQuestion;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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");
12
+ 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"],
18
+ isSingleStep: false,
19
+ section: "Calcul littéral",
20
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSecondIdentityQuestion, nb),
21
+ };
22
+ 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)]));
25
+ const affine = affine_1.AffineConstructor.random(intervalA, intervalB);
26
+ const statementTree = new powerNode_1.PowerNode(affine.toTree(), new numberNode_1.NumberNode(2));
27
+ const answerTree = affine.multiply(affine).toTree();
28
+ return {
29
+ startStatement: (0, latexParser_1.latexParser)(statementTree),
30
+ answer: (0, latexParser_1.latexParser)(answerTree),
31
+ };
32
+ }
33
+ exports.getSecondIdentityQuestion = getSecondIdentityQuestion;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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");
12
+ exports.simpleDistributivity = {
13
+ id: "simpleDistri",
14
+ connector: "=",
15
+ instruction: "Développer et réduire :",
16
+ label: "Distributivité simple",
17
+ levels: ["3", "2"],
18
+ isSingleStep: false,
19
+ section: "Calcul littéral",
20
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSimpleDistributivityQuestion, nb),
21
+ };
22
+ function getSimpleDistributivityQuestion() {
23
+ const interval = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
24
+ const affine = affine_1.AffineConstructor.random(interval, interval);
25
+ const coeff = interval.getRandomElement();
26
+ const statementTree = new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(coeff.value), affine.toTree());
27
+ const answerTree = affine.times(coeff.value).toTree();
28
+ return {
29
+ startStatement: (0, latexParser_1.latexParser)(statementTree),
30
+ answer: (0, latexParser_1.latexParser)(answerTree),
31
+ };
32
+ }
33
+ exports.getSimpleDistributivityQuestion = getSimpleDistributivityQuestion;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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");
11
+ 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"],
17
+ isSingleStep: false,
18
+ section: "Calcul littéral",
19
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThirdIdentityQuestion, nb),
20
+ };
21
+ function getThirdIdentityQuestion() {
22
+ const interval = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0)]));
23
+ const affine = affine_1.AffineConstructor.random(interval, interval);
24
+ const affine2 = new affine_1.Affine(affine.a, -affine.b);
25
+ const statementTree = new multiplyNode_1.MultiplyNode(affine.toTree(), affine2.toTree());
26
+ const answerTree = affine.multiply(affine2).toTree();
27
+ return {
28
+ startStatement: (0, latexParser_1.latexParser)(statementTree),
29
+ answer: (0, latexParser_1.latexParser)(answerTree),
30
+ };
31
+ }
32
+ exports.getThirdIdentityQuestion = getThirdIdentityQuestion;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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");
11
+ /**
12
+ * type x+a=b
13
+ */
14
+ 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",
21
+ isSingleStep: true,
22
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationType1ExerciseQuestion, nb),
23
+ };
24
+ 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)]));
27
+ const b = interval.getRandomElement();
28
+ const a = intervalStar.getRandomElement();
29
+ const solution = b.value - a.value;
30
+ const affine = new affine_1.Affine(1, a.value).toTree();
31
+ const tree = new equalNode_1.EqualNode(affine, b.toTree());
32
+ const question = {
33
+ startStatement: (0, latexParser_1.latexParser)(tree),
34
+ answer: `x = ${solution}`,
35
+ };
36
+ return question;
37
+ }
38
+ exports.getEquationType1ExerciseQuestion = getEquationType1ExerciseQuestion;