math-exercises 3.0.34 → 3.0.36

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 (36) hide show
  1. package/lib/exercises/exercise.d.ts +3 -0
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/divisorsList.d.ts.map +1 -1
  4. package/lib/exercises/math/calcul/arithmetics/divisorsList.js +1 -0
  5. package/lib/exercises/math/dataRepresentations/pieChartReading.d.ts.map +1 -1
  6. package/lib/exercises/math/dataRepresentations/pieChartReading.js +30 -6
  7. package/lib/exercises/math/derivation/tangent/tangentEquations.js +1 -1
  8. package/lib/exercises/math/functions/index.d.ts +1 -0
  9. package/lib/exercises/math/functions/index.d.ts.map +1 -1
  10. package/lib/exercises/math/functions/index.js +1 -0
  11. package/lib/exercises/math/functions/variations/index.d.ts +2 -0
  12. package/lib/exercises/math/functions/variations/index.d.ts.map +1 -0
  13. package/lib/exercises/math/functions/variations/index.js +1 -0
  14. package/lib/exercises/math/functions/variations/varTableExtremaReading.d.ts +11 -0
  15. package/lib/exercises/math/functions/variations/varTableExtremaReading.d.ts.map +1 -0
  16. package/lib/exercises/math/functions/variations/varTableExtremaReading.js +125 -0
  17. package/lib/exercises/math/trigonometry/arcLength.d.ts.map +1 -1
  18. package/lib/exercises/math/trigonometry/basicEquationCos.d.ts.map +1 -1
  19. package/lib/exercises/math/trigonometry/basicEquationSin.d.ts.map +1 -1
  20. package/lib/exercises/math/trigonometry/basicEquationSin.js +1 -1
  21. package/lib/exercises/math/trigonometry/mainRemarkableValues.d.ts.map +1 -1
  22. package/lib/exercises/math/trigonometry/mainRemarkableValues.js +16 -7
  23. package/lib/geogebra/geogebraConstructor.d.ts +3 -0
  24. package/lib/geogebra/geogebraConstructor.d.ts.map +1 -1
  25. package/lib/geogebra/geogebraConstructor.js +9 -0
  26. package/lib/index.d.ts +6 -0
  27. package/lib/index.d.ts.map +1 -1
  28. package/lib/math/trigonometry/remarkableValues.d.ts +2 -10
  29. package/lib/math/trigonometry/remarkableValues.d.ts.map +1 -1
  30. package/lib/math/trigonometry/remarkableValues.js +106 -104
  31. package/lib/playground.d.ts.map +1 -1
  32. package/lib/playground.js +2 -3
  33. package/lib/server.js +12 -0
  34. package/lib/tests/singleExo.test.d.ts.map +1 -1
  35. package/lib/tests/singleExo.test.js +3 -2
  36. package/package.json +1 -1
@@ -61,6 +61,9 @@ export type GeogebraOptions = {
61
61
  zAxis?: GeogebraAxisOptions;
62
62
  viewDirectionVector?: number[];
63
63
  fontSize?: number;
64
+ maxHeight?: number;
65
+ maxWidth?: number;
66
+ hideFullScreenButton?: boolean;
64
67
  };
65
68
  export type KeyboardOptions = {
66
69
  parenthesisShouldNotProduceLeftRight?: boolean;
@@ -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;CACnB,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,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;CACpB;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,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,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,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,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,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,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,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,CAAC,EAAE,0BAA0B,CACrD,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;CAC3E;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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"divisorsList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/divisorsList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAgDF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAc9C,CAAC"}
1
+ {"version":3,"file":"divisorsList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/divisorsList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAiDF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAc9C,CAAC"}
@@ -35,6 +35,7 @@ const getPropositions = (n, { answer }) => {
35
35
  const isAnswerValid = (ans, { answer }) => {
36
36
  let values = ans
37
37
  .replaceAll(",", ";")
38
+ .replaceAll("\\ ", "")
38
39
  .split(";")
39
40
  .map((v) => Number(v));
40
41
  if (values.some((v) => isNaN(v)))
@@ -1 +1 @@
1
- {"version":3,"file":"pieChartReading.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/pieChartReading.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AAyBrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAgMF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAkBjD,CAAC"}
1
+ {"version":3,"file":"pieChartReading.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/pieChartReading.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AA0BrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AA+NF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAmBjD,CAAC"}
@@ -10,6 +10,7 @@ import { round } from "../../../math/utils/round.js";
10
10
  import { parseAlgebraic } from "../../../tree/parsers/latexParser.js";
11
11
  import { percentParser } from "../../../tree/parsers/percentParser.js";
12
12
  import { handleVEAError } from "../../../utils/errors/handleVEAError.js";
13
+ import { approxOrEqual } from "../../../utils/latex/approxOrEqual.js";
13
14
  import { getLetter } from "../../../utils/strings/getLetter.js";
14
15
  const getPropositions = (n, { answer, ...identifiers }) => {
15
16
  const propositions = [];
@@ -40,8 +41,30 @@ Quelle proportion des communications effectuées, les communications audio repr
40
41
 
41
42
  Arrondir au centième de pourcentage.`;
42
43
  };
43
- // const getHint: GetHint<Identifiers> = (identifiers) => {};
44
- // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {};
44
+ const getHint = (identifiers) => {
45
+ const { points } = identifiers;
46
+ const pointsObj = points.map((p, i) => new Point(getLetter(i, true), p[0], p[1]));
47
+ const angle = new Angle([pointsObj[1], new Point("O", 0, 0), pointsObj[0]]);
48
+ const angleValue = angle.evaluate();
49
+ return `Dans un diagramme circulaire, une proportion de $100\\%$ représente $360^{\\circ}$.
50
+
51
+ On utilise donc un produit en croix pour déterminer la proportion représentée par $${angleValue}^{\\circ}$.`;
52
+ };
53
+ const getCorrection = (identifiers) => {
54
+ const { points } = identifiers;
55
+ const pointsObj = points.map((p, i) => new Point(getLetter(i, true), p[0], p[1]));
56
+ const angle = new Angle([pointsObj[1], new Point("O", 0, 0), pointsObj[0]]);
57
+ const angleValue = angle.evaluate();
58
+ return `Dans un diagramme circulaire, une proportion de $100\\%$ représente $360^{\\circ}$.
59
+
60
+ On utilise donc un produit en croix pour déterminer la proportion représentée par $${angleValue}^{\\circ}$ :
61
+
62
+ $$
63
+ ${angleValue} \\times \\frac{100}{360} ${approxOrEqual((angleValue * 100) / 360, 2).join("")}
64
+ $$
65
+
66
+ Les communications audio représentent donc $${getAnswer(identifiers)}$ des communications effectuées.`;
67
+ };
45
68
  const getGGBOptions = (identifiers) => {
46
69
  const { points, labels } = identifiers;
47
70
  const pointsObj = points.map((p, i) => new Point(getLetter(i, true), p[0], p[1]));
@@ -158,8 +181,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
158
181
  keys: getKeys(identifiers),
159
182
  answerFormat: "tex",
160
183
  identifiers,
161
- // hint: getHint(identifiers),
162
- // correction: getCorrection(identifiers),
184
+ hint: getHint(identifiers),
185
+ correction: getCorrection(identifiers),
163
186
  ggbOptions: getGGBOptions(identifiers),
164
187
  };
165
188
  return question;
@@ -174,8 +197,9 @@ export const pieChartReading = {
174
197
  getPropositions,
175
198
  isAnswerValid,
176
199
  subject: "Mathématiques",
177
- // getHint,
178
- // getCorrection,
200
+ getHint,
201
+ getCorrection,
202
+ hasHintAndCorrection: true,
179
203
  getInstruction,
180
204
  getAnswer,
181
205
  getGGBOptions,
@@ -56,7 +56,7 @@ const getAnswer = (identifiers) => {
56
56
  const image = trinom.calculate(abscisse);
57
57
  const k = abscisse * imagederivee;
58
58
  const constante = k - image;
59
- const equation = new EqualNode(new VariableNode("y"), new SubstractNode(new MultiplyNode(imagederivee.toTree(), new VariableNode("x")), constante.toTree()).simplify());
59
+ const equation = new EqualNode(new VariableNode("y"), new SubstractNode(new MultiplyNode(imagederivee.toTree(), new VariableNode("x")), constante.toTree()).simplify({ towardsDistribute: true, forbidFactorize: true }));
60
60
  return equation.toTex();
61
61
  };
62
62
  const getInstruction = (identifiers) => {
@@ -11,4 +11,5 @@ export * from "./square/index.js";
11
11
  export * from "./integral/index.js";
12
12
  export * from "./exponentials/index.js";
13
13
  export * from "./sign/index.js";
14
+ export * from "./variations/index.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
@@ -11,3 +11,4 @@ export * from "./square/index.js";
11
11
  export * from "./integral/index.js";
12
12
  export * from "./exponentials/index.js";
13
13
  export * from "./sign/index.js";
14
+ export * from "./variations/index.js";
@@ -0,0 +1,2 @@
1
+ export * from "./varTableExtremaReading.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./varTableExtremaReading.js";
@@ -0,0 +1,11 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ xValues: number[];
4
+ yValues: number[];
5
+ isAskingX: boolean;
6
+ isAskingMin: boolean;
7
+ intervalXIndexes: number[];
8
+ };
9
+ export declare const varTableExtremaReading: Exercise<Identifiers>;
10
+ export {};
11
+ //# sourceMappingURL=varTableExtremaReading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varTableExtremaReading.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/variations/varTableExtremaReading.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAsJF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAkBxD,CAAC"}
@@ -0,0 +1,125 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
4
+ import { GeogebraConstructor } from "../../../../geogebra/geogebraConstructor.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { ClosureType } from "../../../../tree/nodes/sets/closure.js";
7
+ import { IntervalNode } from "../../../../tree/nodes/sets/intervalNode.js";
8
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
9
+ import { random } from "../../../../utils/alea/random.js";
10
+ const getPropositions = (n, { answer, ...identifiers }) => {
11
+ const propositions = [];
12
+ const { isAskingX, isAskingMin, xValues, yValues, intervalXIndexes } = identifiers;
13
+ addValidProp(propositions, answer);
14
+ while (propositions.length < n) {
15
+ tryToAddWrongProp(propositions, random(coinFlip() ? xValues : yValues).frenchify());
16
+ }
17
+ return shuffleProps(propositions, n);
18
+ };
19
+ const getAnswer = (identifiers) => {
20
+ const { isAskingX, isAskingMin, xValues, yValues, intervalXIndexes } = identifiers;
21
+ return (isAskingX ? xValues : yValues)[yValues.indexOf((isAskingMin ? Math.min : Math.max)(...yValues.slice(intervalXIndexes[0], intervalXIndexes[1] + 1)))].frenchify();
22
+ };
23
+ const getInstruction = (identifiers) => {
24
+ const type = identifiers.isAskingMin ? "minimum" : "maximum";
25
+ const interval = new IntervalNode(identifiers.xValues[identifiers.intervalXIndexes[0]].toTree(), identifiers.xValues[identifiers.intervalXIndexes[1]].toTree(), ClosureType.FF);
26
+ let instruction = `On considère la fonction $f$ dont le tableau de variations est donné ci-dessous.`;
27
+ instruction += `\n\n${identifiers.isAskingX
28
+ ? `Sur l'intervalle $${interval.toTex()}$, en quelle valeur le ${type} de la fonction $f$ est-il atteint ?`
29
+ : `Sur l'intervalle $${interval.toTex()}$, quel est le ${type} de la fonction $f$ ?`}`;
30
+ return instruction;
31
+ };
32
+ // const getHint: GetHint<Identifiers> = (identifiers) => {
33
+ // return "";
34
+ // };
35
+ // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {
36
+ // return "";
37
+ // };
38
+ const getGGBOptions = (identifiers) => {
39
+ const xValues = identifiers.xValues;
40
+ const yValues = identifiers.yValues;
41
+ const isFirstAscending = yValues[0] < yValues[1];
42
+ const firstArrow = isFirstAscending ? "\\nearrow" : "\\searrow";
43
+ const secondArrow = isFirstAscending ? "\\searrow" : "\\nearrow";
44
+ const xLine = `liste1={"x","${xValues[0]}"," ", "${xValues[1]}", " ", "${xValues[2]}", " ", "${xValues[3]}", " "}`;
45
+ const y0Line = `liste2={" ","${yValues[0]}"," "," "," ","${yValues[2]}"," ", " "}`;
46
+ const y1Line = `liste4={" "," ", " ", "${yValues[1]}"," "," "," ","${yValues[3]}"}`;
47
+ const centerLine = `liste3={"f(x)"," ", "${firstArrow}", " ", "${secondArrow}", " ", "${firstArrow}", " "}`;
48
+ const commands = [
49
+ xLine,
50
+ y0Line,
51
+ y1Line,
52
+ centerLine,
53
+ `T = TableText(liste1, ${isFirstAscending ? "liste4" : "liste2"}, liste3, ${isFirstAscending ? "liste2" : "liste4"} , "c|01000000000_01000")`,
54
+ `SetFixed(T, true)`,
55
+ // `SetCoords(T, 30, 100)`,
56
+ ];
57
+ const ggb = new GeogebraConstructor({
58
+ commands: commands,
59
+ hideAxes: true,
60
+ hideGrid: true,
61
+ forbidShiftDragZoom: true,
62
+ fontSize: 13,
63
+ maxHeight: 100,
64
+ maxWidth: 320,
65
+ hideFullScreenButton: true,
66
+ });
67
+ return ggb.getOptions({
68
+ coords: [-10, 10, -10, 10],
69
+ });
70
+ };
71
+ const getKeys = (identifiers) => {
72
+ return [];
73
+ };
74
+ const isAnswerValid = (ans, { answer }) => {
75
+ return numberVEA(ans, answer);
76
+ };
77
+ const getVarTableExtremaReadingQuestion = (opts) => {
78
+ const xValues = [
79
+ randint(-10, -4),
80
+ randint(-4, 1),
81
+ randint(1, 6),
82
+ randint(6, 10),
83
+ ];
84
+ const yValues = [randint(-5, 6)];
85
+ yValues.push(randint(-10, 10, [yValues[0]]));
86
+ const isFirstAscending = yValues[0] < yValues[1];
87
+ yValues.push(randint(isFirstAscending ? Math.min(yValues[0] - 2, -10) : yValues[1], isFirstAscending ? yValues[1] : Math.max(yValues[0] + 2, -10), [yValues[0], yValues[1]]));
88
+ yValues.push(randint(!isFirstAscending ? Math.min(yValues[1] - 2, -10) : yValues[2], !isFirstAscending ? yValues[2] : Math.max(yValues[1] + 2, -10), [yValues[1], yValues[2]]));
89
+ const intervalXIndexes = coinFlip() ? [0, 3] : coinFlip() ? [0, 2] : [1, 3];
90
+ const identifiers = {
91
+ xValues,
92
+ yValues,
93
+ isAskingX: coinFlip(),
94
+ isAskingMin: coinFlip(),
95
+ intervalXIndexes,
96
+ };
97
+ const question = {
98
+ answer: getAnswer(identifiers),
99
+ instruction: getInstruction(identifiers),
100
+ keys: getKeys(identifiers),
101
+ answerFormat: "tex",
102
+ identifiers,
103
+ // hint: getHint(identifiers),
104
+ // correction: getCorrection(identifiers),
105
+ ggbOptions: getGGBOptions(identifiers),
106
+ };
107
+ return question;
108
+ };
109
+ export const varTableExtremaReading = {
110
+ id: "varTableExtremaReading",
111
+ label: "Lire les extremums d'une fonction à partir de son tableau de variations",
112
+ isSingleStep: true,
113
+ generator: (nb, opts) => getDistinctQuestions(() => getVarTableExtremaReadingQuestion(opts), nb),
114
+ qcmTimer: 60,
115
+ freeTimer: 60,
116
+ getPropositions,
117
+ isAnswerValid,
118
+ subject: "Mathématiques",
119
+ // getHint,
120
+ // getCorrection,
121
+ getInstruction,
122
+ getAnswer,
123
+ getGGBOptions,
124
+ hasGeogebra: true,
125
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"arcLength.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/arcLength.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,GAAG,GAAG,SAAS,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqGF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,WAAW,CAe3C,CAAC"}
1
+ {"version":3,"file":"arcLength.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/arcLength.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,GAAG,GAAG,SAAS,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqGF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,WAAW,CAc3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"basicEquationCos.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/basicEquationCos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA6EF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
1
+ {"version":3,"file":"basicEquationCos.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/basicEquationCos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAerC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA6EF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"basicEquationSin.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/basicEquationSin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAcrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAyFF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
1
+ {"version":3,"file":"basicEquationSin.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/basicEquationSin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAyFF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../exercises/exercise.js";
2
2
  import { getDistinctQuestions } from "../../../exercises/utils/getDistinctQuestions.js";
3
- import { mainTrigoValues, } from "../../../math/trigonometry/remarkableValues.js";
3
+ import { mainTrigoValues } from "../../../math/trigonometry/remarkableValues.js";
4
4
  import { EquationSolutionNode } from "../../../tree/nodes/equations/equationSolutionNode.js";
5
5
  import { SinNode } from "../../../tree/nodes/functions/sinNode.js";
6
6
  import { DiscreteSetNode } from "../../../tree/nodes/sets/discreteSetNode.js";
@@ -1 +1 @@
1
- {"version":3,"file":"mainRemarkableValues.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/mainRemarkableValues.ts"],"names":[],"mappings":"AASA,OAAO,EACL,QAAQ,EAYT,MAAM,mBAAmB,CAAC;AAE3B,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAqFF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAe9D,CAAC"}
1
+ {"version":3,"file":"mainRemarkableValues.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/mainRemarkableValues.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,QAAQ,EAaT,MAAM,mBAAmB,CAAC;AAE3B,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AA4FF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAiB9D,CAAC"}
@@ -1,4 +1,4 @@
1
- import { remarkableTrigoValues } from "../../../math/trigonometry/remarkableValues.js";
1
+ import { mainTrigoValues, } from "../../../math/trigonometry/remarkableValues.js";
2
2
  import { randint } from "../../../math/utils/random/randint.js";
3
3
  import { cos } from "../../../tree/nodes/functions/cosNode.js";
4
4
  import { sin } from "../../../tree/nodes/functions/sinNode.js";
@@ -8,9 +8,16 @@ import { shuffle } from "../../../utils/alea/shuffle.js";
8
8
  import { handleVEAError } from "../../../utils/errors/handleVEAError.js";
9
9
  import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../exercise.js";
10
10
  import { getDistinctQuestions } from "../../utils/getDistinctQuestions.js";
11
+ const rebuildIdentifiers = (oldIds) => {
12
+ //old valueIndex is index of remarkableTrigoValues
13
+ return {
14
+ isCos: oldIds.isCos,
15
+ valueIndex: (oldIds.valueIndex + 7) % 16,
16
+ };
17
+ };
11
18
  const getStatementNode = (identifiers) => {
12
19
  const { isCos, valueIndex } = identifiers;
13
- const remarkableValue = remarkableTrigoValues[valueIndex];
20
+ const remarkableValue = mainTrigoValues[valueIndex];
14
21
  const statement = isCos
15
22
  ? cos(remarkableValue.angle)
16
23
  : sin(remarkableValue.angle);
@@ -28,12 +35,12 @@ $$`;
28
35
  };
29
36
  const getAnswer = (identifiers) => {
30
37
  const { isCos, valueIndex } = identifiers;
31
- const remarkableValue = remarkableTrigoValues[valueIndex];
38
+ const remarkableValue = mainTrigoValues[valueIndex];
32
39
  return isCos ? remarkableValue.cos.toTex() : remarkableValue.sin.toTex();
33
40
  };
34
41
  const getMainRemarkableValues = () => {
35
42
  const isCos = coinFlip();
36
- const valueIndex = randint(0, remarkableTrigoValues.length);
43
+ const valueIndex = randint(0, mainTrigoValues.length);
37
44
  const identifiers = { valueIndex, isCos };
38
45
  const question = {
39
46
  instruction: getInstruction(identifiers),
@@ -81,10 +88,8 @@ const isAnswerValid = (ans, { answer, valueIndex, isCos }) => {
81
88
  export const mainRemarkableValuesExercise = {
82
89
  id: "mainRemarkableValues",
83
90
  connector: "=",
84
- label: "Valeurs remarquables de $\\cos$ et $\\sin$ sur $[-\\pi, \\pi]$",
85
- levels: ["1reSpé", "TermSpé", "MathComp"],
91
+ label: "Valeurs remarquables de $\\cos$ et $\\sin$ sur $]-\\pi, \\pi]$",
86
92
  isSingleStep: true,
87
- sections: ["Trigonométrie"],
88
93
  generator: (nb) => getDistinctQuestions(getMainRemarkableValues, nb, 18),
89
94
  qcmTimer: 60,
90
95
  freeTimer: 60,
@@ -92,4 +97,8 @@ export const mainRemarkableValuesExercise = {
92
97
  getPropositions,
93
98
  isAnswerValid,
94
99
  subject: "Mathématiques",
100
+ getInstruction,
101
+ getAnswer,
102
+ getStartStatement,
103
+ rebuildIdentifiers,
95
104
  };
@@ -28,6 +28,9 @@ export declare class GeogebraConstructor {
28
28
  zAxis?: GeogebraAxisOptions;
29
29
  viewDirectionVector?: number[];
30
30
  fontSize?: number;
31
+ maxHeight?: number;
32
+ maxWidth?: number;
33
+ hideFullScreenButton?: boolean;
31
34
  constructor(options: Omit<GeogebraOptions, "coords">);
32
35
  getCoordsForPoints(points: Point[]): number[];
33
36
  getAdaptedCoords({ xMin, xMax, yMin, yMax, zMin, zMax, forceShowAxes, }: GetAdaptedCoords): number[];
@@ -1 +1 @@
1
- {"version":3,"file":"geogebraConstructor.d.ts","sourceRoot":"","sources":["../../src/geogebra/geogebraConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AACF,qBAAa,mBAAmB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,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,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,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;gBAEN,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IAiBpD,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;IAOlC,gBAAgB,CAAC,EACf,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,aAAa,GACd,EAAE,gBAAgB;IAiDnB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,eAAe;CAoBzD"}
1
+ {"version":3,"file":"geogebraConstructor.d.ts","sourceRoot":"","sources":["../../src/geogebra/geogebraConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AACF,qBAAa,mBAAmB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,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,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,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;gBACnB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IAoBpD,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;IAOlC,gBAAgB,CAAC,EACf,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,aAAa,GACd,EAAE,gBAAgB;IAiDnB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,eAAe;CAuBzD"}
@@ -15,6 +15,9 @@ export class GeogebraConstructor {
15
15
  zAxis;
16
16
  viewDirectionVector;
17
17
  fontSize;
18
+ maxHeight;
19
+ maxWidth;
20
+ hideFullScreenButton;
18
21
  constructor(options) {
19
22
  this.customToolBar = options?.customToolBar ?? toolBarConstructor({});
20
23
  this.forbidShiftDragZoom = options?.forbidShiftDragZoom ?? false;
@@ -31,6 +34,9 @@ export class GeogebraConstructor {
31
34
  this.zAxis = options?.zAxis;
32
35
  this.viewDirectionVector = options?.viewDirectionVector;
33
36
  this.fontSize = options?.fontSize;
37
+ this.maxHeight = options?.maxHeight;
38
+ this.hideFullScreenButton = options?.hideFullScreenButton;
39
+ this.maxWidth = options?.maxWidth;
34
40
  }
35
41
  getCoordsForPoints(points) {
36
42
  const xMin = Math.min(...points.map((p) => p.x.evaluate()));
@@ -106,6 +112,9 @@ export class GeogebraConstructor {
106
112
  zAxis: this.zAxis,
107
113
  viewDirectionVector: this.viewDirectionVector,
108
114
  fontSize: this.fontSize,
115
+ maxHeight: this.maxHeight,
116
+ hideFullScreenButton: this.hideFullScreenButton,
117
+ maxWidth: this.maxWidth,
109
118
  };
110
119
  }
111
120
  }
package/lib/index.d.ts CHANGED
@@ -972,6 +972,12 @@ declare const mathExercises: (Exercise<{
972
972
  }, {
973
973
  instructionType: string;
974
974
  }> | Exercise<{
975
+ xValues: number[];
976
+ yValues: number[];
977
+ isAskingX: boolean;
978
+ isAskingMin: boolean;
979
+ intervalXIndexes: number[];
980
+ }, {}> | Exercise<{
975
981
  coin: boolean;
976
982
  radius: number;
977
983
  diametre: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA6B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { AlgebraicNode } from "../../tree/nodes/algebraicNode.js";
2
- import { NumberNode } from "../../tree/nodes/numbers/numberNode.js";
3
- import { MultiplyNode } from "../../tree/nodes/operators/multiplyNode.js";
2
+ import "../../prototypesEnhancement.js";
4
3
  export interface RemarkableValue {
5
4
  angle: AlgebraicNode;
6
5
  cos: AlgebraicNode;
@@ -13,12 +12,5 @@ export declare const negativeMainTrigovalues: RemarkableValue[];
13
12
  export declare const remarkableTrigoValues: RemarkableValue[];
14
13
  export declare const mainTrigoValues: RemarkableValue[];
15
14
  export declare const mainPositiveTrigovalues: RemarkableValue[];
16
- export declare const trigoValuesOnZeroTwoPIOF: (RemarkableValue | {
17
- angle: MultiplyNode;
18
- degree: number;
19
- cos: NumberNode;
20
- sin: NumberNode;
21
- tan: NumberNode;
22
- point: string;
23
- })[];
15
+ export declare const trigoValuesOnZeroTwoPIOF: RemarkableValue[];
24
16
  //# sourceMappingURL=remarkableValues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remarkableValues.d.ts","sourceRoot":"","sources":["../../../src/math/trigonometry/remarkableValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,aAAa,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,EAoGpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAAe,EA2LlD,CAAC;AAEF,eAAO,MAAM,eAAe,mBAG3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,mBAAoC,CAAC;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;IAUpC,CAAC"}
1
+ {"version":3,"file":"remarkableValues.d.ts","sourceRoot":"","sources":["../../../src/math/trigonometry/remarkableValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAclE,OAAO,gCAAgC,CAAC;AACxC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,aAAa,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,EAiEpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAmIlD,CAAC;AAEF,eAAO,MAAM,eAAe,mBAG3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,mBAAoC,CAAC;AAEzE,eAAO,MAAM,wBAAwB,mBAUpC,CAAC"}
@@ -1,202 +1,204 @@
1
- import { OppositeNode } from "../../tree/nodes/functions/oppositeNode.js";
2
- import { SqrtNode } from "../../tree/nodes/functions/sqrtNode.js";
3
- import { NumberNode } from "../../tree/nodes/numbers/numberNode.js";
1
+ import { opposite, } from "../../tree/nodes/functions/oppositeNode.js";
2
+ import { sqrt } from "../../tree/nodes/functions/sqrtNode.js";
3
+ import { InfinityNode } from "../../tree/nodes/numbers/infiniteNode.js";
4
4
  import { PiNode } from "../../tree/nodes/numbers/piNode.js";
5
- import { FractionNode } from "../../tree/nodes/operators/fractionNode.js";
6
- import { MultiplyNode } from "../../tree/nodes/operators/multiplyNode.js";
5
+ import { frac } from "../../tree/nodes/operators/fractionNode.js";
6
+ import { multiply, } from "../../tree/nodes/operators/multiplyNode.js";
7
+ import "../../prototypesEnhancement.js";
7
8
  export const negativeMainTrigovalues = [
8
9
  {
9
- angle: new OppositeNode(new FractionNode(new MultiplyNode(new NumberNode(5), PiNode), new NumberNode(6))),
10
+ angle: opposite(frac(multiply(5, PiNode), 6)),
10
11
  degree: 210,
11
- cos: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2))),
12
- sin: new OppositeNode(new FractionNode(new NumberNode(1), new NumberNode(2))),
13
- tan: new FractionNode(new NumberNode(1), new SqrtNode(new NumberNode(3))),
12
+ cos: opposite(frac(sqrt(3), 2)),
13
+ sin: opposite(frac(1, 2)),
14
+ tan: frac(1, sqrt(3)),
14
15
  point: "H",
15
16
  },
16
17
  {
17
- angle: new OppositeNode(new FractionNode(new MultiplyNode(new NumberNode(3), PiNode), new NumberNode(4))),
18
+ angle: opposite(frac(multiply(3, PiNode), 4)),
18
19
  degree: 225,
19
- cos: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2))),
20
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2))),
21
- tan: new NumberNode(1),
20
+ cos: opposite(frac(sqrt(2), 2)),
21
+ sin: opposite(frac(sqrt(2), 2)),
22
+ tan: (1).toTree(),
22
23
  point: "K",
23
24
  },
24
25
  {
25
- angle: new OppositeNode(new FractionNode(new MultiplyNode(new NumberNode(2), PiNode), new NumberNode(3))),
26
+ angle: opposite(frac(multiply(2, PiNode), 3)),
26
27
  degree: 240,
27
- cos: new OppositeNode(new FractionNode(new NumberNode(1), new NumberNode(2))),
28
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2))),
29
- tan: new SqrtNode(new NumberNode(3)),
28
+ cos: opposite(frac(1, 2)),
29
+ sin: opposite(frac(sqrt(3), 2)),
30
+ tan: sqrt(3),
30
31
  point: "L",
31
32
  },
32
33
  {
33
- angle: new OppositeNode(new FractionNode(PiNode, new NumberNode(2))),
34
+ angle: opposite(frac(PiNode, 2)),
34
35
  degree: 270,
35
- cos: new NumberNode(0),
36
- sin: new NumberNode(-1),
37
- tan: new NumberNode(Infinity),
36
+ cos: (0).toTree(),
37
+ sin: (-1).toTree(),
38
+ tan: InfinityNode,
38
39
  point: "M",
39
40
  },
40
41
  {
41
- angle: new OppositeNode(new FractionNode(PiNode, new NumberNode(3))),
42
+ angle: opposite(frac(PiNode, 3)),
42
43
  degree: 300,
43
- cos: new FractionNode(new NumberNode(1), new NumberNode(2)),
44
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2))),
45
- tan: new OppositeNode(new SqrtNode(new NumberNode(3))),
44
+ cos: frac(1, 2),
45
+ sin: opposite(frac(sqrt(3), 2)),
46
+ tan: opposite(sqrt(3)),
46
47
  point: "N",
47
48
  },
48
49
  {
49
- angle: new OppositeNode(new FractionNode(PiNode, new NumberNode(4))),
50
+ angle: opposite(frac(PiNode, 4)),
50
51
  degree: 315,
51
- cos: new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2)),
52
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2))),
53
- tan: new OppositeNode(new NumberNode(1)),
52
+ cos: frac(sqrt(2), 2),
53
+ sin: opposite(frac(sqrt(2), 2)),
54
+ tan: opposite(1),
54
55
  point: "P",
55
56
  },
56
57
  {
57
- angle: new OppositeNode(new FractionNode(PiNode, new NumberNode(6))),
58
+ angle: opposite(frac(PiNode, 6)),
58
59
  degree: 330,
59
- cos: new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2)),
60
- sin: new OppositeNode(new FractionNode(new NumberNode(1), new NumberNode(2))),
61
- tan: new OppositeNode(new FractionNode(new NumberNode(1), new SqrtNode(new NumberNode(3)))),
60
+ cos: frac(sqrt(3), 2),
61
+ sin: opposite(frac(1, 2)),
62
+ tan: opposite(frac(1, sqrt(3))),
62
63
  point: "Q",
63
64
  },
64
65
  {
65
- angle: new NumberNode(0),
66
+ angle: (0).toTree(),
66
67
  degree: 0,
67
- cos: new NumberNode(1),
68
- sin: new NumberNode(0),
69
- tan: new NumberNode(0),
68
+ cos: (1).toTree(),
69
+ sin: (0).toTree(),
70
+ tan: (0).toTree(),
70
71
  point: "I",
71
72
  },
72
73
  ];
73
74
  export const remarkableTrigoValues = [
74
75
  {
75
- angle: new NumberNode(0),
76
+ angle: (0).toTree(),
76
77
  degree: 0,
77
- cos: new NumberNode(1),
78
- sin: new NumberNode(0),
79
- tan: new NumberNode(0),
78
+ cos: (1).toTree(),
79
+ sin: (0).toTree(),
80
+ tan: (0).toTree(),
80
81
  point: "I",
81
82
  },
82
83
  {
83
- angle: new FractionNode(PiNode, new NumberNode(6)),
84
+ angle: frac(PiNode, 6),
84
85
  degree: 30,
85
- cos: new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2)),
86
- sin: new FractionNode(new NumberNode(1), new NumberNode(2)),
87
- tan: new FractionNode(new NumberNode(1), new SqrtNode(new NumberNode(3))),
86
+ cos: frac(sqrt(3), 2),
87
+ sin: frac(1, 2),
88
+ tan: frac(1, sqrt(3)),
88
89
  point: "A",
89
90
  },
90
91
  {
91
- angle: new FractionNode(PiNode, new NumberNode(4)),
92
+ angle: frac(PiNode, 4),
92
93
  degree: 45,
93
- cos: new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2)),
94
- sin: new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2)),
95
- tan: new NumberNode(1),
94
+ cos: frac(sqrt(2), 2),
95
+ sin: frac(sqrt(2), 2),
96
+ tan: (1).toTree(),
96
97
  point: "B",
97
98
  },
98
99
  {
99
- angle: new FractionNode(PiNode, new NumberNode(3)),
100
+ angle: frac(PiNode, 3),
100
101
  degree: 60,
101
- cos: new FractionNode(new NumberNode(1), new NumberNode(2)),
102
- sin: new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2)),
103
- tan: new SqrtNode(new NumberNode(3)),
102
+ cos: frac(1, 2),
103
+ sin: frac(sqrt(3), 2),
104
+ tan: sqrt(3),
104
105
  point: "C",
105
106
  },
106
107
  {
107
- angle: new FractionNode(PiNode, new NumberNode(2)),
108
+ angle: frac(PiNode, 2),
108
109
  degree: 90,
109
- cos: new NumberNode(0),
110
- sin: new NumberNode(1),
111
- tan: new NumberNode(Infinity),
110
+ cos: (0).toTree(),
111
+ sin: (1).toTree(),
112
+ tan: InfinityNode,
112
113
  point: "J",
113
114
  },
114
115
  {
115
- angle: new FractionNode(new MultiplyNode(new NumberNode(2), PiNode), new NumberNode(3)),
116
+ angle: frac(multiply(2, PiNode), 3),
116
117
  degree: 120,
117
- cos: new OppositeNode(new FractionNode(new NumberNode(1), new NumberNode(2))),
118
- sin: new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2)),
119
- tan: new OppositeNode(new SqrtNode(new NumberNode(3))),
118
+ cos: opposite(frac(1, 2)),
119
+ sin: frac(sqrt(3), 2),
120
+ tan: opposite(sqrt(3)),
120
121
  point: "D",
121
122
  },
122
123
  {
123
- angle: new FractionNode(new MultiplyNode(new NumberNode(3), PiNode), new NumberNode(4)),
124
+ angle: frac(multiply(3, PiNode), 4),
124
125
  degree: 135,
125
- cos: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2))),
126
- sin: new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2)),
127
- tan: new OppositeNode(new NumberNode(1)),
126
+ cos: opposite(frac(sqrt(2), 2)),
127
+ sin: frac(sqrt(2), 2),
128
+ tan: opposite(1),
128
129
  point: "E",
129
130
  },
130
131
  {
131
- angle: new FractionNode(new MultiplyNode(new NumberNode(5), PiNode), new NumberNode(6)),
132
+ angle: frac(multiply(5, PiNode), 6),
132
133
  degree: 150,
133
- cos: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2))),
134
- sin: new FractionNode(new NumberNode(1), new NumberNode(2)),
135
- tan: new OppositeNode(new FractionNode(new NumberNode(1), new SqrtNode(new NumberNode(3)))),
134
+ cos: opposite(frac(sqrt(3), 2)),
135
+ sin: frac(1, 2),
136
+ tan: opposite(frac(1, sqrt(3))),
136
137
  point: "F",
137
138
  },
138
139
  {
139
140
  angle: PiNode,
140
141
  degree: 180,
141
- cos: new NumberNode(-1),
142
- sin: new NumberNode(0),
143
- tan: new NumberNode(0),
142
+ cos: (-1).toTree(),
143
+ sin: (0).toTree(),
144
+ tan: (0).toTree(),
144
145
  point: "G",
145
146
  },
147
+ //should del
146
148
  {
147
- angle: new FractionNode(new MultiplyNode(new NumberNode(7), PiNode), new NumberNode(6)),
149
+ angle: frac(multiply(7, PiNode), 6),
148
150
  degree: 210,
149
- cos: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2))),
150
- sin: new OppositeNode(new FractionNode(new NumberNode(1), new NumberNode(2))),
151
- tan: new FractionNode(new NumberNode(1), new SqrtNode(new NumberNode(3))),
151
+ cos: opposite(frac(sqrt(3), 2)),
152
+ sin: opposite(frac(1, 2)),
153
+ tan: frac(1, sqrt(3)),
152
154
  point: "H",
153
155
  },
154
156
  {
155
- angle: new FractionNode(new MultiplyNode(new NumberNode(5), PiNode), new NumberNode(4)),
157
+ angle: frac(multiply(5, PiNode), 4),
156
158
  degree: 225,
157
- cos: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2))),
158
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2))),
159
- tan: new NumberNode(1),
159
+ cos: opposite(frac(sqrt(2), 2)),
160
+ sin: opposite(frac(sqrt(2), 2)),
161
+ tan: (1).toTree(),
160
162
  point: "K",
161
163
  },
162
164
  {
163
- angle: new FractionNode(new MultiplyNode(new NumberNode(4), PiNode), new NumberNode(3)),
165
+ angle: frac(multiply(4, PiNode), 3),
164
166
  degree: 240,
165
- cos: new OppositeNode(new FractionNode(new NumberNode(1), new NumberNode(2))),
166
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2))),
167
- tan: new SqrtNode(new NumberNode(3)),
167
+ cos: opposite(frac(1, 2)),
168
+ sin: opposite(frac(sqrt(3), 2)),
169
+ tan: sqrt(3),
168
170
  point: "L",
169
171
  },
170
172
  {
171
- angle: new FractionNode(new MultiplyNode(new NumberNode(3), PiNode), new NumberNode(2)),
173
+ angle: frac(multiply(3, PiNode), 2),
172
174
  degree: 270,
173
- cos: new NumberNode(0),
174
- sin: new NumberNode(-1),
175
- tan: new NumberNode(Infinity),
175
+ cos: (0).toTree(),
176
+ sin: (-1).toTree(),
177
+ tan: InfinityNode,
176
178
  point: "M",
177
179
  },
178
180
  {
179
- angle: new FractionNode(new MultiplyNode(new NumberNode(5), PiNode), new NumberNode(3)),
181
+ angle: frac(multiply(5, PiNode), 3),
180
182
  degree: 300,
181
- cos: new FractionNode(new NumberNode(1), new NumberNode(2)),
182
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2))),
183
- tan: new OppositeNode(new SqrtNode(new NumberNode(3))),
183
+ cos: frac(1, 2),
184
+ sin: opposite(frac(sqrt(3), 2)),
185
+ tan: opposite(sqrt(3)),
184
186
  point: "N",
185
187
  },
186
188
  {
187
- angle: new FractionNode(new MultiplyNode(new NumberNode(7), PiNode), new NumberNode(4)),
189
+ angle: frac(multiply(7, PiNode), 4),
188
190
  degree: 315,
189
- cos: new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2)),
190
- sin: new OppositeNode(new FractionNode(new SqrtNode(new NumberNode(2)), new NumberNode(2))),
191
- tan: new OppositeNode(new NumberNode(1)),
191
+ cos: frac(sqrt(2), 2),
192
+ sin: opposite(frac(sqrt(2), 2)),
193
+ tan: opposite(1),
192
194
  point: "P",
193
195
  },
194
196
  {
195
- angle: new FractionNode(new MultiplyNode(new NumberNode(11), PiNode), new NumberNode(6)),
197
+ angle: frac(multiply(11, PiNode), 6),
196
198
  degree: 330,
197
- cos: new FractionNode(new SqrtNode(new NumberNode(3)), new NumberNode(2)),
198
- sin: new OppositeNode(new FractionNode(new NumberNode(1), new NumberNode(2))),
199
- tan: new OppositeNode(new FractionNode(new NumberNode(1), new SqrtNode(new NumberNode(3)))),
199
+ cos: frac(sqrt(3), 2),
200
+ sin: opposite(frac(1, 2)),
201
+ tan: opposite(frac(1, sqrt(3))),
200
202
  point: "Q",
201
203
  },
202
204
  ];
@@ -208,11 +210,11 @@ export const mainPositiveTrigovalues = remarkableTrigoValues.slice(0, 9);
208
210
  export const trigoValuesOnZeroTwoPIOF = [
209
211
  ...remarkableTrigoValues.slice(1),
210
212
  {
211
- angle: new MultiplyNode(new NumberNode(2), PiNode),
213
+ angle: multiply(2, PiNode),
212
214
  degree: 0,
213
- cos: new NumberNode(1),
214
- sin: new NumberNode(0),
215
- tan: new NumberNode(0),
215
+ cos: (1).toTree(),
216
+ sin: (0).toTree(),
217
+ tan: (0).toTree(),
216
218
  point: "I",
217
219
  },
218
220
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU,YAGtB,CAAC"}
1
+ {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,UAAU,YAGtB,CAAC"}
package/lib/playground.js CHANGED
@@ -1,5 +1,4 @@
1
- import { parseAlgebraic } from "./tree/parsers/latexParser.js";
2
1
  export const playground = () => {
3
- const tex = "3\\%";
4
- console.log(parseAlgebraic(tex).simplify({}).toTex());
2
+ // const tex = "3\\%";
3
+ // console.log(parseAlgebraic(tex).simplify({}).toTex());
5
4
  };
package/lib/server.js CHANGED
@@ -43,6 +43,18 @@ const runServer = () => {
43
43
  });
44
44
  app.get("/question", (req, res) => {
45
45
  const exoId = req.query.exoId;
46
+ const options = req.query.options
47
+ ? JSON.parse(req.query.options)
48
+ : undefined;
49
+ const exoIndex = allExercises.findIndex((exo) => exo.id == exoId);
50
+ const exo = allExercises[exoIndex];
51
+ if (!exo)
52
+ res.send("Exo not found");
53
+ const question = exo?.generator(1, options)[0];
54
+ res.json({
55
+ exercise: exo,
56
+ question,
57
+ });
46
58
  });
47
59
  app.get("/exo", (req, res) => {
48
60
  const exoId = req.query.exoId;
@@ -1 +1 @@
1
- {"version":3,"file":"singleExo.test.d.ts","sourceRoot":"","sources":["../../src/tests/singleExo.test.ts"],"names":[],"mappings":"AAqBA,OAAO,6BAA6B,CAAC"}
1
+ {"version":3,"file":"singleExo.test.d.ts","sourceRoot":"","sources":["../../src/tests/singleExo.test.ts"],"names":[],"mappings":"AAsBA,OAAO,6BAA6B,CAAC"}
@@ -1,8 +1,9 @@
1
- import { factoType1Exercise, } from "../exercises/math/index.js";
1
+ import { varTableExtremaReading, } from "../exercises/math/index.js";
2
2
  import "../prototypesEnhancement.js";
3
3
  import { exoTest } from "./exoTest.js";
4
4
  try {
5
- exoTest(factoType1Exercise);
5
+ for (let i = 0; i < 100; i++)
6
+ exoTest(varTableExtremaReading);
6
7
  }
7
8
  catch (err) {
8
9
  throw err;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "math-exercises",
3
3
  "type": "module",
4
- "version": "3.0.34",
4
+ "version": "3.0.36",
5
5
  "description": "Math exercises generator for middle school and high school",
6
6
  "main": "lib/index.js",
7
7
  "files": [