math-exercises 3.0.213 → 3.0.215

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 (267) hide show
  1. package/lib/exercises/math/arithmetic/findLeftInHugeNumberDivision.d.ts +9 -0
  2. package/lib/exercises/math/arithmetic/findLeftInHugeNumberDivision.d.ts.map +1 -0
  3. package/lib/exercises/math/arithmetic/findLeftInHugeNumberDivision.js +194 -0
  4. package/lib/exercises/math/arithmetic/findMissingNumberToMakeNumberDivisibleBy9.d.ts +8 -0
  5. package/lib/exercises/math/arithmetic/findMissingNumberToMakeNumberDivisibleBy9.d.ts.map +1 -0
  6. package/lib/exercises/math/arithmetic/findMissingNumberToMakeNumberDivisibleBy9.js +121 -0
  7. package/lib/exercises/math/arithmetic/hasDiophantianEquationSolution.js +4 -4
  8. package/lib/exercises/math/arithmetic/index.d.ts +7 -0
  9. package/lib/exercises/math/arithmetic/index.d.ts.map +1 -1
  10. package/lib/exercises/math/arithmetic/index.js +7 -0
  11. package/lib/exercises/math/arithmetic/isBigNumberPrime.d.ts +7 -0
  12. package/lib/exercises/math/arithmetic/isBigNumberPrime.d.ts.map +1 -0
  13. package/lib/exercises/math/arithmetic/isBigNumberPrime.js +107 -0
  14. package/lib/exercises/math/arithmetic/numberOfEndingZerosOfBigProduct.d.ts +8 -0
  15. package/lib/exercises/math/arithmetic/numberOfEndingZerosOfBigProduct.d.ts.map +1 -0
  16. package/lib/exercises/math/arithmetic/numberOfEndingZerosOfBigProduct.js +139 -0
  17. package/lib/exercises/math/arithmetic/pgcdFromEuclid.d.ts +8 -0
  18. package/lib/exercises/math/arithmetic/pgcdFromEuclid.d.ts.map +1 -0
  19. package/lib/exercises/math/arithmetic/pgcdFromEuclid.js +123 -0
  20. package/lib/exercises/math/arithmetic/solveDiophantianEquationByUsingPrimality.d.ts +7 -0
  21. package/lib/exercises/math/arithmetic/solveDiophantianEquationByUsingPrimality.d.ts.map +1 -0
  22. package/lib/exercises/math/arithmetic/solveDiophantianEquationByUsingPrimality.js +117 -0
  23. package/lib/exercises/math/arithmetic/whichDayInXDays.d.ts +8 -0
  24. package/lib/exercises/math/arithmetic/whichDayInXDays.d.ts.map +1 -0
  25. package/lib/exercises/math/arithmetic/whichDayInXDays.js +81 -0
  26. package/lib/exercises/math/calcul/fractions/fractionsSumFillInTheBlank.d.ts +15 -0
  27. package/lib/exercises/math/calcul/fractions/fractionsSumFillInTheBlank.d.ts.map +1 -0
  28. package/lib/exercises/math/calcul/fractions/fractionsSumFillInTheBlank.js +256 -0
  29. package/lib/exercises/math/calcul/fractions/index.d.ts +1 -0
  30. package/lib/exercises/math/calcul/fractions/index.d.ts.map +1 -1
  31. package/lib/exercises/math/calcul/fractions/index.js +1 -0
  32. package/lib/exercises/math/calcul/index.d.ts +1 -0
  33. package/lib/exercises/math/calcul/index.d.ts.map +1 -1
  34. package/lib/exercises/math/calcul/index.js +1 -0
  35. package/lib/exercises/math/calcul/mentalCaluls/index.d.ts +3 -0
  36. package/lib/exercises/math/calcul/mentalCaluls/index.d.ts.map +1 -1
  37. package/lib/exercises/math/calcul/mentalCaluls/index.js +3 -0
  38. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication101AndFriends.d.ts +10 -0
  39. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication101AndFriends.d.ts.map +1 -0
  40. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication101AndFriends.js +264 -0
  41. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication11AndFriends.d.ts +10 -0
  42. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication11AndFriends.d.ts.map +1 -0
  43. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication11AndFriends.js +264 -0
  44. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplicationTable.d.ts +11 -0
  45. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplicationTable.d.ts.map +1 -0
  46. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplicationTable.js +141 -0
  47. package/lib/exercises/math/calcul/ratio/index.d.ts +1 -0
  48. package/lib/exercises/math/calcul/ratio/index.d.ts.map +1 -1
  49. package/lib/exercises/math/calcul/ratio/index.js +1 -0
  50. package/lib/exercises/math/calcul/ratio/partsUsingRatio.d.ts +13 -0
  51. package/lib/exercises/math/calcul/ratio/partsUsingRatio.d.ts.map +1 -0
  52. package/lib/exercises/math/calcul/ratio/partsUsingRatio.js +237 -0
  53. package/lib/exercises/math/calcul/relatives/index.d.ts +2 -0
  54. package/lib/exercises/math/calcul/relatives/index.d.ts.map +1 -0
  55. package/lib/exercises/math/calcul/relatives/index.js +1 -0
  56. package/lib/exercises/math/calcul/relatives/relativesAddAndSub.d.ts +17 -0
  57. package/lib/exercises/math/calcul/relatives/relativesAddAndSub.d.ts.map +1 -0
  58. package/lib/exercises/math/calcul/relatives/relativesAddAndSub.js +448 -0
  59. package/lib/exercises/math/calculLitteral/factorisation/factoByXK.d.ts +10 -0
  60. package/lib/exercises/math/calculLitteral/factorisation/factoByXK.d.ts.map +1 -0
  61. package/lib/exercises/math/calculLitteral/factorisation/factoByXK.js +190 -0
  62. package/lib/exercises/math/calculLitteral/factorisation/index.d.ts +1 -0
  63. package/lib/exercises/math/calculLitteral/factorisation/index.d.ts.map +1 -1
  64. package/lib/exercises/math/calculLitteral/factorisation/index.js +1 -0
  65. package/lib/exercises/math/complex/algebraic/addComplex.d.ts +10 -0
  66. package/lib/exercises/math/complex/algebraic/addComplex.d.ts.map +1 -0
  67. package/lib/exercises/math/complex/algebraic/addComplex.js +125 -0
  68. package/lib/exercises/math/complex/algebraic/conjugateComplex.d.ts +8 -0
  69. package/lib/exercises/math/complex/algebraic/conjugateComplex.d.ts.map +1 -0
  70. package/lib/exercises/math/complex/algebraic/conjugateComplex.js +105 -0
  71. package/lib/exercises/math/complex/algebraic/conjugateDivideComplex.d.ts +8 -0
  72. package/lib/exercises/math/complex/algebraic/conjugateDivideComplex.d.ts.map +1 -0
  73. package/lib/exercises/math/complex/algebraic/conjugateDivideComplex.js +137 -0
  74. package/lib/exercises/math/complex/algebraic/conjugateMultiplyComplex.d.ts +8 -0
  75. package/lib/exercises/math/complex/algebraic/conjugateMultiplyComplex.d.ts.map +1 -0
  76. package/lib/exercises/math/complex/algebraic/conjugateMultiplyComplex.js +116 -0
  77. package/lib/exercises/math/complex/algebraic/divideComplex.d.ts +8 -0
  78. package/lib/exercises/math/complex/algebraic/divideComplex.d.ts.map +1 -0
  79. package/lib/exercises/math/complex/algebraic/divideComplex.js +128 -0
  80. package/lib/exercises/math/complex/algebraic/index.d.ts +11 -0
  81. package/lib/exercises/math/complex/algebraic/index.d.ts.map +1 -0
  82. package/lib/exercises/math/complex/algebraic/index.js +10 -0
  83. package/lib/exercises/math/complex/algebraic/inverseComplex.d.ts +8 -0
  84. package/lib/exercises/math/complex/algebraic/inverseComplex.d.ts.map +1 -0
  85. package/lib/exercises/math/complex/algebraic/inverseComplex.js +95 -0
  86. package/lib/exercises/math/complex/algebraic/linearCombinaisonComplex.d.ts +10 -0
  87. package/lib/exercises/math/complex/algebraic/linearCombinaisonComplex.d.ts.map +1 -0
  88. package/lib/exercises/math/complex/algebraic/linearCombinaisonComplex.js +105 -0
  89. package/lib/exercises/math/complex/algebraic/moduloFromAlgebraicComplex.d.ts +8 -0
  90. package/lib/exercises/math/complex/algebraic/moduloFromAlgebraicComplex.d.ts.map +1 -0
  91. package/lib/exercises/math/complex/algebraic/moduloFromAlgebraicComplex.js +93 -0
  92. package/lib/exercises/math/complex/algebraic/mutiplyComplex.d.ts +8 -0
  93. package/lib/exercises/math/complex/algebraic/mutiplyComplex.d.ts.map +1 -0
  94. package/lib/exercises/math/complex/algebraic/mutiplyComplex.js +106 -0
  95. package/lib/exercises/math/complex/algebraic/reAndIm.d.ts +9 -0
  96. package/lib/exercises/math/complex/algebraic/reAndIm.d.ts.map +1 -0
  97. package/lib/exercises/math/complex/algebraic/reAndIm.js +92 -0
  98. package/lib/exercises/math/complex/geometric/complexAlgebraicFromModuloAndArg.d.ts +9 -0
  99. package/lib/exercises/math/complex/geometric/complexAlgebraicFromModuloAndArg.d.ts.map +1 -0
  100. package/lib/exercises/math/complex/geometric/complexAlgebraicFromModuloAndArg.js +151 -0
  101. package/lib/exercises/math/complex/geometric/complexDistance.d.ts +11 -0
  102. package/lib/exercises/math/complex/geometric/complexDistance.d.ts.map +1 -0
  103. package/lib/exercises/math/complex/geometric/complexDistance.js +125 -0
  104. package/lib/exercises/math/complex/geometric/complexGeomAffixAlgFromPoint.d.ts +9 -0
  105. package/lib/exercises/math/complex/geometric/complexGeomAffixAlgFromPoint.d.ts.map +1 -0
  106. package/lib/exercises/math/complex/geometric/complexGeomAffixAlgFromPoint.js +326 -0
  107. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromCenteredRegularPolygon.d.ts +10 -0
  108. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromCenteredRegularPolygon.d.ts.map +1 -0
  109. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromCenteredRegularPolygon.js +459 -0
  110. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromPoint.d.ts +14 -0
  111. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromPoint.d.ts.map +1 -0
  112. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromPoint.js +539 -0
  113. package/lib/exercises/math/complex/geometric/complexGeomAffixTrigFromPoint.d.ts +13 -0
  114. package/lib/exercises/math/complex/geometric/complexGeomAffixTrigFromPoint.d.ts.map +1 -0
  115. package/lib/exercises/math/complex/geometric/complexGeomAffixTrigFromPoint.js +485 -0
  116. package/lib/exercises/math/complex/geometric/complexGeomApproxOfCosArgOrSinArgFromPointAndAffixTrig.d.ts +12 -0
  117. package/lib/exercises/math/complex/geometric/complexGeomApproxOfCosArgOrSinArgFromPointAndAffixTrig.d.ts.map +1 -0
  118. package/lib/exercises/math/complex/geometric/complexGeomApproxOfCosArgOrSinArgFromPointAndAffixTrig.js +224 -0
  119. package/lib/exercises/math/complex/geometric/complexGeomArgumentOfFracCBABFromFigure.d.ts +11 -0
  120. package/lib/exercises/math/complex/geometric/complexGeomArgumentOfFracCBABFromFigure.d.ts.map +1 -0
  121. package/lib/exercises/math/complex/geometric/complexGeomArgumentOfFracCBABFromFigure.js +448 -0
  122. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromAffixExp.d.ts +11 -0
  123. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromAffixExp.d.ts.map +1 -0
  124. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromAffixExp.js +223 -0
  125. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromPowerOfUnitRootFromFigure.d.ts +11 -0
  126. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromPowerOfUnitRootFromFigure.d.ts.map +1 -0
  127. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromPowerOfUnitRootFromFigure.js +348 -0
  128. package/lib/exercises/math/complex/geometric/complexGeomPlaceAffixPoint.d.ts +8 -0
  129. package/lib/exercises/math/complex/geometric/complexGeomPlaceAffixPoint.d.ts.map +1 -0
  130. package/lib/exercises/math/complex/geometric/complexGeomPlaceAffixPoint.js +86 -0
  131. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZAPlusZ.d.ts +11 -0
  132. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZAPlusZ.d.ts.map +1 -0
  133. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZAPlusZ.js +311 -0
  134. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATimesZ.d.ts +11 -0
  135. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATimesZ.d.ts.map +1 -0
  136. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATimesZ.js +345 -0
  137. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATransformed.d.ts +16 -0
  138. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATransformed.d.ts.map +1 -0
  139. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATransformed.js +729 -0
  140. package/lib/exercises/math/complex/geometric/complexGeomPlacePointWithAffixInU.d.ts +11 -0
  141. package/lib/exercises/math/complex/geometric/complexGeomPlacePointWithAffixInU.d.ts.map +1 -0
  142. package/lib/exercises/math/complex/geometric/complexGeomPlacePointWithAffixInU.js +253 -0
  143. package/lib/exercises/math/complex/geometric/index.d.ts +12 -0
  144. package/lib/exercises/math/complex/geometric/index.d.ts.map +1 -0
  145. package/lib/exercises/math/complex/geometric/index.js +19 -0
  146. package/lib/exercises/math/complex/index.d.ts +4 -10
  147. package/lib/exercises/math/complex/index.d.ts.map +1 -1
  148. package/lib/exercises/math/complex/index.js +4 -11
  149. package/lib/exercises/math/complex/polynomials/factorizePolynomialInC.d.ts +10 -0
  150. package/lib/exercises/math/complex/polynomials/factorizePolynomialInC.d.ts.map +1 -0
  151. package/lib/exercises/math/complex/polynomials/factorizePolynomialInC.js +176 -0
  152. package/lib/exercises/math/complex/polynomials/index.d.ts +4 -0
  153. package/lib/exercises/math/complex/polynomials/index.d.ts.map +1 -0
  154. package/lib/exercises/math/complex/polynomials/index.js +3 -0
  155. package/lib/exercises/math/complex/polynomials/solveSecondDegreeInComplex.d.ts +10 -0
  156. package/lib/exercises/math/complex/polynomials/solveSecondDegreeInComplex.d.ts.map +1 -0
  157. package/lib/exercises/math/complex/polynomials/solveSecondDegreeInComplex.js +190 -0
  158. package/lib/exercises/math/complex/polynomials/solveZSquareEqualsA.d.ts +11 -0
  159. package/lib/exercises/math/complex/polynomials/solveZSquareEqualsA.d.ts.map +1 -0
  160. package/lib/exercises/math/complex/polynomials/solveZSquareEqualsA.js +158 -0
  161. package/lib/exercises/math/complex/unitRoots/giveNUnitRoot.d.ts +7 -0
  162. package/lib/exercises/math/complex/unitRoots/giveNUnitRoot.d.ts.map +1 -0
  163. package/lib/exercises/math/complex/unitRoots/giveNUnitRoot.js +122 -0
  164. package/lib/exercises/math/complex/unitRoots/giveOneSolutionToComplexPowNEqualsOne.d.ts +8 -0
  165. package/lib/exercises/math/complex/unitRoots/giveOneSolutionToComplexPowNEqualsOne.d.ts.map +1 -0
  166. package/lib/exercises/math/complex/unitRoots/giveOneSolutionToComplexPowNEqualsOne.js +138 -0
  167. package/lib/exercises/math/complex/unitRoots/index.d.ts +3 -0
  168. package/lib/exercises/math/complex/unitRoots/index.d.ts.map +1 -0
  169. package/lib/exercises/math/complex/unitRoots/index.js +2 -0
  170. package/lib/exercises/math/conversion/clock/clockReading.d.ts +12 -0
  171. package/lib/exercises/math/conversion/clock/clockReading.d.ts.map +1 -0
  172. package/lib/exercises/math/conversion/clock/clockReading.js +385 -0
  173. package/lib/exercises/math/conversion/clock/clockReadingPlusTimeOperation.d.ts +2 -0
  174. package/lib/exercises/math/conversion/clock/clockReadingPlusTimeOperation.d.ts.map +1 -0
  175. package/lib/exercises/math/conversion/clock/clockReadingPlusTimeOperation.js +521 -0
  176. package/lib/exercises/math/conversion/clock/clockWritingByManipulatingNeedles.d.ts +2 -0
  177. package/lib/exercises/math/conversion/clock/clockWritingByManipulatingNeedles.d.ts.map +1 -0
  178. package/lib/exercises/math/conversion/clock/clockWritingByManipulatingNeedles.js +359 -0
  179. package/lib/exercises/math/conversion/clock/dateTimeOperationAdd.d.ts +16 -0
  180. package/lib/exercises/math/conversion/clock/dateTimeOperationAdd.d.ts.map +1 -0
  181. package/lib/exercises/math/conversion/clock/dateTimeOperationAdd.js +319 -0
  182. package/lib/exercises/math/conversion/clock/index.d.ts +3 -0
  183. package/lib/exercises/math/conversion/clock/index.d.ts.map +1 -0
  184. package/lib/exercises/math/conversion/clock/index.js +4 -0
  185. package/lib/exercises/math/conversion/index.d.ts +1 -0
  186. package/lib/exercises/math/conversion/index.d.ts.map +1 -1
  187. package/lib/exercises/math/conversion/index.js +1 -0
  188. package/lib/exercises/math/geometry/angles/angleNatureFromFigure.d.ts +11 -0
  189. package/lib/exercises/math/geometry/angles/angleNatureFromFigure.d.ts.map +1 -0
  190. package/lib/exercises/math/geometry/angles/angleNatureFromFigure.js +233 -0
  191. package/lib/exercises/math/geometry/angles/angleNatureFromMeasure.d.ts +10 -0
  192. package/lib/exercises/math/geometry/angles/angleNatureFromMeasure.d.ts.map +1 -0
  193. package/lib/exercises/math/geometry/angles/angleNatureFromMeasure.js +137 -0
  194. package/lib/exercises/math/geometry/angles/index.d.ts +2 -0
  195. package/lib/exercises/math/geometry/angles/index.d.ts.map +1 -1
  196. package/lib/exercises/math/geometry/angles/index.js +2 -0
  197. package/lib/exercises/math/geometry/circles/buildCircleFromRadius.d.ts +9 -0
  198. package/lib/exercises/math/geometry/circles/buildCircleFromRadius.d.ts.map +1 -0
  199. package/lib/exercises/math/geometry/circles/buildCircleFromRadius.js +187 -0
  200. package/lib/exercises/math/geometry/circles/index.d.ts +1 -0
  201. package/lib/exercises/math/geometry/circles/index.d.ts.map +1 -1
  202. package/lib/exercises/math/geometry/circles/index.js +1 -0
  203. package/lib/exercises/math/geometry/lines/buildParallelFromLineAndPoint.d.ts +11 -0
  204. package/lib/exercises/math/geometry/lines/buildParallelFromLineAndPoint.d.ts.map +1 -0
  205. package/lib/exercises/math/geometry/lines/buildParallelFromLineAndPoint.js +154 -0
  206. package/lib/exercises/math/geometry/lines/buildPerpendicularFromLineAndPoint.d.ts +11 -0
  207. package/lib/exercises/math/geometry/lines/buildPerpendicularFromLineAndPoint.d.ts.map +1 -0
  208. package/lib/exercises/math/geometry/lines/buildPerpendicularFromLineAndPoint.js +157 -0
  209. package/lib/exercises/math/geometry/lines/index.d.ts +2 -0
  210. package/lib/exercises/math/geometry/lines/index.d.ts.map +1 -1
  211. package/lib/exercises/math/geometry/lines/index.js +2 -0
  212. package/lib/exercises/math/geometry/triangles/index.d.ts +2 -0
  213. package/lib/exercises/math/geometry/triangles/index.d.ts.map +1 -1
  214. package/lib/exercises/math/geometry/triangles/index.js +2 -1
  215. package/lib/exercises/math/geometry/triangles/traceHeightInTriangle.d.ts +13 -0
  216. package/lib/exercises/math/geometry/triangles/traceHeightInTriangle.d.ts.map +1 -0
  217. package/lib/exercises/math/geometry/triangles/traceHeightInTriangle.js +271 -0
  218. package/lib/exercises/math/geometry/triangles/traceMedianInTriangle.d.ts +8 -0
  219. package/lib/exercises/math/geometry/triangles/traceMedianInTriangle.d.ts.map +1 -1
  220. package/lib/exercises/math/geometry/triangles/traceMedianInTriangle.js +284 -53
  221. package/lib/exercises/math/geometry/vectors/constructions/index.d.ts +1 -0
  222. package/lib/exercises/math/geometry/vectors/constructions/index.d.ts.map +1 -1
  223. package/lib/exercises/math/geometry/vectors/constructions/index.js +1 -0
  224. package/lib/exercises/math/geometry/vectors/constructions/traceVectorSumFromVecs.d.ts +8 -0
  225. package/lib/exercises/math/geometry/vectors/constructions/traceVectorSumFromVecs.d.ts.map +1 -0
  226. package/lib/exercises/math/geometry/vectors/constructions/traceVectorSumFromVecs.js +165 -0
  227. package/lib/exercises/math/geometry/volumes/index.d.ts +1 -0
  228. package/lib/exercises/math/geometry/volumes/index.d.ts.map +1 -1
  229. package/lib/exercises/math/geometry/volumes/index.js +1 -0
  230. package/lib/exercises/math/geometry/volumes/volumeOfCylinder.d.ts +8 -0
  231. package/lib/exercises/math/geometry/volumes/volumeOfCylinder.d.ts.map +1 -0
  232. package/lib/exercises/math/geometry/volumes/volumeOfCylinder.js +157 -0
  233. package/lib/exercises/math/spaceGeometry/basis/index.d.ts +1 -0
  234. package/lib/exercises/math/spaceGeometry/basis/index.d.ts.map +1 -1
  235. package/lib/exercises/math/spaceGeometry/basis/index.js +1 -0
  236. package/lib/exercises/math/spaceGeometry/basis/spaceSegmentLengthInRectangularPrism.d.ts +18 -0
  237. package/lib/exercises/math/spaceGeometry/basis/spaceSegmentLengthInRectangularPrism.d.ts.map +1 -0
  238. package/lib/exercises/math/spaceGeometry/basis/spaceSegmentLengthInRectangularPrism.js +538 -0
  239. package/lib/exercises/math/trigonometry/formulas/trigoAdditionFormulaUsage.d.ts.map +1 -1
  240. package/lib/exercises/math/trigonometry/formulas/trigoAdditionFormulaUsage.js +6 -5
  241. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.js +1 -1
  242. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts +1 -0
  243. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts.map +1 -1
  244. package/lib/exercises/utils/geogebra/toolBarConstructor.js +2 -0
  245. package/lib/geogebra/parsers/geogebraParser.d.ts +3 -0
  246. package/lib/geogebra/parsers/geogebraParser.d.ts.map +1 -1
  247. package/lib/geogebra/parsers/geogebraParser.js +27 -0
  248. package/lib/index.d.ts +213 -23
  249. package/lib/index.d.ts.map +1 -1
  250. package/lib/latexTester.js +2 -0
  251. package/lib/math/geometry/angle.d.ts.map +1 -1
  252. package/lib/math/geometry/angle.js +3 -0
  253. package/lib/math/geometry/segment.d.ts +1 -1
  254. package/lib/math/geometry/segment.d.ts.map +1 -1
  255. package/lib/math/geometry/segment.js +5 -2
  256. package/lib/math/utils/geometry/angleBetweenPoints.d.ts +4 -0
  257. package/lib/math/utils/geometry/angleBetweenPoints.d.ts.map +1 -0
  258. package/lib/math/utils/geometry/angleBetweenPoints.js +58 -0
  259. package/lib/math/utils/geometry/angleNWSE.d.ts +3 -0
  260. package/lib/math/utils/geometry/angleNWSE.d.ts.map +1 -0
  261. package/lib/math/utils/geometry/angleNWSE.js +56 -0
  262. package/lib/tests/singleExo.test.d.ts.map +1 -1
  263. package/lib/tests/singleExo.test.js +2 -2
  264. package/lib/utils/strings/frenchDays.d.ts +2 -0
  265. package/lib/utils/strings/frenchDays.d.ts.map +1 -0
  266. package/lib/utils/strings/frenchDays.js +9 -0
  267. package/package.json +1 -1
@@ -0,0 +1,165 @@
1
+ import { toolBarConstructor } from "../../../../../exercises/utils/geogebra/toolBarConstructor.js";
2
+ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { blueMain, greenMain, orange } from "../../../../../geogebra/colors.js";
4
+ import { GeogebraConstructor } from "../../../../../geogebra/geogebraConstructor.js";
5
+ import { GeogebraParser } from "../../../../../geogebra/parsers/geogebraParser.js";
6
+ import { PointConstructor, } from "../../../../../math/geometry/point.js";
7
+ import { VectorConstructor } from "../../../../../math/geometry/vector.js";
8
+ const getHydrated = (identifiers) => {
9
+ const { pointIds } = identifiers;
10
+ const points = pointIds.map((pointIds) => PointConstructor.fromIdentifiers(pointIds));
11
+ const vec1 = (() => {
12
+ const vec = VectorConstructor.fromPoints(points[0], points[1]);
13
+ vec.name = "u";
14
+ return vec;
15
+ })();
16
+ const vec2 = (() => {
17
+ const vec = VectorConstructor.fromPoints(points[2], points[3]);
18
+ vec.name = "v";
19
+ return vec;
20
+ })();
21
+ const vecSum = vec1.add(vec2);
22
+ return {
23
+ points,
24
+ vec1,
25
+ vec2,
26
+ vecSum,
27
+ };
28
+ };
29
+ const getInstruction = (identifiers) => {
30
+ const { vec1, vec2 } = getHydrated(identifiers);
31
+ return `Construire le vecteur $\\overrightarrow{w}$ tel que :
32
+
33
+ $$
34
+ \\overrightarrow{w} = ${vec1.toTex()} + ${vec2.toTex()}
35
+ $$`;
36
+ };
37
+ const getGGBAnswer = (identifiers) => {
38
+ const { points, vecSum } = getHydrated(identifiers);
39
+ const pointStart = points[0];
40
+ const pointEnd = vecSum.getEndPoint(pointStart);
41
+ return [
42
+ ...getStudentGGBCommands(points),
43
+ `PEnd = Point({${pointEnd.getXnumber()},${pointEnd.getYnumber()}})`,
44
+ `w = Vector(${points[0].name}, PEnd)`,
45
+ `SetColor(w, "${greenMain}")`,
46
+ `ShowLabel(w, true)`,
47
+ ];
48
+ };
49
+ const getHint = () => {
50
+ return `Avec l'outil vecteur, choisis un point sur la grille et, en partant de ce point, déplace toi suivant le vecteur $\\overrightarrow{u}$ puis suivant le vecteur $\\overrightarrow{v}$ et clique sur le point où tu es arrivé.`;
51
+ };
52
+ const getCorrection = (_identifiers) => {
53
+ return `Avec l'outil vecteur, on choisit un point sur la grille et, en partant de ce point, on se déplace suivant le vecteur $\\overrightarrow{u}$ puis suivant le vecteur $\\overrightarrow{v}$ et on clique sur le point où l'on est arrivé.`;
54
+ };
55
+ const getCorrectionGGBOptions = (identifiers) => {
56
+ const { points, vecSum } = getHydrated(identifiers);
57
+ const pointStart = points[0];
58
+ const pointEnd = vecSum.getEndPoint(pointStart);
59
+ const commands = [
60
+ ...getStudentGGBCommands(points),
61
+ `PEnd = Point({${pointEnd.getXnumber()},${pointEnd.getYnumber()}})`,
62
+ `w = Vector(${points[0].name}, PEnd)`,
63
+ `SetColor(w, "${greenMain}")`,
64
+ `ShowLabel(w, true)`,
65
+ ];
66
+ const ggb = new GeogebraConstructor({
67
+ commands,
68
+ customToolBar: toolBarConstructor({
69
+ vector: true,
70
+ }),
71
+ hideAxes: true,
72
+ fontSize: 16,
73
+ });
74
+ return ggb.getOptions({
75
+ coords: ggb.getCoordsForPoints([...points, pointEnd]),
76
+ });
77
+ };
78
+ const getStudentGGBCommands = (points) => {
79
+ return [
80
+ ...points.flatMap((point) => point.toGGBCommand({ isFixed: true, isVisible: false })),
81
+ `u = Vector(${points[0].name}, ${points[1].name})`,
82
+ `SetColor(u, "${orange}")`,
83
+ `ShowLabel(u, true)`,
84
+ `v = Vector(${points[2].name}, ${points[3].name})`,
85
+ `SetColor(v, "${blueMain}")`,
86
+ `ShowLabel(v, true)`,
87
+ ];
88
+ };
89
+ const getStudentGGBOptions = (identifiers) => {
90
+ const { points, vecSum } = getHydrated(identifiers);
91
+ const pointStart = points[0];
92
+ const pointEnd = vecSum.getEndPoint(pointStart);
93
+ const commands = [...getStudentGGBCommands(points)];
94
+ const ggb = new GeogebraConstructor({
95
+ commands,
96
+ customToolBar: toolBarConstructor({
97
+ vector: true,
98
+ }),
99
+ hideAxes: true,
100
+ fontSize: 16,
101
+ });
102
+ return ggb.getOptions({
103
+ coords: ggb.getCoordsForPoints([...points, pointEnd]),
104
+ });
105
+ };
106
+ const isGGBAnswerValid = (ans, { ggbAnswer, ...identifiers }) => {
107
+ const commands = ans;
108
+ const ggbParser = new GeogebraParser(commands);
109
+ const objectDict = ggbParser.objectDict();
110
+ const arrStrVector = Object.entries(objectDict)
111
+ .filter(([_, strObj]) => strObj.startsWith("Vector"))
112
+ .map(([_, strObj]) => strObj);
113
+ //required: only one vector
114
+ if (arrStrVector.length !== 1) {
115
+ return false;
116
+ }
117
+ const [strVector] = arrStrVector;
118
+ const [namePointStart, namePointEnd] = GeogebraParser.argNamesForVectorObj(strVector);
119
+ const [pointStart, pointEnd] = [namePointStart, namePointEnd].map((namePoint) => PointConstructor.fromCoords(ggbParser.pointCoords(namePoint)));
120
+ const vecAns = VectorConstructor.fromPoints(pointStart, pointEnd);
121
+ const { vecSum } = getHydrated(identifiers);
122
+ const isSameVecs = vecAns.substract(vecSum).getNorm().evaluate() < 0.2;
123
+ return isSameVecs;
124
+ };
125
+ const getTraceVectorSumFromVecsQuestion = () => {
126
+ const names = ["A", "B", "C", "D"];
127
+ const points = PointConstructor.randomDifferent(4, {
128
+ minDistance: 2,
129
+ names,
130
+ minDistanceToOrigin: 3,
131
+ });
132
+ const identifiers = {
133
+ pointIds: points.map((point) => point.toIdentifiers()),
134
+ };
135
+ return getQuestionFromIdentifiers(identifiers);
136
+ };
137
+ const getQuestionFromIdentifiers = (identifiers) => {
138
+ const question = {
139
+ ggbAnswer: getGGBAnswer(identifiers),
140
+ instruction: getInstruction(identifiers),
141
+ studentGgbOptions: getStudentGGBOptions(identifiers),
142
+ identifiers,
143
+ hint: getHint(identifiers),
144
+ correction: getCorrection(identifiers),
145
+ correctionGgbOptions: getCorrectionGGBOptions(identifiers),
146
+ };
147
+ return question;
148
+ };
149
+ export const traceVectorSumFromVecs = {
150
+ id: "traceVectorSumFromVecs",
151
+ label: "Construire un vecteur défini par une somme de vecteurs",
152
+ isSingleStep: true,
153
+ generator: (nb, opts) => getDistinctQuestions(() => getTraceVectorSumFromVecsQuestion(opts), nb),
154
+ ggbTimer: 60,
155
+ isGGBAnswerValid,
156
+ subject: "Mathématiques",
157
+ getHint,
158
+ getInstruction,
159
+ getCorrection,
160
+ getGGBAnswer,
161
+ getStudentGGBOptions,
162
+ answerType: "GGB",
163
+ getQuestionFromIdentifiers,
164
+ hasHintAndCorrection: true,
165
+ };
@@ -6,4 +6,5 @@ export * from "./coneVolume.js";
6
6
  export * from "./sphereVolume.js";
7
7
  export * from "./parallelepipedVolume.js";
8
8
  export * from "./variableVolume.js";
9
+ export * from "./volumeOfCylinder.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
@@ -6,3 +6,4 @@ export * from "./coneVolume.js";
6
6
  export * from "./sphereVolume.js";
7
7
  export * from "./parallelepipedVolume.js";
8
8
  export * from "./variableVolume.js";
9
+ export * from "./volumeOfCylinder.js";
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ radius: number;
4
+ height: number;
5
+ };
6
+ export declare const volumeOfCylinder: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=volumeOfCylinder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volumeOfCylinder.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/volumeOfCylinder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA2KF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAelD,CAAC"}
@@ -0,0 +1,157 @@
1
+ import { addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { GeogebraConstructor } from "../../../../geogebra/geogebraConstructor.js";
5
+ import { round } from "../../../../math/utils/round.js";
6
+ import { numberParser } from "../../../../tree/parsers/numberParser.js";
7
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
8
+ const getInstruction = (identifiers) => {
9
+ const { radius, height } = identifiers;
10
+ return `Le cylindre ci-dessous a une base de rayon $${radius}$ et une hauteur de $${height}$.
11
+
12
+ Calculer son volume (arrondir au centième).`;
13
+ };
14
+ const getHint = (identifiers) => {
15
+ const { radius } = identifiers;
16
+ return `Le volume d'un cylindre se calcule avec la formule :
17
+
18
+ $$
19
+ \\mathcal{V} = \\text{aire de la base} \\times \\text{hauteur}
20
+ $$
21
+
22
+ La base est un disque de rayon $${radius}$. Il faut donc commencer par calculer son aire.
23
+ `;
24
+ };
25
+ const getCorrection = (identifiers) => {
26
+ const { radius, height } = identifiers;
27
+ round((1 / 3) * Math.PI * Math.pow(radius, 2) * height, 2).toTree();
28
+ const area = round(Math.PI * radius ** 2, 2).frenchify();
29
+ return `Le volume d'un cylindre se calcule avec la formule :
30
+
31
+ $$
32
+ \\mathcal{V} = \\text{aire de la base} \\times \\text{hauteur}
33
+ $$
34
+
35
+ Ici, la base est un disque de rayon $${radius}$. Son aire est donc :
36
+
37
+ $$
38
+ \\mathcal{A} = \\pi\\times ${radius}^2 \\approx ${area}
39
+ $$
40
+
41
+ Le volume du cylindre est donc :
42
+
43
+ ${alignTex([
44
+ [
45
+ "\\mathcal{V}",
46
+ "\\approx",
47
+ `${area} \\times ${height} = ${getAnswer(identifiers)}`,
48
+ ],
49
+ ["", "\\approx", getAnswer(identifiers)],
50
+ ])}
51
+ `;
52
+ };
53
+ const getAnswer = (identifiers) => {
54
+ const { radius, height } = identifiers;
55
+ const volume = round(Math.PI * Math.pow(radius, 2) * height, 2)
56
+ .toTree()
57
+ .toTex();
58
+ return volume;
59
+ };
60
+ const getGGBOptions = (identifiers) => {
61
+ const { radius, height } = identifiers;
62
+ const xMin = -radius - 5;
63
+ const xMax = radius + 5;
64
+ const yMin = -radius - 5;
65
+ const yMax = radius + 5;
66
+ const zMax = height + 5;
67
+ const commands = [
68
+ `A = (0, 0, 0)`,
69
+ `B = (0, 0, ${height})`,
70
+ `SetFixed(A, true, false)`,
71
+ `SetFixed(B, true, false)`,
72
+ `SetVisibleInView(A, -1, false)`,
73
+ `SetVisibleInView(B, -1, false)`,
74
+ `Cylinder(A, B, ${radius})`,
75
+ ];
76
+ const ggb = new GeogebraConstructor({
77
+ commands,
78
+ lockedAxesRatio: false,
79
+ hideAxes: true,
80
+ hideGrid: true,
81
+ is3D: true,
82
+ });
83
+ return ggb.getOptions({
84
+ coords: [xMin, xMax, yMin, yMax, 0, zMax],
85
+ });
86
+ };
87
+ const getPropositions = (n, { answer, radius, height }) => {
88
+ const propositions = [];
89
+ addValidProp(propositions, answer);
90
+ const wrongVolume1 = round(Math.PI * Math.pow(radius, 2) * height, 2)
91
+ .toTree()
92
+ .toTex();
93
+ tryToAddWrongProp(propositions, wrongVolume1);
94
+ const wrongVolume2 = round(Math.PI * radius * height, 2)
95
+ .toTree()
96
+ .toTex();
97
+ tryToAddWrongProp(propositions, wrongVolume2);
98
+ const wrongVolume3 = round((1 / 3) * Math.PI * Math.pow(radius, 2) * height, 2)
99
+ .toTree()
100
+ .toTex();
101
+ tryToAddWrongProp(propositions, wrongVolume3);
102
+ propWhile(propositions, n, () => {
103
+ let wrongRadius, wrongHeight;
104
+ do {
105
+ wrongRadius = randint(1, 5);
106
+ wrongHeight = randint(2, 10);
107
+ } while (wrongHeight <= wrongRadius);
108
+ const wrongVolume = round(Math.PI * Math.pow(wrongRadius, 2) * wrongHeight, 2)
109
+ .toTree()
110
+ .toTex();
111
+ tryToAddWrongProp(propositions, wrongVolume);
112
+ });
113
+ return shuffleProps(propositions, n);
114
+ };
115
+ const isAnswerValid = (ans, { answer }) => {
116
+ const parsed = numberParser(ans);
117
+ if (!parsed)
118
+ return false;
119
+ return parsed === answer;
120
+ };
121
+ const getVolumeOfCylinderQuestion = () => {
122
+ let radius, height;
123
+ do {
124
+ radius = randint(1, 11);
125
+ height = randint(2, 12);
126
+ } while (height <= radius);
127
+ const identifiers = { radius, height };
128
+ return getQuestionFromIdentifiers(identifiers);
129
+ };
130
+ const getQuestionFromIdentifiers = (identifiers) => {
131
+ const question = {
132
+ answer: getAnswer(identifiers),
133
+ instruction: getInstruction(identifiers),
134
+ ggbOptions: getGGBOptions(identifiers),
135
+ keys: [],
136
+ answerFormat: "tex",
137
+ identifiers,
138
+ hint: getHint(identifiers),
139
+ correction: getCorrection(identifiers),
140
+ };
141
+ return question;
142
+ };
143
+ export const volumeOfCylinder = {
144
+ id: "volumeOfCylinder",
145
+ label: "Calculer le volume d'un cylindre de hauteur et de rayon donnés",
146
+ isSingleStep: true,
147
+ generator: (nb) => getDistinctQuestions(getVolumeOfCylinderQuestion, nb),
148
+ qcmTimer: 60,
149
+ freeTimer: 60,
150
+ getPropositions,
151
+ isAnswerValid,
152
+ hasGeogebra: true,
153
+ subject: "Mathématiques",
154
+ getQuestionFromIdentifiers,
155
+ hasHintAndCorrection: true,
156
+ shouldHaveCalculator: true,
157
+ };
@@ -6,4 +6,5 @@ export * from "./spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.js";
6
6
  export * from "./spaceVectorLinearCombinationFromCoords.js";
7
7
  export * from "./lineLineRelativePositionsFromCubeOuterPoints.js";
8
8
  export * from "./linePlaneRelativePositionsFromCubeOuterPoints.js";
9
+ export * from "./spaceSegmentLengthInRectangularPrism.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/spaceGeometry/basis/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0DAA0D,CAAC;AACzE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,oDAAoD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/spaceGeometry/basis/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0DAA0D,CAAC;AACzE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,oDAAoD,CAAC;AACnE,cAAc,2CAA2C,CAAC"}
@@ -6,3 +6,4 @@ export * from "./spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.js";
6
6
  export * from "./spaceVectorLinearCombinationFromCoords.js";
7
7
  export * from "./lineLineRelativePositionsFromCubeOuterPoints.js";
8
8
  export * from "./linePlaneRelativePositionsFromCubeOuterPoints.js";
9
+ export * from "./spaceSegmentLengthInRectangularPrism.js";
@@ -0,0 +1,18 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { SpacePointIdentifiers } from "../../../../math/geometry/spacePoint.js";
3
+ /**********/
4
+ type Identifiers = {
5
+ rectangularPrismOrigin: SpacePointIdentifiers;
6
+ L: number;
7
+ l: number;
8
+ h: number;
9
+ arrSegmentSpacePointIds: SpacePointIdentifiers[];
10
+ acceptedInputType: string;
11
+ };
12
+ type Options = {
13
+ acceptedInputType: string;
14
+ nbComponents: string;
15
+ };
16
+ export declare const spaceSegmentLengthInRectangularPrism: Exercise<Identifiers, Options>;
17
+ export {};
18
+ //# sourceMappingURL=spaceSegmentLengthInRectangularPrism.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaceSegmentLengthInRectangularPrism.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/spaceGeometry/basis/spaceSegmentLengthInRectangularPrism.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAoBT,MAAM,6BAA6B,CAAC;AASrC,OAAO,EAGL,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AA2N3C,YAAY;AAEZ,KAAK,WAAW,GAAG;IAEjB,sBAAsB,EAAE,qBAAqB,CAAC;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IAEV,uBAAuB,EAAE,qBAAqB,EAAE,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAojBF,KAAK,OAAO,GAAG;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAmCF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CACzD,WAAW,EACX,OAAO,CAsBR,CAAC"}