math-exercises 3.0.61 → 3.0.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/lib/exercises/math/calculLitteral/distributivity/simpleDistri.js +1 -1
  2. package/lib/exercises/math/calculLitteral/equation/equationSimpleSquare.js +3 -3
  3. package/lib/exercises/math/calculLitteral/systems/basicSystemResolution.js +4 -4
  4. package/lib/exercises/math/calculLitteral/systems/verifySystemSolution.d.ts.map +1 -1
  5. package/lib/exercises/math/calculLitteral/systems/verifySystemSolution.js +7 -9
  6. package/lib/exercises/math/conversion/aeraConversion.js +1 -1
  7. package/lib/exercises/math/conversion/capacityConversion.js +2 -2
  8. package/lib/exercises/math/derivation/tangent/derivativeTangentEquationReading.d.ts.map +1 -1
  9. package/lib/exercises/math/derivation/tangent/derivativeTangentEquationReading.js +17 -9
  10. package/lib/exercises/math/derivation/variations/thirdDegreeFunctionVariation.d.ts.map +1 -1
  11. package/lib/exercises/math/derivation/variations/thirdDegreeFunctionVariation.js +3 -0
  12. package/lib/exercises/math/functions/affines/interceptReading.js +1 -1
  13. package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts.map +1 -1
  14. package/lib/exercises/math/functions/affines/leadingCoefficient.js +8 -2
  15. package/lib/exercises/math/functions/affines/leadingCoefficientCalculV2.js +1 -1
  16. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLine.js +1 -1
  17. package/lib/exercises/math/geometry/cartesian/cartesianFromTwoPoints.d.ts.map +1 -1
  18. package/lib/exercises/math/geometry/cartesian/cartesianFromTwoPoints.js +12 -8
  19. package/lib/exercises/math/geometry/cartesian/cartesianFromVectorAndPoint.js +3 -3
  20. package/lib/exercises/math/geometry/cartesian/directionVector.js +1 -1
  21. package/lib/exercises/math/geometry/cartesian/directionVectorEquation.js +1 -1
  22. package/lib/exercises/math/geometry/cartesian/drawAlineInGGB.d.ts.map +1 -1
  23. package/lib/exercises/math/geometry/cartesian/drawAlineInGGB.js +3 -3
  24. package/lib/exercises/math/geometry/lines/cartesianEquationToReduced.js +5 -5
  25. package/lib/exercises/math/geometry/lines/cartesianEquationsIntersection.js +2 -2
  26. package/lib/exercises/math/geometry/lines/directorVectorFromAnother.js +1 -1
  27. package/lib/exercises/math/geometry/lines/directorVectorFromReductEquation.d.ts.map +1 -1
  28. package/lib/exercises/math/geometry/lines/directorVectorFromReductEquation.js +11 -6
  29. package/lib/exercises/math/geometry/lines/drawLineFromCartesianEquation.js +5 -5
  30. package/lib/exercises/math/geometry/lines/drawLineFromPointAndVector.js +3 -3
  31. package/lib/exercises/math/geometry/lines/findParallelLineFromCartesianEquation.js +3 -3
  32. package/lib/exercises/math/geometry/lines/findParallelLineFromReductEquation.js +1 -1
  33. package/lib/exercises/math/geometry/lines/isPointOnCartesianLine.js +2 -2
  34. package/lib/exercises/math/geometry/lines/isPointOnLine.d.ts.map +1 -1
  35. package/lib/exercises/math/geometry/lines/isPointOnLine.js +2 -2
  36. package/lib/exercises/math/geometry/lines/reductEquationFindY.d.ts.map +1 -1
  37. package/lib/exercises/math/geometry/lines/reductEquationFindY.js +12 -3
  38. package/lib/exercises/math/geometry/lines/reductEquationFromTwoPoints.js +3 -3
  39. package/lib/exercises/math/geometry/parametric/extractPointFromParametricLine.js +1 -1
  40. package/lib/exercises/math/geometry/perimeters/circleCircumference.d.ts.map +1 -1
  41. package/lib/exercises/math/geometry/perimeters/circleCircumference.js +8 -9
  42. package/lib/exercises/math/geometry/vectors/alignementViaColinearity.d.ts.map +1 -1
  43. package/lib/exercises/math/geometry/vectors/alignementViaColinearity.js +9 -5
  44. package/lib/exercises/math/geometry/vectors/lineFromDirectorVector.js +4 -4
  45. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.d.ts.map +1 -1
  46. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.js +0 -2
  47. package/lib/exercises/math/probaStat/stats1var/quartiles.d.ts.map +1 -1
  48. package/lib/exercises/math/probaStat/stats1var/quartiles.js +6 -7
  49. package/lib/exercises/math/python/conditionIf.d.ts +1 -1
  50. package/lib/exercises/math/python/conditionIf.d.ts.map +1 -1
  51. package/lib/exercises/math/python/conditionIf.js +29 -16
  52. package/lib/exercises/math/python/forLoop.d.ts.map +1 -1
  53. package/lib/exercises/math/python/forLoop.js +30 -18
  54. package/lib/exercises/math/python/inOutCalcul.d.ts.map +1 -1
  55. package/lib/exercises/math/python/inOutCalcul.js +25 -12
  56. package/lib/exercises/math/python/pyForLoop1Exercise.d.ts +4 -7
  57. package/lib/exercises/math/python/pyForLoop1Exercise.d.ts.map +1 -1
  58. package/lib/exercises/math/python/pyForLoop1Exercise.js +77 -118
  59. package/lib/exercises/math/python/pyNestedForLoopExercise.d.ts +0 -3
  60. package/lib/exercises/math/python/pyNestedForLoopExercise.d.ts.map +1 -1
  61. package/lib/exercises/math/python/pyNestedForLoopExercise.js +50 -51
  62. package/lib/exercises/math/python/pyWhileLoop1Exercise.d.ts +1 -3
  63. package/lib/exercises/math/python/pyWhileLoop1Exercise.d.ts.map +1 -1
  64. package/lib/exercises/math/python/pyWhileLoop1Exercise.js +70 -74
  65. package/lib/exercises/math/python/pythonFunctionTrinom.d.ts.map +1 -1
  66. package/lib/exercises/math/python/pythonFunctionTrinom.js +26 -13
  67. package/lib/exercises/math/python/whileLoop.d.ts.map +1 -1
  68. package/lib/exercises/math/python/whileLoop.js +30 -18
  69. package/lib/exercises/math/sequences/arithmetic/arithmeticExplicitFormulaUsage.js +1 -1
  70. package/lib/exercises/math/sequences/geometric/geometricExplicitFormulaUsage.js +1 -1
  71. package/lib/index.d.ts +12 -17
  72. package/lib/index.d.ts.map +1 -1
  73. package/lib/math/geometry/vector.js +1 -1
  74. package/lib/math/systems/generalSystem.js +5 -5
  75. package/package.json +1 -1
@@ -68,7 +68,7 @@ ${equal("y", add(multiply(a, "x"), fakeB))
68
68
  .toTex()}
69
69
  $$
70
70
 
71
- C'est donc cette équation qui représente une droite parallèle à $d$.
71
+ C'est donc cette équation qui est celle d'une droite parallèle à $d$.
72
72
  `;
73
73
  };
74
74
  const getFindParallelLineFromReductEquationQuestion = (ops) => {
@@ -40,7 +40,7 @@ $$
40
40
  Le point $${point.toTexWithCoords()}$ appartient-il à $d$ ?`;
41
41
  };
42
42
  const getHint = (identifiers) => {
43
- return `Remplace $x$ et $y$ dans l'équation de la droite par les coordonnées du point. Le point appartient à la droite si et seulement si le résultat est égal à $0$.`;
43
+ return `Remplace $x$ et $y$ dans le membre de gauche de l'équation cartésienne de la droite par les coordonnées du point. Le point appartient à la droite si et seulement si le résultat est égal à $0$.`;
44
44
  };
45
45
  const getCorrection = (identifiers) => {
46
46
  const { x, y } = identifiers;
@@ -49,7 +49,7 @@ const getCorrection = (identifiers) => {
49
49
  const equation = getCartesianEquation(identifiers);
50
50
  const detailed = equation.toDetailedEvaluation({ x: xNode, y: yNode });
51
51
  const simp = detailed.simplify();
52
- return `On remplace $x$ et $y$ dans l'équation de la droite par les coordonnées du point :
52
+ return `On remplace $x$ et $y$ dans le membre de gauche de l'équation cartésienne de la droite par les coordonnées du point :
53
53
 
54
54
  ${alignTex([
55
55
  ["", detailed.toTex()],
@@ -1 +1 @@
1
- {"version":3,"file":"isPointOnLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/isPointOnLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAoFF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAgB/C,CAAC"}
1
+ {"version":3,"file":"isPointOnLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/isPointOnLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAoFF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAiB/C,CAAC"}
@@ -23,13 +23,13 @@ const getInstruction = (identifiers) => {
23
23
  return `Le point $${point.toTexWithCoords()}$ appartient-il à la droite d'équation $${affine.toReducedEquation()}$ ?`;
24
24
  };
25
25
  const getHint = (identifiers) => {
26
- return `Remplace $x$ dans l'équation de la droite par l'abscisse du point. Le point appartient à la droite si et seulement si le résultat est égal à l'ordonnée du point.`;
26
+ return `Remplace $x$ par l'abscisse du point dans l'équation de la droite. Le point appartient à la droite si et seulement si le résultat est égal à l'ordonnée du point.`;
27
27
  };
28
28
  const getCorrection = (identifiers) => {
29
29
  const affine = new Affine(identifiers.affineA, identifiers.affineB);
30
30
  const affineTree = affine.toTree();
31
31
  const res = affine.calculate(identifiers.x).toTree().toTex();
32
- return `On remplace $x$ dans l'équation de la droite par l'abscisse du point :
32
+ return `On remplace $x$ par l'abscisse du point dans l'équation de la droite :
33
33
 
34
34
  ${alignTex([
35
35
  [
@@ -1 +1 @@
1
- {"version":3,"file":"reductEquationFindY.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/reductEquationFindY.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAM7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AAmGF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAmBrD,CAAC"}
1
+ {"version":3,"file":"reductEquationFindY.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/reductEquationFindY.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AAgHF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAmBrD,CAAC"}
@@ -3,7 +3,9 @@ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQue
3
3
  import { randint } from "../../../../math/utils/random/randint.js";
4
4
  import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
5
5
  import { add } from "../../../../tree/nodes/operators/addNode.js";
6
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
6
7
  import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
8
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
7
9
  import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
8
10
  import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
9
11
  const getEquation = (identifiers) => {
@@ -12,9 +14,16 @@ const getEquation = (identifiers) => {
12
14
  const b = reifyAlgebraic(bIds);
13
15
  return add(multiply(a, "x"), b).simplify({ forbidFactorize: true });
14
16
  };
15
- const getPropositions = (n, { answer }) => {
17
+ const getPropositions = (n, { answer, ...identifiers }) => {
16
18
  const propositions = [];
17
19
  addValidProp(propositions, answer);
20
+ const { aIds, bIds, xIds } = identifiers;
21
+ const a = reifyAlgebraic(aIds);
22
+ const b = reifyAlgebraic(bIds);
23
+ const x = reifyAlgebraic(xIds);
24
+ if (a.evaluate() !== 0) {
25
+ tryToAddWrongProp(propositions, frac(substract(x, b), a).simplify().toTex());
26
+ }
18
27
  while (propositions.length < n) {
19
28
  tryToAddWrongProp(propositions, randint(-10, 10) + "");
20
29
  }
@@ -38,12 +47,12 @@ $$
38
47
  Quelle est l'ordonnée du point d'abscisse $${x.toTex()}$ appartenant à $d$ ?`;
39
48
  };
40
49
  const getHint = (identifiers) => {
41
- return `Il suffit de remplacer $x$ par l'abscisse du point dans l'équation de la droite.`;
50
+ return `Remplace $x$ par l'abscisse du point dans l'équation réduite de la droite.`;
42
51
  };
43
52
  const getCorrection = (identifiers) => {
44
53
  const { aIds, bIds, xIds } = identifiers;
45
54
  const x = reifyAlgebraic(xIds);
46
- return `On remplace $x$ par l'abscisse du point dans l'équation de la droite :
55
+ return `On remplace $x$ par l'abscisse du point dans l'équation réduite de la droite :
47
56
 
48
57
  $$
49
58
  ${getEquation(identifiers).toDetailedEvaluation({ x: x }).toTex()}=${getAnswer(identifiers)}
@@ -16,7 +16,7 @@ const getCorrection = (identifiers) => {
16
16
  const aSimplified = a.simplify();
17
17
  const b = new SubstractNode(yA.toTree(), new MultiplyNode(a, xA.toTree())).simplify();
18
18
  const answer = getAnswer(identifiers);
19
- return `On calcule d'abord le taux d'accroissement $a$ :
19
+ return `On calcule d'abord le coefficient directeur $a$ :
20
20
 
21
21
  ${alignTex([
22
22
  ["a", "=", `\\frac{y_B-y_A}{x_B-x_A}`],
@@ -48,7 +48,7 @@ $$`;
48
48
  };
49
49
  const getInstruction = (identifiers) => {
50
50
  const { xA, yA, xB, yB } = identifiers;
51
- return `Soit $d$ une droite passant par les points $A(${xA};${yA})$ et $B(${xB};${yB})$.
51
+ return `Soit $d$ la droite passant par les points $A(${xA};${yA})$ et $B(${xB};${yB})$.
52
52
 
53
53
  Déterminer l'équation réduite de $d$.`;
54
54
  };
@@ -59,7 +59,7 @@ $$
59
59
  y = ax+b
60
60
  $$
61
61
 
62
- On peut calculer le coefficient directeur $a$ de $d$ en utilisant la formule :
62
+ Calcule le coefficient directeur $a$ de $d$ en utilisant la formule :
63
63
 
64
64
  $$
65
65
  a = \\frac{y_B-y_A}{x_B-x_A}
@@ -36,7 +36,7 @@ Donner les coordonnées d'un point appartenant à $d$.
36
36
  `;
37
37
  };
38
38
  const getHint = (identifiers) => {
39
- return `Il suffit de remplacer $t$ par une valeur afin d'obtenir les coordonnées d'un point de la droite.`;
39
+ return `Remplace $t$ par une valeur afin d'obtenir les coordonnées d'un point de la droite.`;
40
40
  };
41
41
  const getCorrection = (identifiers) => {
42
42
  const line = new ParametricLine(SpacePointConstructor.fromScalars(identifiers.startPoint), SpaceVectorConstructor.fromScalars(identifiers.vector));
@@ -1 +1 @@
1
- {"version":3,"file":"circleCircumference.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/perimeters/circleCircumference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAmGF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAarD,CAAC"}
1
+ {"version":3,"file":"circleCircumference.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/perimeters/circleCircumference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAiGF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAcrD,CAAC"}
@@ -6,9 +6,7 @@ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
6
6
  import { shuffle } from "../../../../utils/alea/shuffle.js";
7
7
  const getInstruction = (identifiers) => {
8
8
  const { coin, radius, diametre } = identifiers;
9
- return `Calculer la circonférence d'un cercle de ${coin ? "rayon " + `$${radius}$` : "diamètre " + `$${diametre}$`} cm.
10
-
11
- Donner une réponse arrondie au centième.`;
9
+ return `Calculer le périmètre d'un cercle de ${coin ? "rayon " + `$${radius}$` : "diamètre " + `$${diametre}$`} cm (arrondir au centième).`;
12
10
  };
13
11
  const getAnswer = (identifiers) => {
14
12
  const { coin, radius, diametre } = identifiers;
@@ -20,7 +18,7 @@ const getAnswer = (identifiers) => {
20
18
  return answerTex;
21
19
  };
22
20
  const getHint = (identifiers) => {
23
- return `La circonférence d'un cercle de rayon $r$ est donnée par :
21
+ return `Le périmètre d'un cercle de rayon $r$ est donnée par :
24
22
 
25
23
  $$
26
24
  C = 2\\pi r
@@ -29,7 +27,7 @@ $$`;
29
27
  const getCorrection = (identifiers) => {
30
28
  const { coin, radius, diametre } = identifiers;
31
29
  const isRadius = coin;
32
- return `La circonférence d'un cercle de ${isRadius ? "rayon $r$" : "diamètre $d$"} est donnée par :
30
+ return `Le périmètre d'un cercle de ${isRadius ? "rayon $r$" : "diamètre $d$"} est donnée par :
33
31
 
34
32
  $$
35
33
  C = ${isRadius ? "2\\pi r" : "\\pi\\times d"}
@@ -38,14 +36,14 @@ $$
38
36
  ${isRadius
39
37
  ? `Ici, on a $r = ${radius}$ cm.
40
38
 
41
- La circonférence est donc égale à :
39
+ Le périmètre est donc égale à :
42
40
 
43
41
  $$
44
42
  C = 2\\pi \\times ${radius} \\approx ${getAnswer(identifiers)}
45
43
  $$`
46
44
  : `Ici, on a $d = ${diametre}$ cm.
47
45
 
48
- La circonférence est donc égale à :
46
+ Le périmètre est donc égale à :
49
47
 
50
48
  $$
51
49
  C = \\pi \\times ${diametre} \\approx ${getAnswer(identifiers)}
@@ -75,7 +73,7 @@ const getPropositions = (n, { answer }) => {
75
73
  const propositions = [];
76
74
  addValidProp(propositions, answer);
77
75
  while (propositions.length < n) {
78
- tryToAddWrongProp(propositions, (round(Math.random() * 100, 2) + "\\text{cm}").replace(".", ","));
76
+ tryToAddWrongProp(propositions, round(Math.random() * 100, 2).frenchify() + "\\ \\text{cm}");
79
77
  }
80
78
  return shuffle(propositions);
81
79
  };
@@ -86,7 +84,7 @@ const isAnswerValid = (ans, { answer }) => {
86
84
  export const circleCircumference = {
87
85
  id: "circleCircumference",
88
86
  connector: "=",
89
- label: "Calculer la circonférence d'un cercle",
87
+ label: "Calculer le périmètre d'un cercle",
90
88
  isSingleStep: false,
91
89
  generator: (nb) => getDistinctQuestions(getCircleCircumference, nb),
92
90
  qcmTimer: 60,
@@ -96,4 +94,5 @@ export const circleCircumference = {
96
94
  subject: "Mathématiques",
97
95
  getQuestionFromIdentifiers,
98
96
  hasHintAndCorrection: true,
97
+ shouldHaveCalculator: true,
99
98
  };
@@ -1 +1 @@
1
- {"version":3,"file":"alignementViaColinearity.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/vectors/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;AA0HF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,CAa1D,CAAC"}
1
+ {"version":3,"file":"alignementViaColinearity.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/vectors/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"}
@@ -65,7 +65,11 @@ ${isAligned
65
65
  : `Puisque le déterminant n'est pas nul, les vecteurs ne sont pas colinéaires. Les points $A$, $B$ et $C$ ne sont donc pas alignés.`}`;
66
66
  };
67
67
  const getAlignementViaColinearityQuestion = () => {
68
- const points = PointConstructor.randomDifferent(2, { names: ["A", "B"] });
68
+ const xA = randint(-10, 11);
69
+ const yA = randint(-10, 11);
70
+ const xB = randint(-10, 11, [xA]);
71
+ const yB = randint(-10, 11, [yA]);
72
+ const points = [new Point("A", xA, yA), new Point("B", xB, yB)];
69
73
  const AB = VectorConstructor.fromPoints(points[0], points[1]);
70
74
  let C;
71
75
  const isAligned = coinFlip();
@@ -79,11 +83,11 @@ const getAlignementViaColinearityQuestion = () => {
79
83
  } while (AB.isColinear(VectorConstructor.fromPoints(points[0], C)));
80
84
  }
81
85
  const identifiers = {
82
- xA: points[0].x.evaluate({}),
83
- xB: points[1].x.evaluate({}),
86
+ xA,
87
+ xB,
84
88
  xC: C.x.evaluate({}),
85
- yA: points[0].y.evaluate({}),
86
- yB: points[1].y.evaluate({}),
89
+ yA,
90
+ yB,
87
91
  yC: C.y.evaluate({}),
88
92
  };
89
93
  return getQuestionFromIdentifiers(identifiers);
@@ -15,7 +15,7 @@ const getInstruction = (identifiers) => {
15
15
  const { aX, aY, uX, uY } = identifiers;
16
16
  const u = new Vector("u", uX.toTree(), uY.toTree());
17
17
  const A = new Point("A", aX, aY);
18
- const instruction = `Soit $d$ une droite de vecteur directeur $${u.toTexWithCoords()}$ passant par le point $${A.toTexWithCoords()}$.
18
+ const instruction = `Soit $d$ la droite de vecteur directeur $${u.toTexWithCoords()}$ passant par le point $${A.toTexWithCoords()}$.
19
19
 
20
20
  Déterminer l'équation réduite de la droite $d$.`;
21
21
  return instruction;
@@ -34,9 +34,9 @@ const getAnswer = (identifiers) => {
34
34
  return correctAnswer.toTex();
35
35
  };
36
36
  const getHint = (identifiers) => {
37
- return `On cherche d'abord le coefficient directeur $a$ : pour cela, on cherche un vecteur colinéaire à $\\overrightarrow{u}$ d'abscisse $1$. L'ordonnée de ce vecteur est alors le coefficient directeur de $d$.
37
+ return `Cherche d'abord le coefficient directeur $a$ : pour cela, détermine un vecteur colinéaire à $\\overrightarrow{u}$ d'abscisse $1$. L'ordonnée de ce vecteur est alors le coefficient directeur de $d$.
38
38
 
39
- Puis, on détermine l'ordonnée à l'origine $b$ en utilisant le fait que le point $A$ appartient à $d$.`;
39
+ Puis, détermine l'ordonnée à l'origine $b$ en utilisant le fait que le point $A$ appartient à $d$.`;
40
40
  };
41
41
  const getCorrection = (identifiers) => {
42
42
  const { aX, aY, uX, uY } = identifiers;
@@ -44,7 +44,7 @@ const getCorrection = (identifiers) => {
44
44
  const A = new Point("A", aX, aY);
45
45
  const unit = u.toUnited();
46
46
  const xMonom = multiply(unit.y, A.x);
47
- const xMonomSimp = xMonom.simplify({ forceDistributeFractions: true });
47
+ const xMonomSimp = xMonom.simplify();
48
48
  return `Puisque $${u.toTexWithCoords()}$ est un vecteur directeur de $d$, tout vecteur colinéaire à $${u.toTex()}$ est également un vecteur directeur de $d$.
49
49
 
50
50
  Le vecteur de coordonnées $${unit
@@ -1 +1 @@
1
- {"version":3,"file":"volumeOfPyramidWithTriangleBase.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB,EAAE,aAAa,CAAC;CACnC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA0MF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAcjE,CAAC"}
1
+ {"version":3,"file":"volumeOfPyramidWithTriangleBase.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB,EAAE,aAAa,CAAC;CACnC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAwMF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAcjE,CAAC"}
@@ -21,9 +21,7 @@ const pythagoreTriplet = [
21
21
  [16, 63, 65],
22
22
  ];
23
23
  const getVolumeOfPyramidWithTriangleBaseQuestion = () => {
24
- // const exercise = generateExercise();
25
24
  const h = randint(3, 21);
26
- // const baseOfPyramidSides = exercise.baseOfPyramidSides;
27
25
  const rectTriangle = random(pythagoreTriplet);
28
26
  const ABSide = rectTriangle[0];
29
27
  const ACSide = rectTriangle[1];
@@ -1 +1 @@
1
- {"version":3,"file":"quartiles.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/quartiles.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAWT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AA2FF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,WAAW,CAY3C,CAAC"}
1
+ {"version":3,"file":"quartiles.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/quartiles.ts"],"names":[],"mappings":"AASA,OAAO,EACL,QAAQ,EAWT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAsFF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,WAAW,CAY3C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { randint } from "../../../../math/utils/random/randint.js";
2
+ import { firstQuartile, thirdQuartile, } from "../../../../math/utils/stats/quartiles.js";
2
3
  import { shuffle } from "../../../../utils/alea/shuffle.js";
3
4
  import { dollarize } from "../../../../utils/latex/dollarize.js";
4
5
  import { mdTable } from "../../../../utils/markdown/mdTable.js";
@@ -16,13 +17,11 @@ Calculer le ${randomQuartile === 0 ? "premier" : "troisième"} quartile de cette
16
17
  };
17
18
  const getAnswer = (identifiers) => {
18
19
  const { randomValues, randomEffectives, randomQuartile } = identifiers;
19
- const n = randomEffectives.reduce((sum, value) => sum + value, 0);
20
- const firstQuartileIndex = Math.round(n / 4 + 0.49);
21
- const thirdQuartileIndex = Math.round((3 * n) / 4 + 0.49);
22
- const firstQuartile = randomValues[firstQuartileIndex - 1];
23
- const thirdQuartile = randomValues[thirdQuartileIndex - 1];
24
- const answer = (randomQuartile === 0 ? firstQuartile : thirdQuartile) + "";
25
- return answer;
20
+ if (randomQuartile === 0) {
21
+ const first = firstQuartile(randomValues, randomEffectives);
22
+ return first.frenchify();
23
+ }
24
+ return thirdQuartile(randomValues, randomEffectives).frenchify();
26
25
  };
27
26
  const getQuartiles = () => {
28
27
  const getRandomUniqueValues = (count, min, max) => {
@@ -2,7 +2,7 @@ import { Exercise } from "../../../exercises/exercise.js";
2
2
  type Identifiers = {
3
3
  a: number;
4
4
  b: number;
5
- opresult: number;
5
+ opName: string;
6
6
  condition: string;
7
7
  };
8
8
  export declare const conditionIf: Exercise<Identifiers>;
@@ -1 +1 @@
1
- {"version":3,"file":"conditionIf.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/conditionIf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAiEF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAY7C,CAAC"}
1
+ {"version":3,"file":"conditionIf.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/conditionIf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CAGnB,CAAC;AAgFF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAW7C,CAAC"}
@@ -7,37 +7,51 @@ const operations = [
7
7
  { name: "*", func: (x, step) => x * step },
8
8
  { name: "//", func: (x, step) => Math.floor(x / step) },
9
9
  ];
10
- const getConditionIfQuestion = () => {
11
- const a = randint(0, 10, [0, 1]);
12
- const b = randint(0, 10, [0, 1]);
13
- const opIndex = randint(0, operations.length);
14
- const operation = operations[opIndex];
10
+ const getAnswer = (identifiers) => {
11
+ const { a, b, opName, condition } = identifiers;
12
+ const operation = operations.find((op) => op.name === opName);
15
13
  const opresult = operation.func(a, b);
16
- // Choisir aléatoirement entre les deux conditions
17
- const condition = randint(0, 2) === 0 ? "a <= b" : "b <= a";
18
14
  const answer = (condition === "a <= b" ? opresult <= b : opresult >= b)
19
15
  ? b
20
16
  : opresult;
21
- const question = {
22
- answer: answer.toString(),
23
- instruction: `Quel sera l'affichage du code suivant ?
17
+ return answer.frenchify();
18
+ };
19
+ const getInstruction = (identifiers) => {
20
+ const { a, b, opName, condition } = identifiers;
21
+ return `Quel sera l'affichage du code suivant ?
24
22
  \`\`\`
25
23
  a = ${a}
26
24
  b = ${b}
27
- a = a ${operation.name} b
25
+ a = a ${opName} b
28
26
  if ${condition} :
29
27
  a = b
30
28
  print(a)
31
29
  \`\`\`
32
- `,
30
+ `;
31
+ };
32
+ const getConditionIfQuestion = () => {
33
+ const a = randint(0, 10, [0, 1]);
34
+ const b = randint(0, 10, [0, 1]);
35
+ const opIndex = randint(0, operations.length);
36
+ const operation = operations[opIndex];
37
+ const condition = randint(0, 2) === 0 ? "a <= b" : "b <= a";
38
+ const identifiers = { a, b, opName: operation.name, condition };
39
+ return getQuestionFromIdentifiers(identifiers);
40
+ };
41
+ const getQuestionFromIdentifiers = (identifiers) => {
42
+ const question = {
43
+ answer: getAnswer(identifiers),
44
+ instruction: getInstruction(identifiers),
33
45
  keys: ["a", "b", "equal"],
34
46
  answerFormat: "tex",
35
- identifiers: { a, b, opresult, condition },
47
+ identifiers,
36
48
  };
37
49
  return question;
38
50
  };
39
- const getPropositions = (n, { answer, a, b, opresult }) => {
51
+ const getPropositions = (n, { answer, a, b, opName }) => {
40
52
  const propositions = [];
53
+ const operation = operations.find((op) => op.name === opName);
54
+ const opresult = operation.func(a, b);
41
55
  addValidProp(propositions, answer);
42
56
  tryToAddWrongProp(propositions, a.toString());
43
57
  tryToAddWrongProp(propositions, b.toString());
@@ -53,13 +67,12 @@ const isAnswerValid = (ans, { answer }) => {
53
67
  export const conditionIf = {
54
68
  id: "conditionIf",
55
69
  label: "Condition if $1$",
56
- levels: ["2nde"],
57
70
  isSingleStep: true,
58
- sections: ["Python"],
59
71
  generator: (nb) => getDistinctQuestions(getConditionIfQuestion, nb),
60
72
  qcmTimer: 60,
61
73
  freeTimer: 60,
62
74
  getPropositions,
63
75
  isAnswerValid,
64
76
  subject: "Mathématiques",
77
+ getQuestionFromIdentifiers,
65
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"forLoop.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/forLoop.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAwFF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAYzC,CAAC"}
1
+ {"version":3,"file":"forLoop.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/forLoop.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAwGF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAWzC,CAAC"}
@@ -7,30 +7,43 @@ const operations = [
7
7
  { name: "*", func: (x, step) => x * step },
8
8
  // { name: "//", func: (x: number, step: number) => Math.floor(x / step) }
9
9
  ];
10
- const getForLoopQuestion = () => {
11
- const initialValue = randint(-10, 10, [0, 1]);
12
- const opIndex = randint(0, operations.length);
10
+ const getInstruction = (identifiers) => {
11
+ const { initialValue, step, iterations, opIndex } = identifiers;
13
12
  const op = operations[opIndex];
14
- const step = randint(0, 10, [0, 1]);
15
- const iterations = randint(1, 6, [1]);
16
- let value = initialValue;
17
- for (let i = 0; i < iterations; i++) {
18
- value = op.func(value, step);
19
- }
20
- const answer = value.toString();
21
- const question = {
22
- answer: answer,
23
- instruction: `Qu'affichera le programme suivant ?
13
+ return `Qu'affichera le programme suivant ?
24
14
  \`\`\`
25
15
  x = ${initialValue}
26
16
  for i in range(0, ${iterations}):
27
17
  x = x ${op.name} ${step}
28
18
  print(x)
29
19
  \`\`\`
30
- `,
20
+ `;
21
+ };
22
+ const getAnswer = (identifiers) => {
23
+ const { initialValue, step, iterations, opIndex } = identifiers;
24
+ const op = operations[opIndex];
25
+ let value = initialValue;
26
+ for (let i = 0; i < iterations; i++) {
27
+ value = op.func(value, step);
28
+ }
29
+ const answer = value.toString();
30
+ return answer;
31
+ };
32
+ const getForLoopQuestion = () => {
33
+ const initialValue = randint(-10, 10, [0, 1]);
34
+ const opIndex = randint(0, operations.length);
35
+ const step = randint(0, 10, [0, 1]);
36
+ const iterations = randint(1, 6, [1]);
37
+ const identifiers = { initialValue, step, iterations, opIndex };
38
+ return getQuestionFromIdentifiers(identifiers);
39
+ };
40
+ const getQuestionFromIdentifiers = (identifiers) => {
41
+ const question = {
42
+ answer: getAnswer(identifiers),
43
+ instruction: getInstruction(identifiers),
31
44
  keys: ["a", "equal"],
32
45
  answerFormat: "tex",
33
- identifiers: { initialValue, step, iterations, opIndex },
46
+ identifiers,
34
47
  };
35
48
  return question;
36
49
  };
@@ -74,14 +87,13 @@ const isAnswerValid = (ans, { answer }) => {
74
87
  };
75
88
  export const forLoop = {
76
89
  id: "forLoop",
77
- label: "Boucle for $2$",
78
- levels: ["2nde"],
90
+ label: "Boucle for",
79
91
  isSingleStep: true,
80
- sections: ["Python"],
81
92
  generator: (nb) => getDistinctQuestions(getForLoopQuestion, nb),
82
93
  qcmTimer: 60,
83
94
  freeTimer: 60,
84
95
  getPropositions,
85
96
  isAnswerValid,
86
97
  subject: "Mathématiques",
98
+ getQuestionFromIdentifiers,
87
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"inOutCalcul.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/inOutCalcul.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAmEF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAY7C,CAAC"}
1
+ {"version":3,"file":"inOutCalcul.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/inOutCalcul.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAqFF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAW7C,CAAC"}
@@ -7,19 +7,20 @@ const operations = [
7
7
  { name: "*", func: (a, b) => a * b },
8
8
  { name: "//", func: (a, b) => Math.floor(a / b) },
9
9
  ];
10
- const getInOutCalculQuestion = () => {
11
- const a = randint(-10, 10);
12
- const b = randint(-10, 10);
13
- const id1 = randint(0, operations.length);
14
- const id2 = randint(0, operations.length);
10
+ const getAnswer = (identifiers) => {
11
+ const { a, b, id1, id2 } = identifiers;
15
12
  const op1 = operations[id1];
16
13
  const op2 = operations[id2];
17
14
  const c = op1.func(a, b);
18
15
  const d = op2.func(a, c);
19
16
  const answer = d.toString();
20
- const question = {
21
- answer: answer,
22
- instruction: `Qu'affichera le programme suivant ?
17
+ return answer;
18
+ };
19
+ const getInstruction = (identifiers) => {
20
+ const { a, b, id1, id2 } = identifiers;
21
+ const op1 = operations[id1];
22
+ const op2 = operations[id2];
23
+ return `Qu'affichera le programme suivant ?
23
24
  \`\`\`
24
25
  a = ${a}
25
26
  b = ${b}
@@ -27,10 +28,23 @@ b = a ${op1.name} b
27
28
  a = a ${op2.name} b
28
29
  print(a)
29
30
  \`\`\`
30
- `,
31
+ `;
32
+ };
33
+ const getInOutCalculQuestion = () => {
34
+ const a = randint(-10, 10);
35
+ const b = randint(-10, 10);
36
+ const id1 = randint(0, operations.length);
37
+ const id2 = randint(0, operations.length);
38
+ const identifiers = { a, b, id1, id2 };
39
+ return getQuestionFromIdentifiers(identifiers);
40
+ };
41
+ const getQuestionFromIdentifiers = (identifiers) => {
42
+ const question = {
43
+ answer: getAnswer(identifiers),
44
+ instruction: getInstruction(identifiers),
31
45
  keys: ["a", "b", "equal"],
32
46
  answerFormat: "tex",
33
- identifiers: { a, b, id1, id2 },
47
+ identifiers,
34
48
  };
35
49
  return question;
36
50
  };
@@ -56,13 +70,12 @@ const isAnswerValid = (ans, { answer }) => {
56
70
  export const inOutCalcul = {
57
71
  id: "inOutCalcul",
58
72
  label: "Attribution de variables $1$",
59
- levels: ["2nde"],
60
73
  isSingleStep: true,
61
- sections: ["Python"],
62
74
  generator: (nb) => getDistinctQuestions(getInOutCalculQuestion, nb),
63
75
  qcmTimer: 60,
64
76
  freeTimer: 60,
65
77
  getPropositions,
66
78
  isAnswerValid,
67
79
  subject: "Mathématiques",
80
+ getQuestionFromIdentifiers,
68
81
  };
@@ -1,12 +1,9 @@
1
1
  import { Exercise } from "../../../exercises/exercise.js";
2
2
  type Identifiers = {
3
- exercise: PyExoVariables;
4
- };
5
- type PyExoVariables = {
6
- a: number;
7
- nbIteration: number;
8
- op: string;
9
- b?: number;
3
+ initialValue: number;
4
+ step: number;
5
+ iterations: number;
6
+ opIndex: number;
10
7
  };
11
8
  export declare const pythonForLoop1Exercise: Exercise<Identifiers>;
12
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"pyForLoop1Exercise.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/pyForLoop1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAOF,KAAK,cAAc,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AA6KF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAaxD,CAAC"}
1
+ {"version":3,"file":"pyForLoop1Exercise.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/pyForLoop1Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0GF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAWxD,CAAC"}