math-exercises 1.3.63 → 1.3.65

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 (78) hide show
  1. package/lib/exercises/calcul/arithmetics/primeNumbers.js +1 -1
  2. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.d.ts.map +1 -1
  3. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +8 -2
  4. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.d.ts.map +1 -1
  5. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +8 -2
  6. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.d.ts.map +1 -1
  7. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +13 -1
  8. package/lib/exercises/calcul/fractions/fractionsDivision.d.ts.map +1 -1
  9. package/lib/exercises/calcul/fractions/fractionsDivision.js +7 -1
  10. package/lib/exercises/calcul/fractions/fractionsProduct.d.ts.map +1 -1
  11. package/lib/exercises/calcul/fractions/fractionsSum.d.ts.map +1 -1
  12. package/lib/exercises/calcul/fractions/fractionsSum.js +7 -1
  13. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +2 -2
  14. package/lib/exercises/calculLitteral/equation/expEquation.js +2 -2
  15. package/lib/exercises/calculLitteral/equation/fractionEquation.js +4 -4
  16. package/lib/exercises/calculLitteral/equation/logEquation.js +2 -2
  17. package/lib/exercises/calculLitteral/equation/multiplicationEquation.js +3 -3
  18. package/lib/exercises/calculLitteral/inequations/firstDegreeInequationsType0.js +3 -3
  19. package/lib/exercises/calculLitteral/inequations/firstDegreeInequationsType1.js +3 -3
  20. package/lib/exercises/calculLitteral/inequations/firstDegreeInequationsType2.js +3 -3
  21. package/lib/exercises/calculLitteral/inequations/firstDegreeInequationsType3.js +3 -3
  22. package/lib/exercises/calculLitteral/simplifying/expSimplifiying.js +2 -2
  23. package/lib/exercises/derivation/derivative/expDerivativeOne.js +2 -2
  24. package/lib/exercises/derivation/derivative/expDerivativeThree.js +2 -2
  25. package/lib/exercises/derivation/derivative/expDerivativeTwo.js +2 -2
  26. package/lib/exercises/derivation/derivative/thirdDegreeFunctionVariation.js +1 -1
  27. package/lib/exercises/equaDiff/equaDiffGeneralForme.js +2 -2
  28. package/lib/exercises/equaDiff/equaDiffGeneralFormeWithIC.js +2 -2
  29. package/lib/exercises/exercise.d.ts +1 -0
  30. package/lib/exercises/exercise.d.ts.map +1 -1
  31. package/lib/exercises/exercises.d.ts.map +1 -1
  32. package/lib/exercises/exercises.js +4 -0
  33. package/lib/exercises/functions/basics/inverseImageFunctionGeogebra.d.ts.map +1 -1
  34. package/lib/exercises/functions/basics/inverseImageFunctionGeogebra.js +8 -2
  35. package/lib/exercises/functions/cube/cubicEquation.js +3 -3
  36. package/lib/exercises/functions/trinoms/rootsFromFactorizedForm.js +5 -5
  37. package/lib/exercises/geometry/euclidean/pythagore.js +1 -1
  38. package/lib/exercises/geometry/euclidean/thales.js +2 -2
  39. package/lib/exercises/percent/globalPercent.js +1 -1
  40. package/lib/exercises/percent/reciprocalPercentage.js +1 -1
  41. package/lib/exercises/primitve/constantPrimitive.js +1 -1
  42. package/lib/exercises/primitve/exponentialPrimitive.js +3 -3
  43. package/lib/exercises/primitve/logarithmePrimitive.js +1 -1
  44. package/lib/exercises/primitve/sinCosPrimitive.js +1 -1
  45. package/lib/exercises/sets/intervals/inequalityToInterval.js +14 -14
  46. package/lib/exercises/sets/intervals/intervalBelonging.d.ts.map +1 -1
  47. package/lib/exercises/sets/intervals/intervalBelonging.js +17 -3
  48. package/lib/exercises/sets/intervals/intervalsIntersection.d.ts +4 -0
  49. package/lib/exercises/sets/intervals/intervalsIntersection.d.ts.map +1 -0
  50. package/lib/exercises/sets/intervals/intervalsIntersection.js +67 -0
  51. package/lib/exercises/sets/intervals/intervalsUnion.d.ts.map +1 -1
  52. package/lib/exercises/sets/intervals/intervalsUnion.js +17 -6
  53. package/lib/exercises/squareRoots/squareRootEquation.js +4 -4
  54. package/lib/index.d.ts.map +1 -1
  55. package/lib/math/geometry/droite.js +1 -1
  56. package/lib/math/geometry/point.js +1 -1
  57. package/lib/math/polynomials/affine.d.ts.map +1 -1
  58. package/lib/math/polynomials/affine.js +2 -0
  59. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  60. package/lib/math/polynomials/trinom.js +9 -3
  61. package/lib/math/sets/intervals/intervals.d.ts +6 -3
  62. package/lib/math/sets/intervals/intervals.d.ts.map +1 -1
  63. package/lib/math/sets/intervals/intervals.js +85 -29
  64. package/lib/math/sets/mathSet.d.ts +5 -4
  65. package/lib/math/sets/mathSet.d.ts.map +1 -1
  66. package/lib/math/sets/mathSet.js +1 -0
  67. package/lib/math/sets/mathSetInterface.d.ts +2 -1
  68. package/lib/math/sets/mathSetInterface.d.ts.map +1 -1
  69. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  70. package/lib/tree/nodes/functions/expNode.js +5 -1
  71. package/lib/tree/nodes/operators/addNode.js +1 -1
  72. package/lib/tree/nodes/operators/divideNode.js +2 -1
  73. package/lib/tree/nodes/operators/equalNode.js +1 -1
  74. package/lib/tree/nodes/operators/multiplyNode.js +2 -1
  75. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  76. package/lib/tree/nodes/operators/powerNode.js +5 -1
  77. package/lib/tree/nodes/operators/substractNode.js +1 -1
  78. package/package.json +1 -1
@@ -42,7 +42,7 @@ function getPrimeNumbers() {
42
42
  }
43
43
  const prod = prodNumbers(choosenNumbers);
44
44
  choosenNumbers = choosenNumbers.sort((a, b) => a - b);
45
- let answer = `${prod} = ${choosenNumbers[0]}`;
45
+ let answer = `${prod}=${choosenNumbers[0]}`;
46
46
  for (let i = 1; i < choosenNumbers.length; i++) {
47
47
  answer += `\\times` + choosenNumbers[i];
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fractionAndIntegerDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionAndIntegerDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAU3E,eAAO,MAAM,0BAA0B,EAAE,QAYxC,CAAC;AAEF,wBAAgB,6BAA6B,IAAI,QAAQ,CAwDxD"}
1
+ {"version":3,"file":"fractionAndIntegerDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionAndIntegerDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAU3E,eAAO,MAAM,0BAA0B,EAAE,QAYxC,CAAC;AAEF,wBAAgB,6BAA6B,IAAI,QAAQ,CA+DxD"}
@@ -24,8 +24,8 @@ exports.fractionAndIntegerDivision = {
24
24
  };
25
25
  function getFractionAndIntegerDivision() {
26
26
  const rational = rational_1.RationalConstructor.randomIrreductible();
27
- const integer = new integer_1.Integer((0, randint_1.randint)(-10, 11, [0]));
28
27
  const integerFirst = (0, coinFlip_1.coinFlip)();
28
+ const integer = integerFirst ? new integer_1.Integer((0, randint_1.randint)(-10, 11, [0])) : new integer_1.Integer((0, randint_1.randint)(-10, 11, [0, 1]));
29
29
  const statementTree = integerFirst
30
30
  ? new divideNode_1.DivideNode(integer.toTree(), rational.toTree())
31
31
  : new divideNode_1.DivideNode(rational.toTree(), integer.toTree());
@@ -38,7 +38,13 @@ function getFractionAndIntegerDivision() {
38
38
  isRightAnswer: true,
39
39
  format: 'tex',
40
40
  });
41
- for (let i = 0; i < n - 1; i++) {
41
+ res.push({
42
+ id: (0, uuid_1.v4)() + '',
43
+ statement: !integerFirst ? integer.divide(rational).toTree().toTex() : rational.divide(integer).toTree().toTex(),
44
+ isRightAnswer: false,
45
+ format: 'tex',
46
+ });
47
+ for (let i = 0; i < n - 2; i++) {
42
48
  let isDuplicate;
43
49
  let proposition;
44
50
  do {
@@ -1 +1 @@
1
- {"version":3,"file":"fractionAndIntegerProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionAndIntegerProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS3E,eAAO,MAAM,yBAAyB,EAAE,QAYvC,CAAC;AAEF,wBAAgB,4BAA4B,IAAI,QAAQ,CAgDvD"}
1
+ {"version":3,"file":"fractionAndIntegerProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionAndIntegerProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS3E,eAAO,MAAM,yBAAyB,EAAE,QAYvC,CAAC;AAEF,wBAAgB,4BAA4B,IAAI,QAAQ,CAuDvD"}
@@ -23,7 +23,7 @@ exports.fractionAndIntegerProduct = {
23
23
  };
24
24
  function getFractionAndIntegerProduct() {
25
25
  const rational = rational_1.RationalConstructor.randomIrreductible();
26
- const integer = new integer_1.Integer((0, randint_1.randint)(-10, 11, [0]));
26
+ const integer = new integer_1.Integer((0, randint_1.randint)(-10, 11, [0, 1]));
27
27
  const statementTree = new multiplyNode_1.MultiplyNode(rational.toTree(), integer.toTree());
28
28
  statementTree.shuffle();
29
29
  const answerTree = rational.multiply(integer).toTree();
@@ -35,7 +35,13 @@ function getFractionAndIntegerProduct() {
35
35
  isRightAnswer: true,
36
36
  format: 'tex',
37
37
  });
38
- for (let i = 0; i < n - 1; i++) {
38
+ res.push({
39
+ id: (0, uuid_1.v4)() + '',
40
+ statement: new rational_1.Rational(integer.value * rational.num, integer.value * rational.denum).toTex(),
41
+ isRightAnswer: false,
42
+ format: 'tex',
43
+ });
44
+ for (let i = 0; i < n - 2; i++) {
39
45
  let isDuplicate;
40
46
  let proposition;
41
47
  do {
@@ -1 +1 @@
1
- {"version":3,"file":"fractionAndIntegerSum.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionAndIntegerSum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS3E,eAAO,MAAM,qBAAqB,EAAE,QAYnC,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,QAAQ,CAiDnD"}
1
+ {"version":3,"file":"fractionAndIntegerSum.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionAndIntegerSum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS3E,eAAO,MAAM,qBAAqB,EAAE,QAYnC,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,QAAQ,CA6DnD"}
@@ -35,7 +35,19 @@ function getFractionAndIntegerSum() {
35
35
  isRightAnswer: true,
36
36
  format: 'tex',
37
37
  });
38
- for (let i = 0; i < n - 1; i++) {
38
+ res.push({
39
+ id: (0, uuid_1.v4)() + '',
40
+ statement: new rational_1.Rational(integer.value + rational.num, rational.denum).toTex(),
41
+ isRightAnswer: false,
42
+ format: 'tex',
43
+ });
44
+ res.push({
45
+ id: (0, uuid_1.v4)() + '',
46
+ statement: new rational_1.Rational(integer.value + rational.num, integer.value + rational.denum).toTex(),
47
+ isRightAnswer: false,
48
+ format: 'tex',
49
+ });
50
+ for (let i = 0; i < n - 3; i++) {
39
51
  let isDuplicate;
40
52
  let proposition;
41
53
  do {
@@ -1 +1 @@
1
- {"version":3,"file":"fractionsDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionsDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,iBAAiB,EAAE,QAY/B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,QAAQ,CAgD/C"}
1
+ {"version":3,"file":"fractionsDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionsDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,iBAAiB,EAAE,QAY/B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,QAAQ,CAqD/C"}
@@ -32,7 +32,13 @@ function getFractionsDivision() {
32
32
  isRightAnswer: true,
33
33
  format: 'tex',
34
34
  });
35
- for (let i = 0; i < n - 1; i++) {
35
+ res.push({
36
+ id: (0, uuid_1.v4)() + '',
37
+ statement: rational.multiply(rational2).toTree().toTex(),
38
+ isRightAnswer: false,
39
+ format: 'tex',
40
+ });
41
+ for (let i = 0; i < n - 2; i++) {
36
42
  let isDuplicate;
37
43
  let proposition;
38
44
  do {
@@ -1 +1 @@
1
- {"version":3,"file":"fractionsProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionsProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,gBAAgB,EAAE,QAY9B,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,QAAQ,CA+C9C"}
1
+ {"version":3,"file":"fractionsProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionsProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,gBAAgB,EAAE,QAY9B,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,QAAQ,CA8C9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"fractionsSum.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionsSum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,YAAY,EAAE,QAY1B,CAAC;AAEF,wBAAgB,eAAe,IAAI,QAAQ,CA+C1C"}
1
+ {"version":3,"file":"fractionsSum.d.ts","sourceRoot":"","sources":["../../../../src/exercises/calcul/fractions/fractionsSum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,YAAY,EAAE,QAY1B,CAAC;AAEF,wBAAgB,eAAe,IAAI,QAAQ,CAsD1C"}
@@ -32,7 +32,13 @@ function getFractionsSum() {
32
32
  isRightAnswer: true,
33
33
  format: 'tex',
34
34
  });
35
- for (let i = 0; i < n - 1; i++) {
35
+ propositions.push({
36
+ id: (0, uuid_1.v4)(),
37
+ statement: new rational_1.Rational(rational.num + rational2.num, rational.denum + rational2.denum).toTex(),
38
+ isRightAnswer: false,
39
+ format: 'tex',
40
+ });
41
+ for (let i = 0; i < n - 2; i++) {
36
42
  let isDuplicate;
37
43
  let proposition;
38
44
  do {
@@ -43,11 +43,11 @@ function getEquationSimpleSquare() {
43
43
  if (randNbr < 0)
44
44
  answer = `S=\\emptyset`;
45
45
  else if (ans === Math.floor(ans))
46
- answer = `S=\\left\\{${ans}\\ ; -${ans}\\right\\}`;
46
+ answer = `S=\\left\\{-${ans};${ans}\\right\\}`;
47
47
  else {
48
48
  const factor = higherFactor(randNbr);
49
49
  const radicand = randNbr / factor ** 2;
50
- answer = `S=\\left\\{${factor === 1 ? '' : factor}\\sqrt{${radicand}}\\ ; -${factor === 1 ? '' : factor}\\sqrt{${radicand}} \\right\\}`;
50
+ answer = `S=\\left\\{-${factor === 1 ? '' : factor}\\sqrt{${radicand}};${factor === 1 ? '' : factor}\\sqrt{${radicand}}\\right\\}`;
51
51
  }
52
52
  const getPropositions = (n) => {
53
53
  const res = [];
@@ -22,7 +22,7 @@ exports.expEquation = {
22
22
  sections: ['Exponentielle'],
23
23
  isSingleStep: false,
24
24
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExpEquation, nb),
25
- keys: ['exp', 'ln'],
25
+ keys: ['x', 'equal', 'epower', 'exp', 'ln'],
26
26
  qcmTimer: 60,
27
27
  freeTimer: 60,
28
28
  };
@@ -60,7 +60,7 @@ function getExpEquation() {
60
60
  const question = {
61
61
  instruction: `Résoudre l'équation $${equation.toTex()}$.`,
62
62
  answer: answer.toTex(),
63
- keys: ['exp', 'ln'],
63
+ keys: ['x', 'equal', 'epower', 'exp', 'ln'],
64
64
  getPropositions,
65
65
  answerFormat: 'tex',
66
66
  };
@@ -31,8 +31,8 @@ function getFractionEquation() {
31
31
  const polynome1 = new polynomial_1.Polynomial([b, a]);
32
32
  const polynome2 = new polynomial_1.Polynomial([d, c]);
33
33
  const answer = -d / c === -b / a
34
- ? `S = \\emptyset`
35
- : `S = \\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()}\\right\\}`;
34
+ ? `S=\\emptyset`
35
+ : `S=\\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()}\\right\\}`;
36
36
  const getPropositions = (n) => {
37
37
  const res = [];
38
38
  res.push({
@@ -50,8 +50,8 @@ function getFractionEquation() {
50
50
  const c = (0, randint_1.randint)(-9, 10, [0]);
51
51
  const d = (0, randint_1.randint)(-9, 10, [0]);
52
52
  const wrongAnswer = -d / c === -b / a
53
- ? `S = \\emptyset`
54
- : `S = \\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()}\\right\\}`;
53
+ ? `S=\\emptyset`
54
+ : `S=\\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()}\\right\\}`;
55
55
  proposition = {
56
56
  id: (0, uuid_1.v4)() + '',
57
57
  statement: wrongAnswer,
@@ -22,7 +22,7 @@ exports.logEquation = {
22
22
  sections: ['Logarithme népérien'],
23
23
  isSingleStep: false,
24
24
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getLnEquation, nb),
25
- keys: ['ln', 'exp'],
25
+ keys: ['x', 'equal', 'ln', 'epower', 'exp'],
26
26
  qcmTimer: 60,
27
27
  freeTimer: 60,
28
28
  };
@@ -60,7 +60,7 @@ function getLnEquation() {
60
60
  const question = {
61
61
  instruction: `Résoudre l'équation $${equation.toTex()}$.`,
62
62
  answer: answer.toTex(),
63
- keys: ['ln', 'exp'],
63
+ keys: ['x', 'equal', 'ln', 'epower', 'exp'],
64
64
  getPropositions,
65
65
  answerFormat: 'tex',
66
66
  };
@@ -33,7 +33,7 @@ function getMultiplicationEquation() {
33
33
  } while (a / c === b / d);
34
34
  const polynome1 = new polynomial_1.Polynomial([b, a]);
35
35
  const polynome2 = new polynomial_1.Polynomial([d, c]);
36
- const answer = `S = \\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()};${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-d), new numberNode_1.NumberNode(c))).toTex()}\\right\\}`;
36
+ const answer = `S=\\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()};${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-d), new numberNode_1.NumberNode(c))).toTex()}\\right\\}`;
37
37
  const getPropositions = (n) => {
38
38
  const res = [];
39
39
  res.push({
@@ -54,7 +54,7 @@ function getMultiplicationEquation() {
54
54
  } while (a / c === b / d);
55
55
  const polynome1 = new polynomial_1.Polynomial([b, a]);
56
56
  const polynome2 = new polynomial_1.Polynomial([d, c]);
57
- const wrongAnswer = `S = \\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()};${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-d), new numberNode_1.NumberNode(c))).toTex()}\\right\\}`;
57
+ const wrongAnswer = `S=\\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()};${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-d), new numberNode_1.NumberNode(c))).toTex()}\\right\\}`;
58
58
  proposition = {
59
59
  id: (0, uuid_1.v4)() + '',
60
60
  statement: wrongAnswer,
@@ -69,7 +69,7 @@ function getMultiplicationEquation() {
69
69
  };
70
70
  const question = {
71
71
  startStatement: `(${polynome1.toTex()})(${polynome2.toTex()}) = 0`,
72
- answer: `S = \\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()};${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-d), new numberNode_1.NumberNode(c))).toTex()}\\right\\}`,
72
+ answer: `S=\\left\\{${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-b), new numberNode_1.NumberNode(a))).toTex()};${(0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(-d), new numberNode_1.NumberNode(c))).toTex()}\\right\\}`,
73
73
  keys: ['x', 'S', 'equal', 'lbrace', 'rbrace', 'semicolon', 'ou'],
74
74
  getPropositions,
75
75
  answerFormat: 'tex',
@@ -24,9 +24,9 @@ function getFirstDegreeInequationsQuestion() {
24
24
  const affine = new affine_1.Affine(1, (0, randint_1.randint)(-10, 11));
25
25
  const c = (0, randint_1.randint)(-10, 11);
26
26
  const result = c - affine.b;
27
- const ineqType = (0, random_1.random)(['\\leq', '<', '\\geq', '>']);
28
- const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\leq' ? '\\geq' : '\\leq';
29
- const answer = `x ${ineqType} ${result}`;
27
+ const ineqType = (0, random_1.random)(['\\le', '<', '\\ge', '>']);
28
+ const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\le' ? '\\ge' : '\\le';
29
+ const answer = `x${ineqType}${result}`;
30
30
  const getPropositions = (n) => {
31
31
  const res = [];
32
32
  res.push({
@@ -25,9 +25,9 @@ function getFirstDegreeInequationsQuestion() {
25
25
  const affine = new affine_1.Affine((0, randint_1.randint)(-10, 10, [0, 1]), 0);
26
26
  const b = (0, randint_1.randint)(-10, 11);
27
27
  const result = new rational_1.Rational(b, affine.a).simplify().toTree().toTex();
28
- const ineqType = (0, random_1.random)(['\\leq', '<', '\\geq', '>']);
29
- const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\leq' ? '\\geq' : '\\leq';
30
- const answer = `x ${affine.a > 0 ? ineqType : invIneqType} ${result}`;
28
+ const ineqType = (0, random_1.random)(['\\le', '<', '\\ge', '>']);
29
+ const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\le' ? '\\ge' : '\\le';
30
+ const answer = `x${affine.a > 0 ? ineqType : invIneqType}${result}`;
31
31
  const getPropositions = (n) => {
32
32
  const res = [];
33
33
  res.push({
@@ -25,9 +25,9 @@ function getFirstDegreeInequationsQuestion() {
25
25
  const affine = new affine_1.Affine((0, randint_1.randint)(-10, 10, [0, 1]), (0, randint_1.randint)(-10, 10, [0]));
26
26
  const c = (0, randint_1.randint)(-10, 11);
27
27
  const result = new rational_1.Rational(c - affine.b, affine.a).simplify().toTree().toTex();
28
- const ineqType = (0, random_1.random)(['\\leq', '<', '\\geq', '>']);
29
- const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\leq' ? '\\geq' : '\\leq';
30
- const answer = `x ${affine.a > 0 ? ineqType : invIneqType} ${result}`;
28
+ const ineqType = (0, random_1.random)(['\\le', '<', '\\ge', '>']);
29
+ const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\le' ? '\\ge' : '\\le';
30
+ const answer = `x${affine.a > 0 ? ineqType : invIneqType}${result}`;
31
31
  const getPropositions = (n) => {
32
32
  const res = [];
33
33
  res.push({
@@ -26,9 +26,9 @@ function getFirstDegreeInequationsQuestion() {
26
26
  const affine2 = new affine_1.Affine((0, randint_1.randint)(-10, 10, [0, affine1.a]), (0, randint_1.randint)(-10, 10));
27
27
  const result = new rational_1.Rational(affine2.b - affine1.b, affine1.a - affine2.a).simplify().toTree().toTex();
28
28
  const coeff = affine1.a - affine2.a;
29
- const ineqType = (0, random_1.random)(['\\leq', '<', '\\geq', '>']);
30
- const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\leq' ? '\\geq' : '\\leq';
31
- const answer = `x ${coeff > 0 ? ineqType : invIneqType} ${result}`;
29
+ const ineqType = (0, random_1.random)(['\\le', '<', '\\ge', '>']);
30
+ const invIneqType = ineqType === '<' ? '>' : ineqType === '>' ? '<' : ineqType === '\\le' ? '\\ge' : '\\le';
31
+ const answer = `x${coeff > 0 ? ineqType : invIneqType}${result}`;
32
32
  const getPropositions = (n) => {
33
33
  const res = [];
34
34
  res.push({
@@ -21,7 +21,7 @@ exports.expSimplifiying = {
21
21
  sections: ['Exponentielle'],
22
22
  isSingleStep: false,
23
23
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExpSimplifiying, nb),
24
- keys: ['exp'],
24
+ keys: ['x', 'epower', 'exp'],
25
25
  qcmTimer: 60,
26
26
  freeTimer: 60,
27
27
  };
@@ -89,7 +89,7 @@ function getExpSimplifiying() {
89
89
  const question = {
90
90
  instruction: `Simplifier l'expression $${expression.toTex()}$.`,
91
91
  answer: simplifiedExpression.toTex(),
92
- keys: ['exp'],
92
+ keys: ['x', 'epower', 'exp'],
93
93
  getPropositions,
94
94
  answerFormat: 'tex',
95
95
  };
@@ -19,7 +19,7 @@ exports.expDerivativeOne = {
19
19
  sections: ['Dérivation', 'Exponentielle'],
20
20
  isSingleStep: false,
21
21
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExpDerivative, nb),
22
- keys: ['exp'],
22
+ keys: ['x', 'epower', 'exp'],
23
23
  qcmTimer: 60,
24
24
  freeTimer: 60,
25
25
  };
@@ -58,7 +58,7 @@ function getExpDerivative() {
58
58
  instruction: `Déterminer la dérivée de la fonction $f(x) = ${myfunction.toTex()}$.`,
59
59
  startStatement: "f'(x)",
60
60
  answer: derivative.toTex(),
61
- keys: ['exp'],
61
+ keys: ['x', 'epower', 'exp'],
62
62
  getPropositions,
63
63
  answerFormat: 'tex',
64
64
  };
@@ -18,7 +18,7 @@ exports.expDerivativeThree = {
18
18
  sections: ['Dérivation', 'Exponentielle'],
19
19
  isSingleStep: false,
20
20
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExpDerivativeThree, nb),
21
- keys: ['exp'],
21
+ keys: ['x', 'epower', 'exp'],
22
22
  qcmTimer: 60,
23
23
  freeTimer: 60,
24
24
  };
@@ -57,7 +57,7 @@ function getExpDerivativeThree() {
57
57
  instruction: `Déterminer la dérivée de la fonction $f(x) = ${myfunction.toTex()}$.`,
58
58
  startStatement: "f'(x)",
59
59
  answer: derivative.toTex(),
60
- keys: ['exp'],
60
+ keys: ['x', 'epower', 'exp'],
61
61
  getPropositions,
62
62
  answerFormat: 'tex',
63
63
  };
@@ -20,7 +20,7 @@ exports.expDerivativeTwo = {
20
20
  sections: ['Dérivation', 'Exponentielle'],
21
21
  isSingleStep: false,
22
22
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExpDerivative, nb),
23
- keys: ['exp'],
23
+ keys: ['x', 'epower', 'exp'],
24
24
  qcmTimer: 60,
25
25
  freeTimer: 60,
26
26
  };
@@ -58,7 +58,7 @@ function getExpDerivative() {
58
58
  instruction: `Déterminer la dérivée de la fonction $f(x) = ${myfunction.toTex()}$.`,
59
59
  startStatement: "f'(x)",
60
60
  answer: derivative.toTex(),
61
- keys: ['exp'],
61
+ keys: ['x', 'epower', 'exp'],
62
62
  getPropositions,
63
63
  answerFormat: 'tex',
64
64
  };
@@ -32,7 +32,7 @@ function getThirdDegreeFunctionVariation() {
32
32
  (coin < 0 ? 'négative ?' : 'positive ?');
33
33
  const answer = coin * a < 0
34
34
  ? `\\left[${racine1};${racine2}\\right]`
35
- : `\\left]-\\infty;${racine1}\\right] \\cup \\left[${racine2};+\\infty\\right[`;
35
+ : `\\left]-\\infty;${racine1}\\right]\\cup\\left[${racine2};+\\infty\\right[`;
36
36
  const getPropositions = (n) => {
37
37
  const res = [];
38
38
  res.push({
@@ -21,7 +21,7 @@ exports.exponentialDifferentialEquation = {
21
21
  sections: ['Équations différentielles'],
22
22
  isSingleStep: false,
23
23
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExponentialEquation, nb),
24
- keys: ['x', 'y', 'exp', 'C', 'equal'],
24
+ keys: ['x', 'y', 'epower', 'exp', 'C', 'equal'],
25
25
  qcmTimer: 60,
26
26
  freeTimer: 60,
27
27
  };
@@ -59,7 +59,7 @@ function getExponentialEquation() {
59
59
  instruction: `Résoudre l'équation différentielle suivante : $y' = ${myEquation.toTex()}$.`,
60
60
  startStatement: `y(x)`,
61
61
  answer: myAnswer.toTex(),
62
- keys: ['x', 'y', 'exp', 'C', 'equal'],
62
+ keys: ['x', 'y', 'epower', 'exp', 'C', 'equal'],
63
63
  getPropositions,
64
64
  answerFormat: 'tex',
65
65
  };
@@ -21,7 +21,7 @@ exports.exponentialDifferentialEquationWithIC = {
21
21
  sections: ['Équations différentielles'],
22
22
  isSingleStep: false,
23
23
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(solveExponentialEquationWithIC, nb),
24
- keys: ['x', 'y', 'exp', 'equal'],
24
+ keys: ['x', 'y', 'epower', 'exp', 'equal'],
25
25
  qcmTimer: 60,
26
26
  freeTimer: 60,
27
27
  };
@@ -73,7 +73,7 @@ function solveExponentialEquationWithIC() {
73
73
  instruction: `Résoudre l'équation différentielle suivante avec la condition initiale $y(0) = ${initialY}$ : $y' = ${myEquation.toTex()}$.`,
74
74
  startStatement: `y(x)`,
75
75
  answer: myAnswer.toTex(),
76
- keys: ['x', 'y', 'exp', 'equal'],
76
+ keys: ['x', 'y', 'epower', 'exp', 'equal'],
77
77
  getPropositions,
78
78
  answerFormat: 'tex',
79
79
  };
@@ -15,6 +15,7 @@ export interface Question {
15
15
  commands?: string[];
16
16
  coords?: number[];
17
17
  options?: any;
18
+ divisionFormat?: 'fraction' | 'obelus';
18
19
  getPropositions: (n: number) => Proposition[];
19
20
  }
20
21
  export interface Exercise {
@@ -1 +1 @@
1
- {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;CACvB,CAAC;AACF,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,KAAK,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,UAAU,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAAC;IAC9D,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,aAAa,GACb,YAAY,GACZ,SAAS,GACT,0BAA0B,GAC1B,WAAW,GACX,2BAA2B,GAC3B,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,mBAAmB,GACnB,wBAAwB,GACxB,WAAW,GACX,uBAAuB,GACvB,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,SAAS,GACT,qBAAqB,GACrB,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,QAAQ,GACR,eAAe,GACf,UAAU,CAAC"}
1
+ {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;CACvB,CAAC;AACF,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,KAAK,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,UAAU,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAAC;IAC9D,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,aAAa,GACb,YAAY,GACZ,SAAS,GACT,0BAA0B,GAC1B,WAAW,GACX,2BAA2B,GAC3B,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,mBAAmB,GACnB,wBAAwB,GACxB,WAAW,GACX,uBAAuB,GACvB,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,SAAS,GACT,qBAAqB,GACrB,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,QAAQ,GACR,eAAe,GACf,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"exercises.d.ts","sourceRoot":"","sources":["../../src/exercises/exercises.ts"],"names":[],"mappings":"AA6KA,eAAO,MAAM,SAAS,iCA4PrB,CAAC"}
1
+ {"version":3,"file":"exercises.d.ts","sourceRoot":"","sources":["../../src/exercises/exercises.ts"],"names":[],"mappings":"AA+KA,eAAO,MAAM,SAAS,iCA8PrB,CAAC"}
@@ -163,6 +163,8 @@ const rootsFromFactorizedForm_1 = require("./functions/trinoms/rootsFromFactoriz
163
163
  const rootsFromDevForm_1 = require("./functions/trinoms/rootsFromDevForm");
164
164
  const inequalityToInterval_1 = require("./sets/intervals/inequalityToInterval");
165
165
  const setBelonging_1 = require("./sets/setBelonging");
166
+ const intervalsUnion_1 = require("./sets/intervals/intervalsUnion");
167
+ const intervalsIntersection_1 = require("./sets/intervals/intervalsIntersection");
166
168
  exports.exercises = [
167
169
  /**
168
170
  * calcul litteral
@@ -392,4 +394,6 @@ exports.exercises = [
392
394
  /**sets */
393
395
  inequalityToInterval_1.inequalityToInterval,
394
396
  setBelonging_1.setBelonging,
397
+ intervalsUnion_1.intervalsUnion,
398
+ intervalsIntersection_1.intervalsIntersection,
395
399
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"inverseImageFunctionGeogebra.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/basics/inverseImageFunctionGeogebra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS3E,eAAO,MAAM,4BAA4B,EAAE,QAY1C,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,QAAQ,CAsJ1D"}
1
+ {"version":3,"file":"inverseImageFunctionGeogebra.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/basics/inverseImageFunctionGeogebra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS3E,eAAO,MAAM,4BAA4B,EAAE,QAY1C,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,QAAQ,CA4J1D"}
@@ -47,7 +47,7 @@ function getInverseImageFunctionGeogebra() {
47
47
  const answer = rand
48
48
  ? xValue
49
49
  : roots.length === 2
50
- ? `\\{${(0, round_1.round)(roots[0], 1)};${(0, round_1.round)(roots[1], 1)} \\}`
50
+ ? `\\{${(0, round_1.round)(roots[0], 1)};${(0, round_1.round)(roots[1], 1)}\\}`
51
51
  : roots.length === 1
52
52
  ? roots[0]
53
53
  : `\\emptyset`;
@@ -141,7 +141,13 @@ function getInverseImageFunctionGeogebra() {
141
141
  }
142
142
  return (0, shuffle_1.shuffle)(res);
143
143
  };
144
- const commands = [rand ? polynome1.toString() : polynome2.add(new polynomial_1.Polynomial([yValue])).toString()];
144
+ const commands = [
145
+ rand
146
+ ? polynome1.toString()
147
+ : yValue !== 0
148
+ ? polynome2.add(new polynomial_1.Polynomial([yValue])).toString()
149
+ : polynome2.toString(),
150
+ ];
145
151
  const question = {
146
152
  instruction: statement,
147
153
  answer: answer + '',
@@ -20,7 +20,7 @@ exports.cubicEquation = {
20
20
  function getCubicEquationQuestion() {
21
21
  const x = (0, randint_1.randint)(-10, 11);
22
22
  const k = x ** 3;
23
- const answer = `S = \\lbrace ${x} \\rbrace`;
23
+ const answer = `S=\\{${x}\\}`;
24
24
  const getPropositions = (n) => {
25
25
  const res = [];
26
26
  res.push({
@@ -32,7 +32,7 @@ function getCubicEquationQuestion() {
32
32
  if (x ** 3 !== k ** 3) {
33
33
  res.push({
34
34
  id: (0, uuid_1.v4)(),
35
- statement: `S = \\lbrace ${k ** 3} \\rbrace`,
35
+ statement: `S=\\{${k ** 3}\\}`,
36
36
  isRightAnswer: true,
37
37
  format: 'tex',
38
38
  });
@@ -45,7 +45,7 @@ function getCubicEquationQuestion() {
45
45
  const wrongAnswer = (0, randint_1.randint)(-10, 11) + '';
46
46
  proposition = {
47
47
  id: (0, uuid_1.v4)() + ``,
48
- statement: `S = \\lbrace ${wrongAnswer} \\rbrace`,
48
+ statement: `S=\\{${wrongAnswer}\\}`,
49
49
  isRightAnswer: false,
50
50
  format: 'tex',
51
51
  };
@@ -35,7 +35,7 @@ function getRootsFromFactorizedFormQuestion() {
35
35
  if (roots.length === 1 && roots[0] !== 0) {
36
36
  res.push({
37
37
  id: (0, uuid_1.v4)(),
38
- statement: `S = \\lbrace ${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[0]))} \\rbrace`,
38
+ statement: `S=\\{${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[0]))}\\}`,
39
39
  isRightAnswer: false,
40
40
  format: 'tex',
41
41
  });
@@ -43,7 +43,7 @@ function getRootsFromFactorizedFormQuestion() {
43
43
  if (roots.length === 2 && roots[0] !== 0) {
44
44
  res.push({
45
45
  id: (0, uuid_1.v4)(),
46
- statement: `S = \\lbrace ${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[0])).toTex()} ; ${roots[1]} \\rbrace`,
46
+ statement: `S=\\{${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[0])).toTex()};${roots[1]}\\}`,
47
47
  isRightAnswer: false,
48
48
  format: 'tex',
49
49
  });
@@ -51,7 +51,7 @@ function getRootsFromFactorizedFormQuestion() {
51
51
  if (roots.length === 2 && roots[1] !== 0) {
52
52
  res.push({
53
53
  id: (0, uuid_1.v4)(),
54
- statement: `S = \\lbrace ${roots[0]} ; ${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[1])).toTex()} \\rbrace`,
54
+ statement: `S=\\{${roots[0]};${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[1])).toTex()}\\}`,
55
55
  isRightAnswer: false,
56
56
  format: 'tex',
57
57
  });
@@ -59,7 +59,7 @@ function getRootsFromFactorizedFormQuestion() {
59
59
  if (roots.length === 2 && roots[0] !== 0 && roots[1] !== 0) {
60
60
  res.push({
61
61
  id: (0, uuid_1.v4)(),
62
- statement: `S = \\lbrace ${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[0])).toTex()} ; ${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[1])).toTex()} \\rbrace`,
62
+ statement: `S=\\{${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[0])).toTex()};${new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(roots[1])).toTex()}\\}`,
63
63
  isRightAnswer: false,
64
64
  format: 'tex',
65
65
  });
@@ -69,7 +69,7 @@ function getRootsFromFactorizedFormQuestion() {
69
69
  let isDuplicate;
70
70
  let proposition;
71
71
  do {
72
- const wrongAnswer = `S = \\lbrace ${(0, randint_1.randint)(-10, 11)}; ${(0, randint_1.randint)(-10, 11)} \\rbrace`;
72
+ const wrongAnswer = `S=\\{${(0, randint_1.randint)(-10, 11)};${(0, randint_1.randint)(-10, 11)}\\}`;
73
73
  proposition = {
74
74
  id: (0, uuid_1.v4)() + ``,
75
75
  statement: wrongAnswer,
@@ -76,7 +76,7 @@ function getPythagore() {
76
76
  return (0, shuffle_1.shuffle)(res);
77
77
  };
78
78
  const question = {
79
- answer: `${triangle.getSideAName()}^2 = ${triangle.getSideBName()}^2 + ${triangle.getSideCName()}^2`,
79
+ answer: `${triangle.getSideAName()}^2=${triangle.getSideBName()}^2+${triangle.getSideCName()}^2`,
80
80
  keys: [...vertices, 'equal'],
81
81
  commands: triangle.generateCommands({}),
82
82
  coords: triangle.generateCoords(),
@@ -101,8 +101,8 @@ function getThales() {
101
101
  };
102
102
  const question = {
103
103
  instruction: `En utilisant le théoreme de Thalès, Écrire l'égalité des quotients sachant que :$\\\\$ (${vertices[3]}${vertices[4]})//(${vertices[1]}${vertices[2]})`,
104
- answer: `\\frac{${vertices[0]}${vertices[3]}}{${vertices[0]}${vertices[1]}} =
105
- \\frac{${vertices[0]}${vertices[4]}}{${vertices[0]}${vertices[2]}} =
104
+ answer: `\\frac{${vertices[0]}${vertices[3]}}{${vertices[0]}${vertices[1]}}=
105
+ \\frac{${vertices[0]}${vertices[4]}}{${vertices[0]}${vertices[2]}}=
106
106
  \\frac{${vertices[3]}${vertices[4]}}{${vertices[1]}${vertices[2]}}`,
107
107
  keys: [...vertices, 'equal'],
108
108
  commands,
@@ -37,7 +37,7 @@ function getGlobalPercentQuestion() {
37
37
  }
38
38
  ans = (0, mathjs_1.round)((ans - 1) * 100, 2);
39
39
  instruction += ". \nDéterminer le taux d'évolution global du prix de cet article.";
40
- const answer = `${ans} \\%`;
40
+ const answer = `${ans}\\%`;
41
41
  const getPropositions = (n) => {
42
42
  const res = [];
43
43
  res.push({
@@ -57,7 +57,7 @@ function getReciprocalPercentageQuestion() {
57
57
  };
58
58
  const question = {
59
59
  instruction,
60
- answer: `${ans > 0 ? '+' + (0, mathjs_1.round)(ans, 2) : (0, mathjs_1.round)(ans, 2)} \\%`,
60
+ answer: `${ans > 0 ? '+' + (0, mathjs_1.round)(ans, 2) : (0, mathjs_1.round)(ans, 2)}\\%`,
61
61
  keys: ['percent'],
62
62
  getPropositions,
63
63
  answerFormat: 'tex',