math-exercises 3.0.5 → 3.0.7

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 (95) 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/calcul/ordering/decimalOrdering.d.ts.map +1 -1
  6. package/lib/exercises/math/calcul/ordering/decimalOrdering.js +3 -1
  7. package/lib/exercises/math/calcul/ordering/decimalOrderingNoRelatives.d.ts.map +1 -1
  8. package/lib/exercises/math/calcul/ordering/decimalOrderingNoRelatives.js +3 -1
  9. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.d.ts.map +1 -1
  10. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivityWithCoeff.js +0 -2
  11. package/lib/exercises/math/calculLitteral/equation/equationType1Exercise.d.ts.map +1 -1
  12. package/lib/exercises/math/calculLitteral/equation/equationType1Exercise.js +2 -3
  13. package/lib/exercises/math/calculLitteral/equation/fractionEquation.d.ts.map +1 -1
  14. package/lib/exercises/math/calculLitteral/equation/fractionEquation.js +66 -26
  15. package/lib/exercises/math/calculLitteral/factorisation/factorizeCanonicalFormWithSqrt.d.ts.map +1 -1
  16. package/lib/exercises/math/calculLitteral/factorisation/factorizeCanonicalFormWithSqrt.js +60 -28
  17. package/lib/exercises/math/dataRepresentations/barChartReading.d.ts.map +1 -1
  18. package/lib/exercises/math/dataRepresentations/barChartReading.js +63 -7
  19. package/lib/exercises/math/derivation/derivative/lnDerivativeOne.d.ts.map +1 -1
  20. package/lib/exercises/math/derivation/derivative/lnDerivativeOne.js +7 -1
  21. package/lib/exercises/math/derivation/derivative/sinCompositionDerivation.d.ts.map +1 -1
  22. package/lib/exercises/math/derivation/derivative/sinCompositionDerivation.js +22 -7
  23. package/lib/exercises/math/derivation/derivative/sinSecondDegreeDerivative.d.ts.map +1 -1
  24. package/lib/exercises/math/derivation/derivative/sinSecondDegreeDerivative.js +23 -8
  25. package/lib/exercises/math/functions/affines/affineExpressionFromTwoImages.js +1 -1
  26. package/lib/exercises/math/functions/basics/imageFunction.d.ts.map +1 -1
  27. package/lib/exercises/math/functions/basics/imageFunction.js +20 -12
  28. package/lib/exercises/math/functions/basics/imageFunctionGeogebra.d.ts.map +1 -1
  29. package/lib/exercises/math/functions/basics/imageFunctionGeogebra.js +0 -1
  30. package/lib/exercises/math/functions/trinoms/solveSecondDegreeEquationFromCano.d.ts.map +1 -1
  31. package/lib/exercises/math/functions/trinoms/solveSecondDegreeEquationFromCano.js +22 -9
  32. package/lib/exercises/math/geometry/parametric/extractPointFromParametricLine.d.ts.map +1 -1
  33. package/lib/exercises/math/geometry/parametric/extractPointFromParametricLine.js +2 -1
  34. package/lib/exercises/math/geometry/vectors/vectorNormCalculation.js +1 -1
  35. package/lib/exercises/math/percent/applyPercent.d.ts.map +1 -1
  36. package/lib/exercises/math/percent/applyPercent.js +65 -52
  37. package/lib/exercises/math/percent/evolutionToCM.d.ts.map +1 -1
  38. package/lib/exercises/math/percent/evolutionToCM.js +0 -2
  39. package/lib/exercises/math/percent/findProportion.d.ts.map +1 -1
  40. package/lib/exercises/math/percent/findProportion.js +35 -17
  41. package/lib/exercises/math/percent/findStartValueAfterEvolution.d.ts.map +1 -1
  42. package/lib/exercises/math/percent/findStartValueAfterEvolution.js +1 -0
  43. package/lib/exercises/math/percent/findTVA.d.ts.map +1 -1
  44. package/lib/exercises/math/percent/findTVA.js +1 -0
  45. package/lib/exercises/math/percent/globalPercent.d.ts.map +1 -1
  46. package/lib/exercises/math/percent/globalPercent.js +50 -32
  47. package/lib/exercises/math/probaStat/diceBasicProbas.d.ts.map +1 -1
  48. package/lib/exercises/math/probaStat/diceBasicProbas.js +1 -1
  49. package/lib/exercises/math/probaStat/probaFromTableNoContext.d.ts +1 -3
  50. package/lib/exercises/math/probaStat/probaFromTableNoContext.d.ts.map +1 -1
  51. package/lib/exercises/math/probaStat/probaFromTableNoContext.js +15 -12
  52. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts +1 -3
  53. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
  54. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +13 -11
  55. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts.map +1 -1
  56. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormula.js +0 -6
  57. package/lib/exercises/math/squareRoots/simpifySquareRoot.d.ts.map +1 -1
  58. package/lib/exercises/math/squareRoots/simpifySquareRoot.js +26 -6
  59. package/lib/exercises/math/squareRoots/squareRootEquation.d.ts.map +1 -1
  60. package/lib/exercises/math/squareRoots/squareRootEquation.js +19 -4
  61. package/lib/exercises/math/trigonometry/mainRemarkableValues.d.ts.map +1 -1
  62. package/lib/exercises/math/trigonometry/mainRemarkableValues.js +48 -23
  63. package/lib/exercises/math/trigonometry/remarkableValues.d.ts +2 -0
  64. package/lib/exercises/math/trigonometry/remarkableValues.d.ts.map +1 -1
  65. package/lib/exercises/math/trigonometry/remarkableValues.js +54 -25
  66. package/lib/index.d.ts +3 -6
  67. package/lib/index.d.ts.map +1 -1
  68. package/lib/latexTester.d.ts.map +1 -1
  69. package/lib/latexTester.js +6 -0
  70. package/lib/math/polynomials/trinom.d.ts +2 -0
  71. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  72. package/lib/math/polynomials/trinom.js +12 -0
  73. package/lib/pc/constants/molecularChemistry/molecule.js +0 -1
  74. package/lib/pc/constants/molecularChemistry/reaction.d.ts.map +1 -1
  75. package/lib/pc/constants/molecularChemistry/reaction.js +0 -3
  76. package/lib/pc/measure/measure.d.ts.map +1 -1
  77. package/lib/pc/measure/measure.js +0 -2
  78. package/lib/playground.d.ts.map +1 -1
  79. package/lib/tests/pdfExo.test.js +2 -2
  80. package/lib/tests/pdfs/buildPDFForExercise.d.ts.map +1 -1
  81. package/lib/tests/pdfs/buildPDFForExercise.js +7 -3
  82. package/lib/tests/questionTest.d.ts.map +1 -1
  83. package/lib/tests/questionTest.js +2 -2
  84. package/lib/tests/singleExo.test.js +2 -2
  85. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  86. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  87. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  88. package/lib/tree/nodes/functions/cosNode.js +5 -2
  89. package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
  90. package/lib/tree/nodes/functions/sinNode.js +5 -2
  91. package/lib/tree/nodes/sets/unionIntervalNode.d.ts.map +1 -1
  92. package/lib/tree/nodes/sets/unionIntervalNode.js +2 -2
  93. package/lib/tree/parsers/latexParser.d.ts.map +1 -1
  94. package/lib/tree/parsers/latexParser.js +10 -0
  95. package/package.json +3 -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":"decimalOrdering.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/ordering/decimalOrdering.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA8D1D,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC"}
1
+ {"version":3,"file":"decimalOrdering.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/ordering/decimalOrdering.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAgE1D,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC"}
@@ -39,7 +39,9 @@ const getDecimalOrderingQuestion = () => {
39
39
  answer,
40
40
  instruction: `Compléter par le bon symbole :
41
41
 
42
- $$${a.frenchify()}\\ ...... \\ ${b.frenchify()}$$`,
42
+ $$
43
+ ${a.frenchify()}\\ ...... \\ ${b.frenchify()}
44
+ $$`,
43
45
  keys: [],
44
46
  answerFormat: "tex",
45
47
  identifiers: { type, a, b },
@@ -1 +1 @@
1
- {"version":3,"file":"decimalOrderingNoRelatives.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/ordering/decimalOrderingNoRelatives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAgE1D,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAe5D,CAAC"}
1
+ {"version":3,"file":"decimalOrderingNoRelatives.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/ordering/decimalOrderingNoRelatives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAUT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAkE1D,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAe5D,CAAC"}
@@ -39,7 +39,9 @@ const getDecimalOrderingNoRelativesQuestion = () => {
39
39
  answer,
40
40
  instruction: `Compléter par le bon symbole :
41
41
 
42
- $$${a.frenchify()}\\ ...... \\ ${b.frenchify()}$$`,
42
+ $$
43
+ ${a.frenchify()}\\ ...... \\ ${b.frenchify()}
44
+ $$`,
43
45
  keys: [],
44
46
  answerFormat: "tex",
45
47
  identifiers: { type, a, b },
@@ -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":"equationType1Exercise.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equationType1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAcrC;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAmGF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAoBvD,CAAC"}
1
+ {"version":3,"file":"equationType1Exercise.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/equation/equationType1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAcrC;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAkGF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAoBvD,CAAC"}
@@ -36,7 +36,7 @@ const getCorrection = (identifiers) => {
36
36
  const tree = new EqualNode(affine, new NumberNode(b));
37
37
  const statementTree = tree.toTex();
38
38
  const answer = getAnswer(identifiers);
39
- return `Pour isoler $x$ à gauche, on effectue l'opération $${a > 0 ? `$-${a}$` : `+${Math.abs(a)}`}$ des deux côtés de l'équation :
39
+ return `Pour isoler $x$ à gauche, on effectue l'opération $${a > 0 ? `-${a}` : `+${Math.abs(a)}`}$ des deux côtés de l'équation :
40
40
 
41
41
  ${alignTex([
42
42
  [
@@ -45,8 +45,7 @@ ${alignTex([
45
45
  new EqualNode(new AddNode(affine, new NumberNode(-a)), new AddNode(b.toTree(), new NumberNode(-a))).toTex(),
46
46
  ],
47
47
  ["", "\\iff", answer],
48
- ])}
49
- `;
48
+ ])}`;
50
49
  };
51
50
  const getStartStatement = (identifiers) => {
52
51
  const { a, b } = identifiers;
@@ -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;AAuIF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAejD,CAAC"}
@@ -15,16 +15,72 @@ const getAnswer = (identifiers) => {
15
15
  return "";
16
16
  };
17
17
  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();
18
+ const newspapers = [
19
+ { name: "Le Figaro", sales: 320000 },
20
+ { name: "Les Échos", sales: 130000 },
21
+ { name: "La Croix", sales: 90000 },
22
+ { name: "L'Équipe", sales: 210000 },
23
+ { name: "Le Monde", sales: 330000 },
24
+ { name: "Le Parisien", sales: 270000 },
25
+ { name: "Libération", sales: 70000 },
26
+ { name: "L'Humanité", sales: 30000 },
27
+ ];
28
+ const width = 600, height = 400, margin = { top: 20, right: 30, bottom: 100, left: 60 };
29
+ const d3n = new D3Node();
30
+ const d3 = d3n.d3;
31
+ const svg = d3n.createSVG(width, height);
32
+ const xScale = d3
33
+ .scaleBand()
34
+ .domain(newspapers.map((d) => d.name))
35
+ .range([margin.left, width - margin.right])
36
+ .padding(0.1);
37
+ const yScale = d3
38
+ .scaleLinear()
39
+ .domain([0, d3.max(newspapers, (d) => d.sales)])
40
+ .nice()
41
+ .range([height - margin.bottom, margin.top]);
42
+ svg
43
+ .append("g")
44
+ .attr("transform", `translate(0,${height - margin.bottom})`)
45
+ .call(d3.axisBottom(xScale).tickSize(0))
46
+ .selectAll("text")
47
+ .style("text-anchor", "end")
48
+ .attr("transform", "rotate(-30)");
49
+ svg
50
+ .append("g")
51
+ .attr("transform", `translate(${margin.left},0)`)
52
+ .call(d3
53
+ .axisLeft(yScale)
54
+ .ticks(5)
55
+ .tickFormat((d) => d.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ")));
56
+ svg
57
+ .append("text")
58
+ .attr("x", margin.left)
59
+ .attr("y", margin.top)
60
+ .attr("text-anchor", "start")
61
+ .style("font-size", "14px")
62
+ .style("font-weight", "bold")
63
+ .text("Nombre d’exemplaires vendus");
64
+ svg
65
+ .selectAll(".bar")
66
+ .data(newspapers)
67
+ .enter()
68
+ .append("rect")
69
+ .attr("class", "bar")
70
+ .attr("x", (d) => xScale(d.name))
71
+ .attr("y", (d) => yScale(d.sales))
72
+ .attr("width", xScale.bandwidth())
73
+ .attr("height", (d) => height - margin.bottom - yScale(d.sales))
74
+ .attr("fill", "steelblue");
75
+ console.log(d3n.svgString());
76
+ const svgString = d3n.svgString();
23
77
  return `BBteeeezfst :
24
78
 
25
79
  ofzie
26
-
27
- ${a}
80
+ should read this
81
+ ${svgString}
82
+ should read this
83
+ zef
28
84
  `;
29
85
  };
30
86
  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"}