math-exercises 3.0.87 → 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 (93) 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 +2 -0
  10. package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
  11. package/lib/exercises/math/functions/basics/index.js +3 -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/basics/valueTableFromGraph.d.ts +8 -0
  16. package/lib/exercises/math/functions/basics/valueTableFromGraph.d.ts.map +1 -0
  17. package/lib/exercises/math/functions/basics/valueTableFromGraph.js +139 -0
  18. package/lib/exercises/math/functions/square/squareImageInterval.d.ts.map +1 -1
  19. package/lib/exercises/math/functions/square/squareImageInterval.js +7 -1
  20. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.d.ts +12 -0
  21. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.d.ts.map +1 -0
  22. package/lib/exercises/math/geometry/vectors/colinearity/alignementViaColinearity.js +127 -0
  23. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.d.ts +11 -0
  24. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.d.ts.map +1 -0
  25. package/lib/exercises/math/geometry/vectors/colinearity/colinearity.js +118 -0
  26. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.d.ts +11 -0
  27. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.d.ts.map +1 -0
  28. package/lib/exercises/math/geometry/vectors/colinearity/colinearityFromBasis.js +158 -0
  29. package/lib/exercises/math/geometry/vectors/colinearity/index.d.ts +4 -0
  30. package/lib/exercises/math/geometry/vectors/colinearity/index.d.ts.map +1 -0
  31. package/lib/exercises/math/geometry/vectors/colinearity/index.js +3 -0
  32. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.d.ts +9 -0
  33. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.d.ts.map +1 -0
  34. package/lib/exercises/math/geometry/vectors/distributeAndReduceVectors.js +155 -0
  35. package/lib/exercises/math/geometry/vectors/index.d.ts +1 -2
  36. package/lib/exercises/math/geometry/vectors/index.d.ts.map +1 -1
  37. package/lib/exercises/math/geometry/vectors/index.js +2 -2
  38. package/lib/exercises/math/index.d.ts +1 -0
  39. package/lib/exercises/math/index.d.ts.map +1 -1
  40. package/lib/exercises/math/index.js +1 -0
  41. package/lib/exercises/math/percent/evolutions/globalCM.d.ts +7 -0
  42. package/lib/exercises/math/percent/evolutions/globalCM.d.ts.map +1 -0
  43. package/lib/exercises/math/percent/evolutions/globalCM.js +89 -0
  44. package/lib/exercises/math/percent/evolutions/index.d.ts +1 -0
  45. package/lib/exercises/math/percent/evolutions/index.d.ts.map +1 -1
  46. package/lib/exercises/math/percent/evolutions/index.js +1 -0
  47. package/lib/exercises/math/percent/index.d.ts +1 -0
  48. package/lib/exercises/math/percent/index.d.ts.map +1 -1
  49. package/lib/exercises/math/percent/index.js +1 -0
  50. package/lib/exercises/math/percent/percentOfPercent.d.ts +8 -0
  51. package/lib/exercises/math/percent/percentOfPercent.d.ts.map +1 -0
  52. package/lib/exercises/math/percent/percentOfPercent.js +89 -0
  53. package/lib/exercises/math/primitive/polynomialPrimitive.d.ts.map +1 -1
  54. package/lib/exercises/math/primitive/polynomialPrimitive.js +10 -1
  55. package/lib/exercises/math/probaStat/basicProbas/rouletteProbas.js +1 -1
  56. package/lib/exercises/math/python/variableAffectation.js +2 -2
  57. package/lib/exercises/math/tests/index.d.ts +4 -0
  58. package/lib/exercises/math/tests/index.d.ts.map +1 -0
  59. package/lib/exercises/math/tests/index.js +3 -0
  60. package/lib/exercises/math/tests/testMultiLineSignTable.d.ts +9 -0
  61. package/lib/exercises/math/tests/testMultiLineSignTable.d.ts.map +1 -0
  62. package/lib/exercises/math/tests/testMultiLineSignTable.js +156 -0
  63. package/lib/exercises/math/tests/testSignTable.d.ts +8 -0
  64. package/lib/exercises/math/tests/testSignTable.d.ts.map +1 -0
  65. package/lib/exercises/math/tests/testSignTable.js +90 -0
  66. package/lib/exercises/math/tests/testVarTable.d.ts +11 -0
  67. package/lib/exercises/math/tests/testVarTable.d.ts.map +1 -0
  68. package/lib/exercises/math/tests/testVarTable.js +147 -0
  69. package/lib/exercises/math/trigonometry/index.d.ts +1 -0
  70. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  71. package/lib/exercises/math/trigonometry/index.js +1 -0
  72. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.d.ts +9 -0
  73. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.d.ts.map +1 -0
  74. package/lib/exercises/math/trigonometry/trigoFundamentalEquation.js +151 -0
  75. package/lib/geogebra/spline.d.ts +2 -1
  76. package/lib/geogebra/spline.d.ts.map +1 -1
  77. package/lib/geogebra/spline.js +39 -1
  78. package/lib/index.d.ts +50 -12
  79. package/lib/index.d.ts.map +1 -1
  80. package/lib/latexTester.js +2 -0
  81. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  82. package/lib/math/numbers/reals/real.js +7 -2
  83. package/lib/tests/exoTest.d.ts.map +1 -1
  84. package/lib/tests/exoTest.js +9 -3
  85. package/lib/tests/questionTest.d.ts.map +1 -1
  86. package/lib/tests/questionTest.js +19 -10
  87. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  88. package/lib/tree/nodes/operators/addNode.js +3 -1
  89. package/lib/tree/parsers/latexParser.d.ts.map +1 -1
  90. package/lib/tree/parsers/latexParser.js +10 -0
  91. package/lib/types/keyIds.d.ts +1 -1
  92. package/lib/types/keyIds.d.ts.map +1 -1
  93. package/package.json +1 -1
@@ -142,7 +142,7 @@ export interface Exercise<TIdentifiers = {}, TOptions = {}> {
142
142
  connector?: "=" | "\\iff" | "\\approx";
143
143
  generator: (n: number, opts?: TOptions) => Question<TIdentifiers, TOptions>[];
144
144
  maxAllowedQuestions?: number;
145
- answerType?: "GGB" | "QCM" | "free" | "QCU" | "valueTable";
145
+ answerType?: "GGB" | "QCM" | "free" | "QCU" | "valueTable" | "varTable" | "signTable";
146
146
  isQCM?: boolean;
147
147
  shouldHaveCalculator?: boolean;
148
148
  qcmTimer?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"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"}
@@ -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,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 "./signOfFunction.js";
12
13
  export * from "./valueTableCompletion.js";
14
+ export * from "./valueTableFromGraph.js";
13
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"}
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,4 +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";
15
+ export * from "./valueTableFromGraph.js";
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ type: number;
5
+ };
6
+ export declare const signOfFunction: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=signOfFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOfFunction.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/signOfFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IAEV,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAgHF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAkBhD,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { abs } from "../../../../tree/nodes/functions/absNode.js";
5
+ import { multiply, } from "../../../../tree/nodes/operators/multiplyNode.js";
6
+ import { MonomNode, } from "../../../../tree/nodes/polynomials/monomNode.js";
7
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
8
+ const getPropositions = (n, { answer }) => {
9
+ const propositions = [];
10
+ addValidProp(propositions, answer, "raw");
11
+ tryToAddWrongProp(propositions, "Positive", "raw");
12
+ tryToAddWrongProp(propositions, "Nulle", "raw");
13
+ tryToAddWrongProp(propositions, "Négative", "raw");
14
+ tryToAddWrongProp(propositions, "La fonction change de signe sur $\\mathbb{R}$", "raw");
15
+ return shuffleProps(propositions, n);
16
+ };
17
+ const buildFunc = (identifiers) => {
18
+ const { a, type } = identifiers;
19
+ if (type === 0) {
20
+ return a.toTree();
21
+ }
22
+ if (type === 1) {
23
+ return new MonomNode(a, 2, { variable: "x" });
24
+ }
25
+ return multiply(a, abs("x"));
26
+ };
27
+ const getAnswer = (identifiers) => {
28
+ const node = buildFunc(identifiers).simplify();
29
+ const value = node.evaluate({ x: 1 });
30
+ if (value === 0)
31
+ return "Nulle";
32
+ return value > 0 ? "Positive" : "Négative";
33
+ };
34
+ const getInstruction = (identifiers) => {
35
+ const node = buildFunc(identifiers).simplify();
36
+ return `Donner le signe de la fonction suivante sur $\\mathbb{R}$ :
37
+
38
+ $$
39
+ f(x) = ${node.toTex()}
40
+ $$`;
41
+ };
42
+ const getHint = (identifiers) => {
43
+ const { type } = identifiers;
44
+ if (type === 0)
45
+ return `$f$ est une fonction constante, c'est à dire que $f(x)$ vaut toujours le même nombre quelle que soit la valeur de $x$.`;
46
+ return `$f(x)$ est un produit, donc son signe dépend des signes des deux facteurs. Utilise la règle des signes.`;
47
+ };
48
+ const getCorrection = (identifiers) => {
49
+ const node = buildFunc(identifiers).simplify();
50
+ const value = node.evaluate({ x: 1 });
51
+ const type = identifiers.type;
52
+ const word = value > 0 ? "positif" : "négatif";
53
+ const feminized = value > 0 ? "positive" : "négative";
54
+ if (type === 0) {
55
+ return `$f$ est une fonction constante égale à $${node.toTex()}$.
56
+
57
+ Puisque $${node.toTex()}$ est ${word}, la fonction $f$ est ${feminized} sur $\\mathbb{R}$.`;
58
+ }
59
+ if (type === 1) {
60
+ return `$f(x)$ est un produit. On étudie le signe de chacun des facteurs :
61
+
62
+ - $${identifiers.a}$ est ${word} sur $\\mathbb{R}$ ;
63
+ - $x^2$ est positif sur $\\mathbb{R}$, car un carré est toujours positif.
64
+
65
+ D'après la régle des signes, $f$ est donc ${feminized} sur $\\mathbb{R}$.`;
66
+ }
67
+ return `$f(x)$ est un produit. On étudie le signe de chacun des facteurs :
68
+
69
+ - $${identifiers.a}$ est ${word} sur $\\mathbb{R}$ ;
70
+ - $|x|$ est positif sur $\\mathbb{R}$, car une valeur absolue est toujours positive.
71
+
72
+ D'après la régle des signes, $f$ est donc ${feminized} sur $\\mathbb{R}$.`;
73
+ };
74
+ const getKeys = (identifiers) => {
75
+ return [];
76
+ };
77
+ const isAnswerValid = (ans, { answer }) => {
78
+ try {
79
+ return ans === answer;
80
+ }
81
+ catch (err) {
82
+ return handleVEAError(err);
83
+ }
84
+ };
85
+ const getSignOfFunctionQuestion = (ops) => {
86
+ const a = randint(-20, 20);
87
+ const exp1 = new MonomNode(a, 2, { variable: "x" });
88
+ const exp2 = multiply(a, abs("x"));
89
+ const type = randint(0, 3);
90
+ const myFunc = [a.toTree(), exp1, exp2][type];
91
+ const identifiers = { a, type };
92
+ return getQuestionFromIdentifiers(identifiers);
93
+ };
94
+ const getQuestionFromIdentifiers = (identifiers) => {
95
+ return {
96
+ answer: getAnswer(identifiers),
97
+ instruction: getInstruction(identifiers),
98
+ keys: getKeys(identifiers),
99
+ answerFormat: "raw",
100
+ identifiers,
101
+ hint: getHint(identifiers),
102
+ correction: getCorrection(identifiers),
103
+ };
104
+ };
105
+ export const signOfFunction = {
106
+ id: "signOfFunction",
107
+ label: "Donner le signe d'une fonction qui ne change pas de signe",
108
+ isSingleStep: true,
109
+ generator: (nb, opts) => getDistinctQuestions(() => getSignOfFunctionQuestion(opts), nb),
110
+ qcmTimer: 60,
111
+ freeTimer: 60,
112
+ getPropositions,
113
+ isAnswerValid,
114
+ subject: "Mathématiques",
115
+ getInstruction,
116
+ getHint,
117
+ getCorrection,
118
+ getAnswer,
119
+ getQuestionFromIdentifiers,
120
+ hasHintAndCorrection: true,
121
+ answerType: "QCU",
122
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ points: number[][];
4
+ initTable: string[][];
5
+ };
6
+ export declare const valueTableFromGraph: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=valueTableFromGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueTableFromGraph.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/valueTableFromGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAkIF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAmBrD,CAAC"}
@@ -0,0 +1,139 @@
1
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
2
+ import { randomColor } from "../../../../geogebra/colors.js";
3
+ import { GeogebraConstructor } from "../../../../geogebra/geogebraConstructor.js";
4
+ import { Point } from "../../../../math/geometry/point.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { numberParser } from "../../../../tree/parsers/numberParser.js";
7
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
8
+ import { mdTable } from "../../../../utils/markdown/mdTable.js";
9
+ const getAnswerTable = (identifiers) => {
10
+ const { points, initTable } = identifiers;
11
+ const answerTable = [[], []];
12
+ for (let j = 1; j < initTable[0].length; j++) {
13
+ if (initTable[0][j] === "") {
14
+ answerTable[0].push(points
15
+ .find((p) => p[1] === Number(initTable[1][j]))[0]
16
+ .toTree()
17
+ .toTex());
18
+ answerTable[1].push(initTable[1][j]);
19
+ }
20
+ else {
21
+ answerTable[1].push(points
22
+ .find((p) => p[0] === Number(initTable[0][j]))[1]
23
+ .toTree()
24
+ .toTex());
25
+ answerTable[0].push(initTable[0][j]);
26
+ }
27
+ }
28
+ return [
29
+ ["x", ...answerTable[0]],
30
+ ["f(x)", ...answerTable[1]],
31
+ ];
32
+ };
33
+ const getInstruction = (identifiers) => {
34
+ return `Soit $f$ la fonction dont la courbe représentative est tracée ci-dessous.
35
+
36
+ Compléter le tableau de valeurs de $f$.`;
37
+ };
38
+ const getGGBOptions = (identifiers) => {
39
+ const ggb = new GeogebraConstructor({
40
+ commands: [
41
+ `S = Spline(${identifiers.points
42
+ .map((point) => `(${point[0]},${point[1]})`)
43
+ .join(",")})`,
44
+ "SetFixed(S, true)",
45
+ `SetColor(S, "${randomColor()}")`,
46
+ ],
47
+ });
48
+ return ggb.getOptions({
49
+ coords: ggb.getCoordsForPoints(identifiers.points.map((point) => new Point("A", point[0], point[1]))),
50
+ });
51
+ };
52
+ const getHint = (identifiers) => {
53
+ return "Dans un tableau de valeurs, la deuxième ligne contient les images de la première ligne par la fonction $f$. Pour trouver une case de la deuxième ligne, il faut donc lire graphiquement l'image du nombre de la première ligne par la fonction $f$.";
54
+ };
55
+ const getCorrection = (identifiers) => {
56
+ return `
57
+ On lit graphiquement que :
58
+
59
+ ${identifiers.points.map((p) => `- $f(${p[0]}) = ${p[1]}$`).join("\n")}
60
+
61
+ Le tableau de valeurs complété est donc :
62
+
63
+ ${mdTable(getAnswerTable(identifiers), true)}
64
+
65
+ `;
66
+ };
67
+ const getKeys = (identifiers) => {
68
+ return [];
69
+ };
70
+ const isAnswerTableValid = (ans, { answerTable }) => {
71
+ try {
72
+ for (let i = 0; i < 2; i++) {
73
+ for (let j = 1; j < ans[i].length; j++) {
74
+ const ansParsed = numberParser(ans[i][j]);
75
+ const answerParsed = numberParser(answerTable[i][j]);
76
+ const valid = ansParsed === answerParsed;
77
+ if (!valid)
78
+ return false;
79
+ }
80
+ }
81
+ return true;
82
+ }
83
+ catch (err) {
84
+ return handleVEAError(err);
85
+ }
86
+ };
87
+ const getValueTableFromGraphQuestion = (ops) => {
88
+ const xs = [randint(-10, -5), randint(-5, 0), randint(0, 5), randint(6, 10)];
89
+ const points = [[xs[0], randint(-9, 10)]];
90
+ for (let i = 1; i < xs.length; i++) {
91
+ let y = points[i - 1][1] + randint(-5, 6);
92
+ points.push([xs[i], y]);
93
+ }
94
+ let stringXs = points.map((p) => p[0].toString());
95
+ const ys = [];
96
+ for (let i = 0; i < stringXs.length; i++) {
97
+ ys.push("");
98
+ }
99
+ const initTable = [
100
+ ["x", ...stringXs],
101
+ ["f(x)", ...ys],
102
+ ];
103
+ const identifiers = {
104
+ points: points,
105
+ initTable,
106
+ };
107
+ return getQuestionFromIdentifiers(identifiers);
108
+ };
109
+ const getQuestionFromIdentifiers = (identifiers) => {
110
+ return {
111
+ answerTable: getAnswerTable(identifiers),
112
+ instruction: getInstruction(identifiers),
113
+ keys: getKeys(identifiers),
114
+ answerFormat: "tex",
115
+ identifiers,
116
+ hint: getHint(identifiers),
117
+ correction: getCorrection(identifiers),
118
+ initTable: identifiers.initTable,
119
+ ggbOptions: getGGBOptions(identifiers),
120
+ };
121
+ };
122
+ export const valueTableFromGraph = {
123
+ id: "valueTableFromGraph",
124
+ connector: "=",
125
+ label: "Compléter un tableau de valeurs d'une fonction à partir d'un graphique",
126
+ isSingleStep: true,
127
+ generator: (nb, opts) => getDistinctQuestions(() => getValueTableFromGraphQuestion(opts), nb),
128
+ valueTableTimer: 120,
129
+ subject: "Mathématiques",
130
+ getInstruction,
131
+ getHint,
132
+ getCorrection,
133
+ getAnswerTable,
134
+ getQuestionFromIdentifiers,
135
+ hasHintAndCorrection: true,
136
+ answerType: "valueTable",
137
+ isAnswerTableValid,
138
+ hasGeogebra: true,
139
+ };
@@ -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"}