math-exercises 3.0.105 → 3.0.107

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 (159) hide show
  1. package/lib/exercises/exercise.d.ts +1 -6
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/getParityBetweenTwoNumbers.d.ts.map +1 -1
  4. package/lib/exercises/math/calcul/arithmetics/getParityBetweenTwoNumbers.js +3 -4
  5. package/lib/exercises/math/calcul/ordering/decimalOrderingNoRelatives.d.ts.map +1 -1
  6. package/lib/exercises/math/calcul/ordering/decimalOrderingNoRelatives.js +0 -2
  7. package/lib/exercises/math/calcul/proportionality/proportionalityTableCoefficient.d.ts.map +1 -1
  8. package/lib/exercises/math/calcul/proportionality/proportionalityTableCoefficient.js +0 -2
  9. package/lib/exercises/math/calculLitteral/distributivity/canonicalFormDevelopment.d.ts.map +1 -1
  10. package/lib/exercises/math/calculLitteral/distributivity/canonicalFormDevelopment.js +0 -2
  11. package/lib/exercises/math/calculLitteral/distributivity/doubleDistri.d.ts.map +1 -1
  12. package/lib/exercises/math/calculLitteral/distributivity/doubleDistri.js +0 -2
  13. package/lib/exercises/math/calculLitteral/distributivity/simpleDistri.d.ts.map +1 -1
  14. package/lib/exercises/math/calculLitteral/distributivity/simpleDistri.js +0 -2
  15. package/lib/exercises/math/calculLitteral/equation/equa1.d.ts.map +1 -1
  16. package/lib/exercises/math/calculLitteral/equation/equa1.js +0 -2
  17. package/lib/exercises/math/calculLitteral/equation/equa2.d.ts.map +1 -1
  18. package/lib/exercises/math/calculLitteral/equation/equa2.js +0 -2
  19. package/lib/exercises/math/calculLitteral/equation/firstDegreeEquationIntType1.d.ts.map +1 -1
  20. package/lib/exercises/math/calculLitteral/equation/firstDegreeEquationIntType1.js +0 -2
  21. package/lib/exercises/math/calculLitteral/factorisation/factorizeCanonicalForm.d.ts.map +1 -1
  22. package/lib/exercises/math/calculLitteral/factorisation/factorizeCanonicalForm.js +0 -2
  23. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType0.d.ts.map +1 -1
  24. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType0.js +0 -2
  25. package/lib/exercises/math/calculLitteral/systems/basicNiceValuesSystemResolution.d.ts.map +1 -1
  26. package/lib/exercises/math/calculLitteral/systems/basicNiceValuesSystemResolution.js +0 -2
  27. package/lib/exercises/math/calculLitteral/systems/basicSystemResolution.d.ts.map +1 -1
  28. package/lib/exercises/math/calculLitteral/systems/basicSystemResolution.js +0 -2
  29. package/lib/exercises/math/calculLitteral/systems/verifySystemSolution.d.ts.map +1 -1
  30. package/lib/exercises/math/calculLitteral/systems/verifySystemSolution.js +0 -2
  31. package/lib/exercises/math/derivation/derivative/productDerivative.d.ts.map +1 -1
  32. package/lib/exercises/math/derivation/derivative/productDerivative.js +0 -2
  33. package/lib/exercises/math/derivation/derivative/trigo/cosSecondDegreeDerivative.js +1 -1
  34. package/lib/exercises/math/derivation/derivative/trigo/sinSecondDegreeDerivative.js +1 -1
  35. package/lib/exercises/math/functions/affines/affineAdjustment.js +1 -1
  36. package/lib/exercises/math/functions/affines/affineAdjustmentRsquared.d.ts.map +1 -1
  37. package/lib/exercises/math/functions/affines/affineAdjustmentRsquared.js +5 -1
  38. package/lib/exercises/math/functions/affines/algebricExpressionOfAffine.d.ts +1 -0
  39. package/lib/exercises/math/functions/affines/algebricExpressionOfAffine.d.ts.map +1 -1
  40. package/lib/exercises/math/functions/affines/algebricExpressionOfAffine.js +6 -3
  41. package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.d.ts.map +1 -1
  42. package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.js +2 -1
  43. package/lib/exercises/math/functions/basics/countFunctionZeroes.js +1 -1
  44. package/lib/exercises/math/functions/basics/findZeroesProductQuotient.d.ts.map +1 -1
  45. package/lib/exercises/math/functions/basics/findZeroesProductQuotient.js +18 -3
  46. package/lib/exercises/math/functions/basics/graphicInequation.js +2 -2
  47. package/lib/exercises/math/functions/basics/graphicInequationAffine.js +1 -1
  48. package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +1 -1
  49. package/lib/exercises/math/functions/integral/integralKCosinus.js +1 -1
  50. package/lib/exercises/math/functions/parity/parityFromAlgebra.js +1 -1
  51. package/lib/exercises/math/functions/sign/affineProductSignTable.d.ts.map +1 -1
  52. package/lib/exercises/math/functions/sign/affineProductSignTable.js +4 -2
  53. package/lib/exercises/math/functions/sign/affineProductSignTableThirdLine.js +1 -1
  54. package/lib/exercises/math/functions/sign/affineSignTable.d.ts.map +1 -1
  55. package/lib/exercises/math/functions/sign/affineSignTable.js +3 -1
  56. package/lib/exercises/math/functions/sign/equationFromSignTable.js +2 -2
  57. package/lib/exercises/math/functions/sign/readSignTable.js +2 -2
  58. package/lib/exercises/math/functions/variations/compareImagesInVarTable.d.ts.map +1 -1
  59. package/lib/exercises/math/functions/variations/compareImagesInVarTable.js +8 -7
  60. package/lib/exercises/math/functions/variations/partialVarTableFromGraph.js +2 -2
  61. package/lib/exercises/math/functions/variations/readExtremaOnGraph.d.ts.map +1 -1
  62. package/lib/exercises/math/functions/variations/readExtremaOnGraph.js +12 -6
  63. package/lib/exercises/math/functions/variations/readVarOnGraph.js +8 -8
  64. package/lib/exercises/math/functions/variations/varTableExtremaReading.js +6 -6
  65. package/lib/exercises/math/functions/variations/varTableFromGraph.d.ts.map +1 -1
  66. package/lib/exercises/math/functions/variations/varTableFromGraph.js +2 -7
  67. package/lib/exercises/math/functions/variations/varTableFromSentences.d.ts.map +1 -1
  68. package/lib/exercises/math/functions/variations/varTableFromSentences.js +3 -1
  69. package/lib/exercises/math/geometry/convexity/convexityTrinomialsGeo.d.ts.map +1 -1
  70. package/lib/exercises/math/geometry/convexity/convexityTrinomialsGeo.js +0 -2
  71. package/lib/exercises/math/geometry/euclidianConstructions/buildMediatriceWithCompass.d.ts.map +1 -1
  72. package/lib/exercises/math/geometry/euclidianConstructions/buildMediatriceWithCompass.js +0 -2
  73. package/lib/exercises/math/geometry/optimisation/geometryExtremaReadingOnGraph.js +5 -5
  74. package/lib/exercises/math/geometry/optimisation/lengthIntervalOnPicture.js +1 -1
  75. package/lib/exercises/math/geometry/thales/thalesCalcul.d.ts.map +1 -1
  76. package/lib/exercises/math/geometry/thales/thalesCalcul.js +3 -2
  77. package/lib/exercises/math/geometry/triangles/traceMedianInTriangle.js +0 -2
  78. package/lib/exercises/math/geometry/volumes/volumeOfCube.d.ts.map +1 -1
  79. package/lib/exercises/math/geometry/volumes/volumeOfCube.js +0 -2
  80. package/lib/exercises/math/limits/polynomLimitNoFI.d.ts.map +1 -1
  81. package/lib/exercises/math/limits/polynomLimitNoFI.js +0 -2
  82. package/lib/exercises/math/percent/evolutions/findStartValueAfterEvolution.d.ts.map +1 -1
  83. package/lib/exercises/math/percent/evolutions/findStartValueAfterEvolution.js +3 -2
  84. package/lib/exercises/math/percent/htToTTC.d.ts.map +1 -1
  85. package/lib/exercises/math/percent/htToTTC.js +0 -2
  86. package/lib/exercises/math/percent/percentToDecimal.d.ts.map +1 -1
  87. package/lib/exercises/math/percent/percentToDecimal.js +0 -2
  88. package/lib/exercises/math/percent/ttcToHT.d.ts.map +1 -1
  89. package/lib/exercises/math/percent/ttcToHT.js +0 -2
  90. package/lib/exercises/math/powers/powersProduct.d.ts.map +1 -1
  91. package/lib/exercises/math/powers/powersProduct.js +0 -2
  92. package/lib/exercises/math/primitive/exponentialPrimitive.d.ts.map +1 -1
  93. package/lib/exercises/math/primitive/exponentialPrimitive.js +0 -2
  94. package/lib/exercises/math/probaStat/binomial/expectedValueOfBinomialProba.d.ts.map +1 -1
  95. package/lib/exercises/math/probaStat/binomial/expectedValueOfBinomialProba.js +1 -3
  96. package/lib/exercises/math/probaStat/binomial/varianceOfBinomialProba.js +1 -1
  97. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts.map +1 -1
  98. package/lib/exercises/math/probaStat/stats1var/averageList.js +0 -2
  99. package/lib/exercises/math/probaStat/stats1var/averageWithTable.d.ts.map +1 -1
  100. package/lib/exercises/math/probaStat/stats1var/averageWithTable.js +0 -2
  101. package/lib/exercises/math/probaStat/stats1var/index.d.ts +2 -2
  102. package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
  103. package/lib/exercises/math/probaStat/stats1var/index.js +2 -2
  104. package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts +7 -0
  105. package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts.map +1 -0
  106. package/lib/exercises/math/probaStat/stats1var/medianWithList.js +80 -0
  107. package/lib/exercises/math/probaStat/stats1var/medianWithTable.d.ts +8 -0
  108. package/lib/exercises/math/probaStat/stats1var/medianWithTable.d.ts.map +1 -0
  109. package/lib/exercises/math/probaStat/stats1var/medianWithTable.js +108 -0
  110. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReason.d.ts.map +1 -1
  111. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReason.js +9 -1
  112. package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts.map +1 -1
  113. package/lib/exercises/math/sets/intervals/intervalsIntersection.js +0 -2
  114. package/lib/exercises/math/sets/setBelonging.d.ts.map +1 -1
  115. package/lib/exercises/math/sets/setBelonging.js +0 -2
  116. package/lib/exercises/math/trigonometry/arcValue.d.ts.map +1 -1
  117. package/lib/exercises/math/trigonometry/arcValue.js +0 -2
  118. package/lib/exercises/math/trigonometry/remarkableValues.d.ts.map +1 -1
  119. package/lib/exercises/math/trigonometry/remarkableValues.js +0 -2
  120. package/lib/exercises/pc/chemicalElements/findAtomicStructureElement.js +1 -1
  121. package/lib/exercises/pc/chemicalElements/massOrVolumeProportion.js +1 -1
  122. package/lib/exercises/pc/dosage/beerLambertRandomValue.js +2 -2
  123. package/lib/exercises/pc/dosage/concentrationCalculation.js +3 -3
  124. package/lib/exercises/pc/dosage/concentrationFromMassCalculation.js +3 -3
  125. package/lib/exercises/pc/electricity/calculateVoltage.js +1 -1
  126. package/lib/exercises/pc/electricity/electricPowerOrEnergyCalculation.js +2 -2
  127. package/lib/exercises/pc/electricity/ohmLaw.js +1 -1
  128. package/lib/exercises/pc/energy/calorificValue.js +1 -1
  129. package/lib/exercises/pc/energy/combustionTransferEnergy.js +1 -1
  130. package/lib/exercises/pc/energy/combustionTransferEnergy2.js +2 -2
  131. package/lib/exercises/pc/energy/efficiencyCalculation.js +3 -3
  132. package/lib/exercises/pc/energy/thermalEnergyTransferCalculation.js +5 -5
  133. package/lib/exercises/pc/forces/gravitationalAttractionObjectHeight.js +1 -1
  134. package/lib/exercises/pc/forces/gravitationalForcePlanets.js +1 -1
  135. package/lib/exercises/pc/forces/pressureDifferenceCalculation.js +1 -3
  136. package/lib/exercises/pc/math/isolateVariables.d.ts.map +1 -1
  137. package/lib/exercises/pc/math/isolateVariables.js +0 -1
  138. package/lib/exercises/pc/mole/concentrationReading.d.ts.map +1 -1
  139. package/lib/exercises/pc/mole/concentrationReading.js +0 -1
  140. package/lib/exercises/pc/motion/averageSpeedCalculation.js +4 -4
  141. package/lib/exercises/pc/motion/recognizeFreeFall.js +0 -2
  142. package/lib/exercises/pc/orderOfMagnitude.js +1 -1
  143. package/lib/exercises/pc/power/calculatePowerOfLight.js +1 -1
  144. package/lib/exercises/pc/spectral/spectralEnergy.js +1 -1
  145. package/lib/exercises/pc/waves/lightDistanceConversion.js +4 -4
  146. package/lib/exercises/pc/waves/periodicWaveCelerity.js +3 -3
  147. package/lib/index.d.ts +1 -0
  148. package/lib/index.d.ts.map +1 -1
  149. package/lib/math/geometry/triangles/triangle.d.ts +2 -1
  150. package/lib/math/geometry/triangles/triangle.d.ts.map +1 -1
  151. package/lib/math/geometry/triangles/triangle.js +3 -1
  152. package/lib/math/utils/round.d.ts.map +1 -1
  153. package/lib/math/utils/round.js +4 -0
  154. package/lib/playground.d.ts.map +1 -1
  155. package/lib/playground.js +1 -3
  156. package/lib/tree/nodes/sets/intervalNode.d.ts +4 -0
  157. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  158. package/lib/tree/nodes/sets/intervalNode.js +12 -0
  159. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"affineSignTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/sign/affineSignTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAoGF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAkBjD,CAAC"}
1
+ {"version":3,"file":"affineSignTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/sign/affineSignTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAsGF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAkBjD,CAAC"}
@@ -31,7 +31,9 @@ f(x) = ${affine.toTree().toTex()}
31
31
  $$`;
32
32
  };
33
33
  const getHint = (identifiers) => {
34
- return `Résous l'inéquation $f(x)>0$.`;
34
+ return `La fonction est définie sur $\\mathbb{R}$, donc les valeurs de $x$ vont de $-\\infty$ à $+\\infty$.
35
+
36
+ Résous ensuite l'inéquation $f(x)>0$.`;
35
37
  };
36
38
  const getCorrection = (identifiers) => {
37
39
  const { affineCoeffs, initTable } = identifiers;
@@ -92,8 +92,8 @@ const getInstruction = (identifiers) => {
92
92
  }
93
93
  const secondRow = ["\\ ", ...signs, "\\ "];
94
94
  const table = [
95
- [`x`, ...firstRow],
96
- [`f(x)`, ...secondRow],
95
+ [x£`, ...firstRow],
96
+ [f(x)£`, ...secondRow],
97
97
  ];
98
98
  const sign = type === 0 ? "=" : ineqSymbol;
99
99
  return `On considère le tableau de signes suivant d'une fonction $f$ :
@@ -38,8 +38,8 @@ const getInstruction = (identifiers) => {
38
38
  }
39
39
  const secondRow = ["\\ ", ...signs, "\\ "];
40
40
  const table = [
41
- [`x`, ...firstRow],
42
- [`f(x)`, ...secondRow],
41
+ [x£`, ...firstRow],
42
+ [f(x)£`, ...secondRow],
43
43
  ];
44
44
  return `On considère le tableau de signes suivant d'une fonction $f$ :
45
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"compareImagesInVarTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/compareImagesInVarTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAarC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAgJF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAiBzD,CAAC"}
1
+ {"version":3,"file":"compareImagesInVarTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/compareImagesInVarTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAarC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAkJF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAiBzD,CAAC"}
@@ -13,7 +13,7 @@ const getPropositions = (n, { answer }) => {
13
13
  };
14
14
  const getAnswer = (identifiers) => {
15
15
  const { a, b, vars, xs, ys } = identifiers;
16
- const index = a < xs[0] ? 0 : a > xs[1] ? 2 : 1;
16
+ const index = a < xs[0] ? 0 : a >= xs[1] ? 2 : 1;
17
17
  if (vars[index] === "\\nearrow") {
18
18
  return "\\le";
19
19
  }
@@ -25,7 +25,7 @@ const getInstruction = (identifiers) => {
25
25
  const { a, b, vars, xs, ys } = identifiers;
26
26
  const firstIncr = vars[0] === "\\nearrow";
27
27
  const table = [
28
- ["x", "-\\infty", "\\ ", xs[0], "\\ ", xs[1], "\\ ", "+\\infty"],
28
+ ["£x£", "-\\infty", "\\ ", xs[0], "\\ ", xs[1], "\\ ", "+\\infty"],
29
29
  [
30
30
  " ",
31
31
  "\\ ",
@@ -36,7 +36,7 @@ const getInstruction = (identifiers) => {
36
36
  "\\ ",
37
37
  "\\ ",
38
38
  ],
39
- ["f(x)", "\\ ", vars[0], "\\ ", vars[1], "\\ ", vars[2], "\\ "],
39
+ ["£f(x)£", "\\ ", vars[0], "\\ ", vars[1], "\\ ", vars[2], "\\ "],
40
40
  [
41
41
  " ",
42
42
  "\\ ",
@@ -61,13 +61,14 @@ $$`;
61
61
  };
62
62
  const getHint = (identifiers) => {
63
63
  const { a, b, vars, xs, ys } = identifiers;
64
- return `Si $a$ et $b$ sont deux nombres d'un intervalle $I$ sur lequel une fonction $f$ est croissante, alors $f(a)\\leq f(b)$.
64
+ return `Soient $a$ et $b$ deux nombres d'un intervalle $I$, tels que $a\\leq b$ :
65
65
 
66
- Si sur cet intervalle, $f$ est décroissante, alors $f(a)\\geq f(b)$.`;
66
+ - si la fonction $f$ est croissante sur $I$, alors $f(a)\\leq f(b)$;
67
+ - si la fonction $f$ est décroissante sur $I$, alors $f(a)\\geq f(b)$.`;
67
68
  };
68
69
  const getCorrection = (identifiers) => {
69
70
  const { a, b, vars, xs, ys } = identifiers;
70
- const index = a < xs[0] ? 0 : a > xs[1] ? 2 : 1;
71
+ const index = a < xs[0] ? 0 : a >= xs[1] ? 2 : 1;
71
72
  const intervals = [
72
73
  new IntervalNode(MinusInfinityNode, xs[0].toTree(), ClosureType.OF),
73
74
  new IntervalNode(xs[0].toTree(), xs[1].toTree(), ClosureType.FF),
@@ -77,7 +78,7 @@ const getCorrection = (identifiers) => {
77
78
 
78
79
  Or, sur cet intervalle, la fonction $f$ est ${vars[index] === "\\nearrow" ? "croissante" : "décroissante"} d'après le tableau de variations.
79
80
 
80
- On en déduit que :
81
+ Puisque $${a}\\leq ${b}$, on en déduit que :
81
82
 
82
83
  $$
83
84
  f(${a}) \\ ${vars[index] === "\\nearrow" ? "\\le" : "\\ge"} f(${b})
@@ -64,7 +64,7 @@ const getSecondsLines = (coeffs) => {
64
64
  "\\ ",
65
65
  a > 0 ? fx1.toTree().toTex() : "\\ ",
66
66
  "\\ ",
67
- a > 0 ? "\\ " : fx1.toTree().toTex(),
67
+ a > 0 ? "\\ " : fx2.toTree().toTex(),
68
68
  "\\ ",
69
69
  "\\ ",
70
70
  ],
@@ -73,7 +73,7 @@ const getSecondsLines = (coeffs) => {
73
73
  "$\\ $",
74
74
  "\\ ",
75
75
  "\\ ",
76
- a > 0 ? "\\ " : fx2.toTree().toTex(),
76
+ a > 0 ? "\\ " : fx1.toTree().toTex(),
77
77
  "\\ ",
78
78
  a > 0 ? fx2.toTree().toTex() : "\\ ",
79
79
  "\\ ",
@@ -1 +1 @@
1
- {"version":3,"file":"readExtremaOnGraph.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/readExtremaOnGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AACF,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAiOF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoB7D,CAAC"}
1
+ {"version":3,"file":"readExtremaOnGraph.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/readExtremaOnGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AACF,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AA2OF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoB7D,CAAC"}
@@ -48,18 +48,24 @@ ${identifiers.askingX
48
48
  const getHint = (identifiers) => {
49
49
  return `- Le maximum d'une fonction $f$ sur un intervalle $I$ est la plus grande valeur prise par $f(x)$ pour $x\\in I$. On dit alors que le maximum de $f$ sur $I$ est $f(x)$, atteint en $x$.
50
50
 
51
- - Le minimum d'une fonction $f$ sur un intervalle $I$ est la plus petite valeur prise par $f(x)$ sur pour $x\\in I$. On dit alors que le minimum de $f$ sur $I$ est $f(x)$, atteint en $x$.`;
51
+ - Le minimum d'une fonction $f$ sur un intervalle $I$ est la plus petite valeur prise par $f(x)$ pour $x\\in I$. On dit alors que le minimum de $f$ sur $I$ est $f(x)$, atteint en $x$.`;
52
52
  };
53
53
  const getCorrection = (identifiers) => {
54
- const { askingMax, askingX, splinePoints } = identifiers;
54
+ const { askingMax, askingX, splinePoints, intervalBounds } = identifiers;
55
55
  const word = askingMax ? "maximum" : "minimum";
56
56
  const xMin = splinePoints[0][0];
57
57
  const xMax = splinePoints[splinePoints.length - 1][0];
58
- const y = (askingMax ? Math.max : Math.min)(...splinePoints.map((e) => e[1]));
59
- const x = splinePoints.find((e) => e[1] === y)[0];
60
58
  const word2 = askingMax ? "grande" : "petite";
61
- const interval = `[${xMin};${xMax}]`;
62
- return `On lit graphiquement que le ${word} de $f(x)$ sur $${interval}$ est $${y.frenchify()}$, atteint pour $x = ${x.frenchify()}$. En effet, c'est la plus ${word2} valeur de $f(x)$ sur $${interval}$.`;
59
+ // const interval = `[${xMin};${xMax}]`;
60
+ const interval = intervalBounds[0] === xMin && intervalBounds[1] === xMax
61
+ ? `[${xMin};${xMax}]`
62
+ : `[${intervalBounds[0]};${intervalBounds[1]}]`;
63
+ const extremum = (askingMax ? Math.max : Math.min)(...splinePoints
64
+ .filter((e) => e[0] >= intervalBounds[0] && e[0] <= intervalBounds[1])
65
+ .map((e) => e[1]));
66
+ const x = splinePoints.find((e) => e[1] === extremum)[0].frenchify();
67
+ const y = extremum.frenchify();
68
+ return `On lit graphiquement que le ${word} de $f(x)$ sur $${interval}$ est $${y}$, atteint pour $x = ${x}$. En effet, c'est la plus ${word2} valeur de $f(x)$ sur $${interval}$.`;
63
69
  };
64
70
  const getKeys = (identifiers) => {
65
71
  return [];
@@ -10,16 +10,16 @@ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
10
10
  const getPropositions = (n, { answer }) => {
11
11
  const propositions = [];
12
12
  addValidProp(propositions, answer, "raw");
13
- tryToAddWrongProp(propositions, "Décroissante", "raw");
14
- tryToAddWrongProp(propositions, "Croissante", "raw");
15
- tryToAddWrongProp(propositions, "Non monotone", "raw");
13
+ tryToAddWrongProp(propositions, "$f$ est décroissante", "raw");
14
+ tryToAddWrongProp(propositions, "$f$ est croissante", "raw");
15
+ tryToAddWrongProp(propositions, "$f$ n'est pas monotone", "raw");
16
16
  return shuffleProps(propositions, n);
17
17
  };
18
18
  const getAnswer = (identifiers) => {
19
19
  const { intervalAskedIndex, coeffs } = identifiers;
20
20
  return (intervalAskedIndex % 2 === 0) === coeffs[3] > 0
21
- ? "Croissante"
22
- : "Décroissante";
21
+ ? "$f$ est croissante"
22
+ : "$f$ est décroissante";
23
23
  };
24
24
  const getInterval = (identifiers) => {
25
25
  const { intervalAskedIndex, coeffs } = identifiers;
@@ -39,14 +39,14 @@ Quel est le sens de variation de $f$ sur $${interval.toTex()}$ ?`;
39
39
  };
40
40
  const getHint = (identifiers) => {
41
41
  const interval = getInterval(identifiers);
42
- return `Pour les valeurs de $x$ comprises dans l'intervalle $${interval.toTex()}$, les valeurs de $f(x)$ sont-elles en augmentation, en diminution, ou bien varient-elles ?`;
42
+ return `Observe comment varient les valeurs de $f(x)$ pour les valeurs de $x$ comprises dans l'intervalle $${interval.toTex()}$.`;
43
43
  };
44
44
  const getCorrection = (identifiers) => {
45
45
  const interval = getInterval(identifiers);
46
46
  const answer = getAnswer(identifiers);
47
- return `Sur l'intervalle $${interval.toTex()}$, on lit graphiquement que les valeurs de $f(x)$ ${answer === "Croissante" ? "augmentent" : "diminuent"}.
47
+ return `Sur l'intervalle $${interval.toTex()}$, on lit graphiquement que les valeurs de $f(x)$ ${answer.includes("décroissante") ? "diminuent" : "augmentent"}.
48
48
 
49
- On en conclut donc que $f$ est ${answer.toLocaleLowerCase()} sur cet intervalle.`;
49
+ On en conclut donc que ${answer.toLocaleLowerCase()} sur cet intervalle.`;
50
50
  };
51
51
  const getRoots = (coeffs) => {
52
52
  const [d, c, b, a] = coeffs;
@@ -26,7 +26,7 @@ const getTable = (identifiers) => {
26
26
  const secondArrow = isFirstAscending ? "\\searrow" : "\\nearrow";
27
27
  return [
28
28
  [
29
- "x",
29
+ "£x£",
30
30
  xValues[0].frenchify(),
31
31
  "\\ ",
32
32
  xValues[1].frenchify(),
@@ -45,7 +45,7 @@ const getTable = (identifiers) => {
45
45
  "\\ ",
46
46
  isFirstAscending ? yValues[3].frenchify() : "\\ ",
47
47
  ],
48
- ["f(x)", "\\ ", firstArrow, "\\ ", secondArrow, "\\ ", firstArrow, "\\ "],
48
+ ["£f(x)£", "\\ ", firstArrow, "\\ ", secondArrow, "\\ ", firstArrow, "\\ "],
49
49
  [
50
50
  " ",
51
51
  !isFirstAscending ? "\\ " : yValues[0].frenchify(),
@@ -64,11 +64,11 @@ const getInstruction = (identifiers) => {
64
64
  const table = getTable(identifiers);
65
65
  let instruction = `On considère la fonction $f$ dont le tableau de variations est donné ci-dessous :
66
66
 
67
- <svg id="varTable">${JSON.stringify(table)}</svg>
67
+ <svg id="varTable">${JSON.stringify(table)}</svg>
68
68
 
69
- ${identifiers.isAskingX
70
- ? `Sur l'intervalle $${interval.toTex()}$, en quelle valeur le ${type} de la fonction $f$ est-il atteint ?`
71
- : `Sur l'intervalle $${interval.toTex()}$, quel est le ${type} de la fonction $f$ ?`}
69
+ ${identifiers.isAskingX
70
+ ? `Sur l'intervalle $${interval.toTexNoSpace()}$, en quelle valeur le ${type} de la fonction $f$ est-il atteint ?`
71
+ : `Sur l'intervalle $${interval.toTexNoSpace()}$, quel est le ${type} de la fonction $f$ ?`}
72
72
  `;
73
73
  return instruction;
74
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"varTableFromGraph.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/varTableFromGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAgLF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAmBnD,CAAC"}
1
+ {"version":3,"file":"varTableFromGraph.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/varTableFromGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AA0KF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAmBnD,CAAC"}
@@ -4,11 +4,6 @@ import { Polynomial } from "../../../../math/polynomials/polynomial.js";
4
4
  import { randint } from "../../../../math/utils/random/randint.js";
5
5
  import { coinFlip } from "../../../../utils/alea/coinFlip.js";
6
6
  import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
7
- const getFunc = (identifiers) => {
8
- const { coeffs } = identifiers;
9
- const poly = new Polynomial(coeffs);
10
- return (x) => coeffs;
11
- };
12
7
  const getRoots = (identifiers) => {
13
8
  const { coeffs } = identifiers;
14
9
  const [d, c, b, a] = coeffs;
@@ -64,7 +59,7 @@ const getAnswerTable = (identifiers) => {
64
59
  "\\ ",
65
60
  a > 0 ? fx1.toTree().toTex() : "\\ ",
66
61
  "\\ ",
67
- a > 0 ? "\\ " : fx1.toTree().toTex(),
62
+ a > 0 ? "\\ " : fx2.toTree().toTex(),
68
63
  "\\ ",
69
64
  "\\ ",
70
65
  ],
@@ -73,7 +68,7 @@ const getAnswerTable = (identifiers) => {
73
68
  "$\\ $",
74
69
  "\\ ",
75
70
  "\\ ",
76
- a > 0 ? "\\ " : fx2.toTree().toTex(),
71
+ a > 0 ? "\\ " : fx1.toTree().toTex(),
77
72
  "\\ ",
78
73
  a > 0 ? fx2.toTree().toTex() : "\\ ",
79
74
  "\\ ",
@@ -1 +1 @@
1
- {"version":3,"file":"varTableFromSentences.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/varTableFromSentences.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAK7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,EAAE,EAAE,eAAe,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAwLF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAkBvD,CAAC"}
1
+ {"version":3,"file":"varTableFromSentences.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/varTableFromSentences.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAK7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,EAAE,EAAE,eAAe,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AA0LF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAkBvD,CAAC"}
@@ -78,7 +78,9 @@ De plus, on a $f(${xsNodes[0].toTex()})=${vars[0]}$, $f(${xsNodes[1].toTex()})=$
78
78
  Dresser le tableau de variations de $f$.`;
79
79
  };
80
80
  const getHint = (identifiers) => {
81
- return `La première ligne d'un tableau de variations contient les valeurs de $x$. La deuxième ligne donne les variations de la fonction en fonction des valeurs de $x$ de la première ligne.`;
81
+ return `La première ligne d'un tableau de variations contient les valeurs de $x$ particulières : les bornes du domaine de définition, et les valeurs auxquelles le sens de variation change.
82
+
83
+ La deuxième ligne du tableau donne les variations de la fonction sur chaque intervalle, et les extremums (valeurs de $f(x)$).`;
82
84
  };
83
85
  const getCorrection = (identifiers) => {
84
86
  const { vars, xs } = identifiers;
@@ -1 +1 @@
1
- {"version":3,"file":"convexityTrinomialsGeo.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/convexity/convexityTrinomialsGeo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAyEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAgBxD,CAAC"}
1
+ {"version":3,"file":"convexityTrinomialsGeo.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/convexity/convexityTrinomialsGeo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAyEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAcxD,CAAC"}
@@ -60,9 +60,7 @@ const isAnswerValid = (ans, { answer }) => {
60
60
  export const convexityTrinomialsGeo = {
61
61
  id: "convexityTrinomialsGeo",
62
62
  label: "Déterminer graphiquement la convexité d'un trinôme",
63
- levels: ["TermSpé"],
64
63
  isSingleStep: true,
65
- sections: ["Dérivation"],
66
64
  generator: (nb) => getDistinctQuestions(getConvexityTrinomialsGeoQuestion, nb),
67
65
  qcmTimer: 60,
68
66
  freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"buildMediatriceWithCompass.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/euclidianConstructions/buildMediatriceWithCompass.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA0IF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAe5D,CAAC"}
1
+ {"version":3,"file":"buildMediatriceWithCompass.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/euclidianConstructions/buildMediatriceWithCompass.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA0IF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAa5D,CAAC"}
@@ -128,9 +128,7 @@ export const buildMediatriceWithCompass = {
128
128
  id: "buildMediatriceWithCompass",
129
129
  connector: "=",
130
130
  label: "Tracer une médiatrice avec un compas",
131
- levels: [],
132
131
  isSingleStep: true,
133
- sections: [],
134
132
  generator: (nb) => getDistinctQuestions(getBuildMediatriceWithCompassQuestion, nb),
135
133
  ggbTimer: 60,
136
134
  getPropositions,
@@ -25,7 +25,7 @@ const getAnswer = (identifiers) => {
25
25
  };
26
26
  const getInstruction = (identifiers) => {
27
27
  const { perimeter, askingX } = identifiers;
28
- return `On cherche à construire un rectangle de périmètre $${perimeter}$ et de surface la plus grande possible.
28
+ return `On cherche à construire un rectangle de périmètre $${perimeter}$ et d'aire la plus grande possible.
29
29
 
30
30
  On appelle $x$ la largeur du rectangle. Son aire s'obtient alors par la formule :
31
31
 
@@ -36,8 +36,8 @@ $$
36
36
  On a tracé ci-dessous la courbe de la fonction A.
37
37
 
38
38
  ${askingX
39
- ? `Quelle doit être la largeur du rectangle pour avoir la surface maximale ?`
40
- : `Quelle est la surface maximale de ce rectangle ?`}
39
+ ? `Quelle doit être la largeur du rectangle pour avoir l'aire maximale ?`
40
+ : `Quelle est l'aire maximale de ce rectangle ?`}
41
41
 
42
42
  *On pourra zoomer et se déplacer sur le graphique.*`;
43
43
  };
@@ -63,8 +63,8 @@ ${askingX
63
63
  On voit que le maximum de $A$ est $${y}$, atteint pour $x=${x}$.
64
64
 
65
65
  ${askingX
66
- ? `Le rectangle atteint donc sa surface maximale pour une largeur de $${x}$.`
67
- : `La surface maximale du rectangle est donc $${y}$.`}`;
66
+ ? `Le rectangle atteint donc son aire maximale pour une largeur de $${x}$.`
67
+ : `L'aire maximale du rectangle est donc $${y}$.`}`;
68
68
  };
69
69
  const getGGBOptions = (identifiers) => {
70
70
  const { perimeter } = identifiers;
@@ -27,7 +27,7 @@ Dans quel intervalle $x$ peut-il varier ?
27
27
  ![](https://heureuxhasarddocsbucket.s3.eu-west-3.amazonaws.com/mathliveV2/activities/quizzes/generator/squareWithX.png)`;
28
28
  };
29
29
  const getHint = (identifiers) => {
30
- return `Le point $M$ peut être situé n'importe où sur le segment $[AB]$. Quelle peut être la plus petit valeur de $AM$ ? et sa plus grande valeur ?`;
30
+ return `Le point $M$ peut être situé n'importe où sur le segment $[AB]$. Quelle peut être la plus petite valeur de $AM$ ? et sa plus grande valeur ?`;
31
31
  };
32
32
  const getCorrection = (identifiers) => {
33
33
  const { shape, side } = identifiers;
@@ -1 +1 @@
1
- {"version":3,"file":"thalesCalcul.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/thales/thalesCalcul.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAsBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAGL,mBAAmB,EACpB,MAAM,2CAA2C,CAAC;AAanD,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AA2OF,KAAK,OAAO,GAAG;IACb,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAqEF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CA0BvD,CAAC"}
1
+ {"version":3,"file":"thalesCalcul.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/thales/thalesCalcul.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAsBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAGL,mBAAmB,EACpB,MAAM,2CAA2C,CAAC;AAanD,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AA4OF,KAAK,OAAO,GAAG;IACb,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAqEF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CA0BvD,CAAC"}
@@ -142,7 +142,7 @@ ${alignTex([
142
142
  `;
143
143
  };
144
144
  const getGGBOptions = (identifiers) => {
145
- const triangle = TriangleConstructor.fromIdentifiers(identifiers.triangleIdentifiers);
145
+ const triangle = TriangleConstructor.fromIdentifiers(identifiers.triangleIdentifiers, { pointsSize: 3 });
146
146
  const subTriangle = getSubTriangle({
147
147
  triangle,
148
148
  insidePointsNames: identifiers.insidePointsNames,
@@ -153,7 +153,7 @@ const getGGBOptions = (identifiers) => {
153
153
  const seg = new Segment(points[0], points[1]);
154
154
  const commands = [
155
155
  ...triangle.commands,
156
- ...points.flatMap((p) => p.toGGBCommand({ color: "#444444", size: 4 })),
156
+ ...points.flatMap((p) => p.toGGBCommand({ color: "#444444", size: 3 })),
157
157
  ...seg.toGGBCommands(false),
158
158
  ];
159
159
  if (identifiers.isPapillon) {
@@ -164,6 +164,7 @@ const getGGBOptions = (identifiers) => {
164
164
  commands,
165
165
  hideAxes: true,
166
166
  hideGrid: true,
167
+ fontSize: 20,
167
168
  });
168
169
  let coords = triangle.generateCoords();
169
170
  if (identifiers.isPapillon) {
@@ -42,9 +42,7 @@ export {};
42
42
  // id: 'traceMedianInTriangle',
43
43
  // connector: "",
44
44
  // label: "",
45
- // levels: [],
46
45
  // isSingleStep: true,
47
- // sections: [],
48
46
  // generator: (nb: number) => getDistinctQuestions(getTraceMedianInTriangleQuestion, nb),
49
47
  // qcmTimer: 60,
50
48
  // freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"volumeOfCube.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/volumeOfCube.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAsGF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAiB9C,CAAC"}
1
+ {"version":3,"file":"volumeOfCube.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/volumeOfCube.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAsGF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAe9C,CAAC"}
@@ -86,9 +86,7 @@ const generatePropositions = (cubeSide) => {
86
86
  export const volumeOfCube = {
87
87
  id: "volumeOfCube",
88
88
  label: "Calculer le volume d'un cube",
89
- levels: ["2nde"],
90
89
  isSingleStep: true,
91
- sections: ["Géométrie euclidienne"],
92
90
  generator: (nb) => getDistinctQuestions(getVolumeOfCubeQuestion, nb, 15),
93
91
  maxAllowedQuestions: 15,
94
92
  qcmTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"polynomLimitNoFI.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/limits/polynomLimitNoFI.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE,UAAU,GAAG,UAAU,CAAC;CAC7B,CAAC;AAgEF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAelD,CAAC"}
1
+ {"version":3,"file":"polynomLimitNoFI.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/limits/polynomLimitNoFI.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE,UAAU,GAAG,UAAU,CAAC;CAC7B,CAAC;AAgEF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAalD,CAAC"}
@@ -57,9 +57,7 @@ export const polynomLimitNoFI = {
57
57
  id: "polynomLimitNoFI",
58
58
  connector: "=",
59
59
  label: "Limite d'une fonction polynomiale (sans F.I.)",
60
- levels: ["TermSpé", "MathComp"],
61
60
  isSingleStep: true,
62
- sections: ["Limites"],
63
61
  generator: (nb) => getDistinctQuestions(getSequencePolynomNoFILimitQuestion, nb),
64
62
  qcmTimer: 60,
65
63
  freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"findStartValueAfterEvolution.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/percent/evolutions/findStartValueAfterEvolution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAiGF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAiB9D,CAAC"}
1
+ {"version":3,"file":"findStartValueAfterEvolution.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/percent/evolutions/findStartValueAfterEvolution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAiGF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAiB9D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
2
  import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
3
  import { randfloat } from "../../../../math/utils/random/randfloat.js";
4
+ import { randint } from "../../../../math/utils/random/randint.js";
4
5
  import { round } from "../../../../math/utils/round.js";
5
6
  import { euroParser } from "../../../../tree/parsers/euroParser.js";
6
7
  import { alignTex } from "../../../../utils/latex/alignTex.js";
@@ -63,8 +64,8 @@ const isAnswerValid = (ans, { answer }) => {
63
64
  return euroParser(ans) === answer + "€";
64
65
  };
65
66
  const getFindStartValueAfterEvolutionQuestion = () => {
66
- const vf = randfloat(1, 100, 2);
67
- const percentRate = randfloat(-99, 100, 2, [0]);
67
+ const vf = randint(5, 100);
68
+ const percentRate = randint(-99, 100, [0]);
68
69
  const identifiers = {
69
70
  vf,
70
71
  percentRate,
@@ -1 +1 @@
1
- {"version":3,"file":"htToTTC.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/htToTTC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AA6EF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAgBzC,CAAC"}
1
+ {"version":3,"file":"htToTTC.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/htToTTC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AA6EF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAczC,CAAC"}
@@ -73,9 +73,7 @@ export const htToTTC = {
73
73
  id: "htToTTC",
74
74
  connector: "=",
75
75
  label: "Passer d'un prix HT à un prix TTC",
76
- levels: [],
77
76
  isSingleStep: true,
78
- sections: [],
79
77
  generator: (nb) => getDistinctQuestions(getHtToTtcQuestion, nb),
80
78
  qcmTimer: 60,
81
79
  freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"percentToDecimal.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/percentToDecimal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AA+IF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAgBlD,CAAC"}
1
+ {"version":3,"file":"percentToDecimal.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/percentToDecimal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AA+IF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAclD,CAAC"}
@@ -118,9 +118,7 @@ export const percentToDecimal = {
118
118
  id: "percentToDecimal",
119
119
  connector: "=",
120
120
  label: "Écrire un pourcentage sous forme décimale et vice-versa",
121
- levels: ["2nde", "2ndPro", "1reESM", "1rePro"],
122
121
  isSingleStep: true,
123
- sections: ["Pourcentages"],
124
122
  generator: (nb) => getDistinctQuestions(getPercentToDecimalQuestion, nb),
125
123
  qcmTimer: 60,
126
124
  freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"ttcToHT.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/ttcToHT.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAmFF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAgBzC,CAAC"}
1
+ {"version":3,"file":"ttcToHT.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/percent/ttcToHT.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAmFF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAczC,CAAC"}
@@ -69,9 +69,7 @@ export const ttcToHT = {
69
69
  id: "ttcToHT",
70
70
  connector: "=",
71
71
  label: "Passer d'un prix TTC à un prix HT",
72
- levels: [],
73
72
  isSingleStep: true,
74
- sections: [],
75
73
  generator: (nb) => getDistinctQuestions(getTtcToHtQuestion, nb),
76
74
  qcmTimer: 60,
77
75
  freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EAiBT,MAAM,mBAAmB,CAAC;AAM3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AA6IF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAwB7D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBxD,CAAC"}
1
+ {"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EAiBT,MAAM,mBAAmB,CAAC;AAM3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AA6IF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAwB7D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAmBxD,CAAC"}
@@ -140,8 +140,6 @@ export const powersProduct = {
140
140
  id: "powersProduct",
141
141
  connector: "=",
142
142
  label: "Multiplication de puissances",
143
- levels: ["4ème", "3ème", "2nde"],
144
- sections: ["Puissances"],
145
143
  isSingleStep: true,
146
144
  generator: (nb, opts) => getDistinctQuestions(() => getPowersProductQuestion({ ...opts, useOnlyPowersOfTen: false }), nb),
147
145
  qcmTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"exponentialPrimitive.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/primitive/exponentialPrimitive.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAGR,0BAA0B,EAE1B,YAAY,EAEZ,iBAAiB,EACjB,GAAG,EAIJ,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAwBF,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,CAAC,WAAW,CAIlE,CAAC;AAEF,eAAO,MAAM,8CAA8C,EAAE,0BAA0B,CACrF,WAAW,CAYZ,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,YAAY,CAAC,WAAW,CAgCzE,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,GAAG,CAAC,WAAW,CAY9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
1
+ {"version":3,"file":"exponentialPrimitive.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/primitive/exponentialPrimitive.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAGR,0BAA0B,EAE1B,YAAY,EAEZ,iBAAiB,EACjB,GAAG,EAIJ,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAwBF,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,CAAC,WAAW,CAIlE,CAAC;AAEF,eAAO,MAAM,8CAA8C,EAAE,0BAA0B,CACrF,WAAW,CAYZ,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,YAAY,CAAC,WAAW,CAgCzE,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,GAAG,CAAC,WAAW,CAY9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAatD,CAAC"}
@@ -71,8 +71,6 @@ export const exponentialPrimitive = {
71
71
  id: "exponentialPrimitive",
72
72
  connector: "=",
73
73
  label: "Primitive de la fonction exponentielle",
74
- levels: ["TermSpé", "MathComp"],
75
- sections: ["Primitives", "Exponentielle"],
76
74
  isSingleStep: false,
77
75
  generator: (nb) => getDistinctQuestions(getExponentialPrimitive, nb),
78
76
  qcmTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"expectedValueOfBinomialProba.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/expectedValueOfBinomialProba.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAcrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA2GF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAe9D,CAAC"}
1
+ {"version":3,"file":"expectedValueOfBinomialProba.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/expectedValueOfBinomialProba.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAcrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA2GF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAa9D,CAAC"}
@@ -16,7 +16,7 @@ const getInstruction = (identifiers) => {
16
16
  .simplify()
17
17
  .toTex()}$.
18
18
 
19
- Calculez l'espérance de $X$.`;
19
+ Calculer l'espérance de $X$.`;
20
20
  };
21
21
  const getAnswer = (identifiers) => {
22
22
  const { nX, a, b } = identifiers;
@@ -96,9 +96,7 @@ const generatePropositions = (n, p) => {
96
96
  export const expectedValueOfBinomialProba = {
97
97
  id: "expectedValueOfBinomialProba",
98
98
  label: "Calcul de l'espérance d'une loi binomiale",
99
- levels: ["TermTech"],
100
99
  isSingleStep: true,
101
- sections: ["Probabilités"],
102
100
  generator: (nb) => getDistinctQuestions(getExpectedValueOfBinomialProbaQuestion, nb),
103
101
  qcmTimer: 60,
104
102
  freeTimer: 60,
@@ -24,7 +24,7 @@ const getInstruction = (identifiers) => {
24
24
  return `Soit $X$ une variable aléatoire qui suit une loi binomiale de paramètres $n=${nX}$ et $p=${p
25
25
  .toTree()
26
26
  .simplify()
27
- .toTex()}$. Calculez la variance de $X$.`;
27
+ .toTex()}$. Calculer la variance de $X$.`;
28
28
  };
29
29
  const getHint = (identifiers) => {
30
30
  return `L'espérance d'une variable aléatoire $X$ qui suit une loi binomiale de paramètres $n$ et $p$ est donnée par :
@@ -1 +1 @@
1
- {"version":3,"file":"averageList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AA2FF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAgB7C,CAAC"}
1
+ {"version":3,"file":"averageList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AA2FF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAc7C,CAAC"}
@@ -80,9 +80,7 @@ export const averageList = {
80
80
  id: "averageList",
81
81
  connector: "=",
82
82
  label: "Calcul de la moyenne d'une liste de valeurs",
83
- levels: [],
84
83
  isSingleStep: true,
85
- sections: [],
86
84
  generator: (nb) => getDistinctQuestions(getAverageListQuestion, nb),
87
85
  qcmTimer: 60,
88
86
  freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"averageWithTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageWithTable.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAaT,MAAM,sBAAsB,CAAC;AAQ9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAoHF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
1
+ {"version":3,"file":"averageWithTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageWithTable.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAaT,MAAM,sBAAsB,CAAC;AAQ9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAoHF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAelD,CAAC"}