math-exercises 3.0.88 → 3.0.90

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 (118) hide show
  1. package/lib/exercises/exercise.d.ts +1 -1
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/findZeroesProductQuotient.d.ts +11 -0
  4. package/lib/exercises/math/calcul/arithmetics/findZeroesProductQuotient.d.ts.map +1 -0
  5. package/lib/exercises/math/calcul/arithmetics/findZeroesProductQuotient.js +213 -0
  6. package/lib/exercises/math/calcul/arithmetics/index.d.ts +1 -0
  7. package/lib/exercises/math/calcul/arithmetics/index.d.ts.map +1 -1
  8. package/lib/exercises/math/calcul/arithmetics/index.js +1 -0
  9. package/lib/exercises/math/calcul/arithmetics/isInequalityTrue.js +2 -2
  10. package/lib/exercises/math/calculLitteral/distributivity/simpleDistriXCoeff.d.ts.map +1 -1
  11. package/lib/exercises/math/conversion/lengthConversion.js +1 -1
  12. package/lib/exercises/math/functions/affines/affineFromExercise.d.ts +9 -0
  13. package/lib/exercises/math/functions/affines/affineFromExercise.d.ts.map +1 -0
  14. package/lib/exercises/math/functions/affines/affineFromExercise.js +111 -0
  15. package/lib/exercises/math/functions/affines/index.d.ts +1 -0
  16. package/lib/exercises/math/functions/affines/index.d.ts.map +1 -1
  17. package/lib/exercises/math/functions/affines/index.js +1 -0
  18. package/lib/exercises/math/functions/basics/index.d.ts +1 -0
  19. package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
  20. package/lib/exercises/math/functions/basics/index.js +2 -0
  21. package/lib/exercises/math/functions/basics/signOfFunction.d.ts +8 -0
  22. package/lib/exercises/math/functions/basics/signOfFunction.d.ts.map +1 -0
  23. package/lib/exercises/math/functions/basics/signOfFunction.js +122 -0
  24. package/lib/exercises/math/functions/parity/finishParityFunctionGraph.d.ts +9 -0
  25. package/lib/exercises/math/functions/parity/finishParityFunctionGraph.d.ts.map +1 -0
  26. package/lib/exercises/math/functions/parity/finishParityFunctionGraph.js +154 -0
  27. package/lib/exercises/math/functions/parity/index.d.ts +1 -0
  28. package/lib/exercises/math/functions/parity/index.d.ts.map +1 -1
  29. package/lib/exercises/math/functions/parity/index.js +1 -0
  30. package/lib/exercises/math/functions/sign/affineProductSignTable.d.ts +9 -0
  31. package/lib/exercises/math/functions/sign/affineProductSignTable.d.ts.map +1 -0
  32. package/lib/exercises/math/functions/sign/affineProductSignTable.js +201 -0
  33. package/lib/exercises/math/functions/sign/affineSignTable.d.ts +8 -0
  34. package/lib/exercises/math/functions/sign/affineSignTable.d.ts.map +1 -0
  35. package/lib/exercises/math/functions/sign/affineSignTable.js +111 -0
  36. package/lib/exercises/math/functions/sign/index.d.ts +4 -0
  37. package/lib/exercises/math/functions/sign/index.d.ts.map +1 -1
  38. package/lib/exercises/math/functions/sign/index.js +4 -0
  39. package/lib/exercises/math/functions/sign/readSignTable.d.ts +10 -0
  40. package/lib/exercises/math/functions/sign/readSignTable.d.ts.map +1 -0
  41. package/lib/exercises/math/functions/sign/readSignTable.js +124 -0
  42. package/lib/exercises/math/functions/sign/signTableFromGraph.d.ts +11 -0
  43. package/lib/exercises/math/functions/sign/signTableFromGraph.d.ts.map +1 -0
  44. package/lib/exercises/math/functions/sign/signTableFromGraph.js +141 -0
  45. package/lib/exercises/math/functions/square/squareImageInterval.d.ts.map +1 -1
  46. package/lib/exercises/math/functions/square/squareImageInterval.js +7 -1
  47. package/lib/exercises/math/functions/variations/compareImagesInVarTable.d.ts +11 -0
  48. package/lib/exercises/math/functions/variations/compareImagesInVarTable.d.ts.map +1 -0
  49. package/lib/exercises/math/functions/variations/compareImagesInVarTable.js +153 -0
  50. package/lib/exercises/math/functions/variations/index.d.ts +2 -0
  51. package/lib/exercises/math/functions/variations/index.d.ts.map +1 -1
  52. package/lib/exercises/math/functions/variations/index.js +2 -0
  53. package/lib/exercises/math/functions/variations/varTableFromGraph.d.ts +9 -0
  54. package/lib/exercises/math/functions/variations/varTableFromGraph.d.ts.map +1 -0
  55. package/lib/exercises/math/functions/variations/varTableFromGraph.js +184 -0
  56. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.d.ts +12 -0
  57. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.d.ts.map +1 -0
  58. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.js +127 -0
  59. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.d.ts +11 -0
  60. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.d.ts.map +1 -0
  61. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.js +118 -0
  62. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.d.ts +11 -0
  63. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.d.ts.map +1 -0
  64. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.js +158 -0
  65. package/lib/exercises/math/geometry/vectors/colinearity/index.d.ts +4 -0
  66. package/lib/exercises/math/geometry/vectors/colinearity/index.d.ts.map +1 -0
  67. package/lib/exercises/math/geometry/vectors/colinearity/index.js +3 -0
  68. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.d.ts +9 -0
  69. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.d.ts.map +1 -0
  70. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.js +174 -0
  71. package/lib/exercises/math/geometry/vectors/index.d.ts +2 -2
  72. package/lib/exercises/math/geometry/vectors/index.d.ts.map +1 -1
  73. package/lib/exercises/math/geometry/vectors/index.js +2 -2
  74. package/lib/exercises/math/index.d.ts +1 -0
  75. package/lib/exercises/math/index.d.ts.map +1 -1
  76. package/lib/exercises/math/index.js +1 -0
  77. package/lib/exercises/math/primitive/polynomialPrimitive.d.ts.map +1 -1
  78. package/lib/exercises/math/primitive/polynomialPrimitive.js +10 -1
  79. package/lib/exercises/math/probaStat/basicProbas/rouletteProbas.js +1 -1
  80. package/lib/exercises/math/python/variableAffectation.js +2 -2
  81. package/lib/exercises/math/tests/index.d.ts +2 -0
  82. package/lib/exercises/math/tests/index.d.ts.map +1 -0
  83. package/lib/exercises/math/tests/index.js +1 -0
  84. package/lib/exercises/math/tests/testMultiLineSignTable.d.ts +9 -0
  85. package/lib/exercises/math/tests/testMultiLineSignTable.d.ts.map +1 -0
  86. package/lib/exercises/math/tests/testMultiLineSignTable.js +156 -0
  87. package/lib/exercises/math/tests/testSignTable.d.ts +8 -0
  88. package/lib/exercises/math/tests/testSignTable.d.ts.map +1 -0
  89. package/lib/exercises/math/tests/testSignTable.js +90 -0
  90. package/lib/exercises/math/tests/testVarTable.d.ts +11 -0
  91. package/lib/exercises/math/tests/testVarTable.d.ts.map +1 -0
  92. package/lib/exercises/math/tests/testVarTable.js +147 -0
  93. package/lib/exercises/math/trigonometry/index.d.ts +1 -0
  94. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  95. package/lib/exercises/math/trigonometry/index.js +1 -0
  96. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.d.ts +9 -0
  97. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.d.ts.map +1 -0
  98. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.js +151 -0
  99. package/lib/geogebra/parsers/ggbPointsToPoints.d.ts +3 -0
  100. package/lib/geogebra/parsers/ggbPointsToPoints.d.ts.map +1 -0
  101. package/lib/geogebra/parsers/ggbPointsToPoints.js +12 -0
  102. package/lib/index.d.ts +73 -12
  103. package/lib/index.d.ts.map +1 -1
  104. package/lib/latexTester.js +2 -0
  105. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  106. package/lib/math/numbers/reals/real.js +7 -2
  107. package/lib/playground.d.ts.map +1 -1
  108. package/lib/tests/exoTest.d.ts.map +1 -1
  109. package/lib/tests/exoTest.js +9 -3
  110. package/lib/tests/questionTest.d.ts.map +1 -1
  111. package/lib/tests/questionTest.js +19 -10
  112. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  113. package/lib/tree/nodes/operators/addNode.js +3 -1
  114. package/lib/tree/parsers/latexParser.d.ts.map +1 -1
  115. package/lib/tree/parsers/latexParser.js +10 -0
  116. package/lib/types/keyIds.d.ts +1 -1
  117. package/lib/types/keyIds.d.ts.map +1 -1
  118. package/package.json +1 -1
@@ -142,7 +142,7 @@ export interface Exercise<TIdentifiers = {}, TOptions = {}> {
142
142
  connector?: "=" | "\\iff" | "\\approx";
143
143
  generator: (n: number, opts?: TOptions) => Question<TIdentifiers, TOptions>[];
144
144
  maxAllowedQuestions?: number;
145
- answerType?: "GGB" | "QCM" | "free" | "QCU" | "valueTable";
145
+ answerType?: "GGB" | "QCM" | "free" | "QCU" | "valueTable" | "varTable" | "signTable";
146
146
  isQCM?: boolean;
147
147
  shouldHaveCalculator?: boolean;
148
148
  qcmTimer?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAInD,eAAO,MAAM,SAAS,iBACN,WAAW,EAAE,KACxB,MAAM,WACA,MAAM,IAAI,SAQpB,CAAC;AACF,eAAO,MAAM,YAAY,UAChB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAQtB,CAAC;AACF,eAAO,MAAM,YAAY,UAChB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAQtB,CAAC;AACF,eAAO,MAAM,iBAAiB,UACrB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAUtB,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,WAAW,EAAE,KACjB,MAAM,sBACW,MAAM,kBAQ3B,CAAC;AAEF,oBAAY,qBAAqB;IAC/B,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AACD,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AACD,MAAM,MAAM,eAAe,CAAC,MAAM,GAAG,GAAG,IAAI;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACjC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,oCAAoC,CAAC,EAAE,OAAO,CAAC;CAChD,CAAC;AAEF,MAAM,WAAW,QAAQ,CAAC,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;IAE5B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,oBAAoB,CAAC,EAAE,eAAe,CAAC;IACvC,KAAK,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,WAAW,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACtD,CAAC,EAAE,MAAM,EACT,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,EACvC,OAAO,CAAC,EAAE,QAAQ,KACf,WAAW,EAAE,CAAC;AACnB,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAC7C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,EACvC,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,CAAC;AACb,MAAM,MAAM,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAClD,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,GAAG,YAAY,EAChD,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,CAAC;AACb,MAAM,MAAM,MAAM,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAChD,aAAa,EAAE,MAAM,EAAE,EACvB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,YAAY,EAC5C,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,CAAC;AACb,MAAM,MAAM,iBAAiB,CAAC,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,GAAG,IAAI,CACjE,IAAI,CAAC,EAAE,QAAQ,KACZ,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACtC,MAAM,MAAM,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACjD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,aAAa,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACvD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACxD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,iBAAiB,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAC3D,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,SAAS,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACnD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACxD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,EAAE,EAAE,CAAC;AAChB,MAAM,MAAM,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACjD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC1B,MAAM,MAAM,YAAY,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,EAAE,CAAC;AACd,MAAM,MAAM,aAAa,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACvD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,eAAe,CAAC;AACrB,MAAM,MAAM,oBAAoB,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAC9D,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,eAAe,CAAC;AACrB,MAAM,MAAM,kBAAkB,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAC5D,cAAc,EAAE,GAAG,EACnB,OAAO,CAAC,EAAE,QAAQ,KACf,YAAY,CAAC;AAClB,MAAM,MAAM,0BAA0B,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACpE,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE,QAAQ,KACf,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACtC,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACxD,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,OAAO,CAAC,EAAE,QAAQ,KACf,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,MAAM,MAAM,eAAe,CAAC,QAAQ,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK;IAClE,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI;IAClD,WAAW,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,MAAM,QAAQ,CAChE,YAAY,EACZ,QAAQ,CACT,EAAE,CAAC;AACJ,KAAK,UAAU,GAAG;IAEhB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AACF,MAAM,WAAW,QAAQ,CAAC,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,UAAU,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EACP,KAAK,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,YAAY,GACZ,UAAU,GACV,WAAW,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,YAAY,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5E,aAAa,CAAC,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,kBAAkB,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACxD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAExD,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChE,0BAA0B,EAAE,0BAA0B,CACpD,YAAY,EACZ,QAAQ,CACT,CAAC;IACF,MAAM,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1E,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,8BAA8B,GAC9B,aAAa,GACb,YAAY,GACZ,SAAS,GACT,0BAA0B,GAC1B,WAAW,GACX,2BAA2B,GAC3B,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,mBAAmB,GACnB,wBAAwB,GACxB,WAAW,GACX,uBAAuB,GACvB,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,SAAS,GACT,qBAAqB,GACrB,oBAAoB,GACpB,UAAU,GACV,mBAAmB,GACnB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,kBAAkB,GAClB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,QAAQ,GACR,UAAU,GACV,uBAAuB,GACvB,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,UAAU,CAAC;AAEf,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,SAAS,GACT,cAAc,GACd,+CAA+C,GAC/C,OAAO,GACP,KAAK,GACL,wBAAwB,GACxB,SAAS,GACT,KAAK,GACL,aAAa,GACb,4BAA4B,GAC5B,oBAAoB,GACpB,WAAW,GACX,iBAAiB,GACjB,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ type: number;
4
+ a: number;
5
+ b?: number;
6
+ c?: number;
7
+ d?: number;
8
+ };
9
+ export declare const findZeroesProductQuotient: Exercise<Identifiers>;
10
+ export {};
11
+ //# sourceMappingURL=findZeroesProductQuotient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findZeroesProductQuotient.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/findZeroesProductQuotient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAqCrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AA+MF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAkB3D,CAAC"}
@@ -0,0 +1,213 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { Affine } from "../../../../math/polynomials/affine.js";
4
+ import { Polynomial } from "../../../../math/polynomials/polynomial.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { EquationSolutionNode } from "../../../../tree/nodes/equations/equationSolutionNode.js";
7
+ import { opposite } from "../../../../tree/nodes/functions/oppositeNode.js";
8
+ import { sqrt } from "../../../../tree/nodes/functions/sqrtNode.js";
9
+ import { frac, isFractionNode, } from "../../../../tree/nodes/operators/fractionNode.js";
10
+ import { multiply, } from "../../../../tree/nodes/operators/multiplyNode.js";
11
+ import { square } from "../../../../tree/nodes/operators/powerNode.js";
12
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
13
+ import { DiscreteSetNode } from "../../../../tree/nodes/sets/discreteSetNode.js";
14
+ import { discreteSetParser } from "../../../../tree/parsers/discreteSetParser.js";
15
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
16
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
17
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
18
+ const getPropositions = (n, { answer }) => {
19
+ const propositions = [];
20
+ addValidProp(propositions, answer);
21
+ while (propositions.length < n) {
22
+ const oneSol = coinFlip();
23
+ const a = randint(-10, 10);
24
+ const b = randint(-10, 10, [a]);
25
+ const roots = oneSol
26
+ ? [a.toTree()]
27
+ : [a, b].sort((a, b) => a - b).map((e) => e.toTree());
28
+ tryToAddWrongProp(propositions, new EquationSolutionNode(new DiscreteSetNode(roots)).toTex());
29
+ }
30
+ return shuffleProps(propositions, n);
31
+ };
32
+ const getRoots = (identifiers) => {
33
+ const { a, b, c, d } = identifiers;
34
+ switch (identifiers.type) {
35
+ case 0:
36
+ return [frac(-b, a), frac(-d, c)].sort((r1, r2) => r1.evaluate() - r2.evaluate());
37
+ case 1:
38
+ return [frac(-b, a)];
39
+ case 2:
40
+ default:
41
+ return [opposite(sqrt(a)), sqrt(a)];
42
+ }
43
+ };
44
+ const getAnswer = (identifiers) => {
45
+ const roots = getRoots(identifiers).map((r) => r.simplify());
46
+ return new EquationSolutionNode(new DiscreteSetNode(roots)).toTex();
47
+ };
48
+ const buildFunc = (identifiers) => {
49
+ const { type, a, b, c, d } = identifiers;
50
+ switch (type) {
51
+ case 0: //product
52
+ return multiply(new Affine(a, b).toTree(), new Affine(c, d).toTree());
53
+ break;
54
+ case 1: //quotient
55
+ return frac(new Affine(a, b).toTree(), new Affine(c, d).toTree());
56
+ break;
57
+ case 2: //x^2 -k
58
+ default:
59
+ return substract(square("x"), a);
60
+ break;
61
+ }
62
+ };
63
+ const getInstruction = (identifiers) => {
64
+ const { type, a, b, c, d } = identifiers;
65
+ const myFuncNode = buildFunc(identifiers);
66
+ return `Déterminer la ou les valeurs d'annulation de la fonction suivante :
67
+
68
+ $$
69
+ f(x)=${myFuncNode.toTex()}
70
+ $$`;
71
+ };
72
+ const getHint = (identifiers) => {
73
+ const type = identifiers.type;
74
+ if (type === 0) {
75
+ return `Un produit est nul si et seulement si au moins un des deux facteurs est nul. Cherche les valeurs de $x$ qui annulent chaque facteur.`;
76
+ }
77
+ if (type === 1) {
78
+ return `Un quotient est nul lorsque son numérateur est nul, et son dénominateur non nul. Cherche donc les valeurs de $x$ qui rendent le numérateur nul, mais pas le dénominateur.`;
79
+ }
80
+ return `Cherche les solutions de l'équation $x^2 = k$.`;
81
+ };
82
+ const getCorrection = (identifiers) => {
83
+ const myFunc = buildFunc(identifiers);
84
+ const tex = myFunc.toTex();
85
+ const answer = getAnswer(identifiers);
86
+ const { type, a, b, c, d } = identifiers;
87
+ if (type === 0) {
88
+ const polynome1 = new Polynomial([b, a]);
89
+ const polynome2 = new Polynomial([d, c]);
90
+ const sol1 = frac(-b, a).simplify();
91
+ const sol2 = frac(-d, c).simplify();
92
+ return `Un produit est nul si et seulement si un des deux facteurs est nul. On résout donc deux équations :
93
+
94
+ ${alignTex([
95
+ ["", buildFunc(identifiers).toTex() + "=0"],
96
+ [
97
+ "\\iff",
98
+ `${polynome1.toTree().toTex()} = 0 \\text{ ou } ${polynome2
99
+ .toTree()
100
+ .toTex()} = 0`,
101
+ ],
102
+ ["\\iff", `x=${sol1.toTex()} \\text{ ou } x=${sol2.toTex()}`],
103
+ ])}
104
+
105
+ Ainsi, $${getAnswer(identifiers)}$`;
106
+ }
107
+ if (isFractionNode(myFunc)) {
108
+ const polynome1 = new Polynomial([b, a]);
109
+ const polynome2 = new Polynomial([d, c]);
110
+ const root1 = frac(-b, a).simplify().toTex();
111
+ const root2 = frac(-d, c).simplify().toTex();
112
+ const answer = getAnswer(identifiers);
113
+ return `Un quotient est nul si est seulement si le numérateur est nul et le dénominateur est non nul. Ainsi :
114
+
115
+ ${alignTex([
116
+ ["", buildFunc(identifiers).toTex() + "=0"],
117
+ ["\\iff", `${polynome1.toTex()}=0 \\text{ et } ${polynome2.toTex()}\\neq 0`],
118
+ ["\\iff", `x=${root1} \\text{ et } x\\neq ${root2}`],
119
+ ])}
120
+
121
+ Il y a donc bien une solution pour cette équation :
122
+
123
+ $$
124
+ ${answer}
125
+ $$`;
126
+ }
127
+ return `On résout l'équation :
128
+
129
+ ${alignTex([
130
+ ["", buildFunc(identifiers).toTex() + "=0"],
131
+ ["\\iff", `x^2=${a}`],
132
+ ])}
133
+
134
+ Il y a donc deux solutions à cette équaton :
135
+
136
+ $$
137
+ ${getAnswer(identifiers)}
138
+ $$
139
+ `;
140
+ };
141
+ const getKeys = (identifiers) => {
142
+ return ["S", "equal", "lbrace", "semicolon", "rbrace"];
143
+ };
144
+ const isAnswerValid = (ans, { answer }) => {
145
+ try {
146
+ const parsed = discreteSetParser(ans);
147
+ if (!parsed)
148
+ return false;
149
+ return "S=" + parsed.simplify().toTex() === answer;
150
+ }
151
+ catch (err) {
152
+ return handleVEAError(err);
153
+ }
154
+ };
155
+ const getFindZeroesProductQuotientQuestion = () => {
156
+ const type = randint(0, 3);
157
+ let a = 0;
158
+ let b = undefined;
159
+ let c = undefined;
160
+ let d = undefined;
161
+ switch (type) {
162
+ case 0: //product
163
+ a = randint(-10, 10, [0]);
164
+ b = randint(-10, 10);
165
+ do {
166
+ c = randint(-10, 10, [0]);
167
+ d = randint(-10, 10, [0]);
168
+ } while (a / c === b / d);
169
+ break;
170
+ case 1: //quotient
171
+ a = randint(-10, 10, [0]);
172
+ b = randint(-10, 10);
173
+ do {
174
+ c = randint(-10, 10, [0]);
175
+ d = randint(-10, 10, [0]);
176
+ } while (a / c === b / d);
177
+ break;
178
+ case 2: //x^2 -k
179
+ default:
180
+ a = randint(1, 11) ** 2;
181
+ break;
182
+ }
183
+ const identifiers = { type, a, b, c, d };
184
+ return getQuestionFromIdentifiers(identifiers);
185
+ };
186
+ const getQuestionFromIdentifiers = (identifiers) => {
187
+ return {
188
+ answer: getAnswer(identifiers),
189
+ instruction: getInstruction(identifiers),
190
+ keys: getKeys(identifiers),
191
+ answerFormat: "tex",
192
+ identifiers,
193
+ hint: getHint(identifiers),
194
+ correction: getCorrection(identifiers),
195
+ };
196
+ };
197
+ export const findZeroesProductQuotient = {
198
+ id: "findZeroesProductQuotient",
199
+ label: "Déterminer la ou les valeur d'annulation d'une fonction par le calcul",
200
+ isSingleStep: true,
201
+ generator: (nb, opts) => getDistinctQuestions(() => getFindZeroesProductQuotientQuestion(opts), nb),
202
+ qcmTimer: 60,
203
+ freeTimer: 60,
204
+ getPropositions,
205
+ isAnswerValid,
206
+ subject: "Mathématiques",
207
+ getInstruction,
208
+ getHint,
209
+ getCorrection,
210
+ getAnswer,
211
+ getQuestionFromIdentifiers,
212
+ hasHintAndCorrection: true,
213
+ };
@@ -18,4 +18,5 @@ export * from "./isMultipleOrDivisor.js";
18
18
  export * from "./compareInverseValues.js";
19
19
  export * from "./compareSquaredValues.js";
20
20
  export * from "./decimalBoundingOnLine.js";
21
+ export * from "./findZeroesProductQuotient.js";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC"}
@@ -18,3 +18,4 @@ export * from "./isMultipleOrDivisor.js";
18
18
  export * from "./compareInverseValues.js";
19
19
  export * from "./compareSquaredValues.js";
20
20
  export * from "./decimalBoundingOnLine.js";
21
+ export * from "./findZeroesProductQuotient.js";
@@ -37,10 +37,10 @@ $$
37
37
  ${leftNode.toTex()} ${inequalitySign ? "<" : ">"} ${rightNode.toTex()}
38
38
  $$
39
39
 
40
- Cette inéquation est-elle vraie pour $x = ${x}$ ?`;
40
+ Cette inéquation est-elle vraie pour pour $x = ${x}$ ?`;
41
41
  };
42
42
  const getHint = (identifiers) => {
43
- return `Remplace $x$ par $${identifiers.x}$ dans les deux membres. Ensuite, vérifie si l'inégalité est vraie ou non.`;
43
+ return `Remplacer $x$ par $${identifiers.x}$ dans les deux membres. Ensuite, vérifie si l'inégalité est vraie ou non.`;
44
44
  };
45
45
  const reverseSign = (sign) => {
46
46
  let x = "";
@@ -1 +1 @@
1
- {"version":3,"file":"simpleDistriXCoeff.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/distributivity/simpleDistriXCoeff.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAoBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAmHF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAepD,CAAC"}
1
+ {"version":3,"file":"simpleDistriXCoeff.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/distributivity/simpleDistriXCoeff.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAmHF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAepD,CAAC"}
@@ -83,7 +83,7 @@ const getLengthConversion = (opts) => {
83
83
  const randomUnitInstructionIndex = random(availableUnitsIndexes, [
84
84
  randomUnitIndex,
85
85
  ]);
86
- const randomLength = doWhile(() => DecimalConstructor.random(0, 1000, randint(0, 4)), (x) => x.value === 0);
86
+ const randomLength = doWhile(() => DecimalConstructor.random(1, 1000, randint(0, 4)), (x) => x.value === 0);
87
87
  const identifiers = {
88
88
  randomLength: randomLength.value,
89
89
  randomUnitIndex,
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ phrase: number;
4
+ initial: number;
5
+ growth: number;
6
+ };
7
+ export declare const affineFromExercise: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=affineFromExercise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affineFromExercise.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/affines/affineFromExercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAuHF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAiBpD,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { randfloat } from "../../../../math/utils/random/randfloat.js";
4
+ import { randint } from "../../../../math/utils/random/randint.js";
5
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
6
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
7
+ import { VariableNode } from "../../../../tree/nodes/variables/variableNode.js";
8
+ import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
9
+ const getPropositions = (n, { answer, ...identifiers }) => {
10
+ const propositions = [];
11
+ const { phrase, initial, growth } = identifiers;
12
+ addValidProp(propositions, answer);
13
+ tryToAddWrongProp(propositions, add(multiply(initial, new VariableNode("x")), growth).toTex());
14
+ tryToAddWrongProp(propositions, add(multiply(growth, new VariableNode("n")), initial).toTex());
15
+ tryToAddWrongProp(propositions, add(multiply(initial, growth), new VariableNode("x")).toTex());
16
+ tryToAddWrongProp(propositions, multiply(add(initial, growth).simplify(), new VariableNode("x")).toTex());
17
+ return shuffleProps(propositions, n);
18
+ };
19
+ const getAnswer = (identifiers) => {
20
+ return add(multiply(identifiers.growth, new VariableNode("x")), identifiers.initial).toTex();
21
+ };
22
+ const getInstruction = (identifiers) => {
23
+ const { phrase, initial, growth } = identifiers;
24
+ switch (phrase) {
25
+ case 0:
26
+ return `On suppose qu'une plante, d'une hauteur initiale de
27
+ $${initial}\\ \\textrm{cm}$, croît chaque jour de $${growth.frenchify()}\\ \\textrm{cm}$.
28
+ Quelle est sa hauteur (en $\\textrm{cm}$) après $x$ jours ?`;
29
+ case 1:
30
+ default:
31
+ return `Une compagnie de taxis propose un tarif qui inclut un
32
+ montant fixe de $${initial}\\ €$ et un montant variable de $${growth.frenchify()}\\ €$
33
+ par kilomètre parcouru.
34
+ Quel est le prix payé (en $€$) pour $x \\ \\textrm{km}$ parcourus ?`;
35
+ }
36
+ };
37
+ const getHint = (identifiers) => {
38
+ const { growth, initial, phrase } = identifiers;
39
+ if (phrase === 0) {
40
+ return `Quel calcul permet de trouver la hauteur de la plante au bout de $10$ jours ?
41
+
42
+ Inspire toi de ce calcul pour déterminer la hauteur de la plante au bout de $x$ jours.`;
43
+ }
44
+ return `Quel calcul permet de trouver le prix payé pour $10$ kilomètres parcourus ?
45
+
46
+ Inspire toi de ce calcul pour déterminer le prix payé pour $x$ kilomètres parcourus.
47
+ `;
48
+ };
49
+ const getCorrection = (identifiers) => {
50
+ const { growth, initial, phrase } = identifiers;
51
+ if (phrase === 0) {
52
+ return `Chaque jour, la plante gagne $${growth.frenchify()}\\ \\textrm{cm}$. Au bout de $x$ jours, la plante a donc gagné $x\\times ${growth.frenchify()}\\ \\textrm{cm}$.
53
+
54
+ La hauteur initiale de la plante est de $${initial}\\ \\textrm{cm}$.
55
+
56
+ Au bout de $x$ jours, la plante a donc une hauteur de :
57
+
58
+ $$
59
+ ${getAnswer(identifiers)}\\ \\textrm{cm}
60
+ $$`;
61
+ }
62
+ return `Pour chaque kilomètre parcouru, le prix augmente de $${growth.frenchify()}\\ €$. Au bout de $x$ kilomètres, le prix augmente donc de $x\\times ${growth.frenchify()}\\ \\ €$.
63
+
64
+ Le montant fixe initial du trajet est de $${initial}\\ €$.
65
+
66
+ Pour $x$ kilomètres parcourus, le prix du trajet est donc de :
67
+
68
+ $$
69
+ ${getAnswer(identifiers)}\\ €
70
+ $$`;
71
+ };
72
+ const isAnswerValid = (ans, { answer }) => {
73
+ return parseAlgebraic(ans)
74
+ .simplify()
75
+ .equals(parseAlgebraic(answer).simplify());
76
+ };
77
+ const getAffineFromExerciseQuestion = (ops) => {
78
+ const phrase = randint(0, 2);
79
+ const initial = randint(2, 20);
80
+ const growth = randfloat(0, 4, 2, [0]);
81
+ const identifiers = { phrase, initial, growth };
82
+ return getQuestionFromIdentifiers(identifiers);
83
+ };
84
+ const getQuestionFromIdentifiers = (identifiers) => {
85
+ return {
86
+ answer: getAnswer(identifiers),
87
+ instruction: getInstruction(identifiers),
88
+ keys: ["x"],
89
+ answerFormat: "tex",
90
+ identifiers,
91
+ hint: getHint(identifiers),
92
+ correction: getCorrection(identifiers),
93
+ };
94
+ };
95
+ export const affineFromExercise = {
96
+ id: "affineFromExercise",
97
+ label: "Écrire la fonction affine correspondant à une situation donnée",
98
+ isSingleStep: true,
99
+ generator: (nb, opts) => getDistinctQuestions(() => getAffineFromExerciseQuestion(opts), nb),
100
+ qcmTimer: 60,
101
+ freeTimer: 60,
102
+ getPropositions,
103
+ isAnswerValid,
104
+ subject: "Mathématiques",
105
+ getInstruction,
106
+ getHint,
107
+ getCorrection,
108
+ getAnswer,
109
+ getQuestionFromIdentifiers,
110
+ hasHintAndCorrection: true,
111
+ };
@@ -11,4 +11,5 @@ export * from "./affineAdjustmentRsquared.js";
11
11
  export * from "./affineAdjustmentComplete.js";
12
12
  export * from "./affineMeanValue.js";
13
13
  export * from "./affineExpressionFromTwoImages.js";
14
+ export * from "./affineFromExercise.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/affines/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/affines/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC"}
@@ -11,3 +11,4 @@ export * from "./affineAdjustmentRsquared.js";
11
11
  export * from "./affineAdjustmentComplete.js";
12
12
  export * from "./affineMeanValue.js";
13
13
  export * from "./affineExpressionFromTwoImages.js";
14
+ export * from "./affineFromExercise.js";
@@ -9,6 +9,7 @@ export * from "./twoFunctionsInequation.js";
9
9
  export * from "./inverseImageFunctionTable.js";
10
10
  export * from "./imageAntecedentFromSentence.js";
11
11
  export * from "./graphicInequationAffine.js";
12
+ export * from "./signOfFunction.js";
12
13
  export * from "./valueTableCompletion.js";
13
14
  export * from "./valueTableFromGraph.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
@@ -9,5 +9,7 @@ export * from "./twoFunctionsInequation.js";
9
9
  export * from "./inverseImageFunctionTable.js";
10
10
  export * from "./imageAntecedentFromSentence.js";
11
11
  export * from "./graphicInequationAffine.js";
12
+ // export * from "./valueTableCompletion.js";
13
+ export * from "./signOfFunction.js";
12
14
  export * from "./valueTableCompletion.js";
13
15
  export * from "./valueTableFromGraph.js";
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ type: number;
5
+ };
6
+ export declare const signOfFunction: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=signOfFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOfFunction.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/signOfFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IAEV,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAgHF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAkBhD,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { abs } from "../../../../tree/nodes/functions/absNode.js";
5
+ import { multiply, } from "../../../../tree/nodes/operators/multiplyNode.js";
6
+ import { MonomNode, } from "../../../../tree/nodes/polynomials/monomNode.js";
7
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
8
+ const getPropositions = (n, { answer }) => {
9
+ const propositions = [];
10
+ addValidProp(propositions, answer, "raw");
11
+ tryToAddWrongProp(propositions, "Positive", "raw");
12
+ tryToAddWrongProp(propositions, "Nulle", "raw");
13
+ tryToAddWrongProp(propositions, "Négative", "raw");
14
+ tryToAddWrongProp(propositions, "La fonction change de signe sur $\\mathbb{R}$", "raw");
15
+ return shuffleProps(propositions, n);
16
+ };
17
+ const buildFunc = (identifiers) => {
18
+ const { a, type } = identifiers;
19
+ if (type === 0) {
20
+ return a.toTree();
21
+ }
22
+ if (type === 1) {
23
+ return new MonomNode(a, 2, { variable: "x" });
24
+ }
25
+ return multiply(a, abs("x"));
26
+ };
27
+ const getAnswer = (identifiers) => {
28
+ const node = buildFunc(identifiers).simplify();
29
+ const value = node.evaluate({ x: 1 });
30
+ if (value === 0)
31
+ return "Nulle";
32
+ return value > 0 ? "Positive" : "Négative";
33
+ };
34
+ const getInstruction = (identifiers) => {
35
+ const node = buildFunc(identifiers).simplify();
36
+ return `Donner le signe de la fonction suivante sur $\\mathbb{R}$ :
37
+
38
+ $$
39
+ f(x) = ${node.toTex()}
40
+ $$`;
41
+ };
42
+ const getHint = (identifiers) => {
43
+ const { type } = identifiers;
44
+ if (type === 0)
45
+ return `$f$ est une fonction constante, c'est à dire que $f(x)$ vaut toujours le même nombre quelle que soit la valeur de $x$.`;
46
+ return `$f(x)$ est un produit, donc son signe dépend des signes des deux facteurs. Utilise la règle des signes.`;
47
+ };
48
+ const getCorrection = (identifiers) => {
49
+ const node = buildFunc(identifiers).simplify();
50
+ const value = node.evaluate({ x: 1 });
51
+ const type = identifiers.type;
52
+ const word = value > 0 ? "positif" : "négatif";
53
+ const feminized = value > 0 ? "positive" : "négative";
54
+ if (type === 0) {
55
+ return `$f$ est une fonction constante égale à $${node.toTex()}$.
56
+
57
+ Puisque $${node.toTex()}$ est ${word}, la fonction $f$ est ${feminized} sur $\\mathbb{R}$.`;
58
+ }
59
+ if (type === 1) {
60
+ return `$f(x)$ est un produit. On étudie le signe de chacun des facteurs :
61
+
62
+ - $${identifiers.a}$ est ${word} sur $\\mathbb{R}$ ;
63
+ - $x^2$ est positif sur $\\mathbb{R}$, car un carré est toujours positif.
64
+
65
+ D'après la régle des signes, $f$ est donc ${feminized} sur $\\mathbb{R}$.`;
66
+ }
67
+ return `$f(x)$ est un produit. On étudie le signe de chacun des facteurs :
68
+
69
+ - $${identifiers.a}$ est ${word} sur $\\mathbb{R}$ ;
70
+ - $|x|$ est positif sur $\\mathbb{R}$, car une valeur absolue est toujours positive.
71
+
72
+ D'après la régle des signes, $f$ est donc ${feminized} sur $\\mathbb{R}$.`;
73
+ };
74
+ const getKeys = (identifiers) => {
75
+ return [];
76
+ };
77
+ const isAnswerValid = (ans, { answer }) => {
78
+ try {
79
+ return ans === answer;
80
+ }
81
+ catch (err) {
82
+ return handleVEAError(err);
83
+ }
84
+ };
85
+ const getSignOfFunctionQuestion = (ops) => {
86
+ const a = randint(-20, 20);
87
+ const exp1 = new MonomNode(a, 2, { variable: "x" });
88
+ const exp2 = multiply(a, abs("x"));
89
+ const type = randint(0, 3);
90
+ const myFunc = [a.toTree(), exp1, exp2][type];
91
+ const identifiers = { a, type };
92
+ return getQuestionFromIdentifiers(identifiers);
93
+ };
94
+ const getQuestionFromIdentifiers = (identifiers) => {
95
+ return {
96
+ answer: getAnswer(identifiers),
97
+ instruction: getInstruction(identifiers),
98
+ keys: getKeys(identifiers),
99
+ answerFormat: "raw",
100
+ identifiers,
101
+ hint: getHint(identifiers),
102
+ correction: getCorrection(identifiers),
103
+ };
104
+ };
105
+ export const signOfFunction = {
106
+ id: "signOfFunction",
107
+ label: "Donner le signe d'une fonction qui ne change pas de signe",
108
+ isSingleStep: true,
109
+ generator: (nb, opts) => getDistinctQuestions(() => getSignOfFunctionQuestion(opts), nb),
110
+ qcmTimer: 60,
111
+ freeTimer: 60,
112
+ getPropositions,
113
+ isAnswerValid,
114
+ subject: "Mathématiques",
115
+ getInstruction,
116
+ getHint,
117
+ getCorrection,
118
+ getAnswer,
119
+ getQuestionFromIdentifiers,
120
+ hasHintAndCorrection: true,
121
+ answerType: "QCU",
122
+ };
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ isEven: boolean;
4
+ isLeftSideGiven: boolean;
5
+ givenPointsCoords: number[][];
6
+ };
7
+ export declare const finishParityFunctionGraph: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=finishParityFunctionGraph.d.ts.map