math-exercises 3.0.131 → 3.0.133
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.
- package/lib/exercises/exercise.d.ts +37 -30
- package/lib/exercises/exercise.d.ts.map +1 -1
- package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.d.ts +2 -2
- package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.d.ts.map +1 -1
- package/lib/exercises/math/calcul/mentalCaluls/mentalProgramSolve.js +44 -40
- package/lib/exercises/math/calcul/ordering/compareA10N.d.ts +1 -1
- package/lib/exercises/math/calcul/ordering/compareA10N.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/compareA10N.js +15 -10
- package/lib/exercises/math/calcul/ordering/compareFracABWithFracAPlusCBPlusC.d.ts.map +1 -1
- package/lib/exercises/math/calcul/ordering/compareFracABWithFracAPlusCBPlusC.js +0 -1
- package/lib/exercises/math/calcul/ordering/compareFracAndDec.d.ts +1 -1
- package/lib/exercises/math/calcul/ordering/compareFracAndDec.js +1 -1
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.js +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.js +2 -0
- package/lib/exercises/math/calcul/rounding/estimatePow10NPlusPow10MinusN.d.ts.map +1 -1
- package/lib/exercises/math/calcul/rounding/estimatePow10NPlusPow10MinusN.js +8 -6
- package/lib/exercises/math/calcul/rounding/rounding.d.ts +1 -1
- package/lib/exercises/math/calcul/rounding/rounding.d.ts.map +1 -1
- package/lib/exercises/math/calcul/rounding/rounding.js +7 -6
- package/lib/exercises/math/calculLitteral/equation/equationFromProblem.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/equation/equationFromProblem.js +8 -9
- package/lib/exercises/math/calculLitteral/simplifying/compareATimes0.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/simplifying/compareATimes0.js +4 -4
- package/lib/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/writing/writeLitExpFromFrenchExp.js +15 -60
- package/lib/exercises/math/conversion/kmPerMinToKmPerHourConversion.js +14 -10
- package/lib/exercises/math/conversion/lengthConversion.d.ts.map +1 -1
- package/lib/exercises/math/conversion/lengthConversion.js +1 -0
- package/lib/exercises/math/conversion/prefixToNumber.d.ts +0 -2
- package/lib/exercises/math/conversion/prefixToNumber.d.ts.map +1 -1
- package/lib/exercises/math/conversion/prefixToNumber.js +31 -24
- package/lib/exercises/math/conversion/secondsToHours.js +1 -1
- package/lib/exercises/math/functions/affines/drawAffineFromPointAndLeadingCoeff.js +2 -2
- package/lib/exercises/math/functions/affines/drawAffineFromProgCalc.d.ts +1 -1
- package/lib/exercises/math/functions/affines/drawAffineFromProgCalc.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/drawAffineFromProgCalc.js +4 -5
- package/lib/exercises/math/functions/affines/leadingCoefficient.js +1 -1
- package/lib/exercises/math/geometry/angles/anglesUsingIsParallel.d.ts +1 -1
- package/lib/exercises/math/geometry/angles/anglesUsingIsParallel.d.ts.map +1 -1
- package/lib/exercises/math/geometry/angles/anglesUsingIsParallel.js +10 -11
- package/lib/exercises/math/geometry/angles/isParallelUsingAngles.d.ts +1 -1
- package/lib/exercises/math/geometry/angles/isParallelUsingAngles.d.ts.map +1 -1
- package/lib/exercises/math/geometry/angles/isParallelUsingAngles.js +8 -8
- package/lib/exercises/math/geometry/cartesian/index.d.ts +1 -0
- package/lib/exercises/math/geometry/cartesian/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/cartesian/index.js +1 -0
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLine.d.ts +6 -9
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLine.js +60 -137
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLineV2.d.ts +16 -0
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLineV2.d.ts.map +1 -0
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnSemiLineV2.js +213 -0
- package/lib/exercises/math/percent/evolutions/globalPercent.d.ts +4 -1
- package/lib/exercises/math/percent/evolutions/globalPercent.d.ts.map +1 -1
- package/lib/exercises/math/percent/evolutions/globalPercent.js +37 -21
- package/lib/exercises/math/percent/findProportion.d.ts.map +1 -1
- package/lib/exercises/math/percent/findProportion.js +24 -26
- package/lib/exercises/math/percent/percentToDecimal.d.ts +4 -1
- package/lib/exercises/math/percent/percentToDecimal.d.ts.map +1 -1
- package/lib/exercises/math/percent/percentToDecimal.js +55 -35
- package/lib/exercises/math/powers/calculateNegativePower.d.ts +1 -1
- package/lib/exercises/math/powers/calculateNegativePower.d.ts.map +1 -1
- package/lib/exercises/math/powers/calculateNegativePower.js +17 -10
- package/lib/exercises/math/probaStat/basicProbas/possibleValuesForProba.js +2 -2
- package/lib/exercises/math/probaStat/basicStats/calculateFrequencyInList.d.ts +5 -1
- package/lib/exercises/math/probaStat/basicStats/calculateFrequencyInList.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/basicStats/calculateFrequencyInList.js +76 -12
- package/lib/exercises/math/probaStat/conditionalProbaWriteFromFrench.js +7 -7
- package/lib/exercises/math/probaStat/probaAsSumOfProbas.d.ts +2 -3
- package/lib/exercises/math/probaStat/probaAsSumOfProbas.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/probaAsSumOfProbas.js +60 -95
- package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts +12 -5
- package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/probaFromTableWithContext.js +354 -94
- package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts +4 -1
- package/lib/exercises/math/probaStat/stats1var/medianWithList.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats1var/medianWithList.js +43 -23
- package/lib/exercises/math/probaStat/stats1var/plausibilityOfAverage.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats1var/plausibilityOfAverage.js +70 -23
- package/lib/exercises/math/probaStat/stats1var/quartilesList.d.ts +1 -1
- package/lib/exercises/math/probaStat/stats1var/quartilesList.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats1var/quartilesList.js +4 -4
- package/lib/exercises/pc/index.d.ts +0 -1
- package/lib/exercises/pc/index.d.ts.map +1 -1
- package/lib/exercises/pc/index.js +0 -1
- package/lib/exercises/pc/motion/averageSpeed.d.ts +0 -2
- package/lib/exercises/pc/motion/averageSpeed.d.ts.map +1 -1
- package/lib/exercises/pc/motion/averageSpeed.js +40 -45
- package/lib/exercises/pc/optics/lensFormula.d.ts +1 -2
- package/lib/exercises/pc/optics/lensFormula.d.ts.map +1 -1
- package/lib/exercises/pc/optics/lensFormula.js +7 -10
- package/lib/exercises/pc/weight/calculateWeight.d.ts +1 -3
- package/lib/exercises/pc/weight/calculateWeight.d.ts.map +1 -1
- package/lib/exercises/pc/weight/calculateWeight.js +38 -30
- package/lib/index.d.ts +932 -948
- package/lib/index.d.ts.map +1 -1
- package/lib/math/progCalc/progCalc.d.ts +2 -2
- package/lib/math/progCalc/progCalc.d.ts.map +1 -1
- package/lib/math/progCalc/progCalc.js +4 -11
- package/lib/playgroundUtils.d.ts +3 -0
- package/lib/playgroundUtils.d.ts.map +1 -0
- package/lib/playgroundUtils.js +13 -0
- package/lib/server.js +121 -0
- package/lib/tests/exoTest.d.ts.map +1 -1
- package/lib/tests/exoTest.js +13 -0
- package/lib/types/keyIds.d.ts +1 -1
- package/lib/types/keyIds.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
2
2
|
import { median } from "../../../../math/utils/stats/median.js";
|
|
3
|
-
import {
|
|
3
|
+
import { random } from "../../../../utils/alea/random.js";
|
|
4
|
+
import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../exercise.js";
|
|
4
5
|
import { getDistinctQuestions } from "../../../utils/getDistinctQuestions.js";
|
|
5
6
|
const getInstruction = (identifiers) => {
|
|
6
7
|
const { sortedValues } = identifiers;
|
|
@@ -16,15 +17,6 @@ const getAnswer = (identifiers) => {
|
|
|
16
17
|
const { sortedValues } = identifiers;
|
|
17
18
|
return median(sortedValues).frenchify();
|
|
18
19
|
};
|
|
19
|
-
const getMedianList = () => {
|
|
20
|
-
const randomValues = [];
|
|
21
|
-
const length = randint(6, 10);
|
|
22
|
-
for (let i = 0; i < length; i++)
|
|
23
|
-
randomValues.push(randint(1, 20));
|
|
24
|
-
const sortedValues = randomValues.sort((a, b) => a - b);
|
|
25
|
-
const identifiers = { sortedValues };
|
|
26
|
-
return getQuestionFromIdentifiers(identifiers);
|
|
27
|
-
};
|
|
28
20
|
const getHint = () => {
|
|
29
21
|
return `La médiane est la valeur centrale de la série : il y a autant de valeur inférieures à la médiane que de valeurs supérieures à la médiane.`;
|
|
30
22
|
};
|
|
@@ -40,18 +32,6 @@ Puisque $\\frac{${total}}{2} = ${rank.frenchify()}$, la médiane est ${rank % 1
|
|
|
40
32
|
|
|
41
33
|
La médiane est donc $${getAnswer(identifiers)}$.`;
|
|
42
34
|
};
|
|
43
|
-
const getQuestionFromIdentifiers = (identifiers) => {
|
|
44
|
-
const question = {
|
|
45
|
-
instruction: getInstruction(identifiers),
|
|
46
|
-
answer: getAnswer(identifiers),
|
|
47
|
-
keys: [],
|
|
48
|
-
answerFormat: "tex",
|
|
49
|
-
identifiers,
|
|
50
|
-
hint: getHint(identifiers),
|
|
51
|
-
correction: getCorrection(identifiers),
|
|
52
|
-
};
|
|
53
|
-
return question;
|
|
54
|
-
};
|
|
55
35
|
const getPropositions = (n, { answer, sortedValues }) => {
|
|
56
36
|
const propositions = [];
|
|
57
37
|
addValidProp(propositions, answer);
|
|
@@ -64,12 +44,52 @@ const getPropositions = (n, { answer, sortedValues }) => {
|
|
|
64
44
|
const isAnswerValid = (ans, { answer }) => {
|
|
65
45
|
return ans === answer;
|
|
66
46
|
};
|
|
47
|
+
const getMedianList = (optsIn) => {
|
|
48
|
+
const arrayedOptions = optsIn ?? optsDefault;
|
|
49
|
+
const opts = {
|
|
50
|
+
nbValues: random(arrayedOptions.nbValues),
|
|
51
|
+
};
|
|
52
|
+
const randomValues = [];
|
|
53
|
+
const length = Number(opts.nbValues);
|
|
54
|
+
for (let i = 0; i < length; i++)
|
|
55
|
+
randomValues.push(randint(1, 20));
|
|
56
|
+
const sortedValues = randomValues.sort((a, b) => a - b);
|
|
57
|
+
const identifiers = { sortedValues };
|
|
58
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
59
|
+
};
|
|
60
|
+
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
61
|
+
const question = {
|
|
62
|
+
instruction: getInstruction(identifiers),
|
|
63
|
+
answer: getAnswer(identifiers),
|
|
64
|
+
keys: [],
|
|
65
|
+
answerFormat: "tex",
|
|
66
|
+
identifiers,
|
|
67
|
+
hint: getHint(identifiers),
|
|
68
|
+
correction: getCorrection(identifiers),
|
|
69
|
+
options: opts,
|
|
70
|
+
};
|
|
71
|
+
return question;
|
|
72
|
+
};
|
|
73
|
+
const optsDefault = {
|
|
74
|
+
nbValues: ["7", "8"],
|
|
75
|
+
};
|
|
76
|
+
const options = [
|
|
77
|
+
{
|
|
78
|
+
id: "nbValues",
|
|
79
|
+
label: "Nombre de valeurs dans la liste",
|
|
80
|
+
target: GeneratorOptionTarget.generation,
|
|
81
|
+
type: GeneratorOptionType.multiselect,
|
|
82
|
+
values: ["4", "5", "7", "8", "11", "12", "19", "20"],
|
|
83
|
+
defaultValue: optsDefault.nbValues,
|
|
84
|
+
},
|
|
85
|
+
];
|
|
67
86
|
export const medianWithList = {
|
|
68
87
|
id: "medianWithList",
|
|
69
88
|
connector: "=",
|
|
70
89
|
label: "Calcul de la médiane d'une liste de valeurs",
|
|
71
90
|
isSingleStep: false,
|
|
72
|
-
generator: (nb) => getDistinctQuestions(getMedianList, nb),
|
|
91
|
+
generator: (nb, opts) => getDistinctQuestions(() => getMedianList(opts), nb),
|
|
92
|
+
options,
|
|
73
93
|
qcmTimer: 60,
|
|
74
94
|
freeTimer: 60,
|
|
75
95
|
getPropositions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plausibilityOfAverage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/plausibilityOfAverage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"plausibilityOfAverage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/plausibilityOfAverage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAiOF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAkBvD,CAAC"}
|
|
@@ -3,7 +3,6 @@ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQue
|
|
|
3
3
|
import { randint } from "../../../../math/utils/random/randint.js";
|
|
4
4
|
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
5
5
|
import { random } from "../../../../utils/alea/random.js";
|
|
6
|
-
import { mdTable } from "../../../../utils/markdown/mdTable.js";
|
|
7
6
|
const getInstruction = (identifiers) => {
|
|
8
7
|
const { a, values, isQuestionIsAboveA } = identifiers;
|
|
9
8
|
return `Si on considère la série suivante :
|
|
@@ -20,36 +19,84 @@ La proposition suivante est-elle vraie ?
|
|
|
20
19
|
const getHint = ({ a }) => {
|
|
21
20
|
return `Regarde l'écart des valeurs par rapport à $${a.frenchify()}$.`;
|
|
22
21
|
};
|
|
22
|
+
// const getCorrection: GetCorrection<Identifiers> = (identifiers) => {
|
|
23
|
+
// const { a, values, isAboveA } = identifiers;
|
|
24
|
+
// const answer = getAnswer(identifiers);
|
|
25
|
+
// const valuesBelowA = values.filter((v) => v < a);
|
|
26
|
+
// const valuesAboveA = values.filter((v) => v > a);
|
|
27
|
+
// return `${answer}, car si l'on regarde les écarts par rapport à $${a.frenchify()}$ :
|
|
28
|
+
// $\\ $
|
|
29
|
+
// ${mdTable(
|
|
30
|
+
// [
|
|
31
|
+
// ["\\text{Valeur}", "\\text{Écart}"],
|
|
32
|
+
// [`\\text{Valeurs inférieures à } ${a.frenchify()}`, "\\text{}"],
|
|
33
|
+
// ...valuesBelowA.map((v) => [v.frenchify(), (v - a).frenchify()]),
|
|
34
|
+
// [
|
|
35
|
+
// "\\text{Total inférieur}",
|
|
36
|
+
// valuesBelowA
|
|
37
|
+
// .map((v) => v - a)
|
|
38
|
+
// .reduce((acc, v) => acc + v, 0)
|
|
39
|
+
// .frenchify(),
|
|
40
|
+
// ],
|
|
41
|
+
// [`\\text{Valeurs supérieures à } ${a.frenchify()}`, "\\text{}"],
|
|
42
|
+
// ...valuesAboveA.map((v) => [v.frenchify(), `+${(v - a).frenchify()}`]),
|
|
43
|
+
// [
|
|
44
|
+
// "\\text{Total supérieur}",
|
|
45
|
+
// `+${valuesAboveA
|
|
46
|
+
// .map((v) => v - a)
|
|
47
|
+
// .reduce((acc, v) => acc + v, 0)
|
|
48
|
+
// .frenchify()}`,
|
|
49
|
+
// ],
|
|
50
|
+
// ],
|
|
51
|
+
// true,
|
|
52
|
+
// )}
|
|
53
|
+
// $\\ $
|
|
54
|
+
// Le total ${
|
|
55
|
+
// isAboveA ? `supérieur` : `inférieur`
|
|
56
|
+
// } est plus grand, en valeur absolue, que le total ${
|
|
57
|
+
// isAboveA ? `inférieur` : `supérieur`
|
|
58
|
+
// } donc on peut affirmer que la moyenne de cette série est strictement ${
|
|
59
|
+
// isAboveA ? `supérieure` : `inférieure`
|
|
60
|
+
// } à $${a.frenchify()}$.`;
|
|
61
|
+
// };
|
|
23
62
|
const getCorrection = (identifiers) => {
|
|
24
63
|
const { a, values, isAboveA } = identifiers;
|
|
25
64
|
const answer = getAnswer(identifiers);
|
|
26
65
|
const valuesBelowA = values.filter((v) => v < a);
|
|
27
66
|
const valuesAboveA = values.filter((v) => v > a);
|
|
28
|
-
return `${answer}
|
|
67
|
+
return `${answer}. En effet :
|
|
29
68
|
|
|
30
69
|
$\\ $
|
|
70
|
+
|
|
71
|
+
Si l'on regarde les valeurs strictement inférieures à $${a.frenchify()}$ :
|
|
72
|
+
|
|
73
|
+
${valuesBelowA
|
|
74
|
+
.map((v) => `
|
|
75
|
+
|
|
76
|
+
$${v.frenchify()}$ est $${(a - v).frenchify()}$ points en dessous de $${a.frenchify()}$
|
|
31
77
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
78
|
+
`)
|
|
79
|
+
.join("")}
|
|
80
|
+
Ce qui fait en tout $${valuesBelowA
|
|
81
|
+
.map((v) => a - v)
|
|
82
|
+
.reduce((acc, v) => acc + v, 0)
|
|
83
|
+
.frenchify()}$ points en dessous de $${a.frenchify()}$.
|
|
84
|
+
|
|
85
|
+
$\\ $
|
|
86
|
+
|
|
87
|
+
Si l'on regarde les valeurs strictement supérieures à $${a.frenchify()}$ :
|
|
88
|
+
|
|
89
|
+
${valuesAboveA
|
|
90
|
+
.map((v) => `
|
|
91
|
+
|
|
92
|
+
$${v.frenchify()}$ est $${(v - a).frenchify()}$ points en dessus de $${a.frenchify()}$
|
|
93
|
+
|
|
94
|
+
`)
|
|
95
|
+
.join("")}
|
|
96
|
+
Ce qui fait en tout $${valuesAboveA
|
|
97
|
+
.map((v) => v - a)
|
|
98
|
+
.reduce((acc, v) => acc + v, 0)
|
|
99
|
+
.frenchify()}$ points au dessus de $${a.frenchify()}$.
|
|
53
100
|
|
|
54
101
|
$\\ $
|
|
55
102
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quartilesList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/quartilesList.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EAkBT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"quartilesList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/quartilesList.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EAkBT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AA2GF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAeF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAgBxD,CAAC"}
|
|
@@ -61,9 +61,9 @@ const isAnswerValid = (ans, { answer }) => {
|
|
|
61
61
|
const getQuartiles = (optsIn) => {
|
|
62
62
|
const opts = optsIn ?? optsDefault;
|
|
63
63
|
const randomValues = [];
|
|
64
|
-
const length = Array.isArray(opts.nbValues)
|
|
64
|
+
const length = Number(Array.isArray(opts.nbValues)
|
|
65
65
|
? random(opts.nbValues.map((v) => +v))
|
|
66
|
-
: opts.nbValues;
|
|
66
|
+
: opts.nbValues);
|
|
67
67
|
for (let i = 0; i < length; i++)
|
|
68
68
|
randomValues.push(randint(1, 20));
|
|
69
69
|
const randomQuartile = randint(0, 2);
|
|
@@ -87,7 +87,7 @@ const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
|
87
87
|
return question;
|
|
88
88
|
};
|
|
89
89
|
const optsDefault = {
|
|
90
|
-
nbValues: 12,
|
|
90
|
+
nbValues: "12",
|
|
91
91
|
};
|
|
92
92
|
const options = [
|
|
93
93
|
{
|
|
@@ -95,7 +95,7 @@ const options = [
|
|
|
95
95
|
label: "Nombre de valeurs dans la liste",
|
|
96
96
|
target: GeneratorOptionTarget.generation,
|
|
97
97
|
type: GeneratorOptionType.multiselect,
|
|
98
|
-
values: [4, 5, 7, 8, 11, 12, 19, 20],
|
|
98
|
+
values: ["4", "5", "7", "8", "11", "12", "19", "20"],
|
|
99
99
|
defaultValue: [optsDefault.nbValues],
|
|
100
100
|
},
|
|
101
101
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AAEtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/pc/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AAEtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"averageSpeed.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/averageSpeed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"averageSpeed.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/motion/averageSpeed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAerC,KAAK,GAAG,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAkOF,KAAK,OAAO,GAAG;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqBF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAcvD,CAAC"}
|
|
@@ -11,20 +11,23 @@ import { VariableNode } from "../../../tree/nodes/variables/variableNode.js";
|
|
|
11
11
|
import { parseAlgebraic } from "../../../tree/parsers/latexParser.js";
|
|
12
12
|
const timeUnits = [TimeUnit.h, TimeUnit.min];
|
|
13
13
|
const distanceUnitValues = [DistanceUnit.km, DistanceUnit.m];
|
|
14
|
-
const getAcceptedInputTypesSentence = (
|
|
15
|
-
const { opts } = identifiers;
|
|
14
|
+
const getAcceptedInputTypesSentence = (acceptedInputType) => {
|
|
16
15
|
return `Donner le résultat
|
|
17
16
|
${(() => {
|
|
18
|
-
switch (
|
|
17
|
+
switch (acceptedInputType) {
|
|
19
18
|
case "exact":
|
|
20
19
|
return "sous forme exacte";
|
|
21
|
-
|
|
20
|
+
default:
|
|
21
|
+
case "arrondi avec 3 chiffres significatifs":
|
|
22
22
|
return "approché avec $3$ chiffres significatifs";
|
|
23
23
|
}
|
|
24
24
|
})()}.`;
|
|
25
25
|
};
|
|
26
|
-
const getInstruction = (identifiers) => {
|
|
27
|
-
const
|
|
26
|
+
const getInstruction = (identifiers, optsIn) => {
|
|
27
|
+
const opts = optsIn ?? optsDefault;
|
|
28
|
+
const acceptedInputType = "arrondi avec 3 chiffres significatifs";
|
|
29
|
+
const { distance, time } = identifiers;
|
|
30
|
+
const { unitTex } = opts;
|
|
28
31
|
const distanceMeasure = new Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]);
|
|
29
32
|
const timeMeasure = new Measure(time.value, 0, timeUnits[time.unitIndex]);
|
|
30
33
|
const instruction = `Soit un objet parcourant $${distanceMeasure.toTex({
|
|
@@ -32,26 +35,30 @@ const getInstruction = (identifiers) => {
|
|
|
32
35
|
})}$ en $${timeMeasure.toTex({ notScientific: true })}$.
|
|
33
36
|
|
|
34
37
|
|
|
35
|
-
Calculer la vitesse moyenne de cet objet en
|
|
38
|
+
Calculer la vitesse moyenne de cet objet en ${unitTex}.
|
|
36
39
|
|
|
37
|
-
${getAcceptedInputTypesSentence(
|
|
40
|
+
${getAcceptedInputTypesSentence(acceptedInputType)}
|
|
38
41
|
`;
|
|
39
42
|
return instruction;
|
|
40
43
|
};
|
|
41
|
-
const getHint = (
|
|
44
|
+
const getHint = (_, optsIn) => {
|
|
45
|
+
const opts = optsIn ?? optsDefault;
|
|
46
|
+
const unlatexUnit = opts.unitTex.substring(1, opts.unitTex.length - 1);
|
|
42
47
|
return `La vitesse moyenne est donnée par :
|
|
43
48
|
|
|
44
49
|
$$
|
|
45
|
-
\\frac{\\text{distance}}{\\text{temps}} \\ ${
|
|
50
|
+
\\frac{\\text{distance}}{\\text{temps}} \\ ${unlatexUnit}
|
|
46
51
|
$$`;
|
|
47
52
|
};
|
|
48
|
-
const getCorrection = (identifiers) => {
|
|
49
|
-
const
|
|
53
|
+
const getCorrection = (identifiers, optsIn) => {
|
|
54
|
+
const opts = optsIn ?? optsDefault;
|
|
55
|
+
const { distance, time } = identifiers;
|
|
50
56
|
let correction = ``;
|
|
51
57
|
const distanceMeasure = new Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]).convert("m");
|
|
52
58
|
const timeMeasure = new Measure(time.value, 0, timeUnits[time.unitIndex]).convert("s");
|
|
53
59
|
const calcul = new FractionNode(new VariableNode(distanceMeasure.toTex()), new VariableNode(timeMeasure.toTex()));
|
|
54
60
|
const answer = getAnswer(identifiers);
|
|
61
|
+
const unlatexUnit = opts.unitTex.substring(1, opts.unitTex.length - 1);
|
|
55
62
|
if (distance.unitIndex === 0)
|
|
56
63
|
correction = `- On convertit les $\\textrm{km}$ en $\\textrm{m}$ : $1\\ \\textrm{km}=1000\\ \\textrm{m}$.
|
|
57
64
|
|
|
@@ -84,7 +91,7 @@ $$
|
|
|
84
91
|
}
|
|
85
92
|
return `${correction}
|
|
86
93
|
- On applique la règle de calcul pour la vitesse moyenne : $${calcul.toTex()}$
|
|
87
|
-
- On arrondit à la toute fin : $${calcul.toTex()} \\approx ${answer} \\ ${
|
|
94
|
+
- On arrondit à la toute fin : $${calcul.toTex()} \\approx ${answer} \\ ${unlatexUnit}$`;
|
|
88
95
|
};
|
|
89
96
|
const getAnswer = (identifiers) => {
|
|
90
97
|
return getAnswerMeasure(identifiers).toTex({ hideUnit: true });
|
|
@@ -103,12 +110,14 @@ const isAnswerValid = (ans, { answer, ...identifiers }) => {
|
|
|
103
110
|
const answerNode = parseAlgebraic(getAnswerMeasure(identifiers).toTex({ hideUnit: true }));
|
|
104
111
|
return substract(ansNode, answerNode).simplify().evaluate() === 0;
|
|
105
112
|
};
|
|
106
|
-
const getPropositions = (n, { answer, distance, time,
|
|
113
|
+
const getPropositions = (n, { answer, distance, time }, optsIn) => {
|
|
114
|
+
const opts = optsIn ?? optsDefault;
|
|
107
115
|
const propositions = [];
|
|
108
|
-
|
|
116
|
+
const unlatexUnit = opts.unitTex.substring(1, opts.unitTex.length - 1);
|
|
117
|
+
addValidProp(propositions, `${answer} \\ ${unlatexUnit}`);
|
|
109
118
|
const distanceMeasure = new Measure(distance.value, 0, distanceUnitValues[distance.unitIndex]);
|
|
110
119
|
const timeMeasure = new Measure(time.value, 0, timeUnits[time.unitIndex]);
|
|
111
|
-
generatePropositions(distanceMeasure, timeMeasure).forEach((value) => tryToAddWrongProp(propositions, `${value} \\ ${
|
|
120
|
+
generatePropositions(distanceMeasure, timeMeasure).forEach((value) => tryToAddWrongProp(propositions, `${value} \\ ${unlatexUnit}`));
|
|
112
121
|
const division = distanceMeasure
|
|
113
122
|
.convert("m")
|
|
114
123
|
.divide(timeMeasure.convert("s"));
|
|
@@ -118,7 +127,7 @@ const getPropositions = (n, { answer, distance, time, opts }) => {
|
|
|
118
127
|
const valueTex = new Measure(random, 0, division.getUnit())
|
|
119
128
|
.toSignificant(2)
|
|
120
129
|
.toTex({ hideUnit: true });
|
|
121
|
-
tryToAddWrongProp(propositions, `${valueTex} \\ ${
|
|
130
|
+
tryToAddWrongProp(propositions, `${valueTex} \\ ${unlatexUnit}`);
|
|
122
131
|
});
|
|
123
132
|
return shuffleProps(propositions, n);
|
|
124
133
|
};
|
|
@@ -135,42 +144,28 @@ const generatePropositions = (distance, time) => {
|
|
|
135
144
|
distance.divide(time).toSignificant(2).toTex({ hideUnit: true }),
|
|
136
145
|
];
|
|
137
146
|
};
|
|
138
|
-
const getKeys = () => {
|
|
139
|
-
return [];
|
|
140
|
-
// return [`\\text{m} \\cdot \\text{s}^{-1}`].map((tex) => {
|
|
141
|
-
// return {
|
|
142
|
-
// id: "custom",
|
|
143
|
-
// label: tex,
|
|
144
|
-
// labelType: "raw",
|
|
145
|
-
// mathfieldInstructions: {
|
|
146
|
-
// method: "write",
|
|
147
|
-
// content: tex,
|
|
148
|
-
// },
|
|
149
|
-
// } as KeyProps;
|
|
150
|
-
// });
|
|
151
|
-
};
|
|
152
147
|
const getAverageSpeedQuestion = (optsIn) => {
|
|
153
|
-
const opts =
|
|
148
|
+
const opts = optsIn ?? optsDefault;
|
|
154
149
|
const distance = { value: randint(70, 151), unitIndex: randint(0, 2) };
|
|
155
150
|
const time = { value: randint(10, 61), unitIndex: randint(0, 2) };
|
|
156
|
-
const identifiers = { distance, time
|
|
157
|
-
return getQuestionFromIdentifiers(identifiers);
|
|
151
|
+
const identifiers = { distance, time };
|
|
152
|
+
return getQuestionFromIdentifiers(identifiers, opts);
|
|
158
153
|
};
|
|
159
|
-
const getQuestionFromIdentifiers = (identifiers) => {
|
|
154
|
+
const getQuestionFromIdentifiers = (identifiers, opts) => {
|
|
160
155
|
const question = {
|
|
161
|
-
answer: getAnswer(identifiers),
|
|
162
|
-
instruction: getInstruction(identifiers),
|
|
163
|
-
keys:
|
|
164
|
-
hint: getHint(identifiers),
|
|
165
|
-
correction: getCorrection(identifiers),
|
|
156
|
+
answer: getAnswer(identifiers, opts),
|
|
157
|
+
instruction: getInstruction(identifiers, opts),
|
|
158
|
+
keys: [],
|
|
159
|
+
hint: getHint(identifiers, opts),
|
|
160
|
+
correction: getCorrection(identifiers, opts),
|
|
166
161
|
answerFormat: "tex",
|
|
167
162
|
identifiers,
|
|
163
|
+
options: opts,
|
|
168
164
|
};
|
|
169
165
|
return question;
|
|
170
166
|
};
|
|
171
167
|
const optsDefault = {
|
|
172
|
-
|
|
173
|
-
unitTex: "\\text{m} \\cdot \\text{s}^{-1}",
|
|
168
|
+
unitTex: "$\\text{m} \\cdot \\text{s}^{-1}$",
|
|
174
169
|
};
|
|
175
170
|
const options = [
|
|
176
171
|
{
|
|
@@ -179,9 +174,9 @@ const options = [
|
|
|
179
174
|
target: GeneratorOptionTarget.generation,
|
|
180
175
|
type: GeneratorOptionType.select,
|
|
181
176
|
values: [
|
|
182
|
-
"
|
|
183
|
-
"
|
|
184
|
-
"
|
|
177
|
+
"$\\text{m} \\cdot \\text{s}^{-1}$",
|
|
178
|
+
"$\\text{m/s}$",
|
|
179
|
+
"$\\text{s} \\cdot \\text{m}^{-1}$",
|
|
185
180
|
],
|
|
186
181
|
defaultValue: optsDefault.unitTex,
|
|
187
182
|
},
|
|
@@ -9,12 +9,11 @@ type Identifiers = {
|
|
|
9
9
|
type DistanceType = "distance focale" | "distance image" | "distance objet";
|
|
10
10
|
type ImageType = "réelle finie" | "réelle infinie" | "imaginaire finie" | "imaginaire infinie";
|
|
11
11
|
type UnitType = "cm" | "m";
|
|
12
|
-
type RoundToType = 0 | 1 | 2;
|
|
13
12
|
type Options = {
|
|
14
13
|
typeDistance: DistanceType;
|
|
15
14
|
typeImage: ImageType;
|
|
16
15
|
unit: UnitType;
|
|
17
|
-
roundTo:
|
|
16
|
+
roundTo: string;
|
|
18
17
|
};
|
|
19
18
|
export declare const lensFormula: Exercise<Identifiers, Options>;
|
|
20
19
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lensFormula.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/optics/lensFormula.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAY7C,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,KAAK,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC5E,KAAK,SAAS,GACV,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,CAAC;AACzB,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"lensFormula.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/optics/lensFormula.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAY7C,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,KAAK,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC5E,KAAK,SAAS,GACV,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,CAAC;AACzB,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;AAE3B,KAAK,OAAO,GAAG;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqiBF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBtD,CAAC"}
|
|
@@ -24,7 +24,7 @@ const optsDefault = {
|
|
|
24
24
|
"imaginaire infinie",
|
|
25
25
|
],
|
|
26
26
|
unit: ["cm", "m"],
|
|
27
|
-
roundTo: [0, 1, 2],
|
|
27
|
+
roundTo: ["0", "1", "2"],
|
|
28
28
|
};
|
|
29
29
|
const options = [
|
|
30
30
|
{
|
|
@@ -62,7 +62,7 @@ const options = [
|
|
|
62
62
|
target: GeneratorOptionTarget.generation,
|
|
63
63
|
type: GeneratorOptionType.multiselect,
|
|
64
64
|
defaultValue: optsDefault.roundTo,
|
|
65
|
-
values: [0, 1, 2],
|
|
65
|
+
values: ["0", "1", "2"],
|
|
66
66
|
},
|
|
67
67
|
];
|
|
68
68
|
const getLensFormulaEqualNode = () => {
|
|
@@ -76,11 +76,11 @@ const getInstruction = (identifiers) => {
|
|
|
76
76
|
const nodeOAPrime = NodeConstructor.fromIdentifiers(OAPrime);
|
|
77
77
|
const strRounTo = (() => {
|
|
78
78
|
switch (opts.roundTo) {
|
|
79
|
-
case 0:
|
|
79
|
+
case "0":
|
|
80
80
|
return "à l'unité";
|
|
81
|
-
case 1:
|
|
81
|
+
case "1":
|
|
82
82
|
return "au dixième";
|
|
83
|
-
case 2:
|
|
83
|
+
case "2":
|
|
84
84
|
return "au centième";
|
|
85
85
|
}
|
|
86
86
|
})();
|
|
@@ -206,7 +206,7 @@ const getAnswer = (identifiers) => {
|
|
|
206
206
|
case "distance objet":
|
|
207
207
|
return nodeOA;
|
|
208
208
|
}
|
|
209
|
-
})().evaluate(), opts.roundTo).frenchify()}${opts.unit}`;
|
|
209
|
+
})().evaluate(), Number(opts.roundTo)).frenchify()}${opts.unit}`;
|
|
210
210
|
};
|
|
211
211
|
const isAnswerValid = (ans, { answer, ...identifiers }) => {
|
|
212
212
|
const { opts } = identifiers;
|
|
@@ -287,11 +287,9 @@ const getLensFormulaQuestion = (optsIn) => {
|
|
|
287
287
|
unit: optsIn?.unit,
|
|
288
288
|
roundTo: (optsIn?.roundTo)
|
|
289
289
|
.filter((a) => typeof a === "string")
|
|
290
|
-
.map((str) =>
|
|
290
|
+
.map((str) => str),
|
|
291
291
|
}
|
|
292
292
|
: undefined;
|
|
293
|
-
console.log("optsIn", optsIn);
|
|
294
|
-
console.log("optsInRetyped", optsInRetyped);
|
|
295
293
|
let nodeOFPrime = NaN.toTree();
|
|
296
294
|
let nodeOA = NaN.toTree();
|
|
297
295
|
let nodeOAPrime = NaN.toTree();
|
|
@@ -310,7 +308,6 @@ const getLensFormulaQuestion = (optsIn) => {
|
|
|
310
308
|
unit: random(optsDefault.unit),
|
|
311
309
|
roundTo: random(optsDefault.roundTo),
|
|
312
310
|
};
|
|
313
|
-
console.log("opts", opts);
|
|
314
311
|
//objet réel: \\overline {OA} < 0
|
|
315
312
|
//image réelle : \\overline {OA'} > 0
|
|
316
313
|
function factorNodeForTypeImage(typeImage) {
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Exercise } from "../../../exercises/exercise.js";
|
|
2
2
|
type Identifiers = {
|
|
3
3
|
mass: number;
|
|
4
|
-
optsIdent: Options;
|
|
5
4
|
};
|
|
6
5
|
type InputType = "decimal" | "sci";
|
|
7
|
-
type NbDigitsType = 0 | 1 | 2;
|
|
8
6
|
type Options = {
|
|
9
7
|
inputType: InputType;
|
|
10
|
-
nbDigits:
|
|
8
|
+
nbDigits: string;
|
|
11
9
|
};
|
|
12
10
|
export declare const calculateWeight: Exercise<Identifiers, Options>;
|
|
13
11
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateWeight.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/weight/calculateWeight.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"calculateWeight.d.ts","sourceRoot":"","sources":["../../../../src/exercises/pc/weight/calculateWeight.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAEnC,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAkNF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAc1D,CAAC"}
|