math-exercises 3.0.5 → 3.0.6

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 (68) 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/mentalCaluls/mentalMultiplicationsNoRelative.d.ts.map +1 -1
  4. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplicationsNoRelative.js +30 -32
  5. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.d.ts.map +1 -1
  6. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.js +0 -2
  7. package/lib/exercises/math/calculLitteral/equation/fractionEquation.d.ts.map +1 -1
  8. package/lib/exercises/math/calculLitteral/equation/fractionEquation.js +66 -26
  9. package/lib/exercises/math/calculLitteral/factorisation/factorizeCanonicalFormWithSqrt.d.ts.map +1 -1
  10. package/lib/exercises/math/calculLitteral/factorisation/factorizeCanonicalFormWithSqrt.js +60 -28
  11. package/lib/exercises/math/dataRepresentations/barChartReading.d.ts.map +1 -1
  12. package/lib/exercises/math/dataRepresentations/barChartReading.js +57 -7
  13. package/lib/exercises/math/derivation/derivative/lnDerivativeOne.d.ts.map +1 -1
  14. package/lib/exercises/math/derivation/derivative/lnDerivativeOne.js +7 -1
  15. package/lib/exercises/math/derivation/derivative/sinCompositionDerivation.d.ts.map +1 -1
  16. package/lib/exercises/math/derivation/derivative/sinCompositionDerivation.js +22 -7
  17. package/lib/exercises/math/derivation/derivative/sinSecondDegreeDerivative.d.ts.map +1 -1
  18. package/lib/exercises/math/derivation/derivative/sinSecondDegreeDerivative.js +23 -8
  19. package/lib/exercises/math/functions/basics/imageFunction.d.ts.map +1 -1
  20. package/lib/exercises/math/functions/basics/imageFunction.js +20 -12
  21. package/lib/exercises/math/functions/basics/imageFunctionGeogebra.d.ts.map +1 -1
  22. package/lib/exercises/math/functions/basics/imageFunctionGeogebra.js +0 -1
  23. package/lib/exercises/math/functions/trinoms/solveSecondDegreeEquationFromCano.d.ts.map +1 -1
  24. package/lib/exercises/math/functions/trinoms/solveSecondDegreeEquationFromCano.js +22 -9
  25. package/lib/exercises/math/percent/applyPercent.d.ts.map +1 -1
  26. package/lib/exercises/math/percent/applyPercent.js +65 -52
  27. package/lib/exercises/math/percent/evolutionToCM.d.ts.map +1 -1
  28. package/lib/exercises/math/percent/evolutionToCM.js +0 -2
  29. package/lib/exercises/math/percent/findProportion.d.ts.map +1 -1
  30. package/lib/exercises/math/percent/findProportion.js +35 -17
  31. package/lib/exercises/math/percent/findStartValueAfterEvolution.d.ts.map +1 -1
  32. package/lib/exercises/math/percent/findStartValueAfterEvolution.js +1 -0
  33. package/lib/exercises/math/percent/findTVA.d.ts.map +1 -1
  34. package/lib/exercises/math/percent/findTVA.js +1 -0
  35. package/lib/exercises/math/probaStat/diceBasicProbas.d.ts.map +1 -1
  36. package/lib/exercises/math/probaStat/diceBasicProbas.js +1 -1
  37. package/lib/exercises/math/probaStat/probaFromTableNoContext.d.ts +1 -3
  38. package/lib/exercises/math/probaStat/probaFromTableNoContext.d.ts.map +1 -1
  39. package/lib/exercises/math/probaStat/probaFromTableNoContext.js +15 -12
  40. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts +1 -3
  41. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
  42. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +13 -11
  43. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts.map +1 -1
  44. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormula.js +0 -6
  45. package/lib/exercises/math/squareRoots/simpifySquareRoot.d.ts.map +1 -1
  46. package/lib/exercises/math/squareRoots/simpifySquareRoot.js +26 -6
  47. package/lib/exercises/math/squareRoots/squareRootEquation.d.ts.map +1 -1
  48. package/lib/exercises/math/squareRoots/squareRootEquation.js +19 -4
  49. package/lib/exercises/math/trigonometry/mainRemarkableValues.d.ts.map +1 -1
  50. package/lib/exercises/math/trigonometry/mainRemarkableValues.js +48 -23
  51. package/lib/exercises/math/trigonometry/remarkableValues.d.ts +2 -0
  52. package/lib/exercises/math/trigonometry/remarkableValues.d.ts.map +1 -1
  53. package/lib/exercises/math/trigonometry/remarkableValues.js +54 -25
  54. package/lib/index.d.ts +3 -6
  55. package/lib/index.d.ts.map +1 -1
  56. package/lib/math/polynomials/trinom.d.ts +2 -0
  57. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  58. package/lib/math/polynomials/trinom.js +12 -0
  59. package/lib/playground.d.ts.map +1 -1
  60. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  61. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  62. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  63. package/lib/tree/nodes/functions/cosNode.js +5 -2
  64. package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
  65. package/lib/tree/nodes/functions/sinNode.js +5 -2
  66. package/lib/tree/parsers/latexParser.d.ts.map +1 -1
  67. package/lib/tree/parsers/latexParser.js +10 -0
  68. package/package.json +2 -1
@@ -101,7 +101,7 @@ export type GetGGBAnswer<TIdentifiers, TOptions = {}> = (args: TIdentifiers, opt
101
101
  export type GetGGBOptions<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => GeogebraOptions;
102
102
  export type GetStudentGGBOptions<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => GeogebraOptions;
103
103
  export type RebuildIdentifiers<TIdentifiers, TOptions = {}> = (oldIdentifiers: any, options?: TOptions) => TIdentifiers;
104
- export type GetQuestionFromIdentifiers<TIdentifiers, TOptions = {}> = (identifiers: TIdentifiers, options?: TOptions) => Question<TIdentifiers>;
104
+ export type GetQuestionFromIdentifiers<TIdentifiers, TOptions = {}> = (identifiers: TIdentifiers, options?: TOptions) => Question<TIdentifiers, TOptions>;
105
105
  export type QuestionHotFix<TIdentifiers, TOptions = {}> = (q: Question<TIdentifiers>, options?: TOptions) => Question<TIdentifiers>;
106
106
  export type ValidateOptions<TOptions = {}> = (options: TOptions) => {
107
107
  valid: boolean;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mentalMultiplicationsNoRelative.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/mentalCaluls/mentalMultiplicationsNoRelative.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AA4EF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAwBjE,CAAC"}
1
+ {"version":3,"file":"mentalMultiplicationsNoRelative.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/mentalCaluls/mentalMultiplicationsNoRelative.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAkFF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAcjE,CAAC"}
@@ -1,16 +1,34 @@
1
1
  import { addValidProp, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
2
  import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
3
4
  import { randint } from "../../../../math/utils/random/randint.js";
4
5
  import { round } from "../../../../math/utils/round.js";
5
- import { NumberNode } from "../../../../tree/nodes/numbers/numberNode.js";
6
6
  import { MultiplyNode } from "../../../../tree/nodes/operators/multiplyNode.js";
7
+ import { operatorComposition } from "../../../../tree/utilities/operatorComposition.js";
7
8
  import { coinFlip } from "../../../../utils/alea/coinFlip.js";
8
9
  import { shuffle } from "../../../../utils/alea/shuffle.js";
10
+ const getStatementNode = (identifiers) => {
11
+ const numbers = identifiers.numbers;
12
+ return operatorComposition(MultiplyNode, numbers.map((n) => n.toTree()));
13
+ };
14
+ const getStartStatement = (identifiers) => {
15
+ return getStatementNode(identifiers).toTex();
16
+ };
17
+ const getInstruction = (identifiers) => {
18
+ return `Calculer :
19
+
20
+ $$
21
+ ${getStartStatement(identifiers)}
22
+ $$`;
23
+ };
24
+ const getAnswer = (identifiers) => {
25
+ const numbers = identifiers.numbers;
26
+ const answerTex = round(numbers.reduce((acc, curr) => acc * curr), 2).frenchify();
27
+ return answerTex;
28
+ };
9
29
  const getMentalMultiplicationsNoRelative = () => {
10
30
  const numbers = [];
11
31
  const nbOfOperations = randint(2, 4);
12
- let statementTree;
13
- let answer;
14
32
  if (nbOfOperations === 2) {
15
33
  const a = randint(2, 10);
16
34
  const b = coinFlip()
@@ -20,9 +38,6 @@ const getMentalMultiplicationsNoRelative = () => {
20
38
  : randint(2, 10) + randint(-1, 2, [0]) / 10;
21
39
  numbers.push(a);
22
40
  numbers.push(b);
23
- const allNumbersNodes = numbers.map((nb) => new NumberNode(nb));
24
- statementTree = new MultiplyNode(allNumbersNodes[0], allNumbersNodes[1]);
25
- answer = numbers[0] * numbers[1];
26
41
  }
27
42
  else {
28
43
  //nbOfOperations = 3
@@ -32,20 +47,15 @@ const getMentalMultiplicationsNoRelative = () => {
32
47
  numbers.push(c);
33
48
  numbers.push(d);
34
49
  numbers.push(f);
35
- const allNumbersNodes = numbers.map((nb) => new NumberNode(nb));
36
- statementTree = new MultiplyNode(allNumbersNodes[0], new MultiplyNode(allNumbersNodes[1], allNumbersNodes[2]));
37
- answer = numbers[0] * numbers[1] * numbers[2];
38
50
  }
39
- statementTree.shuffle();
40
- const statementTex = statementTree.toTex();
41
- const answerTex = round(answer, 2).frenchify();
51
+ const identifiers = { numbers: shuffle(numbers) };
42
52
  const question = {
43
- instruction: `Calculer : $${statementTex}$`,
44
- startStatement: statementTex,
45
- answer: answerTex,
53
+ instruction: getInstruction(identifiers),
54
+ startStatement: getStartStatement(identifiers),
55
+ answer: getAnswer(identifiers),
46
56
  keys: [],
47
57
  answerFormat: "tex",
48
- identifiers: { numbers },
58
+ identifiers,
49
59
  };
50
60
  return question;
51
61
  };
@@ -59,27 +69,13 @@ const getPropositions = (n, { answer }) => {
59
69
  }
60
70
  return shuffle(propositions);
61
71
  };
62
- const isAnswerValid = (studentAns, { answer }) => {
63
- const answerTree = answer.unfrenchify().toTree();
64
- const texs = answerTree.toAllValidTexs();
65
- return texs.includes(studentAns);
72
+ const isAnswerValid = (ans, { answer }) => {
73
+ return numberVEA(ans, answer);
66
74
  };
67
75
  export const mentalMultiplicationsNoRelative = {
68
76
  id: "mentalMultiplicationsNoRelative",
69
77
  connector: "=",
70
78
  label: "Multiplications avec des décimaux (sans relatifs)",
71
- levels: [
72
- "6ème",
73
- "5ème",
74
- "4ème",
75
- "3ème",
76
- "2nde",
77
- "1reESM",
78
- "CAP",
79
- "2ndPro",
80
- "1rePro",
81
- ],
82
- sections: ["Calculs"],
83
79
  isSingleStep: true,
84
80
  generator: (nb) => getDistinctQuestions(getMentalMultiplicationsNoRelative, nb),
85
81
  qcmTimer: 60,
@@ -87,4 +83,6 @@ export const mentalMultiplicationsNoRelative = {
87
83
  getPropositions,
88
84
  isAnswerValid,
89
85
  subject: "Mathématiques",
86
+ getAnswer,
87
+ getInstruction,
90
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"doubleDistributivityWithCoeff.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAyIF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,WAAW,CAmB/D,CAAC"}
1
+ {"version":3,"file":"doubleDistributivityWithCoeff.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAyIF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,WAAW,CAiB/D,CAAC"}
@@ -90,9 +90,7 @@ export const doubleDistributivityWithCoeff = {
90
90
  id: "doubleDistributivityWithCoeff",
91
91
  connector: "=",
92
92
  label: "Développer une expression du type $a(bx+c)(dx+e)$",
93
- levels: [],
94
93
  isSingleStep: true,
95
- sections: [],
96
94
  generator: (nb) => getDistinctQuestions(getDoubleDistributivityWithCoeffQuestion, nb),
97
95
  qcmTimer: 60,
98
96
  freeTimer: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"fractionEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/fractionEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA+FF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAclD,CAAC"}
1
+ {"version":3,"file":"fractionEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/fractionEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqIF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAgBlD,CAAC"}
@@ -9,23 +9,72 @@ import { FractionNode } from "../../../../tree/nodes/operators/fractionNode.js";
9
9
  import { DiscreteSetNode, EmptySet, } from "../../../../tree/nodes/sets/discreteSetNode.js";
10
10
  import { alignTex } from "../../../../utils/latex/alignTex.js";
11
11
  import { shuffle } from "../../../../utils/alea/shuffle.js";
12
+ const getStatementNode = (identifiers) => {
13
+ const { a, b, c, d } = identifiers;
14
+ const polynome1 = new Polynomial([b, a]);
15
+ const polynome2 = new Polynomial([d, c]);
16
+ const statement = new EqualNode(new FractionNode(polynome1.toTree(), polynome2.toTree()), (0).toTree());
17
+ return statement;
18
+ };
19
+ const getStartStatement = (identifiers) => {
20
+ return getStatementNode(identifiers).toTex();
21
+ };
22
+ const getHint = (identifiers) => {
23
+ return `Un quotient est nul si est seulement si le numérateur est nul et le dénominateur est non nul. Il faut donc déterminer la valeur de $x$ qui rend le numérateur nul, sans rendre le dénominateur nul.`;
24
+ };
25
+ const getInstruction = (identifiers) => {
26
+ return `Résoudre :
27
+
28
+ $$
29
+ ${getStartStatement(identifiers)}
30
+ $$`;
31
+ };
32
+ const getAnswer = (identifiers) => {
33
+ const { a, b, c, d } = identifiers;
34
+ const root1 = new Rational(-b, a).simplify().toTree().toTex();
35
+ const answer = -d / c === -b / a ? `S=\\varnothing` : `S=\\left\\{${root1}\\right\\}`;
36
+ return answer;
37
+ };
38
+ const getCorrection = (identifiers) => {
39
+ const { a, b, c, d } = identifiers;
40
+ const polynome1 = new Polynomial([b, a]);
41
+ const polynome2 = new Polynomial([d, c]);
42
+ const root1 = new Rational(-b, a).simplify().toTree().toTex();
43
+ const root2 = new Rational(-d, c).simplify().toTree().toTex();
44
+ const hasSolution = -d / c !== -b / a;
45
+ const answer = getAnswer(identifiers);
46
+ return `Un quotient est nul si est seulement si le numérateur est nul et le dénominateur est non nul. Ainsi :
47
+
48
+ ${alignTex([
49
+ ["", getStartStatement(identifiers)],
50
+ ["\\iff", `${polynome1.toTex()}=0 \\text{ et } ${polynome2.toTex()}\\neq 0`],
51
+ ["\\iff", `x=${root1} \\text{ et } x\\neq ${root2}`],
52
+ ])}
53
+
54
+ ${!hasSolution
55
+ ? `Il n'y a donc pas de solution pour cette équation. Ainsi,
56
+
57
+ $$
58
+ ${answer}
59
+ $$`
60
+ : `Il y a donc bien une solution pour cette équation :
61
+
62
+ $$
63
+ ${answer}
64
+ $$`}
65
+ `;
66
+ };
12
67
  const getFractionEquation = () => {
13
68
  // (ax + b)/(cx + d) = 0
14
69
  const a = randint(-9, 10, [0]);
15
70
  const b = randint(-9, 10, [0]);
16
71
  const c = randint(-9, 10, [0]);
17
72
  const d = randint(-9, 10, [0]);
18
- const polynome1 = new Polynomial([b, a]);
19
- const polynome2 = new Polynomial([d, c]);
20
- const root1 = new Rational(-b, a).simplify().toTree().toTex();
21
- const root2 = new Rational(-d, c).simplify().toTree().toTex();
22
- const hasSolution = -d / c !== -b / a;
23
- const answer = -d / c === -b / a ? `S=\\varnothing` : `S=\\left\\{${root1}\\right\\}`;
24
- const statement = new EqualNode(new FractionNode(polynome1.toTree(), polynome2.toTree()), (0).toTree()).toTex();
73
+ const identifiers = { a, b, c, d };
25
74
  const question = {
26
- instruction: `Résoudre : $${statement}$`,
27
- startStatement: statement,
28
- answer,
75
+ instruction: getInstruction(identifiers),
76
+ startStatement: getStartStatement(identifiers),
77
+ answer: getAnswer(identifiers),
29
78
  keys: [
30
79
  "x",
31
80
  "S",
@@ -37,20 +86,9 @@ const getFractionEquation = () => {
37
86
  "varnothing",
38
87
  ],
39
88
  answerFormat: "tex",
40
- identifiers: { a, b, c, d },
41
- hint: `Un quotient est nul si est seulement si le numérateur est nul et le dénominateur est non nul. Il faut donc déterminer la valeur de $x$ qui rend le numérateur nul, sans rendre le dénominateur nul.`,
42
- correction: `Un quotient est nul si est seulement si le numérateur est nul et le dénominateur est non nul. Ainsi :
43
-
44
- ${alignTex([
45
- ["", statement],
46
- ["\\iff", `${polynome1.toTex()}=0 \\text{ et } ${polynome2.toTex()}\\neq 0`],
47
- ["\\iff", `x=${root1} \\text{ et } x\\neq ${root2}`],
48
- ])}
49
-
50
- ${!hasSolution
51
- ? `Il n'y a donc pas de solution pour cette équation. Ainsi, $${answer}$.`
52
- : `Il y a donc bien une solution pour cette équation : $${answer}$.`}
53
- `,
89
+ identifiers,
90
+ hint: getHint(identifiers),
91
+ correction: getCorrection(identifiers),
54
92
  };
55
93
  return question;
56
94
  };
@@ -83,8 +121,6 @@ export const fractionEquation = {
83
121
  id: "fractionEquation",
84
122
  connector: "\\iff",
85
123
  label: "Résoudre une équation quotient nul",
86
- levels: ["2nde", "1reESM", "1reSpé", "1reTech"],
87
- sections: ["Équations"],
88
124
  isSingleStep: false,
89
125
  generator: (nb) => getDistinctQuestions(getFractionEquation, nb),
90
126
  qcmTimer: 60,
@@ -93,4 +129,8 @@ export const fractionEquation = {
93
129
  isAnswerValid,
94
130
  subject: "Mathématiques",
95
131
  hasHintAndCorrection: true,
132
+ getAnswer,
133
+ getInstruction,
134
+ getHint,
135
+ getCorrection,
96
136
  };
@@ -1 +1 @@
1
- {"version":3,"file":"factorizeCanonicalFormWithSqrt.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/factorisation/factorizeCanonicalFormWithSqrt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,6BAA6B,CAAC;AAerC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAmGF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,WAAW,CAgBhE,CAAC"}
1
+ {"version":3,"file":"factorizeCanonicalFormWithSqrt.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/factorisation/factorizeCanonicalFormWithSqrt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAerC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA+HF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,WAAW,CAkBhE,CAAC"}
@@ -9,45 +9,75 @@ import { SquareNode } from "../../../../tree/nodes/operators/powerNode.js";
9
9
  import { SubstractNode } from "../../../../tree/nodes/operators/substractNode.js";
10
10
  import { alignTex } from "../../../../utils/latex/alignTex.js";
11
11
  //(x-a)^2-b^2 avec b irrational
12
- const getFactorizeCanonicalFormWithSqrtQuestion = () => {
13
- const affine = new Affine(1, randint(-10, 10, [0]));
14
- const b = SquareRootConstructor.randomIrreductible(10);
15
- const statement = new SubstractNode(new SquareNode(affine.toTree()), b.operand.toTree());
12
+ const getStatementNode = (identifiers) => {
13
+ const { a, bOperand } = identifiers;
14
+ const affine = new Affine(1, a);
15
+ const statement = new SubstractNode(new SquareNode(affine.toTree()), bOperand.toTree());
16
+ return statement;
17
+ };
18
+ const getStartStatement = (identifiers) => {
19
+ return getStatementNode(identifiers).toTex();
20
+ };
21
+ const getInstruction = (identifiers) => {
22
+ return `Factoriser :
23
+
24
+ $$
25
+ ${getStartStatement(identifiers)}
26
+ $$`;
27
+ };
28
+ const getAnswer = (identifiers) => {
29
+ const { a, bOperand } = identifiers;
30
+ const affine = new Affine(1, a);
31
+ const b = new SquareRoot(bOperand);
16
32
  const answer = new MultiplyNode(new SubstractNode(affine.toTree(), b.toTree()), new AddNode(affine.toTree(), b.toTree()))
17
33
  .simplify({ forbidFactorize: true })
18
34
  .toTex();
19
- const statementTex = statement.toTex();
20
- const question = {
21
- answer,
22
- instruction: `Factoriser : $${statementTex}$`,
23
- keys: ["x"],
24
- answerFormat: "tex",
25
- identifiers: { a: affine.b, bOperand: b.operand },
26
- hint: `Utilise l'identité remarquable
35
+ return answer;
36
+ };
37
+ const getHint = (identifiers) => {
38
+ return `Utilise l'identité remarquable
27
39
 
28
40
  $$
29
41
  a^2 - b^2 = (a-b)(a+b)
30
- $$`,
31
- correction: `
32
- On utilise l'identité remarquable
33
-
42
+ $$`;
43
+ };
44
+ const getCorrection = (identifiers) => {
45
+ const { a, bOperand } = identifiers;
46
+ const affine = new Affine(1, a);
47
+ const b = new SquareRoot(bOperand);
48
+ const statementTex = getStartStatement(identifiers);
49
+ const answer = getAnswer(identifiers);
50
+ return `On utilise l'identité remarquable
51
+
34
52
  $$
35
53
  a^2 - b^2=(a-b)(a+b)
36
54
  $$
37
-
55
+
38
56
  en prenant $a=${affine.toTex()}$ et $b=${b.toTree().toTex()}$ :
39
57
 
40
58
 
41
59
  ${alignTex([
42
- [
43
- statementTex,
44
- "=",
45
- new SubstractNode(new SquareNode(affine.toTree()), new SquareNode(b.toTree())).toTex(),
46
- ],
47
- ["", "=", answer],
48
- ])}
49
-
50
- `,
60
+ ["", statementTex],
61
+ [
62
+ "=",
63
+ new SubstractNode(new SquareNode(affine.toTree()), new SquareNode(b.toTree())).toTex(),
64
+ ],
65
+ ["=", answer],
66
+ ])}
67
+ `;
68
+ };
69
+ const getFactorizeCanonicalFormWithSqrtQuestion = () => {
70
+ const affine = new Affine(1, randint(-10, 10, [0]));
71
+ const b = SquareRootConstructor.randomIrreductible(10);
72
+ const identifiers = { a: affine.b, bOperand: b.operand };
73
+ const question = {
74
+ answer: getAnswer(identifiers),
75
+ instruction: getInstruction(identifiers),
76
+ keys: ["x"],
77
+ answerFormat: "tex",
78
+ identifiers,
79
+ hint: getHint(identifiers),
80
+ correction: getCorrection(identifiers),
51
81
  };
52
82
  return question;
53
83
  };
@@ -72,9 +102,7 @@ export const factorizeCanonicalFormWithSqrt = {
72
102
  id: "factorizeCanonicalFormWithSqrt",
73
103
  connector: "=",
74
104
  label: "Factoriser une expression du type $(x-a)^2-b^2$ avec $b$ irrationnel",
75
- levels: [],
76
105
  isSingleStep: true,
77
- sections: [],
78
106
  generator: (nb) => getDistinctQuestions(getFactorizeCanonicalFormWithSqrtQuestion, nb),
79
107
  qcmTimer: 60,
80
108
  freeTimer: 60,
@@ -83,4 +111,8 @@ export const factorizeCanonicalFormWithSqrt = {
83
111
  subject: "Mathématiques",
84
112
  hasHintAndCorrection: true,
85
113
  pdfOptions: { shouldSpreadPropositions: true },
114
+ getAnswer,
115
+ getInstruction,
116
+ getHint,
117
+ getCorrection,
86
118
  };
@@ -1 +1 @@
1
- {"version":3,"file":"barChartReading.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/barChartReading.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAiEF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC"}
1
+ {"version":3,"file":"barChartReading.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/dataRepresentations/barChartReading.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA0IF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC"}
@@ -3,6 +3,7 @@ import { getDistinctQuestions } from "../../../exercises/utils/getDistinctQuesti
3
3
  import { handleVEAError } from "../../../utils/errors/handleVEAError.js";
4
4
  //@ts-ignore
5
5
  import { D3Node } from "d3-node";
6
+ import katex from "katex";
6
7
  const getPropositions = (n, { answer }) => {
7
8
  const propositions = [];
8
9
  addValidProp(propositions, answer);
@@ -15,16 +16,65 @@ const getAnswer = (identifiers) => {
15
16
  return "";
16
17
  };
17
18
  const getInstruction = (identifiers) => {
18
- // uuid();
19
- // console.log(D3Node);
20
- const d3n = new D3Node({ styles: ".test {fill:#000;}" });
21
- d3n.createSVG().append("g");
22
- const a = d3n.svgString();
19
+ const options = { svg: true };
20
+ const d3n = new D3Node(options);
21
+ const d3 = d3n.d3;
22
+ const width = 600;
23
+ const height = 250;
24
+ const svg = d3n.createSVG(width, height);
25
+ // Define table structure
26
+ const rows = 3;
27
+ const cols = 5;
28
+ const cellWidth = 120;
29
+ const cellHeight = 50;
30
+ const startX = 50;
31
+ const startY = 50;
32
+ // Define table values
33
+ const headers = ["x", "-\\infty", "-2", "0", "+\\infty"];
34
+ const firstRow = ["f'(x)", "+", "0", "-", ""];
35
+ const secondRow = ["f(x)", "\\nearrow", "max", "\\searrow", ""];
36
+ // Draw table grid
37
+ for (let r = 0; r < rows; r++) {
38
+ for (let c = 0; c < cols; c++) {
39
+ svg
40
+ .append("rect")
41
+ .attr("x", startX + c * cellWidth)
42
+ .attr("y", startY + r * cellHeight)
43
+ .attr("width", cellWidth)
44
+ .attr("height", cellHeight)
45
+ .attr("stroke", "black")
46
+ .attr("fill", "black");
47
+ }
48
+ }
49
+ // Function to render LaTeX with KaTeX
50
+ const renderLatex = (formula) => katex.renderToString(formula, { throwOnError: false });
51
+ // Add LaTeX text using <foreignObject> for proper positioning
52
+ const addLatexText = (x, y, latex) => {
53
+ svg
54
+ .append("foreignObject")
55
+ .attr("x", x - cellWidth / 2)
56
+ .attr("y", y - cellHeight / 2)
57
+ .attr("width", cellWidth)
58
+ .attr("height", cellHeight)
59
+ .html(`<div xmlns="http://www.w3.org/1999/xhtml"
60
+ style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">
61
+ ${renderLatex(latex)}
62
+ </div>`);
63
+ };
64
+ // Insert header row
65
+ headers.forEach((text, i) => addLatexText(startX + i * cellWidth + cellWidth / 2, startY + 25, text));
66
+ // Insert first row (derivative sign changes)
67
+ firstRow.forEach((text, i) => addLatexText(startX + i * cellWidth + cellWidth / 2, startY + cellHeight + 25, text));
68
+ // Insert second row (function increasing/decreasing)
69
+ secondRow.forEach((text, i) => addLatexText(startX + i * cellWidth + cellWidth / 2, startY + 2 * cellHeight + 25, text));
70
+ const svgString = d3n.svgString();
23
71
  return `BBteeeezfst :
24
72
 
25
73
  ofzie
26
-
27
- ${a}
74
+ should read this
75
+ ${svgString}
76
+ should read this
77
+ zef
28
78
  `;
29
79
  };
30
80
  const getHint = (identifiers) => {
@@ -1 +1 @@
1
- {"version":3,"file":"lnDerivativeOne.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/lnDerivativeOne.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAiEF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAajD,CAAC"}
1
+ {"version":3,"file":"lnDerivativeOne.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/lnDerivativeOne.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqEF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC"}
@@ -11,7 +11,11 @@ const getInstruction = (identifiers) => {
11
11
  const { a, b } = identifiers;
12
12
  const polynom = new Polynomial([b, a]);
13
13
  const logTree = new LogNode(polynom.toTree());
14
- return `Déterminer la dérivée de la fonction : $f(x) = ${logTree.toTex()}$.`;
14
+ return `Déterminer la dérivée de la fonction $f$ définie par :
15
+
16
+ $$
17
+ f(x) = ${logTree.toTex()}
18
+ $$`;
15
19
  };
16
20
  const getAnswer = (identifiers) => {
17
21
  const { a, b } = identifiers;
@@ -72,4 +76,6 @@ export const lnDerivativeOne = {
72
76
  getPropositions,
73
77
  isAnswerValid,
74
78
  subject: "Mathématiques",
79
+ getAnswer,
80
+ getInstruction,
75
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sinCompositionDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/sinCompositionDerivation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAmEF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,CAc1D,CAAC"}
1
+ {"version":3,"file":"sinCompositionDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/sinCompositionDerivation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAkFF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,CAc1D,CAAC"}
@@ -5,16 +5,31 @@ import { CosNode } from "../../../../tree/nodes/functions/cosNode.js";
5
5
  import { OppositeNode } from "../../../../tree/nodes/functions/oppositeNode.js";
6
6
  import { SinNode } from "../../../../tree/nodes/functions/sinNode.js";
7
7
  import { MultiplyNode } from "../../../../tree/nodes/operators/multiplyNode.js";
8
- const getSinCompositionDerivationQuestion = () => {
9
- const affine = AffineConstructor.random(undefined, { excludes: [0] });
8
+ const getInstruction = (identifiers) => {
9
+ const { affineA, affineB } = identifiers;
10
+ const affine = new Affine(affineA, affineB);
10
11
  const fct = new SinNode(affine.toTree());
12
+ return `Déterminer la dérivée de la fonction $f$ définie sur $\\mathbb{R}$ par :
13
+
14
+ $$
15
+ f(x) = ${fct.toTex()}
16
+ $$`;
17
+ };
18
+ const getAnswer = (identifiers) => {
19
+ const { affineA, affineB } = identifiers;
20
+ const affine = new Affine(affineA, affineB);
11
21
  const deriv = new MultiplyNode(affine.a.toTree(), new CosNode(affine.toTree()));
22
+ return deriv.toTex();
23
+ };
24
+ const getSinCompositionDerivationQuestion = () => {
25
+ const affine = AffineConstructor.random(undefined, { excludes: [0] });
26
+ const identifiers = { affineA: affine.a, affineB: affine.b };
12
27
  const question = {
13
- answer: deriv.toTex(),
14
- instruction: `Déterminer la dérivée de la fonction $f(x) = ${fct.toTex()}$`,
28
+ answer: getAnswer(identifiers),
29
+ instruction: getInstruction(identifiers),
15
30
  keys: ["x", "sin", "cos", "tan"],
16
31
  answerFormat: "tex",
17
- identifiers: { affineA: affine.a, affineB: affine.b },
32
+ identifiers,
18
33
  };
19
34
  return question;
20
35
  };
@@ -43,13 +58,13 @@ export const sinCompositionDerivation = {
43
58
  id: "sinCompositionDerivation",
44
59
  connector: "=",
45
60
  label: "Dérivée de $\\sin(ax+b)$",
46
- levels: ["1reSpé"],
47
61
  isSingleStep: true,
48
- sections: ["Dérivation"],
49
62
  generator: (nb) => getDistinctQuestions(getSinCompositionDerivationQuestion, nb),
50
63
  qcmTimer: 60,
51
64
  freeTimer: 60,
52
65
  getPropositions,
53
66
  isAnswerValid,
54
67
  subject: "Mathématiques",
68
+ getInstruction,
69
+ getAnswer,
55
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sinSecondDegreeDerivative.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/sinSecondDegreeDerivative.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAarC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAkHF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAa3D,CAAC"}
1
+ {"version":3,"file":"sinSecondDegreeDerivative.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/derivative/sinSecondDegreeDerivative.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAkIF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAa3D,CAAC"}