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.efficiencyCalculation = void 0;
4
+ const frenchify_1 = require("../../../math/utils/latex/frenchify");
5
+ const exercise_1 = require("../../../exercises/exercise");
6
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
7
+ const round_1 = require("../../../math/utils/round");
8
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
9
+ const randint_1 = require("../../../math/utils/random/randint");
10
+ const getEfficiencyCalculationQuestion = () => {
11
+ const inputPower = (0, round_1.round)((0, randfloat_1.randfloat)(100, 1000), 2); // Puissance d'entrée en W
12
+ const outputPower = (0, round_1.round)((0, randfloat_1.randfloat)(50, 900), 2); // Puissance de sortie en W
13
+ const efficiency = (0, round_1.round)(outputPower / inputPower, 2); // Rendement
14
+ const variableIndex = (0, randint_1.randint)(0, 3);
15
+ const variables = ["P_in", "P_out", "η"];
16
+ const variable = variables[variableIndex];
17
+ let questionText, answer;
18
+ switch (variable) {
19
+ case "P_in":
20
+ questionText = `Vous êtes dans un laboratoire et vous mesurez l'efficacité d'un convertisseur. La puissance de sortie est $P_{out} = ${(0, frenchify_1.frenchify)(outputPower)}\\ \\text{W}$ et le rendement est $\\eta = ${(0, frenchify_1.frenchify)(efficiency)}$. Déterminez la puissance d'entrée $P_{in}$ en $\\text{W}$.`;
21
+ answer = (0, round_1.round)(outputPower / efficiency, 2);
22
+ break;
23
+ case "P_out":
24
+ questionText = `Vous êtes dans un laboratoire et vous mesurez l'efficacité d'un convertisseur. La puissance d'entrée est $P_{in} = ${(0, frenchify_1.frenchify)(inputPower)}\\ \\text{W}$ et le rendement est $\\eta = ${(0, frenchify_1.frenchify)(efficiency)}$. Déterminez la puissance de sortie $P_{out}$ en $\\text{W}$.`;
25
+ answer = (0, round_1.round)(inputPower * efficiency, 2);
26
+ break;
27
+ case "η":
28
+ questionText = `Vous êtes dans un laboratoire et vous mesurez l'efficacité d'un convertisseur. La puissance d'entrée est $P_{in} = ${(0, frenchify_1.frenchify)(inputPower)}\\ \\text{W}$ et la puissance de sortie est $P_{out} = ${(0, frenchify_1.frenchify)(outputPower)}\\ \\text{W}$. Déterminez le rendement $\\eta$.`;
29
+ answer = (0, round_1.round)(outputPower / inputPower, 2);
30
+ break;
31
+ }
32
+ const hint = `Le rendement d'un convertisseur, noté $\\eta$, est une grandeur sans dimension qui mesure l'efficacité de sa conversion. Il est défini par la relation :
33
+ $$
34
+ \\eta = \\frac{P_{out}}{P_{in}}
35
+ $$
36
+ Réarrangez cette formule pour isoler la variable à trouver.`;
37
+ const correction = `La formule du rendement est :
38
+ $$
39
+ \\eta = \\frac{P_{out}}{P_{in}}
40
+ $$
41
+
42
+ Pour résoudre ce problème, nous devons réorganiser la formule pour isoler la variable inconnue.
43
+
44
+ ${variable === "P_in"
45
+ ? `$$P_{in} = \\frac{P_{out}}{\\eta} = \\frac{${(0, frenchify_1.frenchify)(outputPower)}}{${(0, frenchify_1.frenchify)(efficiency)}} = ${(0, frenchify_1.frenchify)(answer)}\\ \\text{W}$$`
46
+ : variable === "P_out"
47
+ ? `$$P_{out} = \\eta \\times P_{in} = ${(0, frenchify_1.frenchify)(efficiency)} \\times ${(0, frenchify_1.frenchify)(inputPower)} = ${(0, frenchify_1.frenchify)(answer)}\\ \\text{W}$$`
48
+ : `$$\\eta = \\frac{P_{out}}{P_{in}} = \\frac{${(0, frenchify_1.frenchify)(outputPower)}}{${(0, frenchify_1.frenchify)(inputPower)}} = ${(0, frenchify_1.frenchify)(answer)}$$`}`;
49
+ const question = {
50
+ answer: answer.toTree().toTex(),
51
+ instruction: questionText,
52
+ hint,
53
+ correction,
54
+ keys: ["timesTenPower"],
55
+ answerFormat: "tex",
56
+ identifiers: {
57
+ inputPower,
58
+ outputPower,
59
+ efficiency,
60
+ variable,
61
+ },
62
+ };
63
+ return question;
64
+ };
65
+ const getPropositions = (n, { answer, inputPower, outputPower, efficiency, variable }) => {
66
+ const propositions = [];
67
+ (0, exercise_1.addValidProp)(propositions, answer);
68
+ const wrongAnswers = [
69
+ variable === "P_in"
70
+ ? (0, round_1.round)(outputPower * efficiency, 2)
71
+ : (0, round_1.round)(outputPower / efficiency, 2),
72
+ variable === "P_out"
73
+ ? (0, round_1.round)(inputPower / efficiency, 2)
74
+ : (0, round_1.round)(inputPower * efficiency, 2),
75
+ variable === "η"
76
+ ? (0, round_1.round)(inputPower / outputPower, 2)
77
+ : (0, round_1.round)(outputPower / inputPower, 2),
78
+ ];
79
+ wrongAnswers.forEach((wrongAnswer) => {
80
+ (0, exercise_1.tryToAddWrongProp)(propositions, wrongAnswer.toTree().toTex());
81
+ });
82
+ while (propositions.length < n) {
83
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(0.1, 1, 2).toTree().toTex());
84
+ }
85
+ return (0, exercise_1.shuffleProps)(propositions, n);
86
+ };
87
+ const isAnswerValid = (ans, { answer, outputPower, inputPower, variable }) => {
88
+ let validanswer;
89
+ const efficiency = (0, round_1.round)(outputPower / inputPower, 2);
90
+ switch (variable) {
91
+ case "P_in":
92
+ validanswer = (0, round_1.round)(outputPower / efficiency, 2);
93
+ break;
94
+ case "P_out":
95
+ validanswer = (0, round_1.round)(inputPower * efficiency, 2);
96
+ break;
97
+ case "η":
98
+ validanswer = (0, round_1.round)(outputPower / inputPower, 2);
99
+ break;
100
+ }
101
+ const latexs = [
102
+ ...validanswer.toTree().toAllValidTexs(),
103
+ validanswer.toScientific(2).toTex(),
104
+ validanswer.toScientific(1).toTex(),
105
+ validanswer.toScientific(3).toTex(),
106
+ ];
107
+ return latexs.includes(ans);
108
+ };
109
+ exports.efficiencyCalculation = {
110
+ id: "efficiencyCalculation",
111
+ label: "Calculer les puissances d'entrée/sortie ou le rendement",
112
+ levels: ["1reSpé"],
113
+ isSingleStep: true,
114
+ sections: ["Énergie"],
115
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEfficiencyCalculationQuestion, 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
+ substance: string;
4
+ mass: number;
5
+ latentHeat: number;
6
+ energy: number;
7
+ };
8
+ export declare const energyTransfer: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=energyTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"energyTransfer.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/energy/energyTransfer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAMlC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAiEF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAahD,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.energyTransfer = void 0;
4
+ const frenchify_1 = require("../../../math/utils/latex/frenchify");
5
+ const exercise_1 = require("../../../exercises/exercise");
6
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
7
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
8
+ const round_1 = require("../../../math/utils/round");
9
+ const requiresApostropheBefore_1 = require("../../../utils/requiresApostropheBefore");
10
+ const substances = [
11
+ { name: "eau", latentHeat: 334 }, // kJ/kg for melting ice
12
+ { name: "fer", latentHeat: 276 }, // kJ/kg for melting iron
13
+ { name: "aluminium", latentHeat: 397 }, // kJ/kg for melting aluminium
14
+ { name: "or", latentHeat: 64 }, // kJ/kg for melting gold
15
+ { name: "argent", latentHeat: 105 }, // kJ/kg for melting silver
16
+ { name: "plomb", latentHeat: 24 }, // kJ/kg for melting lead
17
+ { name: "cuivre", latentHeat: 207 }, // kJ/kg for melting copper
18
+ { name: "zinc", latentHeat: 112 }, // kJ/kg for melting zinc
19
+ { name: "étain", latentHeat: 60 }, // kJ/kg for melting tin
20
+ { name: "nickel", latentHeat: 297 }, // kJ/kg for melting nickel
21
+ ];
22
+ const getEnergyTransferQuestion = () => {
23
+ const substance = substances[Math.floor(Math.random() * substances.length)];
24
+ const mass = (0, round_1.round)((0, randfloat_1.randfloat)(0.1, 10), 2); // Mass in kilograms
25
+ const latentHeat = substance.latentHeat; // Latent heat in kJ/kg
26
+ const energy = (0, round_1.round)(mass * latentHeat, 2);
27
+ const instruction = `Un échantillon de $${(0, frenchify_1.frenchify)(mass)}\\ kg$ ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(substance.name) ? "d'" : "de "}${substance.name} subit un changement d'état. La chaleur latente ${(0, requiresApostropheBefore_1.requiresApostropheBefore)(substance.name) ? "d'" : "de "}${substance.name} est de $${latentHeat}\\ kJ/kg$.
28
+ Calculer l'énergie transférée lors du changement d'état en $\\ kJ$`;
29
+ const question = {
30
+ answer: energy.toTree().toTex(),
31
+ instruction,
32
+ keys: ["kJ"],
33
+ answerFormat: "tex",
34
+ identifiers: { substance: substance.name, mass, latentHeat, energy },
35
+ };
36
+ return question;
37
+ };
38
+ const getPropositions = (n, { answer, substance, mass, latentHeat, energy }) => {
39
+ const propositions = [];
40
+ (0, exercise_1.addValidProp)(propositions, answer);
41
+ while (propositions.length < n) {
42
+ const wrongEnergy = (0, round_1.round)(energy + (0, randfloat_1.randfloat)(-50, 50), 2);
43
+ (0, exercise_1.tryToAddWrongProp)(propositions, wrongEnergy.toTree().toTex());
44
+ }
45
+ return (0, exercise_1.shuffleProps)(propositions, n);
46
+ };
47
+ const isAnswerValid = (ans, { answer, energy }) => {
48
+ const validanswer1 = `${energy}\\kJ`;
49
+ const validanswer2 = energy.toTree().toAllValidTexs();
50
+ let latexs = [];
51
+ latexs.push(validanswer1, ...validanswer2);
52
+ console.log(latexs);
53
+ return latexs.includes(ans);
54
+ };
55
+ exports.energyTransfer = {
56
+ id: "energyTransfer",
57
+ label: "Calculer l'énergie transférée lors d'un changement d'état",
58
+ levels: ["2nde"],
59
+ isSingleStep: true,
60
+ sections: ["Constitution et transformations de la matière"],
61
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getEnergyTransferQuestion, nb),
62
+ qcmTimer: 60,
63
+ freeTimer: 60,
64
+ getPropositions,
65
+ isAnswerValid,
66
+ subject: "Physique",
67
+ };
@@ -0,0 +1,9 @@
1
+ export * from "./energyTransfer";
2
+ export * from "./kineticEnergyOrMassOrSpeed";
3
+ export * from "./efficencyOfConverter";
4
+ export * from "./combustionTransferEnergy";
5
+ export * from "./calorificValue";
6
+ export * from "./combustionTransferEnergy2";
7
+ export * from "./thermalEnergyTransferCalculation";
8
+ export * from "./efficiencyCalculation";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/energy/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,24 @@
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("./energyTransfer"), exports);
18
+ __exportStar(require("./kineticEnergyOrMassOrSpeed"), exports);
19
+ __exportStar(require("./efficencyOfConverter"), exports);
20
+ __exportStar(require("./combustionTransferEnergy"), exports);
21
+ __exportStar(require("./calorificValue"), exports);
22
+ __exportStar(require("./combustionTransferEnergy2"), exports);
23
+ __exportStar(require("./thermalEnergyTransferCalculation"), exports);
24
+ __exportStar(require("./efficiencyCalculation"), exports);
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ isAsking: string;
4
+ mass: number;
5
+ velocity: number;
6
+ kineticEnergy: number;
7
+ };
8
+ export declare const kineticEnergyOrMassOrSpeed: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=kineticEnergyOrMassOrSpeed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kineticEnergyOrMassOrSpeed.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/energy/kineticEnergyOrMassOrSpeed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAelC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAuNF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAa5D,CAAC"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kineticEnergyOrMassOrSpeed = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const frenchify_1 = require("../../../math/utils/latex/frenchify");
7
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
8
+ const randint_1 = require("../../../math/utils/random/randint");
9
+ const round_1 = require("../../../math/utils/round");
10
+ const measure_1 = require("../../../pc/measure/measure");
11
+ const distanceUnits_1 = require("../../../pc/units/distanceUnits");
12
+ const divideUnit_1 = require("../../../pc/units/divideUnit");
13
+ const energyUnit_1 = require("../../../pc/units/energyUnit");
14
+ const massUnits_1 = require("../../../pc/units/massUnits");
15
+ const timeUnits_1 = require("../../../pc/units/timeUnits");
16
+ const random_1 = require("../../../utils/random");
17
+ const shuffle_1 = require("../../../utils/shuffle");
18
+ const speedUnit = new divideUnit_1.DivideUnit(distanceUnits_1.DistanceUnit.m, timeUnits_1.TimeUnit.s);
19
+ const getKineticEnergyOrMassOrSpeedQuestion = () => {
20
+ const exercise = getExericse();
21
+ const question = {
22
+ instruction: exercise.instruction,
23
+ answer: exercise.answer,
24
+ hint: exercise.hint,
25
+ correction: exercise.correction,
26
+ keys: [],
27
+ answerFormat: "tex",
28
+ identifiers: {
29
+ isAsking: exercise.isAsking,
30
+ mass: exercise.mass,
31
+ velocity: exercise.velocity,
32
+ kineticEnergy: exercise.kineticEnergy,
33
+ },
34
+ };
35
+ return question;
36
+ };
37
+ const getPropositions = (n, { answer, isAsking, mass, velocity, kineticEnergy }) => {
38
+ const propositions = [];
39
+ (0, exercise_1.addValidProp)(propositions, answer);
40
+ const nbAnswer = getAnswer(isAsking, mass, velocity, kineticEnergy);
41
+ while (propositions.length < n) {
42
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, frenchify_1.frenchify)(Number.isInteger(nbAnswer)
43
+ ? (0, randint_1.randint)(nbAnswer - 10, nbAnswer + 11, [nbAnswer])
44
+ : (0, randfloat_1.randfloat)(nbAnswer - 10, nbAnswer + 11, 2, [nbAnswer])) + "");
45
+ }
46
+ return (0, shuffle_1.shuffle)(propositions);
47
+ };
48
+ const isAnswerValid = (ans, { answer }) => {
49
+ return ans === answer;
50
+ };
51
+ const getExericse = () => {
52
+ const mass = (0, randint_1.randint)(9, 16) * 100;
53
+ const massMeasure = new measure_1.Measure(mass, 0, massUnits_1.MassUnit.kg);
54
+ const velocity = Math.floor(Math.random() * 20 + 10);
55
+ const velocityMeasure = new measure_1.Measure(velocity, 0, speedUnit);
56
+ const kineticEnergy = (0, round_1.round)((0.5 * mass * velocity ** 2) / 1000, 2);
57
+ const kineticEnergyMeasure = new measure_1.Measure(kineticEnergy, 0, energyUnit_1.EnergyUnit.kJ);
58
+ const isAsking = (0, random_1.random)(["la masse", "l'énergie cinétique", "la vitesse"]);
59
+ const hint = `L'énergie cinétique $(E_c)$ d'un objet en mouvement est donnée par la formule, $E_c=\\frac{1}{2}m \\times v^2$ :
60
+ - $m$ est la masse de l'objet en $(${massUnits_1.MassUnit.kg.toTex()})$
61
+ - $v$ est la vitesse de l'objet en $(${new divideUnit_1.DivideUnit(distanceUnits_1.DistanceUnit.m, timeUnits_1.TimeUnit.s).toTex()})$
62
+ - $E_c$ est l'énergie cinétique de l'objet en $(${energyUnit_1.EnergyUnit.J.toTex()})$`;
63
+ const correction = getCorrection(isAsking, kineticEnergyMeasure, massMeasure, velocityMeasure);
64
+ const instruction = getInstruction(isAsking, massMeasure, velocityMeasure, kineticEnergyMeasure);
65
+ const answer = (0, frenchify_1.frenchify)((0, round_1.round)(getAnswer(isAsking, mass, velocity, kineticEnergy), 2));
66
+ return {
67
+ instruction,
68
+ answer,
69
+ hint,
70
+ correction,
71
+ mass,
72
+ velocity,
73
+ kineticEnergy,
74
+ isAsking,
75
+ };
76
+ };
77
+ const getAnswer = (isAsking, mass, velocity, kineticEnergy) => {
78
+ switch (isAsking) {
79
+ case "l'énergie cinétique":
80
+ return (0.5 * mass * velocity ** 2) / 1000;
81
+ case "la masse":
82
+ return (kineticEnergy * 1000 * 2) / velocity ** 2;
83
+ case "la vitesse":
84
+ return Math.sqrt((kineticEnergy * 1000 * 2) / mass);
85
+ }
86
+ return 0;
87
+ };
88
+ const getInstruction = (isAsking, massMeasure, velocityMeasure, kineticEnergyMeasure) => {
89
+ switch (isAsking) {
90
+ case "l'énergie cinétique":
91
+ return `Une voiture ayant une masse de $${massMeasure.toTex({
92
+ notScientific: true,
93
+ })}$ qui se déplace le long d'une route. La voiture accélère et atteint une vitesse de $${velocityMeasure.toTex({ notScientific: true })}$.
94
+ $\\\\$Calculer l'énergie cinétique (en $${energyUnit_1.EnergyUnit.kJ.toTex()}$) de la voiture lorsqu'elle atteint cette vitesse.`;
95
+ case "la masse":
96
+ return `Une voiture ayant une énergie cinétique de $${kineticEnergyMeasure.toTex({ notScientific: true })}$ qui se déplace le long d'une route. La voiture accélère et atteint une vitesse de $${velocityMeasure.toTex({ notScientific: true })}$.
97
+ $\\\\$Calculer la masse (en $${massUnits_1.MassUnit.kg.toTex()}$) de la voiture lorsqu'elle atteint cette vitesse.`;
98
+ case "la vitesse":
99
+ return `Une voiture ayant une masse de $${massMeasure.toTex({
100
+ notScientific: true,
101
+ })}$ qui se déplace le long d'une route. L'énergie cinétique de la voiture est de $${kineticEnergyMeasure.toTex({ notScientific: true })}$.
102
+ $\\\\$Calculer la vitesse (en $${speedUnit.toTex()}$) de la voiture.`;
103
+ }
104
+ return "";
105
+ };
106
+ const getCorrection = (isAsking, kineticEnergyMeasure, massMeasure, velocityMeasure) => {
107
+ const kineticEnergyJ = kineticEnergyMeasure.convert("J");
108
+ switch (isAsking) {
109
+ case "l'énergie cinétique":
110
+ return `Utiliser la formule de l'énergie cinétique, $E_c=\\frac{1}{2}m \\times v^2$:
111
+ 1. $E_c=\\frac{1}{2} ${massMeasure.toTex({
112
+ notScientific: true,
113
+ hideUnit: true,
114
+ })} \\times ${velocityMeasure.toTex({
115
+ hideUnit: true,
116
+ notScientific: true,
117
+ })}^2\\ \\Rightarrow E_c=${kineticEnergyJ.toTex({
118
+ notScientific: true,
119
+ })}$
120
+ 2. Convertir les $${energyUnit_1.EnergyUnit.J.toTex()}$ en $${energyUnit_1.EnergyUnit.kJ.toTex()}$, $E_c=\\frac{${kineticEnergyJ.toTex({
121
+ notScientific: true,
122
+ })}}{1000} \\Rightarrow E_c=${kineticEnergyMeasure.toTex({
123
+ notScientific: true,
124
+ })}$`;
125
+ case "la masse":
126
+ return `Utiliser la formule de l'énergie cinétique, $E_c=\\frac{1}{2}m \\times v^2$:
127
+ 1. Convertir les $${energyUnit_1.EnergyUnit.kJ.toTex()}$ en $${energyUnit_1.EnergyUnit.J.toTex()}$, $${kineticEnergyMeasure.toTex({
128
+ notScientific: true,
129
+ })}\\Rightarrow ${kineticEnergyJ.toTex({ notScientific: true })}$
130
+ 2. $m=\\frac{2E_c}{v^2} \\Rightarrow m=\\frac{2 \\times ${kineticEnergyJ.toTex({
131
+ hideUnit: true,
132
+ notScientific: true,
133
+ })}}{${velocityMeasure.toTex({
134
+ notScientific: true,
135
+ hideUnit: true,
136
+ })}^2}\\ \\Rightarrow m=${massMeasure.toTex({
137
+ notScientific: true,
138
+ })}$`;
139
+ case "la vitesse":
140
+ return `Utiliser la formule de l'énergie cinétique, $E_c=\\frac{1}{2}m \\times v^2$:
141
+ 1. Convertir les $${energyUnit_1.EnergyUnit.kJ.toTex()}$ en $${energyUnit_1.EnergyUnit.J.toTex()}$, $${kineticEnergyMeasure.toTex({
142
+ notScientific: true,
143
+ })}\\Rightarrow ${kineticEnergyJ.toTex({ notScientific: true })}$
144
+ 2. $v=\\sqrt{\\frac{2E_c}{m}} \\Rightarrow v=\\sqrt{\\frac{2 \\times ${kineticEnergyJ.toTex({
145
+ hideUnit: true,
146
+ notScientific: true,
147
+ })}}{${massMeasure.toTex({
148
+ hideUnit: true,
149
+ notScientific: true,
150
+ })}}}\\ \\Rightarrow v=${velocityMeasure.toTex({
151
+ notScientific: true,
152
+ })}$`;
153
+ }
154
+ };
155
+ exports.kineticEnergyOrMassOrSpeed = {
156
+ id: "kineticEnergyOrMassOrSpeed",
157
+ label: "Calculer l'énergie cinétique",
158
+ levels: ["4ème", "3ème", "2nde", "1reSpé"],
159
+ sections: ["Mécanique"],
160
+ subject: "Physique",
161
+ isSingleStep: true,
162
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getKineticEnergyOrMassOrSpeedQuestion, nb),
163
+ qcmTimer: 60,
164
+ freeTimer: 60,
165
+ getPropositions,
166
+ isAnswerValid,
167
+ };
@@ -0,0 +1,11 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ mass: number;
4
+ specificHeat: number;
5
+ initialTemp: number;
6
+ finalTemp: number;
7
+ variable: "E_th" | "m" | "c" | "deltaT";
8
+ };
9
+ export declare const thermalEnergyTransferCalculation: Exercise<Identifiers>;
10
+ export {};
11
+ //# sourceMappingURL=thermalEnergyTransferCalculation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thermalEnergyTransferCalculation.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/energy/thermalEnergyTransferCalculation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAMlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;CACzC,CAAC;AA4NF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,WAAW,CAalE,CAAC"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.thermalEnergyTransferCalculation = void 0;
4
+ const frenchify_1 = require("../../../math/utils/latex/frenchify");
5
+ const exercise_1 = require("../../../exercises/exercise");
6
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
7
+ const round_1 = require("../../../math/utils/round");
8
+ const randfloat_1 = require("../../../math/utils/random/randfloat");
9
+ const randint_1 = require("../../../math/utils/random/randint");
10
+ const getThermalEnergyTransferCalculationQuestion = () => {
11
+ const mass = (0, randfloat_1.randfloat)(0.1, 5, 2); // Masse en kg
12
+ const specificHeat = (0, randfloat_1.randfloat)(400, 3000, 2); // Capacité thermique massique en J·kg⁻¹·K⁻¹
13
+ const initialTemp = (0, randfloat_1.randfloat)(283.15, 303.15, 2); // Température initiale en K (10 à 30 °C)
14
+ const finalTemp = (0, randfloat_1.randfloat)(323.15, 373.15, 2); // Température finale en K (50 à 100 °C)
15
+ const deltaT = finalTemp - initialTemp;
16
+ const variableIndex = (0, randint_1.randint)(0, 4);
17
+ const variables = ["E_th", "m", "c", "deltaT"];
18
+ const variable = variables[variableIndex];
19
+ let questionText, answer;
20
+ switch (variable) {
21
+ case "E_th":
22
+ questionText = `Vous êtes dans un laboratoire et vous chauffez un corps de masse $m = ${(0, frenchify_1.frenchify)(mass)}\\ \\text{kg}$ avec une capacité thermique massique $c = ${(0, frenchify_1.frenchify)(specificHeat)}\\ \\text{J}·\\text{kg}^{-1}·\\text{K}^{-1}$. La température initiale du corps est $\\theta_i = ${(0, frenchify_1.frenchify)(initialTemp)}\\ \\text{K}$ et sa température finale est $\\theta_f = ${(0, frenchify_1.frenchify)(finalTemp)}\\ \\text{K}$. Déterminez l'énergie thermique $E_{th}$ en $\\text{J}$ reçue par le corps.`;
23
+ answer = (0, round_1.round)(mass * specificHeat * deltaT, 2);
24
+ break;
25
+ case "m":
26
+ questionText = `Vous êtes dans un laboratoire et vous chauffez un corps avec une capacité thermique massique $c = ${(0, frenchify_1.frenchify)(specificHeat)}\\ \\text{J}·\\text{kg}^{-1}·\\text{K}^{-1}$. La température initiale du corps est $\\theta_i = ${(0, frenchify_1.frenchify)(initialTemp)}\\ \\text{K}$ et sa température finale est $\\theta_f = ${(0, frenchify_1.frenchify)(finalTemp)}\\ \\text{K}$. L'énergie thermique reçue par le corps est $E_{th} = ${(0, frenchify_1.frenchify)((0, round_1.round)(mass * specificHeat * deltaT, 2))}\\ \\text{J}$. Déterminez la masse $m$ en $\\text{kg}$ du corps.`;
27
+ answer = (0, round_1.round)((mass * specificHeat * deltaT) / (specificHeat * deltaT), 2);
28
+ break;
29
+ case "c":
30
+ questionText = `Vous êtes dans un laboratoire et vous chauffez un corps de masse $m = ${(0, frenchify_1.frenchify)(mass)}\\ \\text{kg}$. La température initiale du corps est $\\theta_i = ${(0, frenchify_1.frenchify)(initialTemp)}\\ \\text{K}$ et sa température finale est $\\theta_f = ${(0, frenchify_1.frenchify)(finalTemp)}\\ \\text{K}$. L'énergie thermique reçue par le corps est $E_{th} = ${(0, frenchify_1.frenchify)((0, round_1.round)(mass * specificHeat * deltaT, 2))}\\ \\text{J}$. Déterminez la capacité thermique massique $c$ en $\\text{J}·\\text{kg}^{-1}·\\text{K}^{-1}$ du corps.`;
31
+ answer = (0, round_1.round)((mass * specificHeat * deltaT) / (mass * deltaT), 2);
32
+ break;
33
+ case "deltaT":
34
+ questionText = `Vous êtes dans un laboratoire et vous chauffez un corps de masse $m = ${(0, frenchify_1.frenchify)(mass)}\\ \\text{kg}$ avec une capacité thermique massique $c = ${(0, frenchify_1.frenchify)(specificHeat)}\\ \\text{J}·\\text{kg}^{-1}·\\text{K}^{-1}$. L'énergie thermique reçue par le corps est $E_{th} = ${(0, frenchify_1.frenchify)((0, round_1.round)(mass * specificHeat * deltaT, 2))}\\ \\text{J}$. Déterminez la variation de température $\\Delta\\theta$ en $\\text{K}$ du corps.`;
35
+ answer = (0, round_1.round)((mass * specificHeat * deltaT) / (mass * specificHeat), 2);
36
+ break;
37
+ }
38
+ const hint = `Le transfert d'énergie thermique se calcule par la relation :
39
+ $$
40
+ E_{th} = m \\times c \\times (\\theta_f - \\theta_i)
41
+ $$
42
+ Réarrangez cette formule pour isoler la variable à trouver.`;
43
+ const correction = `La formule du transfert d'énergie thermique est :
44
+ $$
45
+ E_{th} = m \\times c \\times (\\theta_f - \\theta_i)
46
+ $$
47
+
48
+ Pour résoudre ce problème, nous devons réorganiser la formule pour isoler la variable inconnue.
49
+
50
+ ${variable === "E_th"
51
+ ? `$$E_{th} = m \\times c \\times (\\theta_f - \\theta_i) = ${(0, frenchify_1.frenchify)(mass)} \\times ${(0, frenchify_1.frenchify)(specificHeat)} \\times (${(0, frenchify_1.frenchify)(finalTemp)} - ${(0, frenchify_1.frenchify)(initialTemp)}) = ${(0, frenchify_1.frenchify)(answer)}\\ \\text{J}$$`
52
+ : variable === "m"
53
+ ? `$$m = \\frac{E_{th}}{c \\times (\\theta_f - \\theta_i)} = \\frac{${(0, frenchify_1.frenchify)(mass * specificHeat * deltaT)}}{${(0, frenchify_1.frenchify)(specificHeat)} \\times (${(0, frenchify_1.frenchify)(finalTemp)} - ${(0, frenchify_1.frenchify)(initialTemp)})} = ${(0, frenchify_1.frenchify)(answer)}\\ \\text{kg}$$`
54
+ : variable === "c"
55
+ ? `$$c = \\frac{E_{th}}{m \\times (\\theta_f - \\theta_i)} = \\frac{${(0, frenchify_1.frenchify)(mass * specificHeat * deltaT)}}{${(0, frenchify_1.frenchify)(mass)} \\times (${(0, frenchify_1.frenchify)(finalTemp)} - ${(0, frenchify_1.frenchify)(initialTemp)})} = ${(0, frenchify_1.frenchify)(answer)}\\ \\text{J}·\\text{kg}^{-1}·\\text{K}^{-1}$$`
56
+ : `$$\\Delta\\theta = \\frac{E_{th}}{m \\times c} = \\frac{${(0, frenchify_1.frenchify)(mass * specificHeat * deltaT)}}{${(0, frenchify_1.frenchify)(mass)} \\times ${(0, frenchify_1.frenchify)(specificHeat)}} = ${(0, frenchify_1.frenchify)(answer)}\\ \\text{K}$$`}`;
57
+ const question = {
58
+ answer: answer.toTree().toTex(),
59
+ instruction: questionText,
60
+ hint,
61
+ correction,
62
+ keys: ["timesTenPower"],
63
+ answerFormat: "tex",
64
+ identifiers: {
65
+ mass,
66
+ specificHeat,
67
+ initialTemp,
68
+ finalTemp,
69
+ variable,
70
+ },
71
+ };
72
+ return question;
73
+ };
74
+ const getPropositions = (n, { answer, mass, specificHeat, initialTemp, finalTemp, variable }) => {
75
+ const propositions = [];
76
+ (0, exercise_1.addValidProp)(propositions, answer);
77
+ const wrongAnswers = [
78
+ variable === "E_th"
79
+ ? (0, round_1.round)(mass * specificHeat * (finalTemp + initialTemp), 2)
80
+ : (0, round_1.round)(mass * specificHeat * (finalTemp - initialTemp), 2),
81
+ variable === "m"
82
+ ? (0, round_1.round)((mass * specificHeat * (finalTemp - initialTemp)) /
83
+ (specificHeat * finalTemp), 2)
84
+ : (0, round_1.round)((mass * specificHeat * (finalTemp - initialTemp)) /
85
+ (specificHeat * initialTemp), 2),
86
+ variable === "c"
87
+ ? (0, round_1.round)((mass * specificHeat * (finalTemp - initialTemp)) /
88
+ (mass * finalTemp), 2)
89
+ : (0, round_1.round)((mass * specificHeat * (finalTemp - initialTemp)) /
90
+ (mass * initialTemp), 2),
91
+ variable === "deltaT"
92
+ ? (0, round_1.round)((mass * specificHeat * (finalTemp + initialTemp)) /
93
+ (mass * specificHeat), 2)
94
+ : (0, round_1.round)((mass * specificHeat * (finalTemp - initialTemp)) /
95
+ (mass * specificHeat), 2),
96
+ ];
97
+ wrongAnswers.forEach((wrongAnswer) => {
98
+ (0, exercise_1.tryToAddWrongProp)(propositions, wrongAnswer.toTree().toTex());
99
+ });
100
+ while (propositions.length < n) {
101
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(0.1, 5, 2).toTree().toTex());
102
+ }
103
+ return (0, exercise_1.shuffleProps)(propositions, n);
104
+ };
105
+ const isAnswerValid = (ans, { answer, mass, specificHeat, initialTemp, finalTemp, variable }) => {
106
+ let validanswer;
107
+ const deltaT = finalTemp - initialTemp;
108
+ switch (variable) {
109
+ case "E_th":
110
+ validanswer = (0, round_1.round)(mass * specificHeat * deltaT, 2);
111
+ break;
112
+ case "m":
113
+ validanswer = (0, round_1.round)((mass * specificHeat * deltaT) / (specificHeat * deltaT), 2);
114
+ break;
115
+ case "c":
116
+ validanswer = (0, round_1.round)((mass * specificHeat * deltaT) / (mass * deltaT), 2);
117
+ break;
118
+ case "deltaT":
119
+ validanswer = (0, round_1.round)((mass * specificHeat * deltaT) / (mass * specificHeat), 2);
120
+ break;
121
+ }
122
+ const latexs = [
123
+ ...validanswer.toTree().toAllValidTexs(),
124
+ validanswer.toScientific(2).toTex(),
125
+ validanswer.toScientific(1).toTex(),
126
+ validanswer.toScientific(3).toTex(),
127
+ ];
128
+ return latexs.includes(ans);
129
+ };
130
+ exports.thermalEnergyTransferCalculation = {
131
+ id: "thermalEnergyTransferCalculation",
132
+ label: "Calculer l'énergie de transfert thermique",
133
+ levels: ["1reSpé"],
134
+ isSingleStep: true,
135
+ sections: ["Thermodynamique"],
136
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThermalEnergyTransferCalculationQuestion, nb),
137
+ qcmTimer: 60,
138
+ freeTimer: 60,
139
+ getPropositions,
140
+ isAnswerValid,
141
+ subject: "Physique",
142
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ mass: number;
4
+ isAsking: string;
5
+ };
6
+ export declare const calculateNormalOrFrictionForce: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=calculateNormalOrFrictionForce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateNormalOrFrictionForce.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/forces/calculateNormalOrFrictionForce.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA8FF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,WAAW,CAehE,CAAC"}