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,43 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEquationType4ExerciseQuestion = exports.equationType4Exercise = 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=cx+d
15
14
  */
16
15
  exports.equationType4Exercise = {
17
- id: "equa4",
18
- connector: "\\iff",
19
- instruction: "Résoudre : ",
20
- label: "Equations $ax+b=cx+d$",
21
- levels: ["4", "3", "2"],
22
- section: "Calcul littéral",
16
+ id: 'equa4',
17
+ connector: '\\iff',
18
+ instruction: 'Résoudre : ',
19
+ label: 'Equations $ax+b=cx+d$',
20
+ levels: ['4', '3', '2'],
21
+ section: 'Calcul littéral',
23
22
  isSingleStep: false,
24
23
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEquationType4ExerciseQuestion, nb),
25
24
  };
26
25
  function getEquationType4ExerciseQuestion() {
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 a = intervalStar.getRandomElement();
30
29
  const b = interval.getRandomElement();
31
- const intervalC = new intervals_1.Interval("[[-10; 10]]").difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0), new integer_1.Integer(a.value)]));
30
+ const intervalC = new intervals_1.Interval('[[-10; 10]]').difference(new discreteSet_1.DiscreteSet([new integer_1.Integer(0), new integer_1.Integer(a.value)]));
32
31
  const c = intervalC.getRandomElement();
33
32
  const d = interval.getRandomElement();
34
33
  const affines = [new affine_1.Affine(a.value, b.value), new affine_1.Affine(c.value, d.value)];
35
34
  const solution = new rational_1.Rational(d.value - b.value, a.value - c.value).simplify();
36
35
  const statementTree = new equalNode_1.EqualNode(affines[0].toTree(), affines[1].toTree());
37
- const answerTree = new equalNode_1.EqualNode(new variableNode_1.VariableNode("x"), solution.toTree());
36
+ const answerTree = new equalNode_1.EqualNode(new variableNode_1.VariableNode('x'), solution.toTree());
38
37
  const question = {
39
- startStatement: (0, latexParser_1.latexParser)(statementTree),
40
- answer: (0, latexParser_1.latexParser)(answerTree),
38
+ startStatement: statementTree.toTex(),
39
+ answer: answerTree.toTex(),
41
40
  };
42
41
  return question;
43
42
  }
@@ -1,38 +1,37 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFactoType1Question = exports.factoType1Exercise = void 0;
4
- const affine_1 = require("../../../polynomials/affine");
5
- const latexParser_1 = require("../../../tree/parsers/latexParser");
6
- const addNode_1 = require("../../../tree/nodes/operators/addNode");
7
- const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
8
- const substractNode_1 = require("../../../tree/nodes/operators/substractNode");
9
- const random_1 = require("../../../utils/random");
10
- const shuffle_1 = require("../../../utils/shuffle");
11
- const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
12
2
  /**
13
3
  * type (ax+b)(cx+d) ± (ax+b)(ex+f)
14
4
  */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getFactoType1Question = exports.factoType1Exercise = void 0;
7
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
8
+ const affine_1 = require("src/math/polynomials/affine");
9
+ const addNode_1 = require("src/tree/nodes/operators/addNode");
10
+ const multiplyNode_1 = require("src/tree/nodes/operators/multiplyNode");
11
+ const substractNode_1 = require("src/tree/nodes/operators/substractNode");
12
+ const random_1 = require("src/utils/random");
13
+ const shuffle_1 = require("src/utils/shuffle");
15
14
  exports.factoType1Exercise = {
16
- id: "facto1",
17
- connector: "=",
18
- instruction: "Factoriser :",
15
+ id: 'facto1',
16
+ connector: '=',
17
+ instruction: 'Factoriser :',
19
18
  isSingleStep: false,
20
- label: "Factorisation du type $(ax+b)(cx+d) \\pm (ax+b)(ex+f)$",
21
- levels: ["3", "2"],
22
- section: "Calcul littéral",
19
+ label: 'Factorisation du type $(ax+b)(cx+d) \\pm (ax+b)(ex+f)$',
20
+ levels: ['3', '2'],
21
+ section: 'Calcul littéral',
23
22
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFactoType1Question, nb),
24
23
  };
25
24
  function getFactoType1Question() {
26
25
  const affines = affine_1.AffineConstructor.differentRandoms(3);
27
26
  const permut = [(0, shuffle_1.shuffle)([affines[0], affines[1]]), (0, shuffle_1.shuffle)([affines[0], affines[2]])];
28
- const operation = (0, random_1.random)(["add", "substract"]);
29
- const statementTree = operation === "add"
27
+ const operation = (0, random_1.random)(['add', 'substract']);
28
+ const statementTree = operation === 'add'
30
29
  ? new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(permut[0][0].toTree(), permut[0][1].toTree()), new multiplyNode_1.MultiplyNode(permut[1][0].toTree(), permut[1][1].toTree()))
31
30
  : new substractNode_1.SubstractNode(new multiplyNode_1.MultiplyNode(permut[0][0].toTree(), permut[0][1].toTree()), new multiplyNode_1.MultiplyNode(permut[1][0].toTree(), permut[1][1].toTree()));
32
- const answerTree = new multiplyNode_1.MultiplyNode(affines[0].toTree(), affines[1].add(operation === "add" ? affines[2] : affines[2].opposite()).toTree());
31
+ const answerTree = new multiplyNode_1.MultiplyNode(affines[0].toTree(), affines[1].add(operation === 'add' ? affines[2] : affines[2].opposite()).toTree());
33
32
  const question = {
34
- startStatement: (0, latexParser_1.latexParser)(statementTree),
35
- answer: (0, latexParser_1.latexParser)(answerTree),
33
+ startStatement: statementTree.toTex(),
34
+ answer: answerTree.toTex(),
36
35
  };
37
36
  return question;
38
37
  }
@@ -9,7 +9,7 @@ const fractionsDivision_1 = require("./calcul/fractions/fractionsDivision");
9
9
  const fractionsProduct_1 = require("./calcul/fractions/fractionsProduct");
10
10
  const fractionsSum_1 = require("./calcul/fractions/fractionsSum");
11
11
  const simplifyFraction_1 = require("./calcul/fractions/simplifyFraction");
12
- const operationsPriorities_1 = require("./calcul/operationsPriorities");
12
+ const operationsPriorities_1 = require("./calcul/operations/operationsPriorities");
13
13
  const rounding_1 = require("./calcul/rounding/rounding");
14
14
  const allIdentities_1 = require("./calculLitteral/distributivity/allIdentities");
15
15
  const doubleDistributivity_1 = require("./calculLitteral/distributivity/doubleDistributivity");
@@ -22,6 +22,8 @@ const equationType2Exercise_1 = require("./calculLitteral/equation/equationType2
22
22
  const equationType3Exercise_1 = require("./calculLitteral/equation/equationType3Exercise");
23
23
  const equationType4Exercise_1 = require("./calculLitteral/equation/equationType4Exercise");
24
24
  const factoType1Exercise_1 = require("./calculLitteral/factorisation/factoType1Exercise");
25
+ const midpoint_1 = require("./geometry/cartesian/midpoint");
26
+ const scalarProductViaCoords_1 = require("./geometry/vectors/scalarProductViaCoords");
25
27
  const powersDivision_1 = require("./powers/powersDivision");
26
28
  const powersOfTenToDecimal_1 = require("./powers/powersOfTenToDecimal");
27
29
  const powersPower_1 = require("./powers/powersPower");
@@ -71,6 +73,14 @@ exports.exercises = [
71
73
  rounding_1.roundToMillieme,
72
74
  rounding_1.roundToUnit,
73
75
  rounding_1.allRoundings,
76
+ /**
77
+ * geometry
78
+ */
79
+ midpoint_1.midpoint,
80
+ /**
81
+ * vectors
82
+ */
83
+ scalarProductViaCoords_1.scalarProductViaCoords,
74
84
  /**
75
85
  * puissances
76
86
  */
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMidpointQuestion = exports.midpoint = void 0;
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const point_1 = require("src/math/geometry/point");
6
+ const randTupleInt_1 = require("src/math/utils/random/randTupleInt");
7
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
8
+ exports.midpoint = {
9
+ id: 'midpoint',
10
+ connector: '=',
11
+ instruction: '',
12
+ label: 'Coordonnées du milieu',
13
+ levels: ['3', '2', '1'],
14
+ isSingleStep: false,
15
+ section: 'Géométrie cartésienne',
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMidpointQuestion, nb),
17
+ };
18
+ function getMidpointQuestion() {
19
+ const [coords1, coords2] = (0, randTupleInt_1.distinctRandTupleInt)(2, 2, { from: -9, to: 10 });
20
+ const A = new point_1.Point('A', new numberNode_1.NumberNode(coords1[0]), new numberNode_1.NumberNode(coords1[1]));
21
+ const B = new point_1.Point('B', new numberNode_1.NumberNode(coords2[0]), new numberNode_1.NumberNode(coords2[1]));
22
+ const question = {
23
+ instruction: `Soit $${A.toTexWithCoords()}$ et $${B.toTexWithCoords()}$. Quelles sont les coordonnées du milieu $I$ de $[AB]$ ?`,
24
+ startStatement: 'I',
25
+ answer: A.midpoint(B).toTexWithCoords(),
26
+ };
27
+ return question;
28
+ }
29
+ exports.getMidpointQuestion = getMidpointQuestion;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getScalarProductViaCoordsQuestion = exports.scalarProductViaCoords = void 0;
4
+ const getDistinctQuestions_1 = require("src/exercises/utils/getDistinctQuestions");
5
+ const vector_1 = require("src/math/geometry/vector");
6
+ const randTupleInt_1 = require("src/math/utils/random/randTupleInt");
7
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
8
+ exports.scalarProductViaCoords = {
9
+ id: 'scalarProductViaCoords',
10
+ connector: '=',
11
+ instruction: '',
12
+ isSingleStep: false,
13
+ label: "Calculer un produit scalaire à l'aide des coordonnées",
14
+ levels: ['1, 0'],
15
+ section: 'Vecteurs',
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getScalarProductViaCoordsQuestion, nb),
17
+ };
18
+ function getScalarProductViaCoordsQuestion() {
19
+ const [coords1, coords2] = (0, randTupleInt_1.distinctRandTupleInt)(2, 2, { from: -9, to: 10 });
20
+ const u = new vector_1.Vector('u', new numberNode_1.NumberNode(coords1[0]), new numberNode_1.NumberNode(coords1[1]));
21
+ const v = new vector_1.Vector('v', new numberNode_1.NumberNode(coords2[0]), new numberNode_1.NumberNode(coords2[1]));
22
+ return {
23
+ instruction: `Soit $${u.toTexWithCoords()}$ et $${v.toTexWithCoords()}$. Calculer $${u.toTex()}\\cdot ${v.toTex()}$.`,
24
+ startStatement: `${u.toTex()}\\cdot ${v.toTex()}`,
25
+ answer: u.scalarProduct(v).toTex(),
26
+ };
27
+ }
28
+ exports.getScalarProductViaCoordsQuestion = getScalarProductViaCoordsQuestion;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // import { Vector } from "../../../geometry/vector";
3
+ // import { distinctRandTupleInt } from "../../../mathutils/random/randTupleInt";
4
+ // import { NumberNode } from "../../../tree/nodes/numbers/numberNode";
5
+ // import { latexParser } from "../../../tree/parsers/latexParser";
6
+ // import { Exercise, Question } from "../../exercise";
7
+ // import { getDistinctQuestions } from "../../utils/getDistinctQuestions";
8
+ // export const scalarProductViaNorms : Exercise = {
9
+ // id: 'scalarProductViaNorms',
10
+ // connector: "=",
11
+ // instruction: "",
12
+ // isSingleStep: false,
13
+ // label: "Calculer un produit scalaire à l'aide des normes.",
14
+ // levels: ["1, 0"],
15
+ // section: "vectors",
16
+ // generator: (nb: number) => getDistinctQuestions(getScalarProductViaNormsQuestion, nb)
17
+ // }
18
+ // export function getScalarProductViaNormsQuestion(): Question {
19
+ // const [coords1, coords2] = distinctRandTupleInt(2, 2, {from: -9, to: 10})
20
+ // const u = new Vector("u", new NumberNode(coords1[0]), new NumberNode(coords1[1]))
21
+ // const v = new Vector("v", new NumberNode(coords2[0]), new NumberNode(coords2[1]))
22
+ // return {
23
+ // instruction: `Soit ${u.toTexWithCoords()} et ${v.toTexWithCoords()}. Calculer ${u.toTex()}\\cdot ${v.toTex()}.`,
24
+ // startStatement: `${u.toTex()}\\cdot ${v.toTex()}`,
25
+ // answer: latexParser(u.scalarProduct(v)),
26
+ // }
27
+ // }
@@ -1,44 +1,43 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPowersDivisionQuestion = exports.powersOfTenDivision = exports.powersDivision = void 0;
4
- const randint_1 = require("../../mathutils/random/randint");
5
- const power_1 = require("../../numbers/integer/power");
6
- const latexParser_1 = require("../../tree/parsers/latexParser");
7
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
8
- const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
9
- const powerNode_1 = require("../../tree/nodes/operators/powerNode");
10
- const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
11
2
  /**
12
3
  * a^b/a^c
13
4
  */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPowersDivisionQuestion = exports.powersOfTenDivision = exports.powersDivision = void 0;
7
+ const power_1 = require("src/math/numbers/integer/power");
8
+ const randint_1 = require("src/math/utils/random/randint");
9
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
10
+ const fractionNode_1 = require("src/tree/nodes/operators/fractionNode");
11
+ const powerNode_1 = require("src/tree/nodes/operators/powerNode");
12
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
14
13
  exports.powersDivision = {
15
- id: "powersDivision",
16
- connector: "=",
17
- instruction: "Calculer :",
18
- label: "Division de puissances",
19
- levels: ["4", "3", "2", "1"],
20
- section: "Puissances",
14
+ id: 'powersDivision',
15
+ connector: '=',
16
+ instruction: 'Calculer :',
17
+ label: 'Division de puissances',
18
+ levels: ['4', '3', '2', '1'],
19
+ section: 'Puissances',
21
20
  isSingleStep: true,
22
21
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getPowersDivisionQuestion, nb),
23
22
  };
24
23
  exports.powersOfTenDivision = {
25
- id: "powersOfTenDivision",
26
- connector: "=",
27
- instruction: "Calculer :",
28
- label: "Division de puissances de 10",
29
- levels: ["4", "3", "2", "1"],
30
- section: "Puissances",
24
+ id: 'powersOfTenDivision',
25
+ connector: '=',
26
+ instruction: 'Calculer :',
27
+ label: 'Division de puissances de 10',
28
+ levels: ['4', '3', '2', '1'],
29
+ section: 'Puissances',
31
30
  isSingleStep: true,
32
31
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getPowersDivisionQuestion(true), nb),
33
32
  };
34
33
  function getPowersDivisionQuestion(useOnlyPowersOfTen = false) {
35
- const a = useOnlyPowersOfTen ? 10 : (0, randint_1.randint)(-11, 11);
34
+ const a = useOnlyPowersOfTen ? 10 : (0, randint_1.randint)(-11, 11, [0]);
36
35
  const [b, c] = [1, 2].map((el) => (0, randint_1.randint)(-11, 11));
37
36
  const statement = new fractionNode_1.FractionNode(new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(c)));
38
37
  const answerTree = new power_1.Power(a, b - c).simplify();
39
38
  const question = {
40
- startStatement: (0, latexParser_1.latexParser)(statement),
41
- answer: (0, latexParser_1.latexParser)(answerTree),
39
+ startStatement: statement.toTex(),
40
+ answer: answerTree.toTex(),
42
41
  };
43
42
  return question;
44
43
  }
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPowersOfTenDivisionQuestion = exports.powersOfTenToDecimal = void 0;
4
- const randint_1 = require("../../mathutils/random/randint");
5
- const power_1 = require("../../numbers/integer/power");
6
- const latexParser_1 = require("../../tree/parsers/latexParser");
7
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
8
- const powerNode_1 = require("../../tree/nodes/operators/powerNode");
9
- const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
10
2
  /**
11
3
  * 10^(-x) into 0,0...1
12
4
  */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPowersOfTenDivisionQuestion = exports.powersOfTenToDecimal = void 0;
7
+ const power_1 = require("src/math/numbers/integer/power");
8
+ const randint_1 = require("src/math/utils/random/randint");
9
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
10
+ const powerNode_1 = require("src/tree/nodes/operators/powerNode");
11
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
13
12
  exports.powersOfTenToDecimal = {
14
- id: "powersOfTenToDecimal",
15
- connector: "=",
13
+ id: 'powersOfTenToDecimal',
14
+ connector: '=',
16
15
  instruction: "Donner l'écriture décimale de :",
17
16
  label: "Ecriture décimale d'une puissance de 10",
18
- levels: ["5", "4", "3", "2"],
19
- section: "Puissances",
17
+ levels: ['5', '4', '3', '2'],
18
+ section: 'Puissances',
20
19
  isSingleStep: true,
21
20
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getPowersOfTenDivisionQuestion, nb),
22
21
  };
@@ -25,8 +24,8 @@ function getPowersOfTenDivisionQuestion() {
25
24
  const statement = new powerNode_1.PowerNode(new numberNode_1.NumberNode(10), new numberNode_1.NumberNode(randPower));
26
25
  const answerTree = new power_1.Power(10, randPower).toDecimalWriting().toTree();
27
26
  const question = {
28
- startStatement: (0, latexParser_1.latexParser)(statement),
29
- answer: (0, latexParser_1.latexParser)(answerTree),
27
+ startStatement: statement.toTex(),
28
+ answer: answerTree.toTex(),
30
29
  };
31
30
  return question;
32
31
  }
@@ -1,32 +1,31 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPowersPowerQuestion = exports.powersPower = exports.powersOfTenPower = void 0;
4
- const randint_1 = require("../../mathutils/random/randint");
5
- const power_1 = require("../../numbers/integer/power");
6
- const latexParser_1 = require("../../tree/parsers/latexParser");
7
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
8
- const powerNode_1 = require("../../tree/nodes/operators/powerNode");
9
- const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
10
2
  /**
11
3
  * (a^b)^c
12
4
  */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPowersPowerQuestion = exports.powersPower = exports.powersOfTenPower = void 0;
7
+ const power_1 = require("src/math/numbers/integer/power");
8
+ const randint_1 = require("src/math/utils/random/randint");
9
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
10
+ const powerNode_1 = require("src/tree/nodes/operators/powerNode");
11
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
13
12
  exports.powersOfTenPower = {
14
- id: "powersOfTenPower",
15
- connector: "=",
16
- instruction: "Calculer :",
13
+ id: 'powersOfTenPower',
14
+ connector: '=',
15
+ instruction: 'Calculer :',
17
16
  label: "Puissance d'une puissance de 10 ",
18
- levels: ["4", "3", "2", "1"],
19
- section: "Puissances",
17
+ levels: ['4', '3', '2', '1'],
18
+ section: 'Puissances',
20
19
  isSingleStep: true,
21
20
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getPowersPowerQuestion(true), nb),
22
21
  };
23
22
  exports.powersPower = {
24
- id: "powersPower",
25
- connector: "=",
26
- instruction: "Calculer :",
23
+ id: 'powersPower',
24
+ connector: '=',
25
+ instruction: 'Calculer :',
27
26
  label: "Puissance d'une puissance",
28
- levels: ["4", "3", "2", "1"],
29
- section: "Puissances",
27
+ levels: ['4', '3', '2', '1'],
28
+ section: 'Puissances',
30
29
  isSingleStep: true,
31
30
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getPowersPowerQuestion, nb),
32
31
  };
@@ -36,8 +35,8 @@ function getPowersPowerQuestion(useOnlyPowersOfTen = false) {
36
35
  const statement = new powerNode_1.PowerNode(new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new numberNode_1.NumberNode(c));
37
36
  let answerTree = new power_1.Power(a, b * c).simplify();
38
37
  const question = {
39
- startStatement: (0, latexParser_1.latexParser)(statement),
40
- answer: (0, latexParser_1.latexParser)(answerTree),
38
+ startStatement: statement.toTex(),
39
+ answer: answerTree.toTex(),
41
40
  };
42
41
  return question;
43
42
  }
@@ -1,33 +1,32 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPowersProductQuestion = exports.powersProduct = exports.powersOfTenProduct = void 0;
4
- const randint_1 = require("../../mathutils/random/randint");
5
- const power_1 = require("../../numbers/integer/power");
6
- const latexParser_1 = require("../../tree/parsers/latexParser");
7
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
8
- const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
9
- const powerNode_1 = require("../../tree/nodes/operators/powerNode");
10
- const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
11
2
  /**
12
3
  * a^b*a^c
13
4
  */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPowersProductQuestion = exports.powersProduct = exports.powersOfTenProduct = void 0;
7
+ const power_1 = require("src/math/numbers/integer/power");
8
+ const randint_1 = require("src/math/utils/random/randint");
9
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
10
+ const multiplyNode_1 = require("src/tree/nodes/operators/multiplyNode");
11
+ const powerNode_1 = require("src/tree/nodes/operators/powerNode");
12
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
14
13
  exports.powersOfTenProduct = {
15
- id: "powersOfTenProduct",
16
- connector: "=",
17
- instruction: "Calculer :",
18
- label: "Multiplication de puissances de 10",
19
- levels: ["4", "3", "2", "1"],
20
- section: "Puissances",
14
+ id: 'powersOfTenProduct',
15
+ connector: '=',
16
+ instruction: 'Calculer :',
17
+ label: 'Multiplication de puissances de 10',
18
+ levels: ['4', '3', '2', '1'],
19
+ section: 'Puissances',
21
20
  isSingleStep: true,
22
21
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getPowersProductQuestion(true), nb),
23
22
  };
24
23
  exports.powersProduct = {
25
- id: "powersProduct",
26
- connector: "=",
27
- instruction: "Calculer :",
28
- label: "Multiplication de puissances",
29
- levels: ["4", "3", "2", "1"],
30
- section: "Puissances",
24
+ id: 'powersProduct',
25
+ connector: '=',
26
+ instruction: 'Calculer :',
27
+ label: 'Multiplication de puissances',
28
+ levels: ['4', '3', '2', '1'],
29
+ section: 'Puissances',
31
30
  isSingleStep: true,
32
31
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getPowersProductQuestion, nb),
33
32
  };
@@ -37,8 +36,8 @@ function getPowersProductQuestion(useOnlyPowersOfTen = false) {
37
36
  const statement = new multiplyNode_1.MultiplyNode(new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(c)));
38
37
  const answerTree = new power_1.Power(a, b + c).simplify();
39
38
  const question = {
40
- startStatement: (0, latexParser_1.latexParser)(statement),
41
- answer: (0, latexParser_1.latexParser)(answerTree),
39
+ startStatement: statement.toTex(),
40
+ answer: answerTree.toTex(),
42
41
  };
43
42
  return question;
44
43
  }
@@ -1,24 +1,23 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getScientificToDecimalQuestion = exports.scientificToDecimal = void 0;
4
- const randint_1 = require("../../mathutils/random/randint");
5
- const decimal_1 = require("../../numbers/decimals/decimal");
6
- const integer_1 = require("../../numbers/integer/integer");
7
- const latexParser_1 = require("../../tree/parsers/latexParser");
8
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
9
- const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
10
- const powerNode_1 = require("../../tree/nodes/operators/powerNode");
11
- const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
12
2
  /**
13
3
  * a*10^x vers décimal
14
4
  * */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getScientificToDecimalQuestion = exports.scientificToDecimal = void 0;
7
+ const decimal_1 = require("src/math/numbers/decimals/decimal");
8
+ const integer_1 = require("src/math/numbers/integer/integer");
9
+ const randint_1 = require("src/math/utils/random/randint");
10
+ const numberNode_1 = require("src/tree/nodes/numbers/numberNode");
11
+ const multiplyNode_1 = require("src/tree/nodes/operators/multiplyNode");
12
+ const powerNode_1 = require("src/tree/nodes/operators/powerNode");
13
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
15
14
  exports.scientificToDecimal = {
16
- id: "scientificToDecimal",
17
- connector: "=",
15
+ id: 'scientificToDecimal',
16
+ connector: '=',
18
17
  instruction: "Donner l'écriture décimale de :",
19
- label: "Ecriture décimale de $a\\times 10^x$",
20
- levels: ["5", "4", "3", "2"],
21
- section: "Puissances",
18
+ label: 'Ecriture décimale de $a\\times 10^x$',
19
+ levels: ['5', '4', '3', '2'],
20
+ section: 'Puissances',
22
21
  isSingleStep: true,
23
22
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getScientificToDecimalQuestion, nb),
24
23
  };
@@ -26,12 +25,12 @@ function getScientificToDecimalQuestion() {
26
25
  const randPower = (0, randint_1.randint)(-6, 8);
27
26
  const int = integer_1.IntegerConstructor.random((0, randint_1.randint)(1, 4));
28
27
  const fracPart = decimal_1.DecimalConstructor.randomFracPart((0, randint_1.randint)(0, 4));
29
- const randDecimal = decimal_1.DecimalConstructor.fromParts(int + "", fracPart);
28
+ const randDecimal = decimal_1.DecimalConstructor.fromParts(int + '', fracPart);
30
29
  const statement = new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(randDecimal.value), new powerNode_1.PowerNode(new numberNode_1.NumberNode(10), new numberNode_1.NumberNode(randPower)));
31
30
  const answerTree = randDecimal.multiplyByPowerOfTen(randPower).toTree();
32
31
  const question = {
33
- startStatement: (0, latexParser_1.latexParser)(statement),
34
- answer: (0, latexParser_1.latexParser)(answerTree),
32
+ startStatement: statement.toTex(),
33
+ answer: answerTree.toTex(),
35
34
  };
36
35
  return question;
37
36
  }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ // import { Exercise, Question } from "src/exercises/exercise";
3
+ // import { getDistinctQuestions } from "src/exercises/utils/getDistinctQuestions";
4
+ // import { randint } from "src/math/utils/random/randint";
5
+ // export const geometricExplicitFormulaUsage: Exercise = {
6
+ // id: 'geometricExplicitFormulaUsage',
7
+ // connector: '=',
8
+ // instruction: '',
9
+ // label: "Utiliser la formule explicite d'une suite géométrique",
10
+ // levels: ['1', '0'],
11
+ // isSingleStep: false,
12
+ // section: 'Suites',
13
+ // generator: (nb: number) => getDistinctQuestions(getGeometricExplicitFormulaUsage, nb),
14
+ // };
15
+ // export function getGeometricExplicitFormulaUsage(): Question {
16
+ // const rank = randint(0, 10);
17
+ // const reason = randint()
18
+ // const question: Question = {
19
+ // instruction: `La suite $(u_n)$ est définie par $u_n = $. Calculer $u_{${rank}}$`,
20
+ // startStatement: 'u_n',
21
+ // answer: squareRoot.simplify().toTree().toTex(),
22
+ // };
23
+ // return question;
24
+ // }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // import { Exercise, Question } from "src/exercises/exercise";
3
+ // import { getDistinctQuestions } from "src/exercises/utils/getDistinctQuestions";
4
+ // import { randint } from "src/math/utils/random/randint";
5
+ // export const geometricFindReason: Exercise = {
6
+ // id: 'geometricFindReason',
7
+ // connector: '=',
8
+ // instruction: '',
9
+ // label: "Utiliser la formule explicite d'une suite géométrique",
10
+ // levels: ['1', '0'],
11
+ // isSingleStep: false,
12
+ // section: 'Suites',
13
+ // generator: (nb: number) => getDistinctQuestions(getGeometricFindReason, nb),
14
+ // };
15
+ // export function getGeometricFindReason(): Question {
16
+ // const rank = randint(0, 10);
17
+ // const question: Question = {
18
+ // instruction: `La suite $(u_n)$ est définie par $u_n = $. Calculer $u_{${rank}}$`,
19
+ // startStatement: 'u_n',
20
+ // answer: squareRoot.simplify().toTree().toTex(),
21
+ // };
22
+ // return question;
23
+ // }
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSimplifySquareRoot = exports.simplifySquareRoot = void 0;
4
- const squareRoot_1 = require("../../numbers/reals/squareRoot");
5
- const latexParser_1 = require("../../tree/parsers/latexParser");
4
+ const squareRoot_1 = require("src/math/numbers/reals/squareRoot");
6
5
  const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
7
6
  exports.simplifySquareRoot = {
8
- id: "simplifySqrt",
9
- connector: "=",
10
- instruction: "Simplifier :",
11
- label: "Simplification de racines carrées",
12
- levels: ["3", "2", "1"],
7
+ id: 'simplifySqrt',
8
+ connector: '=',
9
+ instruction: 'Simplifier :',
10
+ label: 'Simplification de racines carrées',
11
+ levels: ['3', '2', '1'],
13
12
  isSingleStep: false,
14
- section: "Racines carrées",
13
+ section: 'Racines carrées',
15
14
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSimplifySquareRoot, nb),
16
15
  };
17
16
  function getSimplifySquareRoot() {
@@ -20,8 +19,8 @@ function getSimplifySquareRoot() {
20
19
  maxSquare: 11,
21
20
  });
22
21
  const question = {
23
- startStatement: (0, latexParser_1.latexParser)(squareRoot.toTree()),
24
- answer: (0, latexParser_1.latexParser)(squareRoot.simplify().toTree()),
22
+ startStatement: squareRoot.toTree().toTex(),
23
+ answer: squareRoot.simplify().toTree().toTex(),
25
24
  };
26
25
  return question;
27
26
  }