math-exercises 1.3.43 → 1.3.44

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 (161) hide show
  1. package/lib/exercises/calcul/addAndSub.js +2 -2
  2. package/lib/exercises/calcul/addAndSubWithoutRelatives.js +2 -2
  3. package/lib/exercises/calcul/arithmetics/euclideanDivision.js +2 -2
  4. package/lib/exercises/calcul/arithmetics/primeNumbers.js +2 -2
  5. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +2 -2
  6. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +2 -2
  7. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +2 -2
  8. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.js +2 -2
  9. package/lib/exercises/calcul/fractions/fractionsDivision.js +2 -2
  10. package/lib/exercises/calcul/fractions/fractionsProduct.js +2 -2
  11. package/lib/exercises/calcul/fractions/fractionsSum.js +2 -2
  12. package/lib/exercises/calcul/fractions/simplifyFraction.js +2 -2
  13. package/lib/exercises/calcul/mentalCaluls.ts/mentalAddAndSub.js +2 -2
  14. package/lib/exercises/calcul/mentalCaluls.ts/mentalDivisions.js +2 -2
  15. package/lib/exercises/calcul/mentalCaluls.ts/mentalMultiplications.js +2 -2
  16. package/lib/exercises/calcul/mentalCaluls.ts/mentalPercentage.js +2 -2
  17. package/lib/exercises/calcul/operations/operationsPriorities.js +2 -2
  18. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.js +2 -2
  19. package/lib/exercises/calcul/proportionality/proportionalityTable.js +2 -2
  20. package/lib/exercises/calcul/rounding/rounding.js +10 -10
  21. package/lib/exercises/calculLitteral/distributivity/allIdentities.js +2 -2
  22. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.js +2 -2
  23. package/lib/exercises/calculLitteral/distributivity/firstIdentity.js +2 -2
  24. package/lib/exercises/calculLitteral/distributivity/secondIdentity.js +2 -2
  25. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.js +2 -2
  26. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.js +2 -2
  27. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +2 -2
  28. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +2 -2
  29. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +2 -2
  30. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +2 -2
  31. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +2 -2
  32. package/lib/exercises/calculLitteral/equation/expEquation.js +3 -3
  33. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.js +2 -2
  34. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.js +2 -2
  35. package/lib/exercises/calculLitteral/equation/fractionEquation.js +2 -2
  36. package/lib/exercises/calculLitteral/equation/logEquation.js +3 -3
  37. package/lib/exercises/calculLitteral/equation/multiplicationEquation.js +2 -2
  38. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.js +2 -2
  39. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.d.ts.map +1 -1
  40. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.js +2 -2
  41. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.js +2 -2
  42. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +2 -2
  43. package/lib/exercises/calculLitteral/simplifying/evaluateExpression.js +2 -2
  44. package/lib/exercises/calculLitteral/simplifying/expSimplifiying.js +2 -2
  45. package/lib/exercises/calculLitteral/simplifying/logSimplifiying.js +3 -3
  46. package/lib/exercises/calculLitteral/simplifying/reduceExpression.js +2 -2
  47. package/lib/exercises/conversion/aeraConversion.js +2 -2
  48. package/lib/exercises/conversion/capacityConversion.js +2 -2
  49. package/lib/exercises/conversion/lengthConversion.js +2 -2
  50. package/lib/exercises/conversion/massConversion.js +2 -2
  51. package/lib/exercises/conversion/volumeCapacityConversion.js +2 -2
  52. package/lib/exercises/conversion/volumeConversion.js +2 -2
  53. package/lib/exercises/derivation/derivative/constanteDerivative.js +2 -2
  54. package/lib/exercises/derivation/derivative/expDerivativeOne.js +3 -3
  55. package/lib/exercises/derivation/derivative/expDerivativeThree.js +3 -3
  56. package/lib/exercises/derivation/derivative/expDerivativeTwo.js +3 -3
  57. package/lib/exercises/derivation/derivative/firstDegreeDerivative.js +2 -2
  58. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.js +2 -2
  59. package/lib/exercises/derivation/derivative/lnDerivativeOne.js +3 -3
  60. package/lib/exercises/derivation/derivative/lnDerivativeThree.js +3 -3
  61. package/lib/exercises/derivation/derivative/lnDerivativeTwo.js +3 -3
  62. package/lib/exercises/derivation/derivative/powerFunctionDerivative.js +2 -2
  63. package/lib/exercises/derivation/derivative/rootFunctionDerivative.js +2 -2
  64. package/lib/exercises/derivation/derivative/secondDegreeDerivative.js +2 -2
  65. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.js +2 -2
  66. package/lib/exercises/derivation/derivative/thirdDegreeFunctionVariation.js +2 -2
  67. package/lib/exercises/derivation/derivative/usualderivative.js +2 -2
  68. package/lib/exercises/derivation/derivativeNumberReading.js +2 -2
  69. package/lib/exercises/equaDiff/equaDiffGeneralForme.js +3 -3
  70. package/lib/exercises/equaDiff/equaDiffGeneralFormeWithIC.js +3 -3
  71. package/lib/exercises/exercise.d.ts +4 -2
  72. package/lib/exercises/exercise.d.ts.map +1 -1
  73. package/lib/exercises/exercises.d.ts.map +1 -1
  74. package/lib/exercises/exercises.js +12 -8
  75. package/lib/exercises/functions/affines/leadingCoefficient.d.ts +4 -0
  76. package/lib/exercises/functions/affines/leadingCoefficient.d.ts.map +1 -0
  77. package/lib/exercises/functions/affines/leadingCoefficient.js +93 -0
  78. package/lib/exercises/functions/affines/leadingCoefficientCalculV1.d.ts +4 -0
  79. package/lib/exercises/functions/affines/leadingCoefficientCalculV1.d.ts.map +1 -0
  80. package/lib/exercises/functions/affines/leadingCoefficientCalculV1.js +59 -0
  81. package/lib/exercises/functions/affines/leadingCoefficientCalculV2.d.ts +4 -0
  82. package/lib/exercises/functions/affines/leadingCoefficientCalculV2.d.ts.map +1 -0
  83. package/lib/exercises/functions/affines/leadingCoefficientCalculV2.js +58 -0
  84. package/lib/exercises/functions/affines/signFunction.d.ts +4 -0
  85. package/lib/exercises/functions/affines/signFunction.d.ts.map +1 -0
  86. package/lib/exercises/functions/affines/signFunction.js +84 -0
  87. package/lib/exercises/functions/basics/imageFunction.d.ts +4 -0
  88. package/lib/exercises/functions/basics/imageFunction.d.ts.map +1 -0
  89. package/lib/exercises/functions/basics/imageFunction.js +65 -0
  90. package/lib/exercises/functions/basics/imageFunctionGeogebra.d.ts +4 -0
  91. package/lib/exercises/functions/basics/imageFunctionGeogebra.d.ts.map +1 -0
  92. package/lib/exercises/functions/basics/imageFunctionGeogebra.js +89 -0
  93. package/lib/exercises/functions/basics/inverseImageFunction.d.ts +4 -0
  94. package/lib/exercises/functions/basics/inverseImageFunction.d.ts.map +1 -0
  95. package/lib/exercises/functions/basics/inverseImageFunction.js +62 -0
  96. package/lib/exercises/functions/basics/inverseImageFunctionGeogebra.d.ts +4 -0
  97. package/lib/exercises/functions/basics/inverseImageFunctionGeogebra.d.ts.map +1 -0
  98. package/lib/exercises/functions/basics/inverseImageFunctionGeogebra.js +154 -0
  99. package/lib/exercises/geometry/cartesian/distanceBetweenTwoPoints.js +2 -2
  100. package/lib/exercises/geometry/cartesian/midpoint.js +2 -2
  101. package/lib/exercises/geometry/euclidean/circleArea.js +2 -2
  102. package/lib/exercises/geometry/euclidean/circleCircumference.js +2 -2
  103. package/lib/exercises/geometry/euclidean/pythagore.js +3 -3
  104. package/lib/exercises/geometry/euclidean/pythagoreCalcul.js +2 -2
  105. package/lib/exercises/geometry/euclidean/rectangleArea.js +2 -2
  106. package/lib/exercises/geometry/euclidean/rectanglePerimeter.js +2 -2
  107. package/lib/exercises/geometry/euclidean/rightTriangleArea.js +2 -2
  108. package/lib/exercises/geometry/euclidean/squareArea.js +2 -2
  109. package/lib/exercises/geometry/euclidean/squarePerimeter.js +2 -2
  110. package/lib/exercises/geometry/euclidean/thales.js +2 -2
  111. package/lib/exercises/geometry/euclidean/thalesCalcul.js +2 -2
  112. package/lib/exercises/geometry/euclidean/triangleArea.js +2 -2
  113. package/lib/exercises/geometry/euclidean/triangleAreaV2.js +2 -2
  114. package/lib/exercises/geometry/euclidean/trianglePerimeter.js +2 -2
  115. package/lib/exercises/geometry/euclidean/trigonometry.js +2 -2
  116. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.js +2 -2
  117. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.js +2 -2
  118. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +2 -2
  119. package/lib/exercises/limits/polynomeLimit.js +2 -2
  120. package/lib/exercises/percent/applyPercent.js +2 -2
  121. package/lib/exercises/percent/averageEvolutionRate.js +2 -2
  122. package/lib/exercises/percent/globalPercent.js +2 -2
  123. package/lib/exercises/percent/reciprocalPercentage.js +2 -2
  124. package/lib/exercises/powers/powersDivision.js +4 -4
  125. package/lib/exercises/powers/powersOfTenToDecimal.js +2 -2
  126. package/lib/exercises/powers/powersPower.js +4 -4
  127. package/lib/exercises/powers/powersProduct.js +4 -4
  128. package/lib/exercises/powers/scientificToDecimal.js +2 -2
  129. package/lib/exercises/primitve/constantPrimitive.js +2 -2
  130. package/lib/exercises/primitve/exponentialPrimitive.js +2 -2
  131. package/lib/exercises/primitve/logarithmePrimitive.js +2 -2
  132. package/lib/exercises/primitve/polynomialPrimitive.js +2 -2
  133. package/lib/exercises/primitve/sinCosPrimitive.js +2 -2
  134. package/lib/exercises/primitve/usualPrimitives.js +2 -2
  135. package/lib/exercises/probaStat/conditionalProbability.js +2 -2
  136. package/lib/exercises/probaStat/frequencyTable.js +2 -2
  137. package/lib/exercises/probaStat/marginalAndConditionalFrequency.js +2 -2
  138. package/lib/exercises/probaStat/median.js +2 -2
  139. package/lib/exercises/probaStat/medianList.js +2 -2
  140. package/lib/exercises/probaStat/probabilityTree.js +2 -2
  141. package/lib/exercises/probaStat/quartiles.js +2 -2
  142. package/lib/exercises/probaStat/quartilesList.js +2 -2
  143. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.js +2 -2
  144. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.js +2 -2
  145. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.js +2 -2
  146. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.js +2 -2
  147. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +2 -2
  148. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.js +2 -2
  149. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.js +2 -2
  150. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.js +2 -2
  151. package/lib/exercises/sequences/geometric/geometricFindReason.js +2 -2
  152. package/lib/exercises/sequences/geometric/geometricReasonUsage.js +2 -2
  153. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.js +2 -2
  154. package/lib/exercises/squareRoots/simpifySquareRoot.js +2 -2
  155. package/lib/exercises/trigonometry/mainRemarkableValues.js +4 -4
  156. package/lib/exercises/trigonometry/remarkableValues.js +4 -4
  157. package/lib/index.d.ts +7 -2
  158. package/lib/index.d.ts.map +1 -1
  159. package/lib/index.js +21 -1
  160. package/lib/server.js +8 -3
  161. package/package.json +1 -1
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLeadingCoefficientCalculV1Question = exports.leadingCoefficientCalculV2 = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const randint_1 = require("../../../math/utils/random/randint");
6
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
7
+ const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
8
+ const simplify_1 = require("../../../tree/parsers/simplify");
9
+ const shuffle_1 = require("../../../utils/shuffle");
10
+ const uuid_1 = require("uuid");
11
+ exports.leadingCoefficientCalculV2 = {
12
+ id: 'leadingCoefficientCalculV2',
13
+ connector: '=',
14
+ instruction: '',
15
+ label: "Coefficient directeur à l'aide de deux points",
16
+ levels: ['3ème', '2nde'],
17
+ isSingleStep: false,
18
+ sections: ['Droites'],
19
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getLeadingCoefficientCalculV1Question, nb),
20
+ };
21
+ function getLeadingCoefficientCalculV1Question() {
22
+ const [xA, yA] = [1, 2].map((el) => (0, randint_1.randint)(-9, 10));
23
+ const xB = (0, randint_1.randint)(-9, 10, [xA]);
24
+ const yB = (0, randint_1.randint)(-9, 10);
25
+ const getPropositions = (n) => {
26
+ const res = [];
27
+ res.push({
28
+ id: (0, uuid_1.v4)() + '',
29
+ statement: (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(yB - yA), new numberNode_1.NumberNode(xB - xA))).toTex(),
30
+ isRightAnswer: true,
31
+ format: 'tex',
32
+ });
33
+ for (let i = 0; i < n - 1; i++) {
34
+ let isDuplicate;
35
+ let proposition;
36
+ do {
37
+ const wrongAnswer = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(yB - yA + (0, randint_1.randint)(-3, 4, [0])), new numberNode_1.NumberNode(xB - xA + (0, randint_1.randint)(-3, 4, [0])))).toTex();
38
+ proposition = {
39
+ id: (0, uuid_1.v4)() + '',
40
+ statement: wrongAnswer,
41
+ isRightAnswer: false,
42
+ format: 'tex',
43
+ };
44
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
45
+ } while (isDuplicate);
46
+ res.push(proposition);
47
+ }
48
+ return (0, shuffle_1.shuffle)(res);
49
+ };
50
+ const question = {
51
+ instruction: `Soit $d$ une droite passant par les points $A(${xA};${yA})$ et $B(${xB};${yB})$.$\\\\$Déterminer le coefficient directeur de $d$.`,
52
+ answer: (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(yB - yA), new numberNode_1.NumberNode(xB - xA))).toTex(),
53
+ getPropositions,
54
+ answerFormat: 'tex',
55
+ };
56
+ return question;
57
+ }
58
+ exports.getLeadingCoefficientCalculV1Question = getLeadingCoefficientCalculV1Question;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const signFunction: Exercise;
3
+ export declare function getSignFunction(): Question;
4
+ //# sourceMappingURL=signFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signFunction.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/affines/signFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAU3E,eAAO,MAAM,YAAY,EAAE,QAU1B,CAAC;AAEF,wBAAgB,eAAe,IAAI,QAAQ,CAuE1C"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSignFunction = exports.signFunction = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const polynomial_1 = require("../../../math/polynomials/polynomial");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
8
+ const simplify_1 = require("../../../tree/parsers/simplify");
9
+ const coinFlip_1 = require("../../../utils/coinFlip");
10
+ const shuffle_1 = require("../../../utils/shuffle");
11
+ const uuid_1 = require("uuid");
12
+ exports.signFunction = {
13
+ id: 'signFunction',
14
+ connector: '=',
15
+ instruction: '',
16
+ label: "Signe d'une fonction affine",
17
+ levels: ['3ème', '2nde'],
18
+ sections: ['Fonctions affines'],
19
+ isSingleStep: true,
20
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSignFunction, nb),
21
+ keys: ['S', 'equal', 'lbracket', 'rbracket', 'semicolon', 'infty'],
22
+ };
23
+ function getSignFunction() {
24
+ const a = (0, randint_1.randint)(-9, 10, [0]);
25
+ const b = (0, randint_1.randint)(-9, 10);
26
+ const affine = new polynomial_1.Polynomial([b, a]);
27
+ let instruction = `Soit $f$ la fonction définie par : $f(x) = ${affine.toTex()}$. Sur quel intervalle $f$ est-elle `;
28
+ let answer = '';
29
+ switch ((0, coinFlip_1.coinFlip)()) {
30
+ case true:
31
+ instruction += 'positive ?';
32
+ answer =
33
+ a > 0
34
+ ? `\\left[${(0, simplify_1.simplifyNode)(new numberNode_1.NumberNode(-b / a)).toTex()};+\\infty\\right[`
35
+ : `\\left]-\\infty;${(0, simplify_1.simplifyNode)(new numberNode_1.NumberNode(-b / a)).toTex()}\\right]`;
36
+ break;
37
+ case false:
38
+ instruction += 'négative ?';
39
+ answer =
40
+ a > 0
41
+ ? `\\left]-\\infty;${(0, simplify_1.simplifyNode)(new numberNode_1.NumberNode(-b / a)).toTex()}\\right]`
42
+ : `\\left[${(0, simplify_1.simplifyNode)(new numberNode_1.NumberNode(-b / a)).toTex()};+\\infty\\left[`;
43
+ break;
44
+ }
45
+ const getPropositions = (n) => {
46
+ const res = [];
47
+ res.push({
48
+ id: (0, uuid_1.v4)() + '',
49
+ statement: answer,
50
+ isRightAnswer: true,
51
+ format: 'tex',
52
+ });
53
+ for (let i = 0; i < n - 1; i++) {
54
+ let isDuplicate;
55
+ let proposition;
56
+ do {
57
+ const a = (0, randint_1.randint)(-9, 10, [0]);
58
+ const b = (0, randint_1.randint)(-9, 10);
59
+ const wrongAnswer = (0, coinFlip_1.coinFlip)()
60
+ ? `\\left[${(0, simplify_1.simplifyNode)(new numberNode_1.NumberNode(-b / a)).toTex()};+\\infty\\right[`
61
+ : `\\left]-\\infty;${(0, simplify_1.simplifyNode)(new numberNode_1.NumberNode(-b / a)).toTex()}\\right]`;
62
+ proposition = {
63
+ id: (0, uuid_1.v4)() + '',
64
+ statement: wrongAnswer,
65
+ isRightAnswer: false,
66
+ format: 'tex',
67
+ };
68
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
69
+ } while (isDuplicate);
70
+ res.push(proposition);
71
+ }
72
+ return (0, shuffle_1.shuffle)(res);
73
+ };
74
+ const question = {
75
+ instruction,
76
+ startStatement: 'S',
77
+ answer,
78
+ keys: ['S', 'equal', 'lbracket', 'rbracket', 'semicolon', 'infty'],
79
+ getPropositions,
80
+ answerFormat: 'tex',
81
+ };
82
+ return question;
83
+ }
84
+ exports.getSignFunction = getSignFunction;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const imageFunction: Exercise;
3
+ export declare function getImageFunction(): Question;
4
+ //# sourceMappingURL=imageFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageFunction.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/basics/imageFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQ3E,eAAO,MAAM,aAAa,EAAE,QAU3B,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,QAAQ,CAqD3C"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getImageFunction = exports.imageFunction = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const polynomial_1 = require("../../../math/polynomials/polynomial");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const coinFlip_1 = require("../../../utils/coinFlip");
8
+ const shuffle_1 = require("../../../utils/shuffle");
9
+ const uuid_1 = require("uuid");
10
+ exports.imageFunction = {
11
+ id: 'imageFunction',
12
+ connector: '=',
13
+ instruction: '',
14
+ label: "Image d'une fonction",
15
+ levels: ['3ème', '2nde'],
16
+ sections: ['Fonctions'],
17
+ isSingleStep: true,
18
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getImageFunction, nb),
19
+ keys: [],
20
+ };
21
+ function getImageFunction() {
22
+ const rand = (0, coinFlip_1.coinFlip)();
23
+ const polynome1 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-5, 6, [0])]);
24
+ const polynome2 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-4, 5, [0])]);
25
+ const xValue = (0, randint_1.randint)(-9, 10);
26
+ const statement = rand
27
+ ? `Soit $f(x) = ${polynome1.toTree().toTex()}$. Calculer $f(${xValue})$.`
28
+ : `Soit $f(x) = ${polynome2.toTree().toTex()}$. Calculer $f(${xValue})$.`;
29
+ const answer = rand ? polynome1.calculate(xValue) : polynome2.calculate(xValue);
30
+ const getPropositions = (n) => {
31
+ const res = [];
32
+ res.push({
33
+ id: (0, uuid_1.v4)() + '',
34
+ statement: answer + '',
35
+ isRightAnswer: true,
36
+ format: 'tex',
37
+ });
38
+ for (let i = 0; i < n - 1; i++) {
39
+ let isDuplicate;
40
+ let proposition;
41
+ do {
42
+ const wrongAnswer = answer + (0, randint_1.randint)(-10, 11, [0]);
43
+ proposition = {
44
+ id: (0, uuid_1.v4)() + '',
45
+ statement: wrongAnswer + '',
46
+ isRightAnswer: false,
47
+ format: 'tex',
48
+ };
49
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
50
+ } while (isDuplicate);
51
+ res.push(proposition);
52
+ }
53
+ return (0, shuffle_1.shuffle)(res);
54
+ };
55
+ const question = {
56
+ instruction: statement,
57
+ startStatement: `f(${xValue})`,
58
+ answer: answer + '',
59
+ keys: [],
60
+ getPropositions,
61
+ answerFormat: 'tex',
62
+ };
63
+ return question;
64
+ }
65
+ exports.getImageFunction = getImageFunction;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const imageFunctionGeogebra: Exercise;
3
+ export declare function getImageFunctionGeogebra(): Question;
4
+ //# sourceMappingURL=imageFunctionGeogebra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageFunctionGeogebra.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/basics/imageFunctionGeogebra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQ3E,eAAO,MAAM,qBAAqB,EAAE,QAUnC,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,QAAQ,CAiFnD"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getImageFunctionGeogebra = exports.imageFunctionGeogebra = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const polynomial_1 = require("../../../math/polynomials/polynomial");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const coinFlip_1 = require("../../../utils/coinFlip");
8
+ const shuffle_1 = require("../../../utils/shuffle");
9
+ const uuid_1 = require("uuid");
10
+ exports.imageFunctionGeogebra = {
11
+ id: 'imageFunctionGeogebra',
12
+ connector: '=',
13
+ instruction: '',
14
+ label: "Lecture d'une image",
15
+ levels: ['3ème', '2nde'],
16
+ sections: ['Fonctions'],
17
+ isSingleStep: true,
18
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getImageFunctionGeogebra, nb),
19
+ keys: [],
20
+ };
21
+ function getImageFunctionGeogebra() {
22
+ const rand = (0, coinFlip_1.coinFlip)();
23
+ const xValue = (0, randint_1.randint)(-5, 6);
24
+ let polynome1;
25
+ do {
26
+ polynome1 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-5, 6, [0])]);
27
+ } while (polynome1.calculate(xValue) > 10 || polynome1.calculate(xValue) < -10);
28
+ let polynome2;
29
+ do {
30
+ polynome2 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-4, 5, [0])]);
31
+ } while (polynome2.calculate(xValue) > 10 || polynome2.calculate(xValue) < -10);
32
+ const statement = `Quelle est l'image de $${xValue}$ par la fonction $f$ représentée ci dessous ?`;
33
+ const answer = rand ? polynome1.calculate(xValue) : polynome2.calculate(xValue);
34
+ let xmin, xmax, ymin, ymax;
35
+ if (answer > 0) {
36
+ ymax = answer + 1;
37
+ ymin = -1;
38
+ }
39
+ else {
40
+ ymin = answer - 1;
41
+ ymax = 1;
42
+ }
43
+ if (xValue > 0) {
44
+ xmax = xValue + 1;
45
+ xmin = -1;
46
+ }
47
+ else {
48
+ xmin = xValue - 1;
49
+ xmax = 1;
50
+ }
51
+ const getPropositions = (n) => {
52
+ const res = [];
53
+ res.push({
54
+ id: (0, uuid_1.v4)() + '',
55
+ statement: answer + '',
56
+ isRightAnswer: true,
57
+ format: 'tex',
58
+ });
59
+ for (let i = 0; i < n - 1; i++) {
60
+ let isDuplicate;
61
+ let proposition;
62
+ do {
63
+ const wrongAnswer = answer + (0, randint_1.randint)(-10, 11, [0]);
64
+ proposition = {
65
+ id: (0, uuid_1.v4)() + '',
66
+ statement: wrongAnswer + '',
67
+ isRightAnswer: false,
68
+ format: 'tex',
69
+ };
70
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
71
+ } while (isDuplicate);
72
+ res.push(proposition);
73
+ }
74
+ return (0, shuffle_1.shuffle)(res);
75
+ };
76
+ const commands = [rand ? polynome1.toString() : polynome2.toString()];
77
+ const question = {
78
+ instruction: statement,
79
+ startStatement: `f(${xValue})`,
80
+ answer: answer + '',
81
+ keys: [],
82
+ commands,
83
+ coords: [xmin, xmax, ymin, ymax],
84
+ getPropositions,
85
+ answerFormat: 'tex',
86
+ };
87
+ return question;
88
+ }
89
+ exports.getImageFunctionGeogebra = getImageFunctionGeogebra;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const inverseImageFunction: Exercise;
3
+ export declare function getInverseImageFunction(): Question;
4
+ //# sourceMappingURL=inverseImageFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inverseImageFunction.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/basics/inverseImageFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,oBAAoB,EAAE,QAUlC,CAAC;AAEF,wBAAgB,uBAAuB,IAAI,QAAQ,CAkDlD"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInverseImageFunction = exports.inverseImageFunction = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const polynomial_1 = require("../../../math/polynomials/polynomial");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const shuffle_1 = require("../../../utils/shuffle");
8
+ const uuid_1 = require("uuid");
9
+ exports.inverseImageFunction = {
10
+ id: 'inverseImageFunction',
11
+ connector: '\\iff',
12
+ instruction: '',
13
+ label: 'Calculer des antécédents',
14
+ levels: ['3ème', '2nde'],
15
+ sections: ['Fonctions'],
16
+ isSingleStep: true,
17
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getInverseImageFunction, nb),
18
+ keys: [],
19
+ };
20
+ function getInverseImageFunction() {
21
+ const polynome1 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-5, 6, [0])]);
22
+ const xValue = (0, randint_1.randint)(-9, 10);
23
+ const answer = polynome1.calculate(xValue);
24
+ const statement = `Soit $f(x) = ${polynome1
25
+ .toTree()
26
+ .toTex()}$. Déterminer le ou les antécédents de $${answer}$ par $f$.`;
27
+ const getPropositions = (n) => {
28
+ const res = [];
29
+ res.push({
30
+ id: (0, uuid_1.v4)() + '',
31
+ statement: xValue + '',
32
+ isRightAnswer: true,
33
+ format: 'tex',
34
+ });
35
+ for (let i = 0; i < n - 1; i++) {
36
+ let isDuplicate;
37
+ let proposition;
38
+ do {
39
+ const wrongAnswer = xValue + (0, randint_1.randint)(-10, 11, [0]);
40
+ proposition = {
41
+ id: (0, uuid_1.v4)() + '',
42
+ statement: wrongAnswer + '',
43
+ isRightAnswer: false,
44
+ format: 'tex',
45
+ };
46
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
47
+ } while (isDuplicate);
48
+ res.push(proposition);
49
+ }
50
+ return (0, shuffle_1.shuffle)(res);
51
+ };
52
+ const question = {
53
+ instruction: statement,
54
+ startStatement: `f(x) = ${answer}`,
55
+ answer: xValue + '',
56
+ keys: ['x', 'equal'],
57
+ getPropositions,
58
+ answerFormat: 'tex',
59
+ };
60
+ return question;
61
+ }
62
+ exports.getInverseImageFunction = getInverseImageFunction;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const inverseImageFunctionGeogebra: Exercise;
3
+ export declare function getInverseImageFunctionGeogebra(): Question;
4
+ //# sourceMappingURL=inverseImageFunctionGeogebra.d.ts.map
@@ -0,0 +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,QAU1C,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,QAAQ,CAsJ1D"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInverseImageFunctionGeogebra = exports.inverseImageFunctionGeogebra = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const polynomial_1 = require("../../../math/polynomials/polynomial");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const round_1 = require("../../../math/utils/round");
8
+ const coinFlip_1 = require("../../../utils/coinFlip");
9
+ const shuffle_1 = require("../../../utils/shuffle");
10
+ const uuid_1 = require("uuid");
11
+ exports.inverseImageFunctionGeogebra = {
12
+ id: 'inverseImageFunctionGeogebra',
13
+ connector: '\\iff',
14
+ instruction: '',
15
+ label: "Lecture d'antécédents",
16
+ levels: ['3ème', '2nde'],
17
+ sections: ['Fonctions'],
18
+ isSingleStep: true,
19
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getInverseImageFunctionGeogebra, nb),
20
+ keys: ['S', 'equal', 'lbrace', 'rbrace', 'semicolon', 'emptyset'],
21
+ };
22
+ function getInverseImageFunctionGeogebra() {
23
+ const rand = (0, coinFlip_1.coinFlip)();
24
+ const xValue = (0, randint_1.randint)(-5, 6);
25
+ const yValue = (0, randint_1.randint)(-5, 6);
26
+ let polynome1;
27
+ do {
28
+ polynome1 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-5, 6, [0])]);
29
+ } while (polynome1.calculate(xValue) > 10 || polynome1.calculate(xValue) < -10);
30
+ let polynome2 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10) - yValue, (0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-4, 5, [0])]);
31
+ let roots = polynome2.getRoots();
32
+ if (roots.length === 2)
33
+ while (roots[0] > 10 || roots[0] < -10 || roots[1] > 10 || roots[1] < -10) {
34
+ polynome2 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10) - yValue, (0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-4, 5, [0])]);
35
+ roots = polynome2.getRoots();
36
+ }
37
+ if (roots.length === 1)
38
+ while (roots[0] < -10 || roots[0] > 10) {
39
+ polynome2 = new polynomial_1.Polynomial([(0, randint_1.randint)(-9, 10) - yValue, (0, randint_1.randint)(-9, 10), (0, randint_1.randint)(-4, 5, [0])]);
40
+ roots = polynome2.getRoots();
41
+ }
42
+ const statement = rand
43
+ ? `Déterminer le ou les antécédents de ${polynome1.calculate(xValue)}$ par la fonction $f$ représentée ci dessous.`
44
+ : `Déterminer le ou les antécédents de ${yValue}$ par la fonction $f$ représentée ci dessous.`;
45
+ const answer = rand
46
+ ? xValue
47
+ : roots.length === 2
48
+ ? `\\{${(0, round_1.round)(roots[0], 1)};${(0, round_1.round)(roots[1], 1)} \\}`
49
+ : roots.length === 1
50
+ ? roots[0]
51
+ : `\\emptyset`;
52
+ const optimum = polynome2.derivate().getRoots()[0];
53
+ let xmin = 0, xmax = 0, ymin = 0, ymax = 0;
54
+ if (rand) {
55
+ if (polynome1.calculate(xValue) > 0) {
56
+ ymax = polynome1.calculate(xValue) + 1;
57
+ ymin = -1;
58
+ }
59
+ else {
60
+ ymin = polynome1.calculate(xValue) - 1;
61
+ ymax = 1;
62
+ }
63
+ if (xValue > 0) {
64
+ xmax = xValue + 1;
65
+ xmin = -1;
66
+ }
67
+ else {
68
+ xmin = xValue - 1;
69
+ xmax = 1;
70
+ }
71
+ }
72
+ else {
73
+ console.log(optimum);
74
+ if (roots.length === 2) {
75
+ if (yValue > polynome2.calculate(optimum) + yValue) {
76
+ ymax = yValue + 2;
77
+ ymin = polynome2.calculate(optimum) + yValue - 2;
78
+ }
79
+ else {
80
+ ymin = yValue - 2;
81
+ ymax = polynome2.calculate(optimum) + yValue + 2;
82
+ }
83
+ xmax = Math.max(roots[0], roots[1]) + 1;
84
+ xmin = Math.min(roots[0], roots[1]) - 1;
85
+ }
86
+ if (roots.length === 1) {
87
+ if (yValue > 0) {
88
+ ymax = yValue + 5;
89
+ ymin = yValue - 1;
90
+ }
91
+ else {
92
+ ymin = yValue - 5;
93
+ ymax = yValue + 1;
94
+ }
95
+ xmax = optimum + 5;
96
+ xmin = optimum - 5;
97
+ }
98
+ if (roots.length === 0) {
99
+ if (yValue > polynome2.calculate(optimum) + yValue) {
100
+ ymax = yValue + 1;
101
+ ymin = polynome2.calculate(optimum) + yValue - 3;
102
+ }
103
+ else {
104
+ ymin = yValue - 1;
105
+ ymax = polynome2.calculate(optimum) + yValue + 3;
106
+ }
107
+ xmax = optimum + 5;
108
+ xmin = optimum - 5;
109
+ }
110
+ }
111
+ const getPropositions = (n) => {
112
+ const res = [];
113
+ res.push({
114
+ id: (0, uuid_1.v4)() + '',
115
+ statement: answer + '',
116
+ isRightAnswer: true,
117
+ format: 'tex',
118
+ });
119
+ for (let i = 0; i < n - 1; i++) {
120
+ let isDuplicate;
121
+ let proposition;
122
+ do {
123
+ const wrongAnswer = (0, coinFlip_1.coinFlip)()
124
+ ? (0, randint_1.randint)(-9, 10, [polynome1.calculate(xValue)])
125
+ : roots.length === 2
126
+ ? `\\{${(0, randint_1.randint)(-9, 10)};${(0, randint_1.randint)(-9, 10)} \\}`
127
+ : roots.length === 1
128
+ ? (0, randint_1.randint)(-9, 10, [roots[0]])
129
+ : `\\emptyset`;
130
+ proposition = {
131
+ id: (0, uuid_1.v4)() + '',
132
+ statement: wrongAnswer + '',
133
+ isRightAnswer: false,
134
+ format: 'tex',
135
+ };
136
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
137
+ } while (isDuplicate);
138
+ res.push(proposition);
139
+ }
140
+ return (0, shuffle_1.shuffle)(res);
141
+ };
142
+ const commands = [rand ? polynome1.toString() : polynome2.add(new polynomial_1.Polynomial([yValue])).toString()];
143
+ const question = {
144
+ instruction: statement,
145
+ answer: answer + '',
146
+ keys: ['S', 'equal', 'lbrace', 'rbrace', 'semicolon', 'emptyset'],
147
+ commands,
148
+ coords: [xmin, xmax, ymin, ymax],
149
+ getPropositions,
150
+ answerFormat: 'tex',
151
+ };
152
+ return question;
153
+ }
154
+ exports.getInverseImageFunctionGeogebra = getInverseImageFunctionGeogebra;
@@ -14,9 +14,9 @@ exports.distanceBetweenTwoPoints = {
14
14
  connector: '=',
15
15
  instruction: '',
16
16
  label: 'Distance entre deux points',
17
- levels: ['2', '1'],
17
+ levels: ['2nde', '1reESM'],
18
+ sections: ['Géométrie cartésienne'],
18
19
  isSingleStep: false,
19
- section: 'Géométrie cartésienne',
20
20
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getDistanceBetweenTwoPoints, nb),
21
21
  keys: [],
22
22
  };
@@ -12,9 +12,9 @@ exports.midpoint = {
12
12
  connector: '=',
13
13
  instruction: '',
14
14
  label: 'Coordonnées du milieu',
15
- levels: ['3', '2', '1'],
15
+ levels: ['3ème', '2nde'],
16
16
  isSingleStep: false,
17
- section: 'Géométrie cartésienne',
17
+ sections: ['Géométrie cartésienne'],
18
18
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMidpointQuestion, nb),
19
19
  keys: ['semicolon'],
20
20
  };
@@ -12,9 +12,9 @@ exports.circleArea = {
12
12
  connector: '=',
13
13
  instruction: '',
14
14
  label: "Calculer l'aire d'un cercle",
15
- levels: ['4', '3', '2'],
15
+ levels: ['4ème', '3ème', '2nde'],
16
16
  isSingleStep: false,
17
- section: 'Géométrie euclidienne',
17
+ sections: ['Géométrie euclidienne'],
18
18
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getCircleArea, nb),
19
19
  };
20
20
  function getCircleArea() {
@@ -12,9 +12,9 @@ exports.circleCircumference = {
12
12
  connector: '=',
13
13
  instruction: '',
14
14
  label: "Calculer la circonférence d'un cercle",
15
- levels: ['4', '3', '2'],
15
+ levels: ['4ème', '3ème', '2nde'],
16
16
  isSingleStep: false,
17
- section: 'Géométrie euclidienne',
17
+ sections: ['Géométrie euclidienne'],
18
18
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getCircleCircumference, nb),
19
19
  };
20
20
  function getCircleCircumference() {
@@ -10,10 +10,10 @@ exports.pythagore = {
10
10
  id: 'pythagore',
11
11
  connector: '=',
12
12
  instruction: "Écrire l'égalité de Pythagore pour la figure suivante : ",
13
- label: "Ecrire l'égalité de Pythagore",
14
- levels: ['4', '3', '2'],
13
+ label: "Écrire l'égalité de Pythagore",
14
+ levels: ['4ème', '3ème', '2nde'],
15
15
  isSingleStep: false,
16
- section: 'Géométrie euclidienne',
16
+ sections: ['Géométrie euclidienne'],
17
17
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getPythagore, nb),
18
18
  };
19
19
  function getPythagore() {
@@ -13,9 +13,9 @@ exports.pythagoreCalcul = {
13
13
  connector: '=',
14
14
  instruction: '',
15
15
  label: 'Utiliser le théoreme de Pythagore pour faire des calculs',
16
- levels: ['3', '2'],
16
+ levels: ['4ème', '3ème', '2nde'],
17
17
  isSingleStep: false,
18
- section: 'Géométrie euclidienne',
18
+ sections: ['Géométrie euclidienne'],
19
19
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getPythagoreCalcul, nb),
20
20
  };
21
21
  function getPythagoreCalcul() {
@@ -10,9 +10,9 @@ exports.rectangleArea = {
10
10
  connector: '=',
11
11
  instruction: '',
12
12
  label: "Calculer l'aire d'un rectangle",
13
- levels: ['4', '3', '2'],
13
+ levels: ['4ème', '3ème', '2nde'],
14
14
  isSingleStep: false,
15
- section: 'Géométrie euclidienne',
15
+ sections: ['Géométrie euclidienne'],
16
16
  generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getRectangleArea, nb),
17
17
  };
18
18
  function getRectangleArea() {