math-exercises 1.3.32 → 1.3.34

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 (351) hide show
  1. package/README.md +73 -73
  2. package/lib/exercises/calcul/addAndSub.d.ts +6 -6
  3. package/lib/exercises/calcul/addAndSub.js +41 -41
  4. package/lib/exercises/calcul/addAndSubWithoutRelatives.d.ts +6 -6
  5. package/lib/exercises/calcul/addAndSubWithoutRelatives.js +51 -51
  6. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.d.ts +3 -3
  7. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +37 -37
  8. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.d.ts +3 -3
  9. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +34 -34
  10. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.d.ts +3 -3
  11. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +34 -34
  12. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.d.ts +3 -3
  13. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.js +69 -69
  14. package/lib/exercises/calcul/fractions/fractionsDivision.d.ts +3 -3
  15. package/lib/exercises/calcul/fractions/fractionsDivision.js +31 -31
  16. package/lib/exercises/calcul/fractions/fractionsProduct.d.ts +3 -3
  17. package/lib/exercises/calcul/fractions/fractionsProduct.js +30 -30
  18. package/lib/exercises/calcul/fractions/fractionsSum.d.ts +3 -3
  19. package/lib/exercises/calcul/fractions/fractionsSum.js +30 -30
  20. package/lib/exercises/calcul/fractions/simplifyFraction.d.ts +3 -3
  21. package/lib/exercises/calcul/fractions/simplifyFraction.js +26 -26
  22. package/lib/exercises/calcul/mentalCaluls.ts/mentalAddAndSub.d.ts +3 -3
  23. package/lib/exercises/calcul/mentalCaluls.ts/mentalAddAndSub.js +46 -46
  24. package/lib/exercises/calcul/mentalCaluls.ts/mentalDivisions.d.ts +3 -3
  25. package/lib/exercises/calcul/mentalCaluls.ts/mentalDivisions.js +64 -64
  26. package/lib/exercises/calcul/mentalCaluls.ts/mentalMultiplications.d.ts +3 -3
  27. package/lib/exercises/calcul/mentalCaluls.ts/mentalMultiplications.js +51 -51
  28. package/lib/exercises/calcul/mentalCaluls.ts/mentalPercentage.d.ts +3 -3
  29. package/lib/exercises/calcul/mentalCaluls.ts/mentalPercentage.js +67 -67
  30. package/lib/exercises/calcul/operations/operationsPriorities.d.ts +10 -10
  31. package/lib/exercises/calcul/operations/operationsPriorities.js +100 -100
  32. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.d.ts +10 -10
  33. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.js +181 -181
  34. package/lib/exercises/calcul/rounding/rounding.d.ts +19 -19
  35. package/lib/exercises/calcul/rounding/rounding.js +87 -87
  36. package/lib/exercises/calculLitteral/distributivity/allIdentities.d.ts +3 -3
  37. package/lib/exercises/calculLitteral/distributivity/allIdentities.js +27 -27
  38. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.d.ts +3 -3
  39. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.js +32 -32
  40. package/lib/exercises/calculLitteral/distributivity/firstIdentity.d.ts +3 -3
  41. package/lib/exercises/calculLitteral/distributivity/firstIdentity.js +33 -33
  42. package/lib/exercises/calculLitteral/distributivity/secondIdentity.d.ts +3 -3
  43. package/lib/exercises/calculLitteral/distributivity/secondIdentity.js +34 -34
  44. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.d.ts +3 -3
  45. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.js +34 -34
  46. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.d.ts +3 -3
  47. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.js +33 -33
  48. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.d.ts +3 -3
  49. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +47 -47
  50. package/lib/exercises/calculLitteral/equation/equationType1Exercise.d.ts +6 -6
  51. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +39 -39
  52. package/lib/exercises/calculLitteral/equation/equationType2Exercise.d.ts +6 -6
  53. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +42 -42
  54. package/lib/exercises/calculLitteral/equation/equationType3Exercise.d.ts +6 -6
  55. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +43 -43
  56. package/lib/exercises/calculLitteral/equation/equationType4Exercise.d.ts +6 -6
  57. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +45 -45
  58. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts +3 -3
  59. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.js +30 -30
  60. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.d.ts +3 -3
  61. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.js +32 -32
  62. package/lib/exercises/calculLitteral/equation/fractionEquation.d.ts +3 -3
  63. package/lib/exercises/calculLitteral/equation/fractionEquation.js +39 -39
  64. package/lib/exercises/calculLitteral/equation/multiplicationEquation.d.ts +3 -3
  65. package/lib/exercises/calculLitteral/equation/multiplicationEquation.js +39 -39
  66. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.d.ts +3 -3
  67. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.js +34 -34
  68. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.d.ts +3 -3
  69. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.js +35 -35
  70. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.d.ts +3 -3
  71. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.js +34 -34
  72. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.d.ts +6 -6
  73. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +40 -40
  74. package/lib/exercises/conversion/aeraConversion.d.ts +3 -3
  75. package/lib/exercises/conversion/aeraConversion.js +32 -32
  76. package/lib/exercises/conversion/capacityConversion.d.ts +3 -3
  77. package/lib/exercises/conversion/capacityConversion.js +30 -30
  78. package/lib/exercises/conversion/lengthConversion.d.ts +3 -3
  79. package/lib/exercises/conversion/lengthConversion.js +30 -30
  80. package/lib/exercises/conversion/massConversion.d.ts +3 -3
  81. package/lib/exercises/conversion/massConversion.js +30 -30
  82. package/lib/exercises/conversion/volumeCapacityConversion.d.ts +3 -3
  83. package/lib/exercises/conversion/volumeCapacityConversion.js +47 -47
  84. package/lib/exercises/conversion/volumeConversion.d.ts +3 -3
  85. package/lib/exercises/conversion/volumeConversion.js +32 -32
  86. package/lib/exercises/derivation/derivative/constanteDerivative.d.ts +3 -3
  87. package/lib/exercises/derivation/derivative/constanteDerivative.js +27 -27
  88. package/lib/exercises/derivation/derivative/firstDegreeDerivative.d.ts +3 -3
  89. package/lib/exercises/derivation/derivative/firstDegreeDerivative.js +29 -29
  90. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.d.ts +3 -3
  91. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.js +27 -27
  92. package/lib/exercises/derivation/derivative/powerFunctionDerivative.d.ts +3 -3
  93. package/lib/exercises/derivation/derivative/powerFunctionDerivative.js +35 -35
  94. package/lib/exercises/derivation/derivative/rootFunctionDerivative.d.ts +3 -3
  95. package/lib/exercises/derivation/derivative/rootFunctionDerivative.js +40 -40
  96. package/lib/exercises/derivation/derivative/secondDegreeDerivative.d.ts +3 -3
  97. package/lib/exercises/derivation/derivative/secondDegreeDerivative.js +30 -30
  98. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.d.ts +3 -3
  99. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.js +33 -33
  100. package/lib/exercises/derivation/derivative/usualderivative.d.ts +3 -3
  101. package/lib/exercises/derivation/derivative/usualderivative.js +36 -36
  102. package/lib/exercises/exercise.d.ts +21 -21
  103. package/lib/exercises/exercise.js +7 -7
  104. package/lib/exercises/exercises.d.ts +1 -1
  105. package/lib/exercises/exercises.js +224 -224
  106. package/lib/exercises/geometry/cartesian/derivativeNumberReading.d.ts +3 -3
  107. package/lib/exercises/geometry/cartesian/derivativeNumberReading.js +51 -51
  108. package/lib/exercises/geometry/cartesian/derivativeNumberReading2.js +91 -91
  109. package/lib/exercises/geometry/cartesian/leadingCoefficient.d.ts +3 -3
  110. package/lib/exercises/geometry/cartesian/leadingCoefficient.js +60 -60
  111. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV1.d.ts +3 -3
  112. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV1.js +30 -30
  113. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV2.d.ts +3 -3
  114. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV2.js +29 -29
  115. package/lib/exercises/geometry/cartesian/midpoint.d.ts +3 -3
  116. package/lib/exercises/geometry/cartesian/midpoint.js +31 -31
  117. package/lib/exercises/geometry/euclidean/TriangleArea.d.ts +3 -3
  118. package/lib/exercises/geometry/euclidean/TriangleArea.js +53 -53
  119. package/lib/exercises/geometry/euclidean/pythagore.d.ts +3 -3
  120. package/lib/exercises/geometry/euclidean/pythagore.js +31 -31
  121. package/lib/exercises/geometry/euclidean/pythagoreCalcul.d.ts +3 -3
  122. package/lib/exercises/geometry/euclidean/pythagoreCalcul.js +60 -60
  123. package/lib/exercises/geometry/euclidean/rightTriangleArea.d.ts +3 -3
  124. package/lib/exercises/geometry/euclidean/rightTriangleArea.js +39 -39
  125. package/lib/exercises/geometry/euclidean/thales.d.ts +3 -3
  126. package/lib/exercises/geometry/euclidean/thales.js +67 -67
  127. package/lib/exercises/geometry/euclidean/thalesCalcul.d.ts +3 -3
  128. package/lib/exercises/geometry/euclidean/thalesCalcul.js +104 -104
  129. package/lib/exercises/geometry/euclidean/trigonometry.d.ts +3 -3
  130. package/lib/exercises/geometry/euclidean/trigonometry.js +55 -55
  131. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.d.ts +3 -3
  132. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.js +42 -42
  133. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.d.ts +3 -3
  134. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.js +52 -52
  135. package/lib/exercises/geometry/vectors/scalarProductViaCoords.d.ts +3 -3
  136. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +30 -30
  137. package/lib/exercises/geometry/vectors/scalarProductViaNorms.js +27 -27
  138. package/lib/exercises/percent/applyPercent.d.ts +3 -3
  139. package/lib/exercises/percent/applyPercent.js +41 -41
  140. package/lib/exercises/percent/averageEvolutionRate.d.ts +3 -3
  141. package/lib/exercises/percent/averageEvolutionRate.js +30 -30
  142. package/lib/exercises/percent/globalPercent.d.ts +3 -3
  143. package/lib/exercises/percent/globalPercent.js +44 -44
  144. package/lib/exercises/percent/reciprocalPercentage.d.ts +3 -3
  145. package/lib/exercises/percent/reciprocalPercentage.js +32 -32
  146. package/lib/exercises/powers/powersDivision.d.ts +7 -7
  147. package/lib/exercises/powers/powersDivision.js +46 -46
  148. package/lib/exercises/powers/powersOfTenToDecimal.d.ts +6 -6
  149. package/lib/exercises/powers/powersOfTenToDecimal.js +34 -34
  150. package/lib/exercises/powers/powersPower.d.ts +7 -7
  151. package/lib/exercises/powers/powersPower.js +45 -45
  152. package/lib/exercises/powers/powersProduct.d.ts +7 -7
  153. package/lib/exercises/powers/powersProduct.js +46 -46
  154. package/lib/exercises/powers/scientificToDecimal.d.ts +6 -6
  155. package/lib/exercises/powers/scientificToDecimal.js +39 -39
  156. package/lib/exercises/proba/conditionalProbability.d.ts +3 -3
  157. package/lib/exercises/proba/conditionalProbability.js +74 -74
  158. package/lib/exercises/proba/marginalAndConditionalFrequency.d.ts +3 -3
  159. package/lib/exercises/proba/marginalAndConditionalFrequency.js +81 -81
  160. package/lib/exercises/proba/probabilityTree.d.ts +3 -3
  161. package/lib/exercises/proba/probabilityTree.js +105 -105
  162. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.d.ts +3 -3
  163. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.js +31 -31
  164. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts +3 -3
  165. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.js +31 -31
  166. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.d.ts +3 -3
  167. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.js +31 -31
  168. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.d.ts +3 -3
  169. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.js +30 -30
  170. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts +3 -3
  171. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +30 -30
  172. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.d.ts +3 -3
  173. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.js +40 -40
  174. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.d.ts +3 -3
  175. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.js +36 -36
  176. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.d.ts +3 -3
  177. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.js +35 -35
  178. package/lib/exercises/sequences/geometric/geometricFindReason.d.ts +3 -3
  179. package/lib/exercises/sequences/geometric/geometricFindReason.js +31 -31
  180. package/lib/exercises/sequences/geometric/geometricReasonUsage.d.ts +3 -3
  181. package/lib/exercises/sequences/geometric/geometricReasonUsage.js +30 -30
  182. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts +7 -7
  183. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.js +30 -30
  184. package/lib/exercises/squareRoots/simpifySquareRoot.d.ts +3 -3
  185. package/lib/exercises/squareRoots/simpifySquareRoot.js +29 -29
  186. package/lib/exercises/trigonometry/mainRemarkableValues.d.ts +3 -3
  187. package/lib/exercises/trigonometry/mainRemarkableValues.js +30 -30
  188. package/lib/exercises/trigonometry/remarkableValues.d.ts +3 -3
  189. package/lib/exercises/trigonometry/remarkableValues.js +30 -30
  190. package/lib/exercises/utils/getDistinctQuestions.d.ts +3 -3
  191. package/lib/exercises/utils/getDistinctQuestions.js +28 -28
  192. package/lib/index.d.ts +2 -2
  193. package/lib/index.js +6 -6
  194. package/lib/math/geometry/droite.d.ts +19 -19
  195. package/lib/math/geometry/droite.js +62 -62
  196. package/lib/math/geometry/point.d.ts +29 -29
  197. package/lib/math/geometry/point.js +55 -55
  198. package/lib/math/geometry/triangles.d.ts +53 -53
  199. package/lib/math/geometry/triangles.js +183 -183
  200. package/lib/math/geometry/vector.d.ts +15 -15
  201. package/lib/math/geometry/vector.js +31 -31
  202. package/lib/math/numbers/decimals/decimal.d.ts +24 -24
  203. package/lib/math/numbers/decimals/decimal.js +140 -140
  204. package/lib/math/numbers/epsilon.d.ts +1 -1
  205. package/lib/math/numbers/epsilon.js +10 -10
  206. package/lib/math/numbers/integer/integer.d.ts +14 -14
  207. package/lib/math/numbers/integer/integer.js +68 -68
  208. package/lib/math/numbers/integer/power.d.ts +13 -13
  209. package/lib/math/numbers/integer/power.js +52 -52
  210. package/lib/math/numbers/nombre.d.ts +13 -13
  211. package/lib/math/numbers/nombre.js +10 -10
  212. package/lib/math/numbers/rationals/rational.d.ts +25 -25
  213. package/lib/math/numbers/rationals/rational.js +113 -113
  214. package/lib/math/numbers/reals/real.d.ts +9 -9
  215. package/lib/math/numbers/reals/real.js +16 -16
  216. package/lib/math/numbers/reals/squareRoot.d.ts +18 -18
  217. package/lib/math/numbers/reals/squareRoot.js +63 -63
  218. package/lib/math/polynomials/affine.d.ts +15 -15
  219. package/lib/math/polynomials/affine.js +42 -42
  220. package/lib/math/polynomials/polynomial.d.ts +25 -25
  221. package/lib/math/polynomials/polynomial.js +131 -131
  222. package/lib/math/sequences/arithmeticSequence.js +1 -1
  223. package/lib/math/sequences/geometricSequence.d.ts +3 -3
  224. package/lib/math/sequences/geometricSequence.js +8 -8
  225. package/lib/math/sequences/sequence.d.ts +22 -22
  226. package/lib/math/sequences/sequence.js +21 -21
  227. package/lib/math/sets/discreteSet.d.ts +10 -10
  228. package/lib/math/sets/discreteSet.js +28 -28
  229. package/lib/math/sets/emptySet.js +6 -6
  230. package/lib/math/sets/intervals/intervals.d.ts +26 -26
  231. package/lib/math/sets/intervals/intervals.js +104 -104
  232. package/lib/math/sets/mathSet.d.ts +7 -7
  233. package/lib/math/sets/mathSet.js +10 -10
  234. package/lib/math/sets/mathSetInterface.d.ts +5 -5
  235. package/lib/math/sets/mathSetInterface.js +2 -2
  236. package/lib/math/trigonometry/remarkableValue.d.ts +10 -10
  237. package/lib/math/trigonometry/remarkableValue.js +29 -29
  238. package/lib/math/trigonometry/remarkableValues.d.ts +2 -2
  239. package/lib/math/trigonometry/remarkableValues.js +51 -51
  240. package/lib/math/utils/arithmetic/coprimesOf.d.ts +1 -1
  241. package/lib/math/utils/arithmetic/coprimesOf.js +13 -13
  242. package/lib/math/utils/arithmetic/dividersOf.d.ts +1 -1
  243. package/lib/math/utils/arithmetic/dividersOf.js +12 -12
  244. package/lib/math/utils/arithmetic/gcd.d.ts +1 -1
  245. package/lib/math/utils/arithmetic/gcd.js +7 -7
  246. package/lib/math/utils/arithmetic/isSquare.d.ts +1 -1
  247. package/lib/math/utils/arithmetic/isSquare.js +7 -7
  248. package/lib/math/utils/arithmetic/lcd.d.ts +1 -1
  249. package/lib/math/utils/arithmetic/lcd.js +12 -12
  250. package/lib/math/utils/arithmetic/nonCoprimesOf.d.ts +1 -1
  251. package/lib/math/utils/arithmetic/nonCoprimesOf.js +13 -13
  252. package/lib/math/utils/arithmetic/nonDividersOf.d.ts +1 -1
  253. package/lib/math/utils/arithmetic/nonDividersOf.js +14 -14
  254. package/lib/math/utils/arithmetic/primeFactors.d.ts +5 -5
  255. package/lib/math/utils/arithmetic/primeFactors.js +22 -22
  256. package/lib/math/utils/decimals/decimalPartLengthOf.d.ts +1 -1
  257. package/lib/math/utils/decimals/decimalPartLengthOf.js +14 -14
  258. package/lib/math/utils/random/randTupleInt.d.ts +13 -13
  259. package/lib/math/utils/random/randTupleInt.js +30 -30
  260. package/lib/math/utils/random/randint.d.ts +4 -4
  261. package/lib/math/utils/random/randint.js +18 -18
  262. package/lib/math/utils/round.d.ts +1 -1
  263. package/lib/math/utils/round.js +8 -8
  264. package/lib/server.d.ts +1 -1
  265. package/lib/server.js +53 -53
  266. package/lib/tree/nodes/functions/cosNode.d.ts +9 -9
  267. package/lib/tree/nodes/functions/cosNode.js +21 -21
  268. package/lib/tree/nodes/functions/functionNode.d.ts +14 -14
  269. package/lib/tree/nodes/functions/functionNode.js +20 -20
  270. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -7
  271. package/lib/tree/nodes/functions/oppositeNode.js +26 -26
  272. package/lib/tree/nodes/functions/sinNode.js +1 -1
  273. package/lib/tree/nodes/functions/sqrtNode.d.ts +8 -8
  274. package/lib/tree/nodes/functions/sqrtNode.js +18 -18
  275. package/lib/tree/nodes/node.d.ts +12 -12
  276. package/lib/tree/nodes/node.js +11 -11
  277. package/lib/tree/nodes/numbers/constantNode.d.ts +9 -9
  278. package/lib/tree/nodes/numbers/constantNode.js +18 -18
  279. package/lib/tree/nodes/numbers/numberNode.d.ts +10 -10
  280. package/lib/tree/nodes/numbers/numberNode.js +19 -19
  281. package/lib/tree/nodes/numbers/piNode.d.ts +2 -2
  282. package/lib/tree/nodes/numbers/piNode.js +5 -5
  283. package/lib/tree/nodes/operators/addNode.d.ts +7 -7
  284. package/lib/tree/nodes/operators/addNode.js +19 -19
  285. package/lib/tree/nodes/operators/divideNode.d.ts +11 -11
  286. package/lib/tree/nodes/operators/divideNode.js +34 -34
  287. package/lib/tree/nodes/operators/equalNode.d.ts +7 -7
  288. package/lib/tree/nodes/operators/equalNode.js +16 -16
  289. package/lib/tree/nodes/operators/fractionNode.d.ts +11 -11
  290. package/lib/tree/nodes/operators/fractionNode.js +20 -20
  291. package/lib/tree/nodes/operators/multiplyNode.d.ts +7 -7
  292. package/lib/tree/nodes/operators/multiplyNode.js +43 -43
  293. package/lib/tree/nodes/operators/operatorNode.d.ts +21 -21
  294. package/lib/tree/nodes/operators/operatorNode.js +35 -35
  295. package/lib/tree/nodes/operators/powerNode.d.ts +7 -7
  296. package/lib/tree/nodes/operators/powerNode.js +33 -33
  297. package/lib/tree/nodes/operators/substractNode.d.ts +7 -7
  298. package/lib/tree/nodes/operators/substractNode.js +24 -24
  299. package/lib/tree/nodes/variables/variableNode.d.ts +8 -8
  300. package/lib/tree/nodes/variables/variableNode.js +19 -19
  301. package/lib/tree/parsers/derivateParser.js +62 -62
  302. package/lib/tree/parsers/simplify.d.ts +2 -2
  303. package/lib/tree/parsers/simplify.js +52 -52
  304. package/lib/utils/arrayEqual.d.ts +1 -1
  305. package/lib/utils/arrayEqual.js +13 -13
  306. package/lib/utils/coinFlip.d.ts +1 -1
  307. package/lib/utils/coinFlip.js +7 -7
  308. package/lib/utils/random.d.ts +1 -1
  309. package/lib/utils/random.js +7 -7
  310. package/lib/utils/shuffle.d.ts +1 -1
  311. package/lib/utils/shuffle.js +15 -15
  312. package/package.json +50 -50
  313. package/lib/exercises/calcul/operationsPriorities.js +0 -88
  314. package/lib/exercises/derivation/derivative/affineDerivative.d.ts +0 -4
  315. package/lib/exercises/derivation/derivative/affineDerivative.d.ts.map +0 -1
  316. package/lib/exercises/derivation/derivative/affineDerivative.js +0 -27
  317. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts +0 -1
  318. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts.map +0 -1
  319. package/lib/exercises/derivation/derivative/thridDegreeDerivative.js +0 -1
  320. package/lib/geometry/point.js +0 -27
  321. package/lib/geometry/vector.js +0 -31
  322. package/lib/mathutils/arithmetic/coprimesOf.js +0 -13
  323. package/lib/mathutils/arithmetic/dividersOf.js +0 -12
  324. package/lib/mathutils/arithmetic/gcd.js +0 -7
  325. package/lib/mathutils/arithmetic/isSquare.js +0 -7
  326. package/lib/mathutils/arithmetic/lcd.js +0 -12
  327. package/lib/mathutils/arithmetic/nonCoprimesOf.js +0 -13
  328. package/lib/mathutils/arithmetic/nonDividersOf.js +0 -14
  329. package/lib/mathutils/arithmetic/primeFactors.js +0 -22
  330. package/lib/mathutils/decimals/decimalPartLengthOf.js +0 -14
  331. package/lib/mathutils/random/randTupleInt.js +0 -30
  332. package/lib/mathutils/random/randint.js +0 -18
  333. package/lib/mathutils/round.js +0 -8
  334. package/lib/numbers/decimals/decimal.js +0 -140
  335. package/lib/numbers/epsilon.js +0 -10
  336. package/lib/numbers/integer/integer.js +0 -68
  337. package/lib/numbers/integer/power.js +0 -52
  338. package/lib/numbers/nombre.js +0 -10
  339. package/lib/numbers/rationals/rational.js +0 -113
  340. package/lib/numbers/reals/real.js +0 -16
  341. package/lib/numbers/reals/squareRoot.js +0 -63
  342. package/lib/polynomials/affine.js +0 -42
  343. package/lib/polynomials/polynomial.js +0 -125
  344. package/lib/sets/discreteSet.js +0 -28
  345. package/lib/sets/emptySet.js +0 -6
  346. package/lib/sets/intervals/intervals.js +0 -108
  347. package/lib/sets/intervals/union.js +0 -1
  348. package/lib/sets/mathSet.js +0 -10
  349. package/lib/sets/mathSetInterface.js +0 -2
  350. package/lib/tree/parsers/latexParser.js +0 -110
  351. package/lib/utils/coin.js +0 -7
@@ -1,104 +1,104 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getThales = exports.thalesCalcul = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const randint_1 = require("../../../math/utils/random/randint");
6
- const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
7
- const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
8
- const simplify_1 = require("../../../tree/parsers/simplify");
9
- const coinFlip_1 = require("../../../utils/coinFlip");
10
- exports.thalesCalcul = {
11
- id: 'thalesCalcul',
12
- connector: '=',
13
- instruction: '',
14
- label: 'Utiliser le théoreme de Thalès pour faire des calculs',
15
- levels: ['5', '4', '3', '2'],
16
- isSingleStep: false,
17
- section: 'Géométrie euclidienne',
18
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThales, nb),
19
- };
20
- function getThales() {
21
- const vertices = [];
22
- const code = 65 + (0, randint_1.randint)(0, 22); // Générer un code de caractère majuscule aléatoire (A-Z)
23
- for (let i = 0; i < 5; i++)
24
- vertices.push(String.fromCharCode(code + i));
25
- const [xA, yA] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
26
- let xB, yB, xC, yC;
27
- let d1, d2, d3; // distance entre le point A et B
28
- let theta = 0; // angle entre AB et AC
29
- do {
30
- [xB, yB, xC, yC] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
31
- d1 = Math.hypot(xB - xA, yB - yA); // Calculer la distance entre A et B
32
- d2 = Math.hypot(xC - xA, yC - yA); // Calculer la distance entre A et C
33
- theta = Math.acos(((xB - xA) * (xC - xA) + (yB - yA) * (yC - yA)) / (d1 * d2));
34
- } while (!theta || theta < 0.35 || theta > 2.1 || d1 / d2 > 1.3 || d1 / d2 < 0.7);
35
- d3 = Math.sqrt(d1 ** 2 + d2 ** 2 - 2 * d1 * d2 * Math.cos(theta)); // Calculer la distance entre C et B
36
- // CB² = AB² * AC² - 2*AB*AC*cos(theta) : pythagore généralisé
37
- const factor = (0, randint_1.randint)(-5, 6, [-2, -1, 0, 1, 2]) / 10; // facteur = AB/AE, Pour que l'affichage soit acceptable, les valeurs de factor sont +- 0.5 0.4 0.3
38
- const [xD, yD] = [xA + factor * (xB - xA), yA + factor * (yB - yA)];
39
- const [xE, yE] = [xA + factor * (xC - xA), yA + factor * (yC - yA)];
40
- const xMin = Math.min(xA, xB, xC, xD, xE);
41
- const xMax = Math.max(xA, xB, xC, xD, xE);
42
- const yMin = Math.min(yA, yB, yC, yD, yE);
43
- const yMax = Math.max(yA, yB, yC, yD, yE);
44
- // AB AC BC AD AE
45
- const sides = [
46
- `${vertices[0]}${vertices[1]}`,
47
- `${vertices[0]}${vertices[3]}`,
48
- `${vertices[0]}${vertices[2]}`,
49
- `${vertices[0]}${vertices[4]}`,
50
- `${vertices[1]}${vertices[2]}`,
51
- `${vertices[3]}${vertices[4]}`,
52
- ];
53
- // round pour avoir des valeurs dans N tout en gardant les proportions pour que ça soit cohérent. sides[i] a pour longueur sideLengths[i]
54
- const sideLengths = [d1, factor * d1, d2, factor * d2, d3, factor * d3].map((el) => Math.round(Math.abs(el)));
55
- const rand = (0, randint_1.randint)(0, 3);
56
- let rand2 = (0, randint_1.randint)(0, 3, [rand]);
57
- if (sideLengths[2 * rand] === sideLengths[2 * rand2])
58
- rand2 = (0, randint_1.randint)(0, 3, [rand, rand2]); // condition pour pas prendre 2 longueurs identiques
59
- let instruction = `Dans la figure ci-dessous, nous avons (${vertices[3]}${vertices[4]})//(${vertices[1]}${vertices[2]}), `;
60
- let statement;
61
- let startStatement;
62
- if ((0, coinFlip_1.coinFlip)()) {
63
- // a/b = c/d on cherche c
64
- instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2]} = $${sideLengths[2 * rand2]}$.$\\\\$Déterminer ${sides[2 * rand2 + 1]}`;
65
- startStatement = `${sides[2 * rand2 + 1]}`;
66
- statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2] * sideLengths[2 * rand + 1]), new numberNode_1.NumberNode(sideLengths[2 * rand])));
67
- }
68
- else {
69
- // a/b = c/d on cherche d
70
- instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2 + 1]} = $${sideLengths[2 * rand2 + 1]}$.$\\\\$Déterminer ${sides[2 * rand2]}`;
71
- startStatement = `${sides[2 * rand2]}`;
72
- statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2 + 1] * sideLengths[2 * rand]), new numberNode_1.NumberNode(sideLengths[2 * rand + 1])));
73
- }
74
- const commands = [
75
- `${vertices[0]} = Point({${xA}, ${yA}})`,
76
- `${vertices[1]} = Point({${xB}, ${yB}})`,
77
- `${vertices[2]} = Point({${xC}, ${yC}})`,
78
- `${vertices[3]} = Point(${vertices[0]}, Vector(${factor}Vector(${vertices[0]},${vertices[1]})))`,
79
- `${vertices[4]} = Intersect(Line(${vertices[3]}, Line(${vertices[1]}, ${vertices[2]})) , Line(${vertices[0]}, ${vertices[2]}))`,
80
- `l = Segment(${vertices[0]}, ${vertices[1]})`,
81
- `i = Segment(${vertices[0]}, ${vertices[2]})`,
82
- `j = Segment(${vertices[1]}, ${vertices[2]})`,
83
- `k = Segment(${vertices[3]}, ${vertices[4]})`,
84
- `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[3]}))`,
85
- `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[4]}))`,
86
- `ShowAxes(false)`,
87
- `ShowGrid(false)`,
88
- `ShowLabel(${vertices[0]}, true)`,
89
- `ShowLabel(${vertices[1]}, true)`,
90
- `ShowLabel(${vertices[2]}, true)`,
91
- `ShowLabel(${vertices[3]}, true)`,
92
- `ShowLabel(${vertices[4]}, true)`,
93
- ];
94
- const question = {
95
- instruction,
96
- startStatement,
97
- answer: statement.toTex(),
98
- keys: [],
99
- commands,
100
- coords: [xMin - 1, xMax + 1, yMin - 1, yMax + 1],
101
- };
102
- return question;
103
- }
104
- exports.getThales = getThales;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getThales = exports.thalesCalcul = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const randint_1 = require("../../../math/utils/random/randint");
6
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
7
+ const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
8
+ const simplify_1 = require("../../../tree/parsers/simplify");
9
+ const coinFlip_1 = require("../../../utils/coinFlip");
10
+ exports.thalesCalcul = {
11
+ id: 'thalesCalcul',
12
+ connector: '=',
13
+ instruction: '',
14
+ label: 'Utiliser le théoreme de Thalès pour faire des calculs',
15
+ levels: ['5', '4', '3', '2'],
16
+ isSingleStep: false,
17
+ section: 'Géométrie euclidienne',
18
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThales, nb),
19
+ };
20
+ function getThales() {
21
+ const vertices = [];
22
+ const code = 65 + (0, randint_1.randint)(0, 22); // Générer un code de caractère majuscule aléatoire (A-Z)
23
+ for (let i = 0; i < 5; i++)
24
+ vertices.push(String.fromCharCode(code + i));
25
+ const [xA, yA] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
26
+ let xB, yB, xC, yC;
27
+ let d1, d2, d3; // distance entre le point A et B
28
+ let theta = 0; // angle entre AB et AC
29
+ do {
30
+ [xB, yB, xC, yC] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
31
+ d1 = Math.hypot(xB - xA, yB - yA); // Calculer la distance entre A et B
32
+ d2 = Math.hypot(xC - xA, yC - yA); // Calculer la distance entre A et C
33
+ theta = Math.acos(((xB - xA) * (xC - xA) + (yB - yA) * (yC - yA)) / (d1 * d2));
34
+ } while (!theta || theta < 0.35 || theta > 2.1 || d1 / d2 > 1.3 || d1 / d2 < 0.7);
35
+ d3 = Math.sqrt(d1 ** 2 + d2 ** 2 - 2 * d1 * d2 * Math.cos(theta)); // Calculer la distance entre C et B
36
+ // CB² = AB² * AC² - 2*AB*AC*cos(theta) : pythagore généralisé
37
+ const factor = (0, randint_1.randint)(-5, 6, [-2, -1, 0, 1, 2]) / 10; // facteur = AB/AE, Pour que l'affichage soit acceptable, les valeurs de factor sont +- 0.5 0.4 0.3
38
+ const [xD, yD] = [xA + factor * (xB - xA), yA + factor * (yB - yA)];
39
+ const [xE, yE] = [xA + factor * (xC - xA), yA + factor * (yC - yA)];
40
+ const xMin = Math.min(xA, xB, xC, xD, xE);
41
+ const xMax = Math.max(xA, xB, xC, xD, xE);
42
+ const yMin = Math.min(yA, yB, yC, yD, yE);
43
+ const yMax = Math.max(yA, yB, yC, yD, yE);
44
+ // AB AC BC AD AE
45
+ const sides = [
46
+ `${vertices[0]}${vertices[1]}`,
47
+ `${vertices[0]}${vertices[3]}`,
48
+ `${vertices[0]}${vertices[2]}`,
49
+ `${vertices[0]}${vertices[4]}`,
50
+ `${vertices[1]}${vertices[2]}`,
51
+ `${vertices[3]}${vertices[4]}`,
52
+ ];
53
+ // round pour avoir des valeurs dans N tout en gardant les proportions pour que ça soit cohérent. sides[i] a pour longueur sideLengths[i]
54
+ const sideLengths = [d1, factor * d1, d2, factor * d2, d3, factor * d3].map((el) => Math.round(Math.abs(el)));
55
+ const rand = (0, randint_1.randint)(0, 3);
56
+ let rand2 = (0, randint_1.randint)(0, 3, [rand]);
57
+ if (sideLengths[2 * rand] === sideLengths[2 * rand2])
58
+ rand2 = (0, randint_1.randint)(0, 3, [rand, rand2]); // condition pour pas prendre 2 longueurs identiques
59
+ let instruction = `Dans la figure ci-dessous, nous avons (${vertices[3]}${vertices[4]})//(${vertices[1]}${vertices[2]}), `;
60
+ let statement;
61
+ let startStatement;
62
+ if ((0, coinFlip_1.coinFlip)()) {
63
+ // a/b = c/d on cherche c
64
+ instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2]} = $${sideLengths[2 * rand2]}$.$\\\\$Déterminer ${sides[2 * rand2 + 1]}`;
65
+ startStatement = `${sides[2 * rand2 + 1]}`;
66
+ statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2] * sideLengths[2 * rand + 1]), new numberNode_1.NumberNode(sideLengths[2 * rand])));
67
+ }
68
+ else {
69
+ // a/b = c/d on cherche d
70
+ instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2 + 1]} = $${sideLengths[2 * rand2 + 1]}$.$\\\\$Déterminer ${sides[2 * rand2]}`;
71
+ startStatement = `${sides[2 * rand2]}`;
72
+ statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2 + 1] * sideLengths[2 * rand]), new numberNode_1.NumberNode(sideLengths[2 * rand + 1])));
73
+ }
74
+ const commands = [
75
+ `${vertices[0]} = Point({${xA}, ${yA}})`,
76
+ `${vertices[1]} = Point({${xB}, ${yB}})`,
77
+ `${vertices[2]} = Point({${xC}, ${yC}})`,
78
+ `${vertices[3]} = Point(${vertices[0]}, Vector(${factor}Vector(${vertices[0]},${vertices[1]})))`,
79
+ `${vertices[4]} = Intersect(Line(${vertices[3]}, Line(${vertices[1]}, ${vertices[2]})) , Line(${vertices[0]}, ${vertices[2]}))`,
80
+ `l = Segment(${vertices[0]}, ${vertices[1]})`,
81
+ `i = Segment(${vertices[0]}, ${vertices[2]})`,
82
+ `j = Segment(${vertices[1]}, ${vertices[2]})`,
83
+ `k = Segment(${vertices[3]}, ${vertices[4]})`,
84
+ `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[3]}))`,
85
+ `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[4]}))`,
86
+ `ShowAxes(false)`,
87
+ `ShowGrid(false)`,
88
+ `ShowLabel(${vertices[0]}, true)`,
89
+ `ShowLabel(${vertices[1]}, true)`,
90
+ `ShowLabel(${vertices[2]}, true)`,
91
+ `ShowLabel(${vertices[3]}, true)`,
92
+ `ShowLabel(${vertices[4]}, true)`,
93
+ ];
94
+ const question = {
95
+ instruction,
96
+ startStatement,
97
+ answer: statement.toTex(),
98
+ keys: [],
99
+ commands,
100
+ coords: [xMin - 1, xMax + 1, yMin - 1, yMax + 1],
101
+ };
102
+ return question;
103
+ }
104
+ exports.getThales = getThales;
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const trigonometry: Exercise;
3
- export declare function getTrigonometry(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const trigonometry: Exercise;
3
+ export declare function getTrigonometry(): Question;
4
4
  //# sourceMappingURL=trigonometry.d.ts.map
@@ -1,55 +1,55 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTrigonometry = exports.trigonometry = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const triangles_1 = require("../../../math/geometry/triangles");
6
- const randint_1 = require("../../../math/utils/random/randint");
7
- exports.trigonometry = {
8
- id: 'trigonometry',
9
- connector: '=',
10
- instruction: '',
11
- label: "Écrire le quotient égal au cosinus, au sinus ou à la tangente d'un angle dans un triangle rectangle",
12
- levels: ['4', '3', '2'],
13
- isSingleStep: false,
14
- section: 'Géométrie euclidienne',
15
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometry, nb),
16
- };
17
- function getTrigonometry() {
18
- const vertices = [];
19
- const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
20
- for (let i = 0; i < 3; i++)
21
- vertices.push(String.fromCharCode(code + i));
22
- const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.7, maxRapport: 1.3, names: vertices });
23
- const trigo = ['le cosinus', 'le sinus', 'la tangente'];
24
- const randTrigo = (0, randint_1.randint)(0, 3);
25
- const angle = [triangle.vertexB.name, triangle.vertexC.name];
26
- const randAngle = (0, randint_1.randint)(0, 2);
27
- let quotient;
28
- switch (randAngle) {
29
- case 0:
30
- quotient = [
31
- `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
32
- `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
33
- `\\frac{${triangle.getSideBName()}}{${triangle.getSideCName()}}`,
34
- ];
35
- break;
36
- case 1:
37
- quotient = [
38
- `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
39
- `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
40
- `\\frac{${triangle.getSideCName()}}{${triangle.getSideBName()}}`,
41
- ];
42
- break;
43
- default:
44
- quotient = [''];
45
- }
46
- const question = {
47
- instruction: `À quel quotient est égal ${trigo[randTrigo]} de l'angle $\\widehat{${angle[randAngle]}}$?`,
48
- answer: quotient[randTrigo],
49
- keys: [...vertices, 'equal'],
50
- commands: [...triangle.generateCommands({ highlightedAngle: angle[randAngle] })],
51
- coords: triangle.generateCoords(),
52
- };
53
- return question;
54
- }
55
- exports.getTrigonometry = getTrigonometry;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTrigonometry = exports.trigonometry = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const triangles_1 = require("../../../math/geometry/triangles");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ exports.trigonometry = {
8
+ id: 'trigonometry',
9
+ connector: '=',
10
+ instruction: '',
11
+ label: "Écrire le quotient égal au cosinus, au sinus ou à la tangente d'un angle dans un triangle rectangle",
12
+ levels: ['4', '3', '2'],
13
+ isSingleStep: false,
14
+ section: 'Géométrie euclidienne',
15
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometry, nb),
16
+ };
17
+ function getTrigonometry() {
18
+ const vertices = [];
19
+ const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
20
+ for (let i = 0; i < 3; i++)
21
+ vertices.push(String.fromCharCode(code + i));
22
+ const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.7, maxRapport: 1.3, names: vertices });
23
+ const trigo = ['le cosinus', 'le sinus', 'la tangente'];
24
+ const randTrigo = (0, randint_1.randint)(0, 3);
25
+ const angle = [triangle.vertexB.name, triangle.vertexC.name];
26
+ const randAngle = (0, randint_1.randint)(0, 2);
27
+ let quotient;
28
+ switch (randAngle) {
29
+ case 0:
30
+ quotient = [
31
+ `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
32
+ `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
33
+ `\\frac{${triangle.getSideBName()}}{${triangle.getSideCName()}}`,
34
+ ];
35
+ break;
36
+ case 1:
37
+ quotient = [
38
+ `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
39
+ `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
40
+ `\\frac{${triangle.getSideCName()}}{${triangle.getSideBName()}}`,
41
+ ];
42
+ break;
43
+ default:
44
+ quotient = [''];
45
+ }
46
+ const question = {
47
+ instruction: `À quel quotient est égal ${trigo[randTrigo]} de l'angle $\\widehat{${angle[randAngle]}}$?`,
48
+ answer: quotient[randTrigo],
49
+ keys: [...vertices, 'equal'],
50
+ commands: [...triangle.generateCommands({ highlightedAngle: angle[randAngle] })],
51
+ coords: triangle.generateCoords(),
52
+ };
53
+ return question;
54
+ }
55
+ exports.getTrigonometry = getTrigonometry;
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const trigonometryAngleCalcul: Exercise;
3
- export declare function getTrigonometryAngleCalcul(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const trigonometryAngleCalcul: Exercise;
3
+ export declare function getTrigonometryAngleCalcul(): Question;
4
4
  //# sourceMappingURL=trigonometryAngleCalcul.d.ts.map
@@ -1,42 +1,42 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTrigonometryAngleCalcul = exports.trigonometryAngleCalcul = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const triangles_1 = require("../../../math/geometry/triangles");
6
- const randint_1 = require("../../../math/utils/random/randint");
7
- const round_1 = require("../../../math/utils/round");
8
- const shuffle_1 = require("../../../utils/shuffle");
9
- exports.trigonometryAngleCalcul = {
10
- id: 'trigonometryAngleCalcul',
11
- connector: '=',
12
- instruction: '',
13
- label: 'Utiliser la trigonométrie pour calculer un angle',
14
- levels: ['4', '3', '2'],
15
- isSingleStep: false,
16
- section: 'Géométrie euclidienne',
17
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometryAngleCalcul, nb),
18
- };
19
- function getTrigonometryAngleCalcul() {
20
- const vertices = [];
21
- const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
22
- for (let i = 0; i < 3; i++)
23
- vertices.push(String.fromCharCode(code + i));
24
- const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.5, maxRapport: 1.5, names: vertices });
25
- const sides = [triangle.getSideCName(), triangle.getSideBName(), triangle.getSideAName()];
26
- const sideLengths = [triangle.getSideCnumber(), triangle.getSideBnumber(), triangle.getSideAnumber()].map((el) => (0, round_1.round)(el / 2, 2));
27
- const angle = [triangle.vertexB.name, triangle.vertexC.name];
28
- const randAngle = (0, randint_1.randint)(0, 2);
29
- const randSides = (0, shuffle_1.shuffle)([0, 1, 2]);
30
- const answer = randAngle === 0
31
- ? Math.round((Math.acos(sideLengths[0] / sideLengths[2]) * 180) / Math.PI)
32
- : Math.round((Math.acos(sideLengths[1] / sideLengths[2]) * 180) / Math.PI);
33
- const question = {
34
- instruction: `Le triangle ${triangle.getTriangleName()} rectangle en ${triangle.getRightAngle()} est tel que ${sides[randSides[0]]} = $${sideLengths[randSides[0]]}$ cm et ${sides[randSides[1]]} = $${sideLengths[randSides[1]]}$ cm.$\\\\$ Calculer $\\widehat{${angle[randAngle]}}$ à 1° près.`,
35
- answer: answer + '°',
36
- keys: [...vertices, 'equal', '°', 'cos', 'sin', 'tan', 'arccos', 'arcsin', 'arctan'],
37
- commands: [...triangle.generateCommands({ highlightedAngle: angle[randAngle] })],
38
- coords: triangle.generateCoords(),
39
- };
40
- return question;
41
- }
42
- exports.getTrigonometryAngleCalcul = getTrigonometryAngleCalcul;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTrigonometryAngleCalcul = exports.trigonometryAngleCalcul = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const triangles_1 = require("../../../math/geometry/triangles");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const round_1 = require("../../../math/utils/round");
8
+ const shuffle_1 = require("../../../utils/shuffle");
9
+ exports.trigonometryAngleCalcul = {
10
+ id: 'trigonometryAngleCalcul',
11
+ connector: '=',
12
+ instruction: '',
13
+ label: 'Utiliser la trigonométrie pour calculer un angle',
14
+ levels: ['4', '3', '2'],
15
+ isSingleStep: false,
16
+ section: 'Géométrie euclidienne',
17
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometryAngleCalcul, nb),
18
+ };
19
+ function getTrigonometryAngleCalcul() {
20
+ const vertices = [];
21
+ const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
22
+ for (let i = 0; i < 3; i++)
23
+ vertices.push(String.fromCharCode(code + i));
24
+ const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.5, maxRapport: 1.5, names: vertices });
25
+ const sides = [triangle.getSideCName(), triangle.getSideBName(), triangle.getSideAName()];
26
+ const sideLengths = [triangle.getSideCnumber(), triangle.getSideBnumber(), triangle.getSideAnumber()].map((el) => (0, round_1.round)(el / 2, 2));
27
+ const angle = [triangle.vertexB.name, triangle.vertexC.name];
28
+ const randAngle = (0, randint_1.randint)(0, 2);
29
+ const randSides = (0, shuffle_1.shuffle)([0, 1, 2]);
30
+ const answer = randAngle === 0
31
+ ? Math.round((Math.acos(sideLengths[0] / sideLengths[2]) * 180) / Math.PI)
32
+ : Math.round((Math.acos(sideLengths[1] / sideLengths[2]) * 180) / Math.PI);
33
+ const question = {
34
+ instruction: `Le triangle ${triangle.getTriangleName()} rectangle en ${triangle.getRightAngle()} est tel que ${sides[randSides[0]]} = $${sideLengths[randSides[0]]}$ cm et ${sides[randSides[1]]} = $${sideLengths[randSides[1]]}$ cm.$\\\\$ Calculer $\\widehat{${angle[randAngle]}}$ à 1° près.`,
35
+ answer: answer + '°',
36
+ keys: [...vertices, 'equal', '°', 'cos', 'sin', 'tan', 'arccos', 'arcsin', 'arctan'],
37
+ commands: [...triangle.generateCommands({ highlightedAngle: angle[randAngle] })],
38
+ coords: triangle.generateCoords(),
39
+ };
40
+ return question;
41
+ }
42
+ exports.getTrigonometryAngleCalcul = getTrigonometryAngleCalcul;
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const trigonometrySideCalcul: Exercise;
3
- export declare function getTrigonometrySideCalcul(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const trigonometrySideCalcul: Exercise;
3
+ export declare function getTrigonometrySideCalcul(): Question;
4
4
  //# sourceMappingURL=trigonometrySideCalcul.d.ts.map
@@ -1,52 +1,52 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTrigonometrySideCalcul = exports.trigonometrySideCalcul = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const triangles_1 = require("../../../math/geometry/triangles");
6
- const randint_1 = require("../../../math/utils/random/randint");
7
- const round_1 = require("../../../math/utils/round");
8
- exports.trigonometrySideCalcul = {
9
- id: 'trigonometrySideCalcul',
10
- connector: '=',
11
- instruction: '',
12
- label: 'Utiliser la trigonométrie pour calculer un côté',
13
- levels: ['4', '3', '2'],
14
- isSingleStep: false,
15
- section: 'Géométrie euclidienne',
16
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometrySideCalcul, nb),
17
- };
18
- function getTrigonometrySideCalcul() {
19
- const vertices = [];
20
- const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
21
- for (let i = 0; i < 3; i++)
22
- vertices.push(String.fromCharCode(code + i));
23
- const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.5, maxRapport: 1.5, names: vertices });
24
- const sides = [triangle.getSideCName(), triangle.getSideBName(), triangle.getSideAName()];
25
- const sideLengths = [triangle.getSideCnumber(), triangle.getSideBnumber(), triangle.getSideAnumber()].map((el) => (0, round_1.round)(el / 2, 2));
26
- const angle = [triangle.vertexB.name, triangle.vertexC.name];
27
- const randAngle = (0, randint_1.randint)(0, 2);
28
- const randside = (0, randint_1.randint)(0, 3); // valeurs possible : 0 1 2
29
- const randsideQuestion = (0, randint_1.randint)(0, 3, [randside]); // si rand = 0, valeurs possible 1 2
30
- const angleValue = [
31
- (0, round_1.round)((Math.acos(sideLengths[0] / sideLengths[2]) * 180) / Math.PI, 1),
32
- (0, round_1.round)((Math.acos(sideLengths[1] / sideLengths[2]) * 180) / Math.PI, 1),
33
- ];
34
- const commands = [
35
- ...triangle.generateCommands({
36
- highlightedAngle: angle[randAngle],
37
- colorHighlightedAngle: 'Black',
38
- showLabels: [sides[randsideQuestion]],
39
- setCaptions: ['?'],
40
- highlightedSide: sides[randsideQuestion],
41
- }),
42
- ];
43
- const question = {
44
- instruction: `Le triangle ${triangle.getTriangleName()} rectangle en ${triangle.getRightAngle()} tel que ${sides[randside]} = $${sideLengths[randside]}$ cm et $\\widehat{${angle[randAngle]}}$ = $${angleValue[randAngle]}$°.$\\\\$ Calculer ${sides[randsideQuestion]} à $0,1$ cm près.`,
45
- answer: `${(0, round_1.round)(sideLengths[randsideQuestion], 1)}`,
46
- keys: [...vertices, 'equal', '°', 'cos', 'sin', 'tan', 'arccos', 'arcsin', 'arctan'],
47
- commands,
48
- coords: triangle.generateCoords(),
49
- };
50
- return question;
51
- }
52
- exports.getTrigonometrySideCalcul = getTrigonometrySideCalcul;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTrigonometrySideCalcul = exports.trigonometrySideCalcul = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const triangles_1 = require("../../../math/geometry/triangles");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const round_1 = require("../../../math/utils/round");
8
+ exports.trigonometrySideCalcul = {
9
+ id: 'trigonometrySideCalcul',
10
+ connector: '=',
11
+ instruction: '',
12
+ label: 'Utiliser la trigonométrie pour calculer un côté',
13
+ levels: ['4', '3', '2'],
14
+ isSingleStep: false,
15
+ section: 'Géométrie euclidienne',
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometrySideCalcul, nb),
17
+ };
18
+ function getTrigonometrySideCalcul() {
19
+ const vertices = [];
20
+ const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
21
+ for (let i = 0; i < 3; i++)
22
+ vertices.push(String.fromCharCode(code + i));
23
+ const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.5, maxRapport: 1.5, names: vertices });
24
+ const sides = [triangle.getSideCName(), triangle.getSideBName(), triangle.getSideAName()];
25
+ const sideLengths = [triangle.getSideCnumber(), triangle.getSideBnumber(), triangle.getSideAnumber()].map((el) => (0, round_1.round)(el / 2, 2));
26
+ const angle = [triangle.vertexB.name, triangle.vertexC.name];
27
+ const randAngle = (0, randint_1.randint)(0, 2);
28
+ const randside = (0, randint_1.randint)(0, 3); // valeurs possible : 0 1 2
29
+ const randsideQuestion = (0, randint_1.randint)(0, 3, [randside]); // si rand = 0, valeurs possible 1 2
30
+ const angleValue = [
31
+ (0, round_1.round)((Math.acos(sideLengths[0] / sideLengths[2]) * 180) / Math.PI, 1),
32
+ (0, round_1.round)((Math.acos(sideLengths[1] / sideLengths[2]) * 180) / Math.PI, 1),
33
+ ];
34
+ const commands = [
35
+ ...triangle.generateCommands({
36
+ highlightedAngle: angle[randAngle],
37
+ colorHighlightedAngle: 'Black',
38
+ showLabels: [sides[randsideQuestion]],
39
+ setCaptions: ['?'],
40
+ highlightedSide: sides[randsideQuestion],
41
+ }),
42
+ ];
43
+ const question = {
44
+ instruction: `Le triangle ${triangle.getTriangleName()} rectangle en ${triangle.getRightAngle()} tel que ${sides[randside]} = $${sideLengths[randside]}$ cm et $\\widehat{${angle[randAngle]}}$ = $${angleValue[randAngle]}$°.$\\\\$ Calculer ${sides[randsideQuestion]} à $0,1$ cm près.`,
45
+ answer: `${(0, round_1.round)(sideLengths[randsideQuestion], 1)}`,
46
+ keys: [...vertices, 'equal', '°', 'cos', 'sin', 'tan', 'arccos', 'arcsin', 'arctan'],
47
+ commands,
48
+ coords: triangle.generateCoords(),
49
+ };
50
+ return question;
51
+ }
52
+ exports.getTrigonometrySideCalcul = getTrigonometrySideCalcul;
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const scalarProductViaCoords: Exercise;
3
- export declare function getScalarProductViaCoordsQuestion(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const scalarProductViaCoords: Exercise;
3
+ export declare function getScalarProductViaCoordsQuestion(): Question;
4
4
  //# sourceMappingURL=scalarProductViaCoords.d.ts.map
@@ -1,30 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getScalarProductViaCoordsQuestion = exports.scalarProductViaCoords = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const vector_1 = require("../../../math/geometry/vector");
6
- const randTupleInt_1 = require("../../../math/utils/random/randTupleInt");
7
- const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
8
- exports.scalarProductViaCoords = {
9
- id: 'scalarProductViaCoords',
10
- connector: '=',
11
- instruction: '',
12
- isSingleStep: false,
13
- label: "Calculer un produit scalaire à l'aide des coordonnées",
14
- levels: ['1, 0'],
15
- section: 'Vecteurs',
16
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getScalarProductViaCoordsQuestion, nb),
17
- keys: [],
18
- };
19
- function getScalarProductViaCoordsQuestion() {
20
- const [coords1, coords2] = (0, randTupleInt_1.distinctRandTupleInt)(2, 2, { from: -9, to: 10 });
21
- const u = new vector_1.Vector('u', new numberNode_1.NumberNode(coords1[0]), new numberNode_1.NumberNode(coords1[1]));
22
- const v = new vector_1.Vector('v', new numberNode_1.NumberNode(coords2[0]), new numberNode_1.NumberNode(coords2[1]));
23
- return {
24
- instruction: `Soit $${u.toTexWithCoords()}$ et $${v.toTexWithCoords()}$. Calculer $${u.toTex()}\\cdot ${v.toTex()}$.`,
25
- startStatement: `${u.toTex()}\\cdot ${v.toTex()}`,
26
- answer: u.scalarProduct(v).toTex(),
27
- keys: [],
28
- };
29
- }
30
- exports.getScalarProductViaCoordsQuestion = getScalarProductViaCoordsQuestion;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getScalarProductViaCoordsQuestion = exports.scalarProductViaCoords = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const vector_1 = require("../../../math/geometry/vector");
6
+ const randTupleInt_1 = require("../../../math/utils/random/randTupleInt");
7
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
8
+ exports.scalarProductViaCoords = {
9
+ id: 'scalarProductViaCoords',
10
+ connector: '=',
11
+ instruction: '',
12
+ isSingleStep: false,
13
+ label: "Calculer un produit scalaire à l'aide des coordonnées",
14
+ levels: ['1, 0'],
15
+ section: 'Vecteurs',
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getScalarProductViaCoordsQuestion, nb),
17
+ keys: [],
18
+ };
19
+ function getScalarProductViaCoordsQuestion() {
20
+ const [coords1, coords2] = (0, randTupleInt_1.distinctRandTupleInt)(2, 2, { from: -9, to: 10 });
21
+ const u = new vector_1.Vector('u', new numberNode_1.NumberNode(coords1[0]), new numberNode_1.NumberNode(coords1[1]));
22
+ const v = new vector_1.Vector('v', new numberNode_1.NumberNode(coords2[0]), new numberNode_1.NumberNode(coords2[1]));
23
+ return {
24
+ instruction: `Soit $${u.toTexWithCoords()}$ et $${v.toTexWithCoords()}$. Calculer $${u.toTex()}\\cdot ${v.toTex()}$.`,
25
+ startStatement: `${u.toTex()}\\cdot ${v.toTex()}`,
26
+ answer: u.scalarProduct(v).toTex(),
27
+ keys: [],
28
+ };
29
+ }
30
+ exports.getScalarProductViaCoordsQuestion = getScalarProductViaCoordsQuestion;