math-exercises 3.0.88 → 3.0.89

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 (75) 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/functions/basics/index.d.ts +1 -0
  10. package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
  11. package/lib/exercises/math/functions/basics/index.js +2 -0
  12. package/lib/exercises/math/functions/basics/signOfFunction.d.ts +8 -0
  13. package/lib/exercises/math/functions/basics/signOfFunction.d.ts.map +1 -0
  14. package/lib/exercises/math/functions/basics/signOfFunction.js +122 -0
  15. package/lib/exercises/math/functions/square/squareImageInterval.d.ts.map +1 -1
  16. package/lib/exercises/math/functions/square/squareImageInterval.js +7 -1
  17. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.d.ts +12 -0
  18. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.d.ts.map +1 -0
  19. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.js +127 -0
  20. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.d.ts +11 -0
  21. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.d.ts.map +1 -0
  22. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.js +118 -0
  23. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.d.ts +11 -0
  24. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.d.ts.map +1 -0
  25. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.js +158 -0
  26. package/lib/exercises/math/geometry/vectors/colinearity/index.d.ts +4 -0
  27. package/lib/exercises/math/geometry/vectors/colinearity/index.d.ts.map +1 -0
  28. package/lib/exercises/math/geometry/vectors/colinearity/index.js +3 -0
  29. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.d.ts +9 -0
  30. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.d.ts.map +1 -0
  31. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.js +155 -0
  32. package/lib/exercises/math/geometry/vectors/index.d.ts +1 -2
  33. package/lib/exercises/math/geometry/vectors/index.d.ts.map +1 -1
  34. package/lib/exercises/math/geometry/vectors/index.js +2 -2
  35. package/lib/exercises/math/index.d.ts +1 -0
  36. package/lib/exercises/math/index.d.ts.map +1 -1
  37. package/lib/exercises/math/index.js +1 -0
  38. package/lib/exercises/math/primitive/polynomialPrimitive.d.ts.map +1 -1
  39. package/lib/exercises/math/primitive/polynomialPrimitive.js +10 -1
  40. package/lib/exercises/math/probaStat/basicProbas/rouletteProbas.js +1 -1
  41. package/lib/exercises/math/python/variableAffectation.js +2 -2
  42. package/lib/exercises/math/tests/index.d.ts +4 -0
  43. package/lib/exercises/math/tests/index.d.ts.map +1 -0
  44. package/lib/exercises/math/tests/index.js +3 -0
  45. package/lib/exercises/math/tests/testMultiLineSignTable.d.ts +9 -0
  46. package/lib/exercises/math/tests/testMultiLineSignTable.d.ts.map +1 -0
  47. package/lib/exercises/math/tests/testMultiLineSignTable.js +156 -0
  48. package/lib/exercises/math/tests/testSignTable.d.ts +8 -0
  49. package/lib/exercises/math/tests/testSignTable.d.ts.map +1 -0
  50. package/lib/exercises/math/tests/testSignTable.js +90 -0
  51. package/lib/exercises/math/tests/testVarTable.d.ts +11 -0
  52. package/lib/exercises/math/tests/testVarTable.d.ts.map +1 -0
  53. package/lib/exercises/math/tests/testVarTable.js +147 -0
  54. package/lib/exercises/math/trigonometry/index.d.ts +1 -0
  55. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  56. package/lib/exercises/math/trigonometry/index.js +1 -0
  57. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.d.ts +9 -0
  58. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.d.ts.map +1 -0
  59. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.js +151 -0
  60. package/lib/index.d.ts +42 -12
  61. package/lib/index.d.ts.map +1 -1
  62. package/lib/latexTester.js +2 -0
  63. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  64. package/lib/math/numbers/reals/real.js +7 -2
  65. package/lib/tests/exoTest.d.ts.map +1 -1
  66. package/lib/tests/exoTest.js +9 -3
  67. package/lib/tests/questionTest.d.ts.map +1 -1
  68. package/lib/tests/questionTest.js +19 -10
  69. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  70. package/lib/tree/nodes/operators/addNode.js +3 -1
  71. package/lib/tree/parsers/latexParser.d.ts.map +1 -1
  72. package/lib/tree/parsers/latexParser.js +10 -0
  73. package/lib/types/keyIds.d.ts +1 -1
  74. package/lib/types/keyIds.d.ts.map +1 -1
  75. 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":"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,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;IAC3D,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"}
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";
@@ -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
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"squareImageInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/square/squareImageInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAW,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMxE,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAyJF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAYrD,CAAC"}
1
+ {"version":3,"file":"squareImageInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/square/squareImageInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAW,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMxE,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAgKF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAYrD,CAAC"}
@@ -57,7 +57,7 @@ const getInstruction = (identifiers) => {
57
57
  .toTex();
58
58
  break;
59
59
  }
60
- return `Soit $${instruction}$.
60
+ return `Soit $x$ un nombre réel tel que $${instruction}$.
61
61
 
62
62
  À quel intervalle appartient $x^2$ ?`;
63
63
  };
@@ -88,6 +88,12 @@ const getSquareImageIntervalQuestion = () => {
88
88
  const identifiers = { a, b, closure, type };
89
89
  return getQuestionFromIdentifiers(identifiers);
90
90
  };
91
+ const getHint = (identifiers) => {
92
+ return ``;
93
+ };
94
+ const getCorrection = (identifiers) => {
95
+ return ``;
96
+ };
91
97
  const getQuestionFromIdentifiers = (identifiers) => {
92
98
  const question = {
93
99
  answer: getAnswer(identifiers),
@@ -0,0 +1,12 @@
1
+ import { Exercise } from "../../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ xA: number;
4
+ xB: number;
5
+ xC: number;
6
+ yA: number;
7
+ yB: number;
8
+ yC: number;
9
+ };
10
+ export declare const alignementViaColinearity: Exercise<Identifiers>;
11
+ export {};
12
+ //# sourceMappingURL=alignementViaColinearity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignementViaColinearity.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AA8HF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,CAa1D,CAAC"}
@@ -0,0 +1,127 @@
1
+ import { addValidProp, tryToAddWrongProp, } from "../../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { Point, PointConstructor } from "../../../../../math/geometry/point.js";
4
+ import { Vector, VectorConstructor } from "../../../../../math/geometry/vector.js";
5
+ import { randint } from "../../../../../math/utils/random/randint.js";
6
+ import { NumberNode } from "../../../../../tree/nodes/numbers/numberNode.js";
7
+ import { substract } from "../../../../../tree/nodes/operators/substractNode.js";
8
+ import { coinFlip } from "../../../../../utils/alea/coinFlip.js";
9
+ import { shuffle } from "../../../../../utils/alea/shuffle.js";
10
+ const getPoints = (identifiers) => {
11
+ const { xA, xB, xC, yA, yB, yC } = identifiers;
12
+ return [
13
+ new Point("A", xA, yA),
14
+ new Point("B", xB, yB),
15
+ new Point("C", xC, yC),
16
+ ];
17
+ };
18
+ const getInstruction = (identifiers) => {
19
+ const points = getPoints(identifiers);
20
+ return `Soient trois points $${points[0].toTexWithCoords()}$, $${points[1].toTexWithCoords()}$ et $${points[2].toTexWithCoords()}$ dans un repère orthonormé.
21
+
22
+ Les points $A$, $B$ et $C$ sont-ils alignés ?`;
23
+ };
24
+ const getAnswer = (identifiers) => {
25
+ const points = getPoints(identifiers);
26
+ const vec1 = VectorConstructor.fromPoints(points[0], points[1]);
27
+ const vec2 = VectorConstructor.fromPoints(points[0], points[2]);
28
+ const isAligned = vec1.isColinear(vec2);
29
+ const answer = isAligned ? "Oui" : "Non";
30
+ return answer;
31
+ };
32
+ const getHint = (identifiers) => {
33
+ return `Les points $A$, $B$ et $C$ sont alignés si et seulement si les vecteurs $\\overrightarrow{AB}$ et $\\overrightarrow{AC}$ sont colinéaires.`;
34
+ };
35
+ const getCorrection = (identifiers) => {
36
+ const points = getPoints(identifiers);
37
+ const vec1 = new Vector("AB", substract(points[1].x, points[0].x), substract(points[1].y, points[0].y));
38
+ const vec1Simp = vec1.simplify();
39
+ const vec2 = new Vector("AC", substract(points[2].x, points[0].x), substract(points[2].y, points[0].y));
40
+ const vec2Simp = vec2.simplify();
41
+ const det = vec1Simp.determinant(vec2Simp);
42
+ const isAligned = vec1.isColinear(vec2);
43
+ return `Les points $A$, $B$ et $C$ sont alignés si et seulement si les vecteurs $\\overrightarrow{AB}$ et $\\overrightarrow{AC}$ sont colinéaires.
44
+
45
+ On calcule les coordonnées de ces vecteurs :
46
+
47
+ $$
48
+ ${vec1.toTexWithCoords()}=${vec1Simp.toBinomCoords().toTex()}
49
+ $$
50
+
51
+ et
52
+
53
+ $$
54
+ ${vec2.toTexWithCoords()}=${vec2Simp.toBinomCoords().toTex()}
55
+ $$
56
+
57
+ On calcule ensuite le déterminant des deux vecteurs :
58
+
59
+ $$
60
+ \\det(${vec1.toTex()};${vec2.toTex()})=${det.toTex()}=${det.simplify().toTex()}
61
+ $$
62
+
63
+ ${isAligned
64
+ ? `Puisque le déterminant est nul, les vecteurs sont colinéaires. Les points $A$, $B$ et $C$ sont donc alignés.`
65
+ : `Puisque le déterminant n'est pas nul, les vecteurs ne sont pas colinéaires. Les points $A$, $B$ et $C$ ne sont donc pas alignés.`}`;
66
+ };
67
+ const getAlignementViaColinearityQuestion = () => {
68
+ const xA = randint(-10, 11);
69
+ const yA = randint(-10, 11);
70
+ const xB = randint(-10, 11, [xA]);
71
+ const yB = randint(-10, 11, [yA]);
72
+ const points = [new Point("A", xA, yA), new Point("B", xB, yB)];
73
+ const AB = VectorConstructor.fromPoints(points[0], points[1]);
74
+ let C;
75
+ const isAligned = coinFlip();
76
+ const coeff = new NumberNode(randint(-4, 4, [0, 1]));
77
+ if (isAligned) {
78
+ C = AB.times(coeff).getEndPoint(points[0], "C");
79
+ }
80
+ else {
81
+ do {
82
+ C = PointConstructor.random("C");
83
+ } while (AB.isColinear(VectorConstructor.fromPoints(points[0], C)));
84
+ }
85
+ const identifiers = {
86
+ xA,
87
+ xB,
88
+ xC: C.x.evaluate({}),
89
+ yA,
90
+ yB,
91
+ yC: C.y.evaluate({}),
92
+ };
93
+ return getQuestionFromIdentifiers(identifiers);
94
+ };
95
+ const getQuestionFromIdentifiers = (identifiers) => {
96
+ const question = {
97
+ answer: getAnswer(identifiers),
98
+ instruction: getInstruction(identifiers),
99
+ keys: [],
100
+ answerFormat: "raw",
101
+ identifiers,
102
+ hint: getHint(identifiers),
103
+ correction: getCorrection(identifiers),
104
+ };
105
+ return question;
106
+ };
107
+ const getPropositions = (n, { answer }) => {
108
+ const propositions = [];
109
+ addValidProp(propositions, answer, "raw");
110
+ tryToAddWrongProp(propositions, "Oui", "raw");
111
+ tryToAddWrongProp(propositions, "Non", "raw");
112
+ tryToAddWrongProp(propositions, "On ne peut pas savoir", "raw");
113
+ return shuffle(propositions);
114
+ };
115
+ export const alignementViaColinearity = {
116
+ id: "alignementViaColinearity",
117
+ label: "Utiliser la colinéarité pour déterminer un alignement",
118
+ isSingleStep: true,
119
+ generator: (nb) => getDistinctQuestions(getAlignementViaColinearityQuestion, nb),
120
+ qcmTimer: 60,
121
+ freeTimer: 60,
122
+ getPropositions,
123
+ answerType: "QCU",
124
+ subject: "Mathématiques",
125
+ getQuestionFromIdentifiers,
126
+ hasHintAndCorrection: true,
127
+ };
@@ -0,0 +1,11 @@
1
+ import { Exercise } from "../../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ xu: NodeIdentifiers;
5
+ yu: NodeIdentifiers;
6
+ xv: NodeIdentifiers;
7
+ yv: NodeIdentifiers;
8
+ };
9
+ export declare const colinearity: Exercise<Identifiers>;
10
+ export {};
11
+ //# sourceMappingURL=colinearity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colinearity.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/geometry/vectors/colinearity/colinearity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAM7C,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,eAAe,CAAC;IACpB,EAAE,EAAE,eAAe,CAAC;IACpB,EAAE,EAAE,eAAe,CAAC;IACpB,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC;AA4GF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAa7C,CAAC"}