math-exercises 2.2.2 → 2.2.4

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 (355) hide show
  1. package/lib/exercises/exercise.d.ts +2 -1
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/proportionality/index.d.ts +2 -0
  4. package/lib/exercises/math/calcul/proportionality/index.d.ts.map +1 -1
  5. package/lib/exercises/math/calcul/proportionality/index.js +2 -0
  6. package/lib/exercises/math/calcul/proportionality/scaleCalculation.d.ts +9 -0
  7. package/lib/exercises/math/calcul/proportionality/scaleCalculation.d.ts.map +1 -0
  8. package/lib/exercises/math/calcul/proportionality/scaleCalculation.js +90 -0
  9. package/lib/exercises/math/calcul/proportionality/scaleUsage.d.ts +9 -0
  10. package/lib/exercises/math/calcul/proportionality/scaleUsage.d.ts.map +1 -0
  11. package/lib/exercises/math/calcul/proportionality/scaleUsage.js +95 -0
  12. package/lib/exercises/math/calculLitteral/distributivity/canonicalFormDevelopment.d.ts +7 -0
  13. package/lib/exercises/math/calculLitteral/distributivity/canonicalFormDevelopment.d.ts.map +1 -0
  14. package/lib/exercises/math/calculLitteral/distributivity/canonicalFormDevelopment.js +59 -0
  15. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.d.ts +9 -0
  16. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.d.ts.map +1 -0
  17. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.js +77 -0
  18. package/lib/exercises/math/calculLitteral/distributivity/index.d.ts +2 -0
  19. package/lib/exercises/math/calculLitteral/distributivity/index.d.ts.map +1 -1
  20. package/lib/exercises/math/calculLitteral/distributivity/index.js +2 -0
  21. package/lib/exercises/math/conversion/lengthConversion.d.ts.map +1 -1
  22. package/lib/exercises/math/conversion/lengthConversion.js +18 -4
  23. package/lib/exercises/math/functions/affines/affineExpressionFromTwoImages.d.ts +10 -0
  24. package/lib/exercises/math/functions/affines/affineExpressionFromTwoImages.d.ts.map +1 -0
  25. package/lib/exercises/math/functions/affines/affineExpressionFromTwoImages.js +81 -0
  26. package/lib/exercises/math/functions/affines/index.d.ts +1 -0
  27. package/lib/exercises/math/functions/affines/index.d.ts.map +1 -1
  28. package/lib/exercises/math/functions/affines/index.js +1 -0
  29. package/lib/exercises/pc/calibrationCurveOfSolution.js +1 -1
  30. package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.d.ts +1 -1
  31. package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.d.ts.map +1 -1
  32. package/lib/exercises/pc/chemicalElements/atomicStructureOfNucleus.js +1 -1
  33. package/lib/exercises/pc/chemicalElements/calculateProtonsNumberFromMass.d.ts +1 -1
  34. package/lib/exercises/pc/chemicalElements/calculateProtonsNumberFromMass.d.ts.map +1 -1
  35. package/lib/exercises/pc/chemicalElements/calculateProtonsNumberFromMass.js +3 -3
  36. package/lib/exercises/pc/chemicalElements/calculateVolumetricMass.d.ts.map +1 -1
  37. package/lib/exercises/pc/chemicalElements/calculateVolumetricMass.js +29 -4
  38. package/lib/exercises/pc/chemicalElements/findAtomEntitiesNumberFromMass.d.ts +1 -1
  39. package/lib/exercises/pc/chemicalElements/findAtomEntitiesNumberFromMass.d.ts.map +1 -1
  40. package/lib/exercises/pc/chemicalElements/findAtomEntitiesNumberFromMass.js +6 -6
  41. package/lib/exercises/pc/chemicalElements/findAtomicStructureElement.d.ts +1 -1
  42. package/lib/exercises/pc/chemicalElements/findAtomicStructureElement.d.ts.map +1 -1
  43. package/lib/exercises/pc/chemicalElements/findAtomicStructureElement.js +1 -1
  44. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromElectronicConfiguration.d.ts +1 -1
  45. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromElectronicConfiguration.d.ts.map +1 -1
  46. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromElectronicConfiguration.js +1 -1
  47. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromTable.d.ts +1 -1
  48. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromTable.d.ts.map +1 -1
  49. package/lib/exercises/pc/chemicalElements/findValenceElectronsNumberFromTable.js +1 -1
  50. package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.d.ts +1 -1
  51. package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.d.ts.map +1 -1
  52. package/lib/exercises/pc/chemicalElements/identifyRightElectronicConfiguration.js +1 -1
  53. package/lib/exercises/pc/chemicalElements/index.d.ts +1 -0
  54. package/lib/exercises/pc/chemicalElements/index.d.ts.map +1 -1
  55. package/lib/exercises/pc/chemicalElements/index.js +1 -0
  56. package/lib/exercises/pc/chemicalElements/massOrVolumeProportion.d.ts +11 -0
  57. package/lib/exercises/pc/chemicalElements/massOrVolumeProportion.d.ts.map +1 -0
  58. package/lib/exercises/pc/chemicalElements/massOrVolumeProportion.js +99 -0
  59. package/lib/exercises/pc/chemicalEquations.d.ts +1 -1
  60. package/lib/exercises/pc/chemicalEquations.d.ts.map +1 -1
  61. package/lib/exercises/pc/chemicalEquations.js +1 -1
  62. package/lib/exercises/pc/chemicalReactions/index.d.ts +2 -0
  63. package/lib/exercises/pc/chemicalReactions/index.d.ts.map +1 -1
  64. package/lib/exercises/pc/chemicalReactions/index.js +2 -0
  65. package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.d.ts +5 -0
  66. package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.d.ts.map +1 -0
  67. package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.js +69 -0
  68. package/lib/exercises/pc/chemicalReactions/titrationEquivalenceRelation.d.ts +11 -0
  69. package/lib/exercises/pc/chemicalReactions/titrationEquivalenceRelation.d.ts.map +1 -0
  70. package/lib/exercises/pc/chemicalReactions/titrationEquivalenceRelation.js +180 -0
  71. package/lib/exercises/pc/chemicalReactionsProduct.d.ts +1 -1
  72. package/lib/exercises/pc/chemicalReactionsProduct.d.ts.map +1 -1
  73. package/lib/exercises/pc/chemicalReactionsProduct.js +1 -1
  74. package/lib/exercises/pc/dosage/beerLambertRandomValue.js +1 -1
  75. package/lib/exercises/pc/dosage/concentrationCalculation.d.ts +10 -0
  76. package/lib/exercises/pc/dosage/concentrationCalculation.d.ts.map +1 -0
  77. package/lib/exercises/pc/dosage/concentrationCalculation.js +118 -0
  78. package/lib/exercises/pc/dosage/concentrationFromMassCalculation.d.ts +10 -0
  79. package/lib/exercises/pc/dosage/concentrationFromMassCalculation.d.ts.map +1 -0
  80. package/lib/exercises/pc/dosage/concentrationFromMassCalculation.js +116 -0
  81. package/lib/exercises/pc/dosage/index.d.ts +2 -0
  82. package/lib/exercises/pc/dosage/index.d.ts.map +1 -1
  83. package/lib/exercises/pc/dosage/index.js +2 -0
  84. package/lib/exercises/pc/electricity/calculateIntensity.d.ts +8 -0
  85. package/lib/exercises/pc/electricity/calculateIntensity.d.ts.map +1 -0
  86. package/lib/exercises/pc/electricity/calculateIntensity.js +60 -0
  87. package/lib/exercises/pc/electricity/calculateIntensityInSerieOrParallel.d.ts +10 -0
  88. package/lib/exercises/pc/electricity/calculateIntensityInSerieOrParallel.d.ts.map +1 -0
  89. package/lib/exercises/pc/electricity/calculateIntensityInSerieOrParallel.js +105 -0
  90. package/lib/exercises/pc/electricity/calculateVoltage.d.ts +11 -0
  91. package/lib/exercises/pc/electricity/calculateVoltage.d.ts.map +1 -0
  92. package/lib/exercises/pc/electricity/calculateVoltage.js +143 -0
  93. package/lib/exercises/pc/electricity/electricPowerOrEnergyCalculation.d.ts +9 -0
  94. package/lib/exercises/pc/electricity/electricPowerOrEnergyCalculation.d.ts.map +1 -0
  95. package/lib/exercises/pc/electricity/electricPowerOrEnergyCalculation.js +80 -0
  96. package/lib/exercises/pc/electricity/index.d.ts +7 -0
  97. package/lib/exercises/pc/electricity/index.d.ts.map +1 -1
  98. package/lib/exercises/pc/electricity/index.js +7 -0
  99. package/lib/exercises/pc/electricity/kirchhoffVoltageLaw.d.ts +10 -0
  100. package/lib/exercises/pc/electricity/kirchhoffVoltageLaw.d.ts.map +1 -0
  101. package/lib/exercises/pc/electricity/kirchhoffVoltageLaw.js +110 -0
  102. package/lib/exercises/pc/electricity/ohmLaw.d.ts +11 -0
  103. package/lib/exercises/pc/electricity/ohmLaw.d.ts.map +1 -0
  104. package/lib/exercises/pc/electricity/ohmLaw.js +122 -0
  105. package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.d.ts +5 -0
  106. package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.d.ts.map +1 -0
  107. package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.js +94 -0
  108. package/lib/exercises/pc/energy/calorificValue.d.ts +8 -0
  109. package/lib/exercises/pc/energy/calorificValue.d.ts.map +1 -0
  110. package/lib/exercises/pc/energy/calorificValue.js +77 -0
  111. package/lib/exercises/pc/energy/combustionTransferEnergy.d.ts +8 -0
  112. package/lib/exercises/pc/energy/combustionTransferEnergy.d.ts.map +1 -0
  113. package/lib/exercises/pc/energy/combustionTransferEnergy.js +77 -0
  114. package/lib/exercises/pc/energy/combustionTransferEnergy2.d.ts +11 -0
  115. package/lib/exercises/pc/energy/combustionTransferEnergy2.d.ts.map +1 -0
  116. package/lib/exercises/pc/energy/combustionTransferEnergy2.js +140 -0
  117. package/lib/exercises/pc/energy/efficencyOfConverter.d.ts +8 -0
  118. package/lib/exercises/pc/energy/efficencyOfConverter.d.ts.map +1 -0
  119. package/lib/exercises/pc/energy/efficencyOfConverter.js +83 -0
  120. package/lib/exercises/pc/energy/efficiencyCalculation.d.ts +10 -0
  121. package/lib/exercises/pc/energy/efficiencyCalculation.d.ts.map +1 -0
  122. package/lib/exercises/pc/energy/efficiencyCalculation.js +121 -0
  123. package/lib/exercises/pc/energy/energyTransfer.d.ts +10 -0
  124. package/lib/exercises/pc/energy/energyTransfer.d.ts.map +1 -0
  125. package/lib/exercises/pc/energy/energyTransfer.js +67 -0
  126. package/lib/exercises/pc/energy/index.d.ts +9 -0
  127. package/lib/exercises/pc/energy/index.d.ts.map +1 -0
  128. package/lib/exercises/pc/energy/index.js +24 -0
  129. package/lib/exercises/pc/energy/kineticEnergyOrMassOrSpeed.d.ts +10 -0
  130. package/lib/exercises/pc/energy/kineticEnergyOrMassOrSpeed.d.ts.map +1 -0
  131. package/lib/exercises/pc/energy/kineticEnergyOrMassOrSpeed.js +167 -0
  132. package/lib/exercises/pc/energy/thermalEnergyTransferCalculation.d.ts +11 -0
  133. package/lib/exercises/pc/energy/thermalEnergyTransferCalculation.d.ts.map +1 -0
  134. package/lib/exercises/pc/energy/thermalEnergyTransferCalculation.js +142 -0
  135. package/lib/exercises/pc/forces/calculateNormalOrFrictionForce.d.ts +8 -0
  136. package/lib/exercises/pc/forces/calculateNormalOrFrictionForce.d.ts.map +1 -0
  137. package/lib/exercises/pc/forces/calculateNormalOrFrictionForce.js +101 -0
  138. package/lib/exercises/pc/forces/electroStaticForce.d.ts +13 -0
  139. package/lib/exercises/pc/forces/electroStaticForce.d.ts.map +1 -0
  140. package/lib/exercises/pc/forces/electroStaticForce.js +116 -0
  141. package/lib/exercises/pc/forces/gravitationalAttractionObjectHeight.d.ts +9 -0
  142. package/lib/exercises/pc/forces/gravitationalAttractionObjectHeight.d.ts.map +1 -0
  143. package/lib/exercises/pc/forces/gravitationalAttractionObjectHeight.js +131 -0
  144. package/lib/exercises/pc/forces/gravitationalAttractionValue.d.ts +1 -0
  145. package/lib/exercises/pc/forces/gravitationalAttractionValue.d.ts.map +1 -1
  146. package/lib/exercises/pc/forces/gravitationalAttractionValue.js +31 -27
  147. package/lib/exercises/pc/forces/gravitationalForcePlanets.d.ts +10 -0
  148. package/lib/exercises/pc/forces/gravitationalForcePlanets.d.ts.map +1 -0
  149. package/lib/exercises/pc/forces/gravitationalForcePlanets.js +117 -0
  150. package/lib/exercises/pc/forces/index.d.ts +5 -0
  151. package/lib/exercises/pc/forces/index.d.ts.map +1 -1
  152. package/lib/exercises/pc/forces/index.js +6 -0
  153. package/lib/exercises/pc/forces/massWeight.d.ts +9 -0
  154. package/lib/exercises/pc/forces/massWeight.d.ts.map +1 -0
  155. package/lib/exercises/pc/forces/massWeight.js +67 -0
  156. package/lib/exercises/pc/forces/pressureDifferenceCalculation.d.ts +1 -0
  157. package/lib/exercises/pc/forces/pressureDifferenceCalculation.d.ts.map +1 -0
  158. package/lib/exercises/pc/forces/pressureDifferenceCalculation.js +106 -0
  159. package/lib/exercises/pc/formulaFromComposition.js +2 -2
  160. package/lib/exercises/pc/identifyAtomicMassOrAtomicNb.d.ts +8 -0
  161. package/lib/exercises/pc/identifyAtomicMassOrAtomicNb.d.ts.map +1 -0
  162. package/lib/exercises/pc/identifyAtomicMassOrAtomicNb.js +72 -0
  163. package/lib/exercises/pc/index.d.ts +6 -0
  164. package/lib/exercises/pc/index.d.ts.map +1 -1
  165. package/lib/exercises/pc/index.js +6 -0
  166. package/lib/exercises/pc/molarQuantity.js +2 -2
  167. package/lib/exercises/pc/mole/index.d.ts +2 -0
  168. package/lib/exercises/pc/mole/index.d.ts.map +1 -1
  169. package/lib/exercises/pc/mole/index.js +2 -0
  170. package/lib/exercises/pc/mole/molarMass.js +1 -1
  171. package/lib/exercises/pc/mole/moleculeCountFromMassAndAvogadro.d.ts +9 -0
  172. package/lib/exercises/pc/mole/moleculeCountFromMassAndAvogadro.d.ts.map +1 -0
  173. package/lib/exercises/pc/mole/moleculeCountFromMassAndAvogadro.js +75 -0
  174. package/lib/exercises/pc/mole/moleculeCountFromMol.d.ts +7 -0
  175. package/lib/exercises/pc/mole/moleculeCountFromMol.d.ts.map +1 -0
  176. package/lib/exercises/pc/mole/moleculeCountFromMol.js +66 -0
  177. package/lib/exercises/pc/moleculeFormula.js +1 -1
  178. package/lib/exercises/pc/moleculeNomenclature.js +1 -1
  179. package/lib/exercises/pc/motion/averageSpeed.d.ts +12 -0
  180. package/lib/exercises/pc/motion/averageSpeed.d.ts.map +1 -0
  181. package/lib/exercises/pc/motion/averageSpeed.js +121 -0
  182. package/lib/exercises/pc/motion/averageSpeedCalculation.d.ts +10 -0
  183. package/lib/exercises/pc/motion/averageSpeedCalculation.d.ts.map +1 -0
  184. package/lib/exercises/pc/motion/averageSpeedCalculation.js +145 -0
  185. package/lib/exercises/pc/motion/characteristicsOfVelocityVector.d.ts +7 -0
  186. package/lib/exercises/pc/motion/characteristicsOfVelocityVector.d.ts.map +1 -0
  187. package/lib/exercises/pc/motion/characteristicsOfVelocityVector.js +86 -0
  188. package/lib/exercises/pc/motion/index.d.ts +7 -0
  189. package/lib/exercises/pc/motion/index.d.ts.map +1 -0
  190. package/lib/exercises/pc/motion/index.js +22 -0
  191. package/lib/exercises/pc/motion/motionReference.d.ts +9 -0
  192. package/lib/exercises/pc/motion/motionReference.d.ts.map +1 -0
  193. package/lib/exercises/pc/motion/motionReference.js +167 -0
  194. package/lib/exercises/pc/motion/typeOfAcceleration.d.ts +5 -0
  195. package/lib/exercises/pc/motion/typeOfAcceleration.d.ts.map +1 -0
  196. package/lib/exercises/pc/motion/typeOfAcceleration.js +97 -0
  197. package/lib/exercises/pc/motion/typeOfMovement.d.ts +5 -0
  198. package/lib/exercises/pc/motion/typeOfMovement.d.ts.map +1 -0
  199. package/lib/exercises/pc/motion/typeOfMovement.js +111 -0
  200. package/lib/exercises/pc/orderOfMagnitude.d.ts +8 -0
  201. package/lib/exercises/pc/orderOfMagnitude.d.ts.map +1 -0
  202. package/lib/exercises/pc/orderOfMagnitude.js +68 -0
  203. package/lib/exercises/pc/potentialEnergy.d.ts.map +1 -1
  204. package/lib/exercises/pc/potentialEnergy.js +17 -5
  205. package/lib/exercises/pc/power/calculatePowerOfLight.d.ts +8 -0
  206. package/lib/exercises/pc/power/calculatePowerOfLight.d.ts.map +1 -0
  207. package/lib/exercises/pc/power/calculatePowerOfLight.js +85 -0
  208. package/lib/exercises/pc/power/index.d.ts +2 -0
  209. package/lib/exercises/pc/power/index.d.ts.map +1 -0
  210. package/lib/exercises/pc/power/index.js +17 -0
  211. package/lib/exercises/pc/recognizeRefractionOrReflectionAngles.d.ts +5 -0
  212. package/lib/exercises/pc/recognizeRefractionOrReflectionAngles.d.ts.map +1 -0
  213. package/lib/exercises/pc/recognizeRefractionOrReflectionAngles.js +117 -0
  214. package/lib/exercises/pc/sound/findPeriodOrFrequencyFromGraph.d.ts +9 -0
  215. package/lib/exercises/pc/sound/findPeriodOrFrequencyFromGraph.d.ts.map +1 -0
  216. package/lib/exercises/pc/sound/findPeriodOrFrequencyFromGraph.js +95 -0
  217. package/lib/exercises/pc/sound/index.d.ts +1 -0
  218. package/lib/exercises/pc/sound/index.d.ts.map +1 -1
  219. package/lib/exercises/pc/sound/index.js +1 -0
  220. package/lib/exercises/pc/waves/index.d.ts +1 -0
  221. package/lib/exercises/pc/waves/index.d.ts.map +1 -1
  222. package/lib/exercises/pc/waves/index.js +1 -0
  223. package/lib/exercises/pc/waves/lightDistanceConversion.d.ts +10 -0
  224. package/lib/exercises/pc/waves/lightDistanceConversion.d.ts.map +1 -0
  225. package/lib/exercises/pc/waves/lightDistanceConversion.js +160 -0
  226. package/lib/exercises/pc/weight/calculateWeight.d.ts +7 -0
  227. package/lib/exercises/pc/weight/calculateWeight.d.ts.map +1 -0
  228. package/lib/exercises/pc/weight/calculateWeight.js +72 -0
  229. package/lib/exercises/pc/weight/index.d.ts +1 -0
  230. package/lib/exercises/pc/weight/index.d.ts.map +1 -1
  231. package/lib/exercises/pc/weight/index.js +1 -0
  232. package/lib/exercises/pc/weight/weightOnTheMoon.d.ts.map +1 -1
  233. package/lib/exercises/pc/weight/weightOnTheMoon.js +6 -6
  234. package/lib/exercises/utils/getAtoms.d.ts +1 -1
  235. package/lib/exercises/utils/getAtoms.d.ts.map +1 -1
  236. package/lib/exercises/utils/getAtoms.js +1 -1
  237. package/lib/geogebra/deleteObjectNamesFromAnswer.d.ts +1 -1
  238. package/lib/geogebra/deleteObjectNamesFromAnswer.d.ts.map +1 -1
  239. package/lib/geogebra/deleteObjectNamesFromAnswer.js +2 -2
  240. package/lib/index.d.ts +188 -11
  241. package/lib/index.d.ts.map +1 -1
  242. package/lib/math/numbers/reals/extendedRingElement.d.ts +1 -2
  243. package/lib/math/numbers/reals/extendedRingElement.d.ts.map +1 -1
  244. package/lib/math/polynomials/affine.d.ts +4 -0
  245. package/lib/math/polynomials/affine.d.ts.map +1 -1
  246. package/lib/math/polynomials/affine.js +10 -0
  247. package/lib/math/polynomials/trinom.d.ts +2 -1
  248. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  249. package/lib/math/polynomials/trinom.js +3 -0
  250. package/lib/pc/constants/atoms.d.ts +0 -1
  251. package/lib/pc/constants/atoms.d.ts.map +1 -1
  252. package/lib/pc/constants/atoms.js +2 -2
  253. package/lib/pc/constants/coulomb.d.ts +3 -0
  254. package/lib/pc/constants/coulomb.d.ts.map +1 -0
  255. package/lib/pc/constants/coulomb.js +13 -0
  256. package/lib/pc/constants/earth.d.ts +0 -1
  257. package/lib/pc/constants/earth.d.ts.map +1 -1
  258. package/lib/pc/constants/earth.js +4 -4
  259. package/lib/pc/constants/gravity.d.ts +1 -1
  260. package/lib/pc/constants/gravity.d.ts.map +1 -1
  261. package/lib/pc/constants/gravity.js +16 -7
  262. package/lib/pc/constants/mechanics/gravitational.d.ts +14 -0
  263. package/lib/pc/constants/mechanics/gravitational.d.ts.map +1 -0
  264. package/lib/pc/constants/mechanics/gravitational.js +37 -0
  265. package/lib/pc/constants/mechanics/planets.d.ts +15 -0
  266. package/lib/pc/constants/mechanics/planets.d.ts.map +1 -0
  267. package/lib/pc/constants/mechanics/planets.js +35 -0
  268. package/lib/pc/constants/mechanics/waves.d.ts +8 -0
  269. package/lib/pc/constants/mechanics/waves.d.ts.map +1 -0
  270. package/lib/pc/constants/mechanics/waves.js +8 -0
  271. package/lib/pc/constants/molecularChemistry/atomSymbols.d.ts +2 -0
  272. package/lib/pc/constants/molecularChemistry/atomSymbols.d.ts.map +1 -0
  273. package/lib/pc/constants/molecularChemistry/atomSymbols.js +2 -0
  274. package/lib/pc/constants/molecularChemistry/atome.d.ts +18 -0
  275. package/lib/pc/constants/molecularChemistry/atome.d.ts.map +1 -0
  276. package/lib/pc/constants/molecularChemistry/atome.js +174 -0
  277. package/lib/pc/constants/molecularChemistry/atoms.d.ts +9 -0
  278. package/lib/pc/constants/molecularChemistry/atoms.d.ts.map +1 -0
  279. package/lib/pc/constants/molecularChemistry/atoms.js +15 -0
  280. package/lib/pc/constants/molecularChemistry/molecule.d.ts +25 -0
  281. package/lib/pc/constants/molecularChemistry/molecule.d.ts.map +1 -0
  282. package/lib/pc/constants/molecularChemistry/molecule.js +579 -0
  283. package/lib/pc/constants/molecularChemistry/reaction.d.ts +27 -0
  284. package/lib/pc/constants/molecularChemistry/reaction.d.ts.map +1 -0
  285. package/lib/pc/constants/molecularChemistry/reaction.js +471 -0
  286. package/lib/pc/measure/measure.d.ts +16 -6
  287. package/lib/pc/measure/measure.d.ts.map +1 -1
  288. package/lib/pc/measure/measure.js +112 -16
  289. package/lib/pc/units/AmountOfSubstance.d.ts +17 -0
  290. package/lib/pc/units/AmountOfSubstance.d.ts.map +1 -0
  291. package/lib/pc/units/AmountOfSubstance.js +40 -0
  292. package/lib/pc/units/PressionUnit.d.ts +17 -0
  293. package/lib/pc/units/PressionUnit.d.ts.map +1 -0
  294. package/lib/pc/units/PressionUnit.js +32 -0
  295. package/lib/pc/units/distanceUnits.d.ts +16 -0
  296. package/lib/pc/units/distanceUnits.d.ts.map +1 -0
  297. package/lib/pc/units/distanceUnits.js +32 -0
  298. package/lib/pc/units/divideUnit.d.ts +13 -0
  299. package/lib/pc/units/divideUnit.d.ts.map +1 -0
  300. package/lib/pc/units/divideUnit.js +32 -0
  301. package/lib/pc/units/electricalChargeUnit.d.ts +17 -0
  302. package/lib/pc/units/electricalChargeUnit.d.ts.map +1 -0
  303. package/lib/pc/units/electricalChargeUnit.js +40 -0
  304. package/lib/pc/units/electricalResistanceUnit.d.ts +18 -0
  305. package/lib/pc/units/electricalResistanceUnit.d.ts.map +1 -0
  306. package/lib/pc/units/electricalResistanceUnit.js +32 -0
  307. package/lib/pc/units/electricalUnit.d.ts +18 -0
  308. package/lib/pc/units/electricalUnit.d.ts.map +1 -0
  309. package/lib/pc/units/electricalUnit.js +32 -0
  310. package/lib/pc/units/energyUnit.d.ts +16 -0
  311. package/lib/pc/units/energyUnit.d.ts.map +1 -0
  312. package/lib/pc/units/energyUnit.js +32 -0
  313. package/lib/pc/units/forceUnits.d.ts +16 -0
  314. package/lib/pc/units/forceUnits.d.ts.map +1 -0
  315. package/lib/pc/units/forceUnits.js +32 -0
  316. package/lib/pc/units/frequenceUnit.d.ts +17 -0
  317. package/lib/pc/units/frequenceUnit.d.ts.map +1 -0
  318. package/lib/pc/units/frequenceUnit.js +40 -0
  319. package/lib/pc/units/interfaces/baseTenUnit.d.ts +10 -0
  320. package/lib/pc/units/interfaces/baseTenUnit.d.ts.map +1 -0
  321. package/lib/pc/units/interfaces/baseTenUnit.js +16 -0
  322. package/lib/pc/units/interfaces/basicUnit.d.ts +13 -0
  323. package/lib/pc/units/interfaces/basicUnit.d.ts.map +1 -0
  324. package/lib/pc/units/interfaces/basicUnit.js +19 -0
  325. package/lib/pc/units/interfaces/unit.d.ts +13 -0
  326. package/lib/pc/units/interfaces/unit.d.ts.map +1 -0
  327. package/lib/pc/units/interfaces/unit.js +2 -0
  328. package/lib/pc/units/massUnits.d.ts +17 -0
  329. package/lib/pc/units/massUnits.d.ts.map +1 -0
  330. package/lib/pc/units/massUnits.js +32 -0
  331. package/lib/pc/units/mulitplyUnits.d.ts +13 -0
  332. package/lib/pc/units/mulitplyUnits.d.ts.map +1 -0
  333. package/lib/pc/units/mulitplyUnits.js +26 -0
  334. package/lib/pc/units/powerUnits.d.ts +14 -0
  335. package/lib/pc/units/powerUnits.d.ts.map +1 -0
  336. package/lib/pc/units/powerUnits.js +26 -0
  337. package/lib/pc/units/timeUnits.d.ts +13 -0
  338. package/lib/pc/units/timeUnits.d.ts.map +1 -0
  339. package/lib/pc/units/timeUnits.js +42 -0
  340. package/lib/pc/units/volumeUnit.d.ts +17 -0
  341. package/lib/pc/units/volumeUnit.d.ts.map +1 -0
  342. package/lib/pc/units/volumeUnit.js +32 -0
  343. package/lib/pc/units/wattUnit.d.ts +17 -0
  344. package/lib/pc/units/wattUnit.d.ts.map +1 -0
  345. package/lib/pc/units/wattUnit.js +32 -0
  346. package/lib/server.d.ts.map +1 -1
  347. package/lib/server.js +6 -6
  348. package/lib/tree/nodes/node.d.ts +3 -0
  349. package/lib/tree/nodes/node.d.ts.map +1 -1
  350. package/lib/tree/nodes/operators/addNode.js +2 -2
  351. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  352. package/lib/tree/nodes/operators/multiplyNode.js +32 -10
  353. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  354. package/lib/tree/nodes/operators/powerNode.js +12 -0
  355. package/package.json +1 -1
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.averageSpeed = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
7
+ const randint_1 = require("../../../math/utils/random/randint");
8
+ const measure_1 = require("../../../pc/measure/measure");
9
+ const distanceUnits_1 = require("../../../pc/units/distanceUnits");
10
+ const timeUnits_1 = require("../../../pc/units/timeUnits");
11
+ const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
12
+ const variableNode_1 = require("../../../tree/nodes/variables/variableNode");
13
+ const timeUnits = [timeUnits_1.TimeUnit.h, timeUnits_1.TimeUnit.mi];
14
+ const distanceUnitValues = [distanceUnits_1.DistanceUnit.km, distanceUnits_1.DistanceUnit.m];
15
+ const getAverageSpeedQuestion = () => {
16
+ const exo = generateExercise();
17
+ const question = {
18
+ answer: exo.answer.toTex(),
19
+ instruction: exo.instruction,
20
+ keys: [],
21
+ hint: "Rappel : vitesse moyenne = $\\frac{\\text{distance}}{\\text{temps}}$ $m \\cdot s^{-1}$",
22
+ correction: exo.correction,
23
+ answerFormat: "tex",
24
+ identifiers: { distance: exo.distance, time: exo.time },
25
+ };
26
+ return question;
27
+ };
28
+ const getPropositions = (n, { answer, distance, time }) => {
29
+ const propositions = [];
30
+ (0, exercise_1.addValidProp)(propositions, answer);
31
+ const distanceMeasure = new measure_1.Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]);
32
+ const timeMeasure = new measure_1.Measure(time.value, 0, timeUnits[time.unitIndex]);
33
+ genearatePropositions(distanceMeasure, timeMeasure).forEach((value) => (0, exercise_1.tryToAddWrongProp)(propositions, value));
34
+ const division = distanceMeasure
35
+ .convert("m")
36
+ .divide(timeMeasure.convert("s"));
37
+ const divisionValue = division.significantPart * division.exponent;
38
+ while (propositions.length < n) {
39
+ let random = (0, randfloat_1.randfloat)(divisionValue - 10, divisionValue + 11);
40
+ (0, exercise_1.tryToAddWrongProp)(propositions, new measure_1.Measure(random, 0, division.getUnit()).toSignificant(2).toTex());
41
+ }
42
+ return (0, exercise_1.shuffleProps)(propositions, n);
43
+ };
44
+ const genearatePropositions = (distance, time) => {
45
+ const distanceInMeter = distance.convert("m");
46
+ const timeInSeconds = time.convert("s");
47
+ return [
48
+ distanceInMeter.times(timeInSeconds).toSignificant(2).toTex(),
49
+ distanceInMeter.divide(time).toSignificant(2).toTex(),
50
+ distance.divide(timeInSeconds).toSignificant(2).toTex(),
51
+ distance.divide(time).toSignificant(2).toTex(),
52
+ ];
53
+ };
54
+ const isAnswerValid = (ans, { answer, distance, time }) => {
55
+ const distanceMeasure = new measure_1.Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]).convert("m");
56
+ const timeMeasure = new measure_1.Measure(time.value, 0, timeUnits[time.unitIndex]).convert("s");
57
+ return [
58
+ answer,
59
+ distanceMeasure
60
+ .divide(timeMeasure)
61
+ .toSignificant(2)
62
+ .toTex({ hideUnit: true }),
63
+ ].includes(ans);
64
+ };
65
+ const generateExercise = () => {
66
+ const distance = { value: (0, randint_1.randint)(70, 151), unitIndex: (0, randint_1.randint)(0, 2) };
67
+ const time = { value: (0, randint_1.randint)(10, 61), unitIndex: (0, randint_1.randint)(0, 2) };
68
+ const distanceMeasure = new measure_1.Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]);
69
+ const timeMeasure = new measure_1.Measure(time.value, 0, timeUnits[time.unitIndex]);
70
+ const instruction = `Soit un objet parcourant $${distanceMeasure.toTex({
71
+ notScientific: true,
72
+ })}$ en $${timeMeasure.toTex({ notScientific: true })}$. \n \\
73
+ Caculer la vitesse moyenne de cet objet en $${distanceUnits_1.DistanceUnit.m.toTex()} \\cdot ${timeUnits_1.TimeUnit.s.toTex()}^{-1}$.
74
+ `;
75
+ const answer = distanceMeasure
76
+ .convert("m")
77
+ .divide(timeMeasure.convert("s"))
78
+ .toSignificant(2);
79
+ const correction = getCorrection(distance, time);
80
+ return {
81
+ instruction,
82
+ answer,
83
+ distance,
84
+ time,
85
+ correction,
86
+ };
87
+ };
88
+ const getCorrection = (distance, time) => {
89
+ let correction = ``;
90
+ let step = 1;
91
+ const distanceMeasure = new measure_1.Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]).convert("m");
92
+ const timeMeasure = new measure_1.Measure(time.value, 0, timeUnits[time.unitIndex]).convert("s");
93
+ const calcul = new fractionNode_1.FractionNode(new variableNode_1.VariableNode(distanceMeasure.toSignificant(2).toTex()), new variableNode_1.VariableNode(timeMeasure.toSignificant(2).toTex()));
94
+ const answer = distanceMeasure.divide(timeMeasure).toSignificant(2).toTex();
95
+ if (distance.unitIndex === 0)
96
+ correction = `${step++}. Convertir les $km$ en $m$ : $1km=1000m$.`;
97
+ switch (time.unitIndex) {
98
+ case 0:
99
+ correction = `${correction}
100
+ ${step++}. Convertir les heures en secondes : $1h = 3600s$.`;
101
+ break;
102
+ case 1:
103
+ correction = `${correction}
104
+ ${step++}. Convertir les minutes en secondes : $1m = 60s$.`;
105
+ }
106
+ return `${correction}
107
+ ${step}. Appliquer la règle de calcul pour la vitesse moyenne : $${calcul.toTex()} = ${answer}$`;
108
+ };
109
+ exports.averageSpeed = {
110
+ id: "averageSpeed",
111
+ label: "Caclul de vitesse moyenne",
112
+ levels: ["2nde"],
113
+ isSingleStep: true,
114
+ sections: ["Mécanique"],
115
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getAverageSpeedQuestion, nb),
116
+ qcmTimer: 60,
117
+ freeTimer: 60,
118
+ getPropositions,
119
+ isAnswerValid,
120
+ subject: "Physique",
121
+ };
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ speed: number;
4
+ distance: number;
5
+ deltaTime: number;
6
+ target: "vitesse moyenne" | "distance" | "temps";
7
+ };
8
+ export declare const AverageSpeedCalculationExercise: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=averageSpeedCalculation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"averageSpeedCalculation.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/averageSpeedCalculation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC;CAClD,CAAC;AA4MF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAajE,CAAC"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AverageSpeedCalculationExercise = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const round_1 = require("../../../math/utils/round");
7
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
8
+ const randint_1 = require("../../../math/utils/random/randint");
9
+ const divideUnit_1 = require("../../../pc/units/divideUnit");
10
+ const timeUnits_1 = require("../../../pc/units/timeUnits");
11
+ const distanceUnits_1 = require("../../../pc/units/distanceUnits");
12
+ const measure_1 = require("../../../pc/measure/measure");
13
+ const getAverageSpeedQuestion = () => {
14
+ const speed = (0, round_1.round)((0, randfloat_1.randfloat)(900, 1400), 2); // Vitesse en km/h
15
+ const distance = (0, round_1.round)((0, randfloat_1.randfloat)(100, 2000), 2); // Distance en km
16
+ const deltaTime = (0, round_1.round)(distance / speed, 2); // Temps en heures
17
+ const variables = [
18
+ {
19
+ name: "vitesse moyenne",
20
+ value: new measure_1.Measure(speed, 0, new divideUnit_1.DivideUnit(distanceUnits_1.DistanceUnit.km, timeUnits_1.TimeUnit.h)),
21
+ symbol: "v",
22
+ },
23
+ {
24
+ name: "distance",
25
+ value: new measure_1.Measure(distance, 0, distanceUnits_1.DistanceUnit.km),
26
+ symbol: "d",
27
+ },
28
+ {
29
+ name: "temps",
30
+ value: new measure_1.Measure(deltaTime, 0, timeUnits_1.TimeUnit.h),
31
+ symbol: "\\Delta t",
32
+ },
33
+ ];
34
+ const randomIndex = (0, randint_1.randint)(0, variables.length);
35
+ const targetVariable = variables[randomIndex];
36
+ const knownVariables = variables.filter((_, index) => index !== randomIndex);
37
+ const instruction = `Lors d'une mission d'entraînement, un avion de chasse Rafale a été chronométré et mesuré. Voici les données recueillies :
38
+ - ${knownVariables[0].name.charAt(0).toUpperCase() +
39
+ knownVariables[0].name.slice(1)} : $${knownVariables[0].symbol} = ${knownVariables[0].value.toTex({
40
+ notScientific: true,
41
+ })}$
42
+ - ${knownVariables[1].name.charAt(0).toUpperCase() +
43
+ knownVariables[1].name.slice(1)} : $${knownVariables[1].symbol} = ${knownVariables[1].value.toTex({
44
+ notScientific: true,
45
+ })}$. \n
46
+ Utilisez ces informations pour calculer ${targetVariable.name === "distance" ||
47
+ targetVariable.name === "vitesse moyenne"
48
+ ? "la"
49
+ : "le"} ${targetVariable.name} en $${targetVariable.value.getUnit().toTex()}$.`;
50
+ const hint = targetVariable.name === "vitesse moyenne"
51
+ ? `Rappelez-vous la formule de la vitesse moyenne : $v = \\frac{d}{\\Delta t}$.`
52
+ : targetVariable.name === "distance"
53
+ ? `Rappelez-vous la formule de la distance : $d = v \\times \\Delta t$.`
54
+ : `Rappelez-vous la formule du temps : $\\Delta t = \\frac{d}{v}$.`;
55
+ const correction = targetVariable.name === "vitesse moyenne"
56
+ ? `La vitesse moyenne est calculée en utilisant la formule $v = \\frac{d}{\\Delta t}$. Donc, $v = \\frac{${(0, round_1.round)(distance, 2)
57
+ .toTree()
58
+ .toTex()}}{${(0, round_1.round)(deltaTime, 2).toTree().toTex()}} = ${new measure_1.Measure((0, round_1.round)(distance / deltaTime, 2), 0, targetVariable.value.getUnit()).toTex({ notScientific: true })}$.`
59
+ : targetVariable.name === "distance"
60
+ ? `La distance est calculée en utilisant la formule $d = v \\times \\Delta t$. Donc, $d = ${(0, round_1.round)(speed, 2)
61
+ .toTree()
62
+ .toTex()} \\times ${(0, round_1.round)(deltaTime, 2)
63
+ .toTree()
64
+ .toTex()} = ${new measure_1.Measure((0, round_1.round)(speed * deltaTime, 2), 0, distanceUnits_1.DistanceUnit.km).toTex({ notScientific: true })}$.`
65
+ : `Le temps est calculé en utilisant la formule $\\Delta t = \\frac{d}{v}$. Donc, $t = \\frac{${(0, round_1.round)(distance, 2)
66
+ .toTree()
67
+ .toTex()}}{${(0, round_1.round)(speed, 2).toTree().toTex()}} = ${new measure_1.Measure((0, round_1.round)(distance / speed, 2), 0, timeUnits_1.TimeUnit.h).toTex({ notScientific: true })}$.`;
68
+ const question = {
69
+ answer: getCorrectAns(targetVariable.name, speed, distance, deltaTime).toTex({
70
+ notScientific: true,
71
+ hideUnit: true,
72
+ }),
73
+ instruction,
74
+ hint,
75
+ correction,
76
+ keys: [],
77
+ answerFormat: "tex",
78
+ identifiers: {
79
+ speed,
80
+ distance,
81
+ deltaTime,
82
+ target: targetVariable.name,
83
+ },
84
+ };
85
+ return question;
86
+ };
87
+ const getPropositions = (n, { answer, speed, distance, deltaTime, target }) => {
88
+ const propositions = [];
89
+ (0, exercise_1.addValidProp)(propositions, answer, "tex");
90
+ if (target === "vitesse moyenne") {
91
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(speed * (0, randfloat_1.randfloat)(0.5, 1.5), 2)
92
+ .toTree()
93
+ .toTex(), "tex");
94
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(speed / (0, randfloat_1.randfloat)(0.5, 1.5), 2)
95
+ .toTree()
96
+ .toTex(), "tex");
97
+ }
98
+ else if (target === "distance") {
99
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(distance * (0, randfloat_1.randfloat)(0.5, 1.5), 2)
100
+ .toTree()
101
+ .toTex(), "tex");
102
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(distance / (0, randfloat_1.randfloat)(0.5, 1.5), 2)
103
+ .toTree()
104
+ .toTex(), "tex");
105
+ }
106
+ else if (target === "temps") {
107
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(deltaTime * (0, randfloat_1.randfloat)(0.5, 1.5), 2)
108
+ .toTree()
109
+ .toTex(), "tex");
110
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)(deltaTime / (0, randfloat_1.randfloat)(0.5, 1.5), 2)
111
+ .toTree()
112
+ .toTex(), "tex");
113
+ }
114
+ while (propositions.length < n) {
115
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(100, 2000, 2).toTree().toTex());
116
+ }
117
+ return (0, exercise_1.shuffleProps)(propositions, n);
118
+ };
119
+ const isAnswerValid = (ans, { answer }) => {
120
+ return ans === answer;
121
+ };
122
+ const getCorrectAns = (targetVariable, speed, distance, deltaTime) => {
123
+ switch (targetVariable) {
124
+ case "distance":
125
+ return new measure_1.Measure((0, round_1.round)(speed * deltaTime, 2), 0, distanceUnits_1.DistanceUnit.km);
126
+ case "vitesse moyenne":
127
+ return new measure_1.Measure((0, round_1.round)(distance / deltaTime, 2), 0, new divideUnit_1.DivideUnit(distanceUnits_1.DistanceUnit.km, timeUnits_1.TimeUnit.h));
128
+ case "temps":
129
+ return new measure_1.Measure((0, round_1.round)(distance / speed, 2), 0, timeUnits_1.TimeUnit.h);
130
+ }
131
+ return new measure_1.Measure(0);
132
+ };
133
+ exports.AverageSpeedCalculationExercise = {
134
+ id: "averageSpeedCalculation",
135
+ label: "Calculer la vitesse moyenne, la distance ou le temps d'un objet en mouvement",
136
+ levels: ["2nde"],
137
+ isSingleStep: true,
138
+ sections: ["Mécanique"],
139
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getAverageSpeedQuestion, nb),
140
+ qcmTimer: 60,
141
+ freeTimer: 60,
142
+ getPropositions,
143
+ isAnswerValid,
144
+ subject: "Physique",
145
+ };
@@ -0,0 +1,7 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ norm: number;
4
+ };
5
+ export declare const characteristicsOfVelocityVector: Exercise<Identifiers>;
6
+ export {};
7
+ //# sourceMappingURL=characteristicsOfVelocityVector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characteristicsOfVelocityVector.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/characteristicsOfVelocityVector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAqFF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAajE,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.characteristicsOfVelocityVector = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const geogebraConstructor_1 = require("../../../geogebra/geogebraConstructor");
7
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
8
+ const randint_1 = require("../../../math/utils/random/randint");
9
+ const coinFlip_1 = require("../../../utils/coinFlip");
10
+ const getCharacteristicsOfVelocityVectorQuestion = () => {
11
+ const exo = generateExercise();
12
+ const question = {
13
+ answer: exo.answer.frenchify(),
14
+ instruction: exo.instruction,
15
+ keys: [],
16
+ commands: exo.ggb.commands,
17
+ coords: exo.ggbCoords,
18
+ answerFormat: "tex",
19
+ identifiers: { norm: exo.answer },
20
+ };
21
+ return question;
22
+ };
23
+ const getPropositions = (n, { answer, norm }) => {
24
+ const propositions = [];
25
+ (0, exercise_1.addValidProp)(propositions, answer);
26
+ while (propositions.length < n) {
27
+ let random = (0, randfloat_1.randfloat)(norm - 3, norm + 4, 2, [norm]);
28
+ (0, exercise_1.tryToAddWrongProp)(propositions, random.frenchify());
29
+ }
30
+ return (0, exercise_1.shuffleProps)(propositions, n);
31
+ };
32
+ const isAnswerValid = (ans, { answer }) => {
33
+ return ans === answer;
34
+ };
35
+ const generateExercise = () => {
36
+ const delta = (0, randint_1.randint)(2, 11);
37
+ const ggb = getGgb(delta);
38
+ const instruction = `
39
+ Un objet en mouvement rectiligne uniforme est suivi par une chronographie. \n \\
40
+ Les points marqués par la chronographie sur la bande de papier sont espacés uniformément en temps, avec un intervalle de $${delta}$ seconde entre chaque point. \n \\
41
+ Calculer la norme du vecteur vitesse $\\overrightarrow{M}$
42
+ `;
43
+ const answer = ggb.speedVector.norm;
44
+ return {
45
+ instruction,
46
+ ggb: new geogebraConstructor_1.GeogebraConstructor(ggb.commands, { isAxesRatioFixed: true }),
47
+ ggbCoords: ggb.coords,
48
+ answer,
49
+ };
50
+ };
51
+ const getGgb = (delta) => {
52
+ const commands = [];
53
+ const constant = (0, randint_1.randint)(3, 8);
54
+ const step = (0, randint_1.randint)(3, 8);
55
+ let speedVector = null;
56
+ for (let x = 0; x < 4 * step; x += step) {
57
+ if ((speedVector === null && (0, coinFlip_1.coinFlip)()) || x === 2 * step)
58
+ speedVector = {
59
+ x1: x,
60
+ y1: constant,
61
+ x2: x + step,
62
+ y2: constant,
63
+ norm: +(step / delta).toFixed(2),
64
+ };
65
+ commands.push(`Point({${x},${constant}})`);
66
+ }
67
+ commands.push(` M = Vector((${speedVector.x1},${speedVector.y1}),(${speedVector.x2},${speedVector.y2}))`, `Text("$\\overrightarrow{\\mathit{M}}$",(${speedVector.x1},${speedVector.y1 + 2}),false,true)`);
68
+ return {
69
+ commands,
70
+ speedVector,
71
+ coords: [-1, Math.max(step * 5, 20), -2, 10],
72
+ };
73
+ };
74
+ exports.characteristicsOfVelocityVector = {
75
+ id: "characteristicsOfVelocityVector",
76
+ label: "calculer la norme d'un vecteur vitesse",
77
+ levels: ["2nde"],
78
+ isSingleStep: true,
79
+ sections: ["Mécanique"],
80
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getCharacteristicsOfVelocityVectorQuestion, nb),
81
+ qcmTimer: 60,
82
+ freeTimer: 60,
83
+ getPropositions,
84
+ isAnswerValid,
85
+ subject: "Physique",
86
+ };
@@ -0,0 +1,7 @@
1
+ export * from "./characteristicsOfVelocityVector";
2
+ export * from "./typeOfMovement";
3
+ export * from "./averageSpeed";
4
+ export * from "./typeOfAcceleration";
5
+ export * from "./motionReference";
6
+ export * from "./averageSpeedCalculation";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./characteristicsOfVelocityVector"), exports);
18
+ __exportStar(require("./typeOfMovement"), exports);
19
+ __exportStar(require("./averageSpeed"), exports);
20
+ __exportStar(require("./typeOfAcceleration"), exports);
21
+ __exportStar(require("./motionReference"), exports);
22
+ __exportStar(require("./averageSpeedCalculation"), exports);
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ object1: string;
4
+ object2: string;
5
+ reference: "à l'autre" | "au sol";
6
+ };
7
+ export declare const MotionReferenceExercise: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=motionReference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motionReference.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/motionReference.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAMlC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,WAAW,GAAG,QAAQ,CAAC;CACnC,CAAC;AA0LF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAezD,CAAC"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MotionReferenceExercise = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const coinFlip_1 = require("../../../utils/coinFlip");
8
+ const requiresApostropheBefore_1 = require("../../../utils/requiresApostropheBefore");
9
+ const situations = [
10
+ {
11
+ object1: "avion de chasse",
12
+ object2: "ravitailleur",
13
+ context: "Vous observez un ravitaillement en vol. Un avion de chasse et un ravitailleur maintiennent une position relative constante pendant le ravitaillement.",
14
+ gender1: "masculin",
15
+ gender2: "masculin",
16
+ hints: {
17
+ "à l'autre": "Les deux avions maintiennent une position relative constante.",
18
+ "au sol": "Les deux avions se déplacent ensemble dans le ciel.",
19
+ },
20
+ corrections: {
21
+ "à l'autre": "Les avions ne sont pas en mouvement l'un par rapport à l'autre car ils maintiennent une position relative constante pendant le ravitaillement. Cela signifie que leur vitesse et direction sont les mêmes.",
22
+ "au sol": "Les avions sont en mouvement par rapport au sol, car ils volent dans le ciel. Même s'ils restent proches l'un de l'autre, ils se déplacent tous les deux par rapport à la Terre.",
23
+ },
24
+ },
25
+ {
26
+ object1: "passager",
27
+ object2: "train",
28
+ context: "Un passager est assis à l'intérieur d'un train qui roule à une vitesse constante sur une ligne droite.",
29
+ gender1: "masculin",
30
+ gender2: "masculin",
31
+ hints: {
32
+ "à l'autre": "Le passager est à l'intérieur du train en mouvement.",
33
+ "au sol": "Le train se déplace sur les rails.",
34
+ },
35
+ corrections: {
36
+ "à l'autre": "Le passager n'est pas en mouvement par rapport au train car il est assis à l'intérieur du train en mouvement. Pour un observateur à l'intérieur du train, le passager reste immobile.",
37
+ "au sol": "Le train est en mouvement par rapport au sol car il roule sur les rails. Pour un observateur extérieur au train, il est évident que le train se déplace.",
38
+ },
39
+ },
40
+ {
41
+ object1: "conducteur",
42
+ object2: "voiture",
43
+ context: "Un conducteur est au volant d'une voiture qui circule sur une autoroute.",
44
+ gender1: "masculin",
45
+ gender2: "féminin",
46
+ hints: {
47
+ "à l'autre": "Le conducteur est au volant de la voiture en mouvement.",
48
+ "au sol": "La voiture roule sur l'autoroute.",
49
+ },
50
+ corrections: {
51
+ "à l'autre": "Le conducteur n'est pas en mouvement par rapport à la voiture car il est au volant de celle-ci. Pour lui, il reste à la même place dans la voiture, même si celle-ci se déplace.",
52
+ "au sol": "La voiture est en mouvement par rapport au sol car elle roule sur l'autoroute. Cela signifie que la voiture change de position par rapport à la route et au paysage environnant.",
53
+ },
54
+ },
55
+ {
56
+ object1: "enfant",
57
+ object2: "manège",
58
+ context: "Un enfant est assis dans un manège qui tourne à une vitesse constante.",
59
+ gender1: "masculin",
60
+ gender2: "masculin",
61
+ hints: {
62
+ "à l'autre": "L'enfant est assis dans le manège en mouvement.",
63
+ "au sol": "Le manège tourne sur place.",
64
+ },
65
+ corrections: {
66
+ "à l'autre": "L'enfant n'est pas en mouvement par rapport au manège car il est assis dedans. Pour un observateur sur le manège, l'enfant reste à la même place.",
67
+ "au sol": "Le manège est en mouvement par rapport au sol car il tourne sur place. Même si l'enfant reste assis au même endroit dans le manège, le manège tout entier tourne par rapport au sol.",
68
+ },
69
+ },
70
+ {
71
+ object1: "Terre",
72
+ object2: "Lune",
73
+ context: "Vous observez la Terre et la Lune depuis l'espace. La Terre tourne sur elle-même et autour du Soleil, tandis que la Lune tourne autour de la Terre.",
74
+ gender1: "féminin",
75
+ gender2: "féminin",
76
+ hints: {
77
+ "à l'autre": "La Lune tourne autour de la Terre.",
78
+ "au sol": "La Terre et la Lune sont en mouvement dans l'espace.",
79
+ },
80
+ corrections: {
81
+ "à l'autre": "La Lune est en mouvement par rapport à la Terre car elle tourne autour de celle-ci. Pour un observateur sur la Terre, la position de la Lune change continuellement dans le ciel.",
82
+ "au sol": "La Terre et la Lune sont en mouvement par rapport au sol, car elles se déplacent dans l'espace. La Terre tourne sur elle-même et autour du Soleil, et la Lune tourne autour de la Terre.",
83
+ },
84
+ },
85
+ ];
86
+ const references = ["à l'autre", "au sol"];
87
+ const determineCorrectAnswer = (situation, reference) => {
88
+ if (reference === "à l'autre") {
89
+ if ((situation.object1 === "Terre" && situation.object2 === "Lune") ||
90
+ (situation.object1 === "Lune" && situation.object2 === "Terre")) {
91
+ return "Oui";
92
+ }
93
+ return "Non";
94
+ }
95
+ else if (reference === "au sol") {
96
+ if (situation.object1 === "Terre" && situation.object2 === "Lune") {
97
+ return "Non";
98
+ }
99
+ else if (situation.object1 === "Lune" && situation.object2 === "Terre") {
100
+ return "Oui";
101
+ }
102
+ return "Oui";
103
+ }
104
+ return "On ne peut pas savoir";
105
+ };
106
+ const getMotionReferenceQuestion = () => {
107
+ const situationIndex = (0, randint_1.randint)(0, situations.length);
108
+ const situation = situations[situationIndex];
109
+ const referenceIndex = (0, randint_1.randint)(0, references.length);
110
+ const reference = references[referenceIndex];
111
+ const objectToCheckIndex = (0, coinFlip_1.coinFlip)();
112
+ const objectToCheck = objectToCheckIndex
113
+ ? situation.object1
114
+ : situation.object2;
115
+ const otherObject = situation.object1 === objectToCheck ? situation.object2 : situation.object1;
116
+ const referenceText = reference === "à l'autre" ? otherObject : "sol";
117
+ const isMasculine = objectToCheckIndex
118
+ ? situation.gender1 === "masculin"
119
+ : situation.gender2 === "masculin";
120
+ const genderPronoun = isMasculine ? "il" : "elle";
121
+ const instruction = `Considérez la situation suivante :\n
122
+ ${situation.context}\n
123
+ ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(objectToCheck) ? "L'" : "Le "}${objectToCheck} est-${genderPronoun} en mouvement par rapport ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(referenceText) ? "à l'" : "au "}${referenceText} ?`;
124
+ const correctAnswer = determineCorrectAnswer(situation, reference);
125
+ const hint = situation.hints[reference];
126
+ const correction = situation.corrections[reference];
127
+ const question = {
128
+ answer: correctAnswer,
129
+ instruction,
130
+ hint,
131
+ correction,
132
+ keys: [],
133
+ answerFormat: "raw",
134
+ identifiers: {
135
+ object1: situation.object1,
136
+ object2: situation.object2,
137
+ reference,
138
+ },
139
+ };
140
+ return question;
141
+ };
142
+ const getPropositions = (n, { answer }) => {
143
+ const propositions = [];
144
+ (0, exercise_1.addValidProp)(propositions, answer, "raw");
145
+ (0, exercise_1.tryToAddWrongProp)(propositions, "Oui", "raw");
146
+ (0, exercise_1.tryToAddWrongProp)(propositions, "Non", "raw");
147
+ (0, exercise_1.tryToAddWrongProp)(propositions, "On ne peut pas savoir", "raw");
148
+ return (0, exercise_1.shuffleProps)(propositions, n);
149
+ };
150
+ const isAnswerValid = (ans, { answer }) => {
151
+ return ans === answer;
152
+ };
153
+ exports.MotionReferenceExercise = {
154
+ id: "motionReference",
155
+ label: "Déterminer le mouvement relatif entre deux objets",
156
+ levels: ["2nde"],
157
+ isSingleStep: true,
158
+ sections: ["Mécanique"],
159
+ answerType: "QCU",
160
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMotionReferenceQuestion, nb, 10),
161
+ qcmTimer: 60,
162
+ freeTimer: 60,
163
+ getPropositions,
164
+ isAnswerValid,
165
+ subject: "Physique",
166
+ maxAllowedQuestions: 10,
167
+ };
@@ -0,0 +1,5 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {};
3
+ export declare const typeOfAcceleration: Exercise<Identifiers>;
4
+ export {};
5
+ //# sourceMappingURL=typeOfAcceleration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeOfAcceleration.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/typeOfAcceleration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG,EAAE,CAAC;AAmFtB,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAepD,CAAC"}