math-exercises 2.2.9 → 2.2.11

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 (293) hide show
  1. package/lib/exercises/exercise.d.ts +2 -1
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.d.ts.map +1 -1
  4. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.js +24 -7
  5. package/lib/exercises/math/calcul/decimals/index.d.ts +3 -0
  6. package/lib/exercises/math/calcul/decimals/index.d.ts.map +1 -0
  7. package/lib/exercises/math/calcul/decimals/index.js +18 -0
  8. package/lib/exercises/math/calcul/decimals/multiplyDecimalByNegativeTens.d.ts +8 -0
  9. package/lib/exercises/math/calcul/decimals/multiplyDecimalByNegativeTens.d.ts.map +1 -0
  10. package/lib/exercises/math/calcul/decimals/multiplyDecimalByNegativeTens.js +53 -0
  11. package/lib/exercises/math/calcul/decimals/multiplyDecimalByTens.d.ts +9 -0
  12. package/lib/exercises/math/calcul/decimals/multiplyDecimalByTens.d.ts.map +1 -0
  13. package/lib/exercises/math/calcul/decimals/multiplyDecimalByTens.js +63 -0
  14. package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.d.ts.map +1 -1
  15. package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.js +33 -1
  16. package/lib/exercises/math/calcul/index.d.ts +2 -0
  17. package/lib/exercises/math/calcul/index.d.ts.map +1 -1
  18. package/lib/exercises/math/calcul/index.js +2 -0
  19. package/lib/exercises/math/calcul/operations/expressionNature.d.ts +8 -0
  20. package/lib/exercises/math/calcul/operations/expressionNature.d.ts.map +1 -1
  21. package/lib/exercises/math/calcul/operations/expressionNature.js +180 -80
  22. package/lib/exercises/math/calcul/operations/index.d.ts +3 -0
  23. package/lib/exercises/math/calcul/operations/index.d.ts.map +1 -1
  24. package/lib/exercises/math/calcul/operations/index.js +3 -0
  25. package/lib/exercises/math/calcul/operations/operationsPriorities.d.ts +1 -1
  26. package/lib/exercises/math/calcul/operations/operationsPriorities.d.ts.map +1 -1
  27. package/lib/exercises/math/calcul/operations/operationsPriorities.js +20 -5
  28. package/lib/exercises/math/calcul/operations/operationsPrioritiesParenthesis.d.ts +8 -0
  29. package/lib/exercises/math/calcul/operations/operationsPrioritiesParenthesis.d.ts.map +1 -0
  30. package/lib/exercises/math/calcul/operations/operationsPrioritiesParenthesis.js +111 -0
  31. package/lib/exercises/math/calcul/operations/operationsPrioritiesParenthesisNoRelatives.d.ts +8 -0
  32. package/lib/exercises/math/calcul/operations/operationsPrioritiesParenthesisNoRelatives.d.ts.map +1 -0
  33. package/lib/exercises/math/calcul/operations/operationsPrioritiesParenthesisNoRelatives.js +127 -0
  34. package/lib/exercises/math/calcul/operations/operationsPrioritiesWithoutRelative.d.ts.map +1 -1
  35. package/lib/exercises/math/calcul/operations/operationsPrioritiesWithoutRelative.js +18 -1
  36. package/lib/exercises/math/calcul/ordering/decimalOrdering.d.ts +9 -0
  37. package/lib/exercises/math/calcul/ordering/decimalOrdering.d.ts.map +1 -0
  38. package/lib/exercises/math/calcul/ordering/decimalOrdering.js +77 -0
  39. package/lib/exercises/math/calcul/ordering/framing.d.ts +10 -0
  40. package/lib/exercises/math/calcul/ordering/framing.d.ts.map +1 -0
  41. package/lib/exercises/math/calcul/ordering/framing.js +143 -0
  42. package/lib/exercises/math/calcul/ordering/index.d.ts +4 -0
  43. package/lib/exercises/math/calcul/ordering/index.d.ts.map +1 -0
  44. package/lib/exercises/math/calcul/ordering/index.js +19 -0
  45. package/lib/exercises/math/calcul/ordering/integerOrdering.d.ts +8 -0
  46. package/lib/exercises/math/calcul/ordering/integerOrdering.d.ts.map +1 -0
  47. package/lib/exercises/math/calcul/ordering/integerOrdering.js +61 -0
  48. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivity.d.ts.map +1 -1
  49. package/lib/exercises/math/calculLitteral/distributivity/firstIdentity.d.ts.map +1 -1
  50. package/lib/exercises/math/calculLitteral/distributivity/secondIdentity.d.ts.map +1 -1
  51. package/lib/exercises/math/calculLitteral/distributivity/simpleDistributivity.d.ts.map +1 -1
  52. package/lib/exercises/math/calculLitteral/distributivity/thirdIdentity.d.ts.map +1 -1
  53. package/lib/exercises/math/calculLitteral/equation/equationType2Exercise.d.ts.map +1 -1
  54. package/lib/exercises/math/calculLitteral/equation/equationType4Exercise.d.ts.map +1 -1
  55. package/lib/exercises/math/calculLitteral/factorisation/factoIdRmq1.d.ts.map +1 -1
  56. package/lib/exercises/math/calculLitteral/factorisation/factoIdRmq2.d.ts.map +1 -1
  57. package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.d.ts.map +1 -1
  58. package/lib/exercises/math/derivation/derivative/powerFunctionDerivative.js +1 -1
  59. package/lib/exercises/math/functions/affines/leadingCoeffAndOriginOrdinate.js +1 -1
  60. package/lib/exercises/math/functions/basics/graphicInequation.d.ts.map +1 -1
  61. package/lib/exercises/math/functions/basics/graphicInequation.js +9 -6
  62. package/lib/exercises/math/functions/basics/twoFunctionsInequation.d.ts.map +1 -1
  63. package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +15 -4
  64. package/lib/exercises/math/functions/trinoms/canonicalFromDevForm.d.ts.map +1 -1
  65. package/lib/exercises/math/geometry/cartesian/directionVector.d.ts.map +1 -1
  66. package/lib/exercises/math/geometry/cartesian/directionVectorEquation.d.ts.map +1 -1
  67. package/lib/exercises/math/geometry/cartesian/placeAPoint.d.ts.map +1 -1
  68. package/lib/exercises/math/geometry/cartesian/placeAPoint.js +0 -4
  69. package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.d.ts.map +1 -1
  70. package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.js +2 -3
  71. package/lib/exercises/math/geometry/vectors/vectorCoordinatesFromTwoPoints.d.ts.map +1 -1
  72. package/lib/exercises/math/geometry/vectors/vectorCoordinatesFromTwoPoints.js +17 -0
  73. package/lib/exercises/math/geometry/volumes/volumeOfCube.d.ts.map +1 -1
  74. package/lib/exercises/math/geometry/volumes/volumeOfCube.js +7 -1
  75. package/lib/exercises/math/index.d.ts +0 -1
  76. package/lib/exercises/math/index.d.ts.map +1 -1
  77. package/lib/exercises/math/index.js +0 -1
  78. package/lib/exercises/math/limits/rationalFracForbiddenValueLimit.d.ts.map +1 -1
  79. package/lib/exercises/math/percent/htToTTC.d.ts +8 -0
  80. package/lib/exercises/math/percent/htToTTC.d.ts.map +1 -0
  81. package/lib/exercises/math/percent/htToTTC.js +50 -0
  82. package/lib/exercises/math/percent/index.d.ts +2 -0
  83. package/lib/exercises/math/percent/index.d.ts.map +1 -1
  84. package/lib/exercises/math/percent/index.js +2 -0
  85. package/lib/exercises/math/percent/ttcToHT.d.ts +8 -0
  86. package/lib/exercises/math/percent/ttcToHT.d.ts.map +1 -0
  87. package/lib/exercises/math/percent/ttcToHT.js +50 -0
  88. package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
  89. package/lib/exercises/math/powers/powersDivision.js +35 -2
  90. package/lib/exercises/math/probaStat/calculateProbaOfBinomialDistribution.d.ts.map +1 -1
  91. package/lib/exercises/math/probaStat/calculateProbaOfBinomialDistribution.js +21 -0
  92. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +1 -1
  93. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts +7 -0
  94. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts.map +1 -0
  95. package/lib/exercises/math/probaStat/stats1var/averageList.js +52 -0
  96. package/lib/exercises/math/probaStat/stats1var/etendueList.d.ts +7 -0
  97. package/lib/exercises/math/probaStat/stats1var/etendueList.d.ts.map +1 -0
  98. package/lib/exercises/math/probaStat/stats1var/etendueList.js +49 -0
  99. package/lib/exercises/math/probaStat/stats1var/index.d.ts +2 -0
  100. package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
  101. package/lib/exercises/math/probaStat/stats1var/index.js +2 -0
  102. package/lib/exercises/math/probaStat/stats1var/marginalAndConditionalFrequency.d.ts.map +1 -1
  103. package/lib/exercises/math/probaStat/stats1var/marginalAndConditionalFrequency.js +2 -11
  104. package/lib/exercises/math/sequences/arithmetic/arithmeticFindTerm.d.ts.map +1 -1
  105. package/lib/exercises/math/sequences/arithmetic/arithmeticFindTerm.js +42 -0
  106. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.d.ts.map +1 -1
  107. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.js +7 -2
  108. package/lib/exercises/math/sequences/geometric/geometricFindTerm.d.ts.map +1 -1
  109. package/lib/exercises/math/sequences/geometric/geometricFindTerm.js +42 -0
  110. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts +10 -0
  111. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts.map +1 -0
  112. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.js +56 -0
  113. package/lib/exercises/math/sequences/geometric/index.d.ts +1 -0
  114. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  115. package/lib/exercises/math/sequences/geometric/index.js +1 -0
  116. package/lib/exercises/math/sequences/index.d.ts +2 -0
  117. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  118. package/lib/exercises/math/sequences/index.js +2 -0
  119. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts +10 -0
  120. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -0
  121. package/lib/exercises/math/sequences/sequenceEvaluation.js +143 -0
  122. package/lib/exercises/math/sequences/sequencePlot.d.ts +9 -0
  123. package/lib/exercises/math/sequences/sequencePlot.d.ts.map +1 -0
  124. package/lib/exercises/math/sequences/sequencePlot.js +94 -0
  125. package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts.map +1 -1
  126. package/lib/exercises/math/sets/intervals/intervalsIntersection.js +19 -1
  127. package/lib/exercises/math/sets/intervals/intervalsUnion.js +1 -1
  128. package/lib/exercises/math/trigonometry/arcValue.d.ts.map +1 -1
  129. package/lib/exercises/math/trigonometry/arcValue.js +23 -0
  130. package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.js +1 -1
  131. package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.js +1 -1
  132. package/lib/exercises/pc/motion/typeOfAcceleration.js +1 -1
  133. package/lib/exercises/pc/motion/typeOfMovement.js +1 -1
  134. package/lib/exercises/pc/recognizeRefractionOrReflectionAngles.js +1 -1
  135. package/lib/index.d.ts +54 -10
  136. package/lib/index.d.ts.map +1 -1
  137. package/lib/math/geometry/point.d.ts +11 -0
  138. package/lib/math/geometry/point.d.ts.map +1 -1
  139. package/lib/math/geometry/point.js +8 -0
  140. package/lib/math/numbers/decimals/decimal.d.ts +2 -0
  141. package/lib/math/numbers/decimals/decimal.d.ts.map +1 -1
  142. package/lib/math/numbers/decimals/decimal.js +18 -0
  143. package/lib/math/numbers/reals/extendedRingElement.d.ts +3 -1
  144. package/lib/math/numbers/reals/extendedRingElement.d.ts.map +1 -1
  145. package/lib/math/numbers/reals/real.d.ts +1 -1
  146. package/lib/math/polynomials/trinom.d.ts +1 -1
  147. package/lib/math/sets/intervals/intervals.d.ts +3 -1
  148. package/lib/math/sets/intervals/intervals.d.ts.map +1 -1
  149. package/lib/math/sets/intervals/intervals.js +9 -5
  150. package/lib/math/sets/mathSet.d.ts +2 -2
  151. package/lib/math/sets/mathSet.d.ts.map +1 -1
  152. package/lib/math/sets/mathSetInterface.d.ts +1 -1
  153. package/lib/playground.d.ts.map +1 -1
  154. package/lib/playground.js +13 -2
  155. package/lib/server.d.ts.map +1 -1
  156. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  157. package/lib/tree/nodes/algebraicNode.js +0 -3
  158. package/lib/tree/nodes/complex/complexNode.d.ts +10 -1
  159. package/lib/tree/nodes/complex/complexNode.d.ts.map +1 -1
  160. package/lib/tree/nodes/complex/complexNode.js +7 -0
  161. package/lib/tree/nodes/equations/equalNode.d.ts +10 -1
  162. package/lib/tree/nodes/equations/equalNode.d.ts.map +1 -1
  163. package/lib/tree/nodes/equations/equalNode.js +7 -0
  164. package/lib/tree/nodes/equations/equationSolutionNode.d.ts +10 -1
  165. package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
  166. package/lib/tree/nodes/equations/equationSolutionNode.js +6 -0
  167. package/lib/tree/nodes/equations/multiEqualNode.d.ts +7 -1
  168. package/lib/tree/nodes/equations/multiEqualNode.d.ts.map +1 -1
  169. package/lib/tree/nodes/equations/multiEqualNode.js +6 -0
  170. package/lib/tree/nodes/functions/absNode.d.ts +7 -1
  171. package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
  172. package/lib/tree/nodes/functions/absNode.js +6 -0
  173. package/lib/tree/nodes/functions/arcSinNode.d.ts +7 -1
  174. package/lib/tree/nodes/functions/arcSinNode.d.ts.map +1 -1
  175. package/lib/tree/nodes/functions/arcSinNode.js +8 -1
  176. package/lib/tree/nodes/functions/arccosNode.d.ts +7 -1
  177. package/lib/tree/nodes/functions/arccosNode.d.ts.map +1 -1
  178. package/lib/tree/nodes/functions/arccosNode.js +8 -1
  179. package/lib/tree/nodes/functions/arctanNode.d.ts +7 -1
  180. package/lib/tree/nodes/functions/arctanNode.d.ts.map +1 -1
  181. package/lib/tree/nodes/functions/arctanNode.js +8 -1
  182. package/lib/tree/nodes/functions/cosNode.d.ts +7 -1
  183. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  184. package/lib/tree/nodes/functions/cosNode.js +8 -1
  185. package/lib/tree/nodes/functions/expNode.d.ts +7 -1
  186. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  187. package/lib/tree/nodes/functions/expNode.js +6 -0
  188. package/lib/tree/nodes/functions/integralNode.d.ts +19 -2
  189. package/lib/tree/nodes/functions/integralNode.d.ts.map +1 -1
  190. package/lib/tree/nodes/functions/integralNode.js +20 -0
  191. package/lib/tree/nodes/functions/log10Node.d.ts +7 -1
  192. package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
  193. package/lib/tree/nodes/functions/log10Node.js +6 -0
  194. package/lib/tree/nodes/functions/logNode.d.ts +7 -1
  195. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  196. package/lib/tree/nodes/functions/logNode.js +6 -0
  197. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -1
  198. package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
  199. package/lib/tree/nodes/functions/oppositeNode.js +6 -0
  200. package/lib/tree/nodes/functions/sinNode.d.ts +7 -1
  201. package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
  202. package/lib/tree/nodes/functions/sinNode.js +8 -1
  203. package/lib/tree/nodes/functions/sqrtNode.d.ts +7 -1
  204. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  205. package/lib/tree/nodes/functions/sqrtNode.js +6 -0
  206. package/lib/tree/nodes/functions/tanNode.d.ts +7 -1
  207. package/lib/tree/nodes/functions/tanNode.d.ts.map +1 -1
  208. package/lib/tree/nodes/functions/tanNode.js +8 -1
  209. package/lib/tree/nodes/geometry/degree.d.ts +5 -1
  210. package/lib/tree/nodes/geometry/degree.d.ts.map +1 -1
  211. package/lib/tree/nodes/geometry/degree.js +6 -0
  212. package/lib/tree/nodes/geometry/lengthNode.d.ts +5 -1
  213. package/lib/tree/nodes/geometry/lengthNode.d.ts.map +1 -1
  214. package/lib/tree/nodes/geometry/lengthNode.js +6 -0
  215. package/lib/tree/nodes/geometry/pointNode.d.ts +14 -1
  216. package/lib/tree/nodes/geometry/pointNode.d.ts.map +1 -1
  217. package/lib/tree/nodes/geometry/pointNode.js +6 -0
  218. package/lib/tree/nodes/geometry/vectorNode.d.ts +5 -1
  219. package/lib/tree/nodes/geometry/vectorNode.d.ts.map +1 -1
  220. package/lib/tree/nodes/geometry/vectorNode.js +6 -0
  221. package/lib/tree/nodes/hasVariableNode.d.ts +3 -0
  222. package/lib/tree/nodes/hasVariableNode.d.ts.map +1 -0
  223. package/lib/tree/nodes/hasVariableNode.js +16 -0
  224. package/lib/tree/nodes/inequations/inequationNode.d.ts +8 -1
  225. package/lib/tree/nodes/inequations/inequationNode.d.ts.map +1 -1
  226. package/lib/tree/nodes/inequations/inequationNode.js +7 -0
  227. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +19 -1
  228. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  229. package/lib/tree/nodes/inequations/inequationSolutionNode.js +7 -1
  230. package/lib/tree/nodes/node.d.ts +52 -8
  231. package/lib/tree/nodes/node.d.ts.map +1 -1
  232. package/lib/tree/nodes/node.js +49 -21
  233. package/lib/tree/nodes/nodeConstructor.d.ts +7 -0
  234. package/lib/tree/nodes/nodeConstructor.d.ts.map +1 -0
  235. package/lib/tree/nodes/nodeConstructor.js +170 -0
  236. package/lib/tree/nodes/numbers/constantNode.d.ts +7 -1
  237. package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
  238. package/lib/tree/nodes/numbers/constantNode.js +9 -1
  239. package/lib/tree/nodes/numbers/numberNode.d.ts +5 -1
  240. package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
  241. package/lib/tree/nodes/numbers/numberNode.js +6 -0
  242. package/lib/tree/nodes/numbers/percentNode.d.ts +5 -1
  243. package/lib/tree/nodes/numbers/percentNode.d.ts.map +1 -1
  244. package/lib/tree/nodes/numbers/percentNode.js +6 -0
  245. package/lib/tree/nodes/operators/addNode.d.ts +10 -1
  246. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  247. package/lib/tree/nodes/operators/addNode.js +16 -6
  248. package/lib/tree/nodes/operators/divideNode.d.ts +11 -1
  249. package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
  250. package/lib/tree/nodes/operators/divideNode.js +12 -0
  251. package/lib/tree/nodes/operators/fractionNode.d.ts +10 -1
  252. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  253. package/lib/tree/nodes/operators/fractionNode.js +7 -0
  254. package/lib/tree/nodes/operators/limitNode.d.ts +11 -1
  255. package/lib/tree/nodes/operators/limitNode.d.ts.map +1 -1
  256. package/lib/tree/nodes/operators/limitNode.js +8 -0
  257. package/lib/tree/nodes/operators/multiplyNode.d.ts +10 -1
  258. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  259. package/lib/tree/nodes/operators/multiplyNode.js +7 -0
  260. package/lib/tree/nodes/operators/powerNode.d.ts +10 -1
  261. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  262. package/lib/tree/nodes/operators/powerNode.js +7 -0
  263. package/lib/tree/nodes/operators/substractNode.d.ts +11 -1
  264. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  265. package/lib/tree/nodes/operators/substractNode.js +12 -0
  266. package/lib/tree/nodes/sets/belongsNode.d.ts +10 -1
  267. package/lib/tree/nodes/sets/belongsNode.d.ts.map +1 -1
  268. package/lib/tree/nodes/sets/belongsNode.js +7 -0
  269. package/lib/tree/nodes/sets/closure.d.ts +2 -0
  270. package/lib/tree/nodes/sets/closure.d.ts.map +1 -1
  271. package/lib/tree/nodes/sets/closure.js +20 -0
  272. package/lib/tree/nodes/sets/discreteSetNode.d.ts +10 -2
  273. package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
  274. package/lib/tree/nodes/sets/discreteSetNode.js +13 -3
  275. package/lib/tree/nodes/sets/intervalNode.d.ts +14 -2
  276. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  277. package/lib/tree/nodes/sets/intervalNode.js +22 -1
  278. package/lib/tree/nodes/sets/setNode.d.ts +1 -0
  279. package/lib/tree/nodes/sets/setNode.d.ts.map +1 -1
  280. package/lib/tree/nodes/sets/unionIntervalNode.d.ts +7 -1
  281. package/lib/tree/nodes/sets/unionIntervalNode.d.ts.map +1 -1
  282. package/lib/tree/nodes/sets/unionIntervalNode.js +7 -1
  283. package/lib/tree/nodes/variables/variableNode.d.ts +5 -1
  284. package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
  285. package/lib/tree/nodes/variables/variableNode.js +6 -0
  286. package/lib/tree/utilities/operatorComposition.js +4 -2
  287. package/lib/types/keyProps.d.ts +13 -0
  288. package/lib/types/keyProps.d.ts.map +1 -0
  289. package/lib/types/keyProps.js +2 -0
  290. package/lib/utils/alignTex.js +11 -9
  291. package/lib/utils/diceFlip.d.ts.map +1 -1
  292. package/lib/utils/diceFlip.js +2 -6
  293. package/package.json +1 -1
@@ -1,81 +1,181 @@
1
1
  "use strict";
2
- // import {
3
- // Exercise,
4
- // Proposition,
5
- // QCMGenerator,
6
- // Question,
7
- // QuestionGenerator,
8
- // VEA,
9
- // GGBVEA,
10
- // addValidProp,
11
- // shuffleProps,
12
- // tryToAddWrongProp,
13
- // } from "../../../../exercises/exercise";
14
- // import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions";
15
- // import { AddNode } from "../../../../tree/nodes/operators/addNode";
16
- // import { diceFlip } from "../../../../utils/diceFlip";
17
- // type Identifiers = {};
18
- // const getExpressionNatureQuestion: QuestionGenerator<Identifiers> = () => {
19
- // let answer = "";
20
- // let statement = "";
21
- // let numbers = [0, 0];
22
- // const type = diceFlip(4)
23
- // switch(type){
24
- // case 0 :
25
- // //somme
26
- // //ab+c , ac + bc, a/b + c, a + b/c
27
- // const node= new AddNode(
28
- // )
29
- // answer = "une somme"
30
- // break;
31
- // case 1 :
32
- // //différence
33
- // answer = "une différence"
34
- // break;
35
- // case 2 :
36
- // //produit
37
- // answer = "un produit"
38
- // break;
39
- // case 3 :
40
- // default:
41
- // //quotient
42
- // answer = "un quotient"
43
- // break;
44
- // }
45
- // const question: Question<Identifiers> = {
46
- // answer,
47
- // instruction: `L'expression ${statement} est : `,
48
- // keys: [],
49
- // answerFormat: "tex",
50
- // identifiers: {},
51
- // };
52
- // return question;
53
- // };
54
- // const getPropositions: QCMGenerator<Identifiers> = (n, { answer }) => {
55
- // const propositions: Proposition[] = [];
56
- // addValidProp(propositions, answer);
57
- // tryToAddWrongProp(propositions, "une somme");
58
- // tryToAddWrongProp(propositions, "un produit");
59
- // tryToAddWrongProp(propositions, "une différence");
60
- // tryToAddWrongProp(propositions, "un quotient");
61
- // return shuffleProps(propositions, n);
62
- // };
63
- // const isAnswerValid: VEA<Identifiers> = (ans, { answer }) => {
64
- // return ans === answer;
65
- // };
66
- // export const expressionNature: Exercise<Identifiers> = {
67
- // id: "expressionNature",
68
- // connector: "=",
69
- // label:
70
- // "Déterminer la nature d'une expression (somme/produit/différence/quotient)",
71
- // levels: [],
72
- // isSingleStep: true,
73
- // sections: [],
74
- // generator: (nb: number) =>
75
- // getDistinctQuestions(getExpressionNatureQuestion, nb),
76
- // qcmTimer: 60,
77
- // freeTimer: 60,
78
- // getPropositions,
79
- // isAnswerValid,
80
- // subject: "Mathématiques",
81
- // };
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.expressionNature = void 0;
4
+ const exercise_1 = require("../../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
+ const randint_1 = require("../../../../math/utils/random/randint");
7
+ const addNode_1 = require("../../../../tree/nodes/operators/addNode");
8
+ const divideNode_1 = require("../../../../tree/nodes/operators/divideNode");
9
+ const multiplyNode_1 = require("../../../../tree/nodes/operators/multiplyNode");
10
+ const substractNode_1 = require("../../../../tree/nodes/operators/substractNode");
11
+ const diceFlip_1 = require("../../../../utils/diceFlip");
12
+ const getExpressionNatureQuestion = () => {
13
+ let answer = "";
14
+ let statement = "";
15
+ let node;
16
+ let subType;
17
+ // const type = diceFlip(4);
18
+ const a = (0, randint_1.randint)(1, 10).toTree();
19
+ const b = (0, randint_1.randint)(1, 10).toTree();
20
+ const c = (0, randint_1.randint)(1, 10).toTree();
21
+ const d = (0, randint_1.randint)(1, 10).toTree();
22
+ const type = (0, randint_1.randint)(0, 4);
23
+ switch (type) {
24
+ case 0:
25
+ //somme
26
+ subType = (0, diceFlip_1.diceFlip)(5);
27
+ switch (subType) {
28
+ case 1:
29
+ //ab+c
30
+ node = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(a, b), c);
31
+ node.shuffle();
32
+ break;
33
+ case 2:
34
+ //ab + cd
35
+ node = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(a, b), new multiplyNode_1.MultiplyNode(c, d));
36
+ break;
37
+ case 3:
38
+ //a/b + c
39
+ node = new addNode_1.AddNode(new divideNode_1.DivideNode(a, b), c);
40
+ node.shuffle();
41
+ break;
42
+ case 4:
43
+ //ab + c/d
44
+ node = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(a, b), new divideNode_1.DivideNode(c, d));
45
+ node.shuffle();
46
+ break;
47
+ case 5:
48
+ //a/b + c/d
49
+ node = new addNode_1.AddNode(new divideNode_1.DivideNode(a, b), new divideNode_1.DivideNode(c, d));
50
+ break;
51
+ }
52
+ answer = "une somme";
53
+ break;
54
+ case 1:
55
+ //différence
56
+ subType = (0, diceFlip_1.diceFlip)(5);
57
+ switch (subType) {
58
+ case 1:
59
+ //ab+c
60
+ node = new substractNode_1.SubstractNode(new multiplyNode_1.MultiplyNode(a, b), c);
61
+ node.dangerouslyShuffle();
62
+ break;
63
+ case 2:
64
+ //ab - cd
65
+ node = new substractNode_1.SubstractNode(new multiplyNode_1.MultiplyNode(a, b), new multiplyNode_1.MultiplyNode(c, d));
66
+ break;
67
+ case 3:
68
+ //a/b - c
69
+ node = new substractNode_1.SubstractNode(new divideNode_1.DivideNode(a, b), c);
70
+ node.dangerouslyShuffle();
71
+ break;
72
+ case 4:
73
+ //ab - c/d
74
+ node = new substractNode_1.SubstractNode(new multiplyNode_1.MultiplyNode(a, b), new divideNode_1.DivideNode(c, d));
75
+ node.dangerouslyShuffle();
76
+ break;
77
+ case 5:
78
+ //a/b - c/d
79
+ node = new substractNode_1.SubstractNode(new divideNode_1.DivideNode(a, b), new divideNode_1.DivideNode(c, d));
80
+ break;
81
+ }
82
+ answer = "une différence";
83
+ break;
84
+ case 2:
85
+ //produit
86
+ subType = (0, diceFlip_1.diceFlip)(5);
87
+ switch (subType) {
88
+ case 1:
89
+ //(a+b)*c
90
+ node = new multiplyNode_1.MultiplyNode(new addNode_1.AddNode(a, b), c);
91
+ node.shuffle();
92
+ break;
93
+ case 2:
94
+ //(a-b)*c
95
+ node = new multiplyNode_1.MultiplyNode(new substractNode_1.SubstractNode(a, b), c);
96
+ node.shuffle();
97
+ break;
98
+ case 3:
99
+ //(a+b)(c+d)
100
+ node = new multiplyNode_1.MultiplyNode(new addNode_1.AddNode(a, b), new addNode_1.AddNode(c, d));
101
+ break;
102
+ case 4:
103
+ //(a+b)(c-d)
104
+ node = new multiplyNode_1.MultiplyNode(new addNode_1.AddNode(a, b), new substractNode_1.SubstractNode(c, d));
105
+ node.shuffle();
106
+ break;
107
+ case 5:
108
+ //(a-b)(c-d)
109
+ node = new multiplyNode_1.MultiplyNode(new substractNode_1.SubstractNode(a, b), new substractNode_1.SubstractNode(c, d));
110
+ break;
111
+ }
112
+ answer = "un produit";
113
+ break;
114
+ case 3:
115
+ default:
116
+ //quotient
117
+ subType = (0, diceFlip_1.diceFlip)(5);
118
+ switch (subType) {
119
+ case 1:
120
+ //(a+b)/c
121
+ node = new divideNode_1.DivideNode(new addNode_1.AddNode(a, b), c);
122
+ node.dangerouslyShuffle();
123
+ break;
124
+ case 2:
125
+ //(a-b)/c
126
+ node = new divideNode_1.DivideNode(new substractNode_1.SubstractNode(a, b), c);
127
+ node.dangerouslyShuffle();
128
+ break;
129
+ case 3:
130
+ //(a+b)/(c+d)
131
+ node = new divideNode_1.DivideNode(new addNode_1.AddNode(a, b), new addNode_1.AddNode(c, d));
132
+ break;
133
+ case 4:
134
+ //(a+b)/(c-d)
135
+ node = new divideNode_1.DivideNode(new addNode_1.AddNode(a, b), new substractNode_1.SubstractNode(c, d));
136
+ node.dangerouslyShuffle();
137
+ break;
138
+ case 5:
139
+ //(a-b)/(c-d)
140
+ node = new divideNode_1.DivideNode(new substractNode_1.SubstractNode(a, b), new substractNode_1.SubstractNode(c, d));
141
+ break;
142
+ }
143
+ answer = "un quotient";
144
+ break;
145
+ }
146
+ statement = node.toTex();
147
+ const question = {
148
+ answer,
149
+ instruction: `L'expression $${statement}$ est : `,
150
+ keys: [],
151
+ answerFormat: "raw",
152
+ identifiers: { nodeIds: node.toIdentifiers(), type, subType },
153
+ };
154
+ return question;
155
+ };
156
+ const getPropositions = (n, { answer }) => {
157
+ const propositions = [];
158
+ (0, exercise_1.addValidProp)(propositions, answer, "raw");
159
+ (0, exercise_1.tryToAddWrongProp)(propositions, "une somme", "raw");
160
+ (0, exercise_1.tryToAddWrongProp)(propositions, "un produit", "raw");
161
+ (0, exercise_1.tryToAddWrongProp)(propositions, "une différence", "raw");
162
+ (0, exercise_1.tryToAddWrongProp)(propositions, "un quotient", "raw");
163
+ return (0, exercise_1.shuffleProps)(propositions, n);
164
+ };
165
+ const isAnswerValid = (ans, { answer, nodeIds }) => {
166
+ return ans === answer;
167
+ };
168
+ exports.expressionNature = {
169
+ id: "expressionNature",
170
+ connector: "=",
171
+ label: "Déterminer la nature d'une expression (somme/produit/différence/quotient)",
172
+ levels: [],
173
+ isSingleStep: true,
174
+ sections: [],
175
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExpressionNatureQuestion, nb),
176
+ qcmTimer: 60,
177
+ freeTimer: 60,
178
+ getPropositions,
179
+ isAnswerValid,
180
+ subject: "Mathématiques",
181
+ };
@@ -1,3 +1,6 @@
1
1
  export * from "./operationsPriorities";
2
2
  export * from "./operationsPrioritiesWithoutRelative";
3
+ export * from "./expressionNature";
4
+ export * from "./operationsPrioritiesParenthesis";
5
+ export * from "./operationsPrioritiesParenthesisNoRelatives";
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC"}
@@ -16,3 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./operationsPriorities"), exports);
18
18
  __exportStar(require("./operationsPrioritiesWithoutRelative"), exports);
19
+ __exportStar(require("./expressionNature"), exports);
20
+ __exportStar(require("./operationsPrioritiesParenthesis"), exports);
21
+ __exportStar(require("./operationsPrioritiesParenthesisNoRelatives"), exports);
@@ -11,7 +11,7 @@ type Identifiers = {
11
11
  a: number;
12
12
  b: number;
13
13
  c: number;
14
- d: number;
14
+ d: number | undefined;
15
15
  };
16
16
  export declare const operationsPriorities: Exercise<Identifiers>;
17
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"operationsPriorities.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/operationsPriorities.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAgIF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAatD,CAAC"}
1
+ {"version":3,"file":"operationsPriorities.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/operationsPriorities.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvB,CAAC;AAmJF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAatD,CAAC"}
@@ -18,7 +18,7 @@ const multiplyNode_1 = require("../../../../tree/nodes/operators/multiplyNode");
18
18
  const coinFlip_1 = require("../../../../utils/coinFlip");
19
19
  const shuffle_1 = require("../../../../utils/shuffle");
20
20
  const getPriorityQuestions = () => {
21
- const type = (0, randint_1.randint)(1, 6);
21
+ const type = (0, randint_1.randint)(1, 9);
22
22
  let startStatement = "";
23
23
  let answer = "";
24
24
  let a, b, c, d;
@@ -71,15 +71,30 @@ const getPriorityQuestions = () => {
71
71
  startStatement = statement.toTex();
72
72
  answer = (a / b + c / d).toString();
73
73
  break;
74
- case 5: // a*b*c ± d
75
- [b, d] = [1, 2].map((el) => (0, randint_1.randint)(-10, 11, [0]));
76
- a = b * (0, randint_1.randint)(0, 11);
77
- c = d * (0, randint_1.randint)(0, 11);
74
+ case 6: // a*b*c ± d
75
+ [a, b, c, d] = [1, 2, 3, 4].map((el) => (0, randint_1.randint)(-10, 11, [0]));
78
76
  statement = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new numberNode_1.NumberNode(c)), new numberNode_1.NumberNode(d));
79
77
  statement.shuffle();
80
78
  startStatement = statement.toTex();
81
79
  answer = (a * b * c + d).toString();
82
80
  break;
81
+ case 7: //a/b*c et c*a/b
82
+ b = (0, randint_1.randint)(2, 10);
83
+ a = b * (0, randint_1.randint)(2, 10);
84
+ c = (0, randint_1.randint)(2, 10);
85
+ statement = new multiplyNode_1.MultiplyNode(new divideNode_1.DivideNode(a.toTree(), b.toTree()), c.toTree());
86
+ statement.shuffle();
87
+ answer = ((a / b) * c).frenchify();
88
+ startStatement = statement.toTex();
89
+ break;
90
+ case 8: //a+-b+-c
91
+ a = (0, randint_1.randint)(-15, 15);
92
+ b = (0, randint_1.randint)(-10, 10);
93
+ c = b > 0 ? (0, randint_1.randint)(-10, 0) : (0, randint_1.randint)(-10, 10);
94
+ statement = new addNode_1.AddNode(new addNode_1.AddNode(a.toTree(), b.toTree()), c.toTree());
95
+ answer = (a + b + c).frenchify();
96
+ startStatement = statement.toTex();
97
+ break;
83
98
  default:
84
99
  throw Error("impossible");
85
100
  }
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise";
2
+ type Identifiers = {
3
+ nodeIds: any;
4
+ type: number;
5
+ };
6
+ export declare const operationsPrioritiesParenthesis: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=operationsPrioritiesParenthesis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationsPrioritiesParenthesis.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/operationsPrioritiesParenthesis.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAkHF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAcjE,CAAC"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.operationsPrioritiesParenthesis = void 0;
4
+ const exercise_1 = require("../../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
+ const randint_1 = require("../../../../math/utils/random/randint");
7
+ const addNode_1 = require("../../../../tree/nodes/operators/addNode");
8
+ const divideNode_1 = require("../../../../tree/nodes/operators/divideNode");
9
+ const multiplyNode_1 = require("../../../../tree/nodes/operators/multiplyNode");
10
+ const substractNode_1 = require("../../../../tree/nodes/operators/substractNode");
11
+ const coinFlip_1 = require("../../../../utils/coinFlip");
12
+ const getOperationsPrioritiesParenthesisQuestion = () => {
13
+ const type = (0, randint_1.randint)(1, 5);
14
+ let a, b, c, d;
15
+ let statement;
16
+ let answer = "";
17
+ switch (type) {
18
+ case 1: //a*(b+-c)
19
+ a = (0, randint_1.randint)(-10, 11, [0, 1, -1]);
20
+ [b, c] = [1, 2].map((el) => (0, randint_1.randint)(-10, 11, [0]));
21
+ statement = new multiplyNode_1.MultiplyNode(a.toTree(), new addNode_1.AddNode(b.toTree(), c.toTree()));
22
+ statement.shuffle();
23
+ answer = (a * (b + c)).frenchify();
24
+ break;
25
+ case 2: //a/(b+-c) ou (b+-c)/a
26
+ if ((0, coinFlip_1.coinFlip)()) {
27
+ //a/(b+-c)
28
+ b = (0, randint_1.randint)(-10, 11);
29
+ c = (0, randint_1.randint)(-10, 11, [-b]);
30
+ a = (b + c) * (0, randint_1.randint)(2, 10);
31
+ statement = new divideNode_1.DivideNode(a.toTree(), new addNode_1.AddNode(b.toTree(), c.toTree()));
32
+ answer = (a / (b + c)).frenchify();
33
+ }
34
+ else {
35
+ //(b+-c)/a
36
+ a = (0, randint_1.randint)(2, 10);
37
+ let k = a * (0, randint_1.randint)(2, 10);
38
+ b = k - (0, randint_1.randint)(-10, 11, [0]);
39
+ c = k - b;
40
+ statement = new divideNode_1.DivideNode(new addNode_1.AddNode(b.toTree(), c.toTree()), a.toTree());
41
+ answer = ((b + c) / a).frenchify();
42
+ }
43
+ break;
44
+ case 3: // (a+-b)*/(c+-d)
45
+ if ((0, coinFlip_1.coinFlip)()) {
46
+ //(a+-b)*(c+-d)
47
+ [a, b, c, d] = [1, 2, 3, 4].map((el) => (0, randint_1.randint)(-10, 11, [0]));
48
+ statement = new multiplyNode_1.MultiplyNode(new addNode_1.AddNode(a.toTree(), b.toTree()), new addNode_1.AddNode(c.toTree(), d.toTree()));
49
+ answer = ((a + b) * (c + d)).frenchify();
50
+ }
51
+ else {
52
+ //(a+-b)/(c+-d)
53
+ c = (0, randint_1.randint)(-10, 11, [0]);
54
+ d = (0, randint_1.randint)(-10, 11, [0, -c]);
55
+ let k = (0, randint_1.randint)(2, 10) * (c + d);
56
+ a = k - (0, randint_1.randint)(-10, 11, [0]);
57
+ b = k - a;
58
+ statement = new divideNode_1.DivideNode(new addNode_1.AddNode(a.toTree(), b.toTree()), new addNode_1.AddNode(c.toTree(), d.toTree()));
59
+ answer = ((a + b) / (c + d)).frenchify();
60
+ }
61
+ break;
62
+ case 4: // a +- (b+- c/*d)
63
+ default:
64
+ a = (0, randint_1.randint)(-10, 11, [0]);
65
+ b = (0, randint_1.randint)(-10, 11, [0]);
66
+ d = (0, randint_1.randint)(2, 10);
67
+ const isAdd = (0, coinFlip_1.coinFlip)();
68
+ const isDivide = (0, coinFlip_1.coinFlip)();
69
+ if (isDivide)
70
+ c = d * (0, randint_1.randint)(2, 10);
71
+ else
72
+ c = (0, randint_1.randint)(-10, 11, [0]);
73
+ const isAdd2 = (0, coinFlip_1.coinFlip)();
74
+ statement = new (isAdd ? addNode_1.AddNode : substractNode_1.SubstractNode)(a.toTree(), new (isAdd2 ? addNode_1.AddNode : substractNode_1.SubstractNode)(b.toTree(), new (isDivide ? divideNode_1.DivideNode : multiplyNode_1.MultiplyNode)(c.toTree(), d.toTree()), { forceParenthesis: isAdd }));
75
+ answer = statement.evaluate({}).toString();
76
+ break;
77
+ }
78
+ const question = {
79
+ answer,
80
+ instruction: `Calculer : $${statement.toTex()}$`,
81
+ keys: [],
82
+ answerFormat: "tex",
83
+ identifiers: { nodeIds: statement.toIdentifiers(), type },
84
+ };
85
+ return question;
86
+ };
87
+ const getPropositions = (n, { answer }) => {
88
+ const propositions = [];
89
+ (0, exercise_1.addValidProp)(propositions, answer);
90
+ while (propositions.length < n) {
91
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(-100, 100) + "");
92
+ }
93
+ return (0, exercise_1.shuffleProps)(propositions, n);
94
+ };
95
+ const isAnswerValid = (ans, { answer }) => {
96
+ return ans === answer;
97
+ };
98
+ exports.operationsPrioritiesParenthesis = {
99
+ id: "operationsPrioritiesParenthesis",
100
+ connector: "=",
101
+ label: "Priorités opératoires avec parenthèses",
102
+ levels: [],
103
+ isSingleStep: true,
104
+ sections: [],
105
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getOperationsPrioritiesParenthesisQuestion, nb),
106
+ qcmTimer: 60,
107
+ freeTimer: 60,
108
+ getPropositions,
109
+ isAnswerValid,
110
+ subject: "Mathématiques",
111
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise";
2
+ type Identifiers = {
3
+ nodeIds: any;
4
+ type: number;
5
+ };
6
+ export declare const operationsPrioritiesParenthesisNoRelatives: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=operationsPrioritiesParenthesisNoRelatives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationsPrioritiesParenthesisNoRelatives.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/operationsPrioritiesParenthesisNoRelatives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAoIF,eAAO,MAAM,0CAA0C,EAAE,QAAQ,CAAC,WAAW,CAkB1E,CAAC"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.operationsPrioritiesParenthesisNoRelatives = void 0;
4
+ const exercise_1 = require("../../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
+ const randint_1 = require("../../../../math/utils/random/randint");
7
+ const addNode_1 = require("../../../../tree/nodes/operators/addNode");
8
+ const divideNode_1 = require("../../../../tree/nodes/operators/divideNode");
9
+ const multiplyNode_1 = require("../../../../tree/nodes/operators/multiplyNode");
10
+ const substractNode_1 = require("../../../../tree/nodes/operators/substractNode");
11
+ const coinFlip_1 = require("../../../../utils/coinFlip");
12
+ const getOperationsPrioritiesParenthesisNoRelativesQuestion = () => {
13
+ const type = (0, randint_1.randint)(1, 5);
14
+ let a, b, c, d;
15
+ let statement;
16
+ let answer = "";
17
+ switch (type) {
18
+ case 1: //a*(b+-c)
19
+ a = (0, randint_1.randint)(2, 11);
20
+ b = (0, randint_1.randint)(1, 11);
21
+ c = (0, randint_1.randint)(-b, 11, [0]);
22
+ statement = new multiplyNode_1.MultiplyNode(a.toTree(), new addNode_1.AddNode(b.toTree(), c.toTree()));
23
+ statement.shuffle();
24
+ answer = (a * (b + c)).frenchify();
25
+ break;
26
+ case 2: //a/(b+-c) ou (b+-c)/a
27
+ if ((0, coinFlip_1.coinFlip)()) {
28
+ //a/(b+-c)
29
+ b = (0, randint_1.randint)(1, 11);
30
+ c = (0, randint_1.randint)(-b + 1, 11);
31
+ a = (b + c) * (0, randint_1.randint)(2, 10);
32
+ statement = new divideNode_1.DivideNode(a.toTree(), new addNode_1.AddNode(b.toTree(), c.toTree()));
33
+ answer = (a / (b + c)).frenchify();
34
+ }
35
+ else {
36
+ //(b+-c)/a
37
+ a = (0, randint_1.randint)(2, 10);
38
+ let k = a * (0, randint_1.randint)(2, 10);
39
+ b = Math.max(k - (0, randint_1.randint)(-10, 11, [0]), 1);
40
+ c = k - b;
41
+ statement = new divideNode_1.DivideNode(new addNode_1.AddNode(b.toTree(), c.toTree()), a.toTree());
42
+ answer = ((b + c) / a).frenchify();
43
+ }
44
+ break;
45
+ case 3: // (a+-b)*/(c+-d)
46
+ if ((0, coinFlip_1.coinFlip)()) {
47
+ //(a+-b)*(c+-d)
48
+ [a, c] = [1, 2].map((el) => (0, randint_1.randint)(1, 11));
49
+ b = (0, randint_1.randint)(-a, 11, [0]);
50
+ d = (0, randint_1.randint)(-c, 11, [0]);
51
+ statement = new multiplyNode_1.MultiplyNode(new addNode_1.AddNode(a.toTree(), b.toTree()), new addNode_1.AddNode(c.toTree(), d.toTree()));
52
+ answer = ((a + b) * (c + d)).frenchify();
53
+ }
54
+ else {
55
+ //(a+-b)/(c+-d)
56
+ c = (0, randint_1.randint)(1, 11);
57
+ d = (0, randint_1.randint)(-c + 1, 11, [0]);
58
+ let k = (0, randint_1.randint)(2, 10) * (c + d);
59
+ a = Math.max(k - (0, randint_1.randint)(-10, 11, [0]), 1);
60
+ b = k - a;
61
+ statement = new divideNode_1.DivideNode(new addNode_1.AddNode(a.toTree(), b.toTree()), new addNode_1.AddNode(c.toTree(), d.toTree()));
62
+ answer = ((a + b) / (c + d)).frenchify();
63
+ }
64
+ break;
65
+ case 4: // a +- (b+- c/*d)
66
+ default:
67
+ d = (0, randint_1.randint)(2, 10);
68
+ const isAdd = (0, coinFlip_1.coinFlip)();
69
+ const isDivide = (0, coinFlip_1.coinFlip)();
70
+ const isAdd2 = (0, coinFlip_1.coinFlip)();
71
+ let secondValue = 0;
72
+ if (isDivide)
73
+ c = d * (0, randint_1.randint)(2, 10);
74
+ else
75
+ c = (0, randint_1.randint)(1, 11);
76
+ if (isAdd2) {
77
+ b = (0, randint_1.randint)(1, 11);
78
+ secondValue = b + (isDivide ? c / d : c * d);
79
+ }
80
+ else {
81
+ b = (0, randint_1.randint)(isDivide ? c / d + 1 : c * d + 1, isDivide ? c / d + 10 : c * d + 10);
82
+ secondValue = b - (isDivide ? c / d : c * d);
83
+ }
84
+ if (isAdd) {
85
+ a = (0, randint_1.randint)(1, 11);
86
+ }
87
+ else {
88
+ a = (0, randint_1.randint)(secondValue + 1, secondValue + 10);
89
+ }
90
+ statement = new (isAdd ? addNode_1.AddNode : substractNode_1.SubstractNode)(a.toTree(), new (isAdd2 ? addNode_1.AddNode : substractNode_1.SubstractNode)(b.toTree(), new (isDivide ? divideNode_1.DivideNode : multiplyNode_1.MultiplyNode)(c.toTree(), d.toTree()), { forceParenthesis: isAdd }));
91
+ answer = statement.evaluate({}).toString();
92
+ break;
93
+ }
94
+ const question = {
95
+ answer,
96
+ instruction: `Calculer : $${statement.toTex()}$`,
97
+ keys: [],
98
+ answerFormat: "tex",
99
+ identifiers: { nodeIds: statement.toIdentifiers(), type },
100
+ };
101
+ return question;
102
+ };
103
+ const getPropositions = (n, { answer }) => {
104
+ const propositions = [];
105
+ (0, exercise_1.addValidProp)(propositions, answer);
106
+ while (propositions.length < n) {
107
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(10, 100) + "");
108
+ }
109
+ return (0, exercise_1.shuffleProps)(propositions, n);
110
+ };
111
+ const isAnswerValid = (ans, { answer }) => {
112
+ return ans === answer;
113
+ };
114
+ exports.operationsPrioritiesParenthesisNoRelatives = {
115
+ id: "operationsPrioritiesParenthesisNoRelatives",
116
+ connector: "=",
117
+ label: "Priorités opératoires avec parenthèses (sans relatifs)",
118
+ levels: [],
119
+ isSingleStep: true,
120
+ sections: [],
121
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getOperationsPrioritiesParenthesisNoRelativesQuestion, nb),
122
+ qcmTimer: 60,
123
+ freeTimer: 60,
124
+ getPropositions,
125
+ isAnswerValid,
126
+ subject: "Mathématiques",
127
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"operationsPrioritiesWithoutRelative.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/operationsPrioritiesWithoutRelative.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA4QF,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CAAC,WAAW,CAcrE,CAAC"}
1
+ {"version":3,"file":"operationsPrioritiesWithoutRelative.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/operations/operationsPrioritiesWithoutRelative.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAWlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAiSF,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CAAC,WAAW,CAcrE,CAAC"}
@@ -18,7 +18,7 @@ const multiplyNode_1 = require("../../../../tree/nodes/operators/multiplyNode");
18
18
  const coinFlip_1 = require("../../../../utils/coinFlip");
19
19
  const shuffle_1 = require("../../../../utils/shuffle");
20
20
  const getOperationsPrioritiesWithoutRelative = () => {
21
- const type = (0, randint_1.randint)(1, 7);
21
+ const type = (0, randint_1.randint)(1, 9);
22
22
  const flip = (0, randint_1.randint)(1, 4);
23
23
  let startStatement = "";
24
24
  let answer = "";
@@ -161,6 +161,23 @@ const getOperationsPrioritiesWithoutRelative = () => {
161
161
  answer = (a * b * c + d).toString();
162
162
  }
163
163
  break;
164
+ case 7: //a/b*c et c*a/b
165
+ b = (0, randint_1.randint)(2, 10);
166
+ a = b * (0, randint_1.randint)(2, 10);
167
+ c = (0, randint_1.randint)(2, 10);
168
+ statement = new multiplyNode_1.MultiplyNode(new divideNode_1.DivideNode(a.toTree(), b.toTree()), c.toTree());
169
+ statement.shuffle();
170
+ answer = ((a / b) * c).frenchify();
171
+ startStatement = statement.toTex();
172
+ break;
173
+ case 8: //a+-b+-c
174
+ a = (0, randint_1.randint)(5, 15);
175
+ b = (0, randint_1.randint)(-a, 10);
176
+ c = b > 0 ? (0, randint_1.randint)(-(a + b), 0) : (0, randint_1.randint)(-(a + b), 10);
177
+ statement = new addNode_1.AddNode(new addNode_1.AddNode(a.toTree(), b.toTree()), c.toTree());
178
+ answer = (a + b + c).frenchify();
179
+ startStatement = statement.toTex();
180
+ break;
164
181
  default:
165
182
  throw Error("impossible");
166
183
  }