math-exercises 3.0.76 → 3.0.78
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/math/calcul/arithmetics/calculateDistanceWithAbsoluteValue.d.ts +10 -0
- package/lib/exercises/math/calcul/arithmetics/calculateDistanceWithAbsoluteValue.d.ts.map +1 -0
- package/lib/exercises/math/calcul/arithmetics/calculateDistanceWithAbsoluteValue.js +112 -0
- package/lib/exercises/math/calcul/arithmetics/calculateWithAbsoluteValue.d.ts +8 -0
- package/lib/exercises/math/calcul/arithmetics/calculateWithAbsoluteValue.d.ts.map +1 -0
- package/lib/exercises/math/calcul/arithmetics/calculateWithAbsoluteValue.js +123 -0
- package/lib/exercises/math/calcul/arithmetics/compareInverseValues.d.ts +10 -0
- package/lib/exercises/math/calcul/arithmetics/compareInverseValues.d.ts.map +1 -0
- package/lib/exercises/math/calcul/arithmetics/compareInverseValues.js +136 -0
- package/lib/exercises/math/calcul/arithmetics/compareSquaredValues.d.ts +9 -0
- package/lib/exercises/math/calcul/arithmetics/compareSquaredValues.d.ts.map +1 -0
- package/lib/exercises/math/calcul/arithmetics/compareSquaredValues.js +143 -0
- package/lib/exercises/math/calcul/arithmetics/index.d.ts +5 -0
- package/lib/exercises/math/calcul/arithmetics/index.d.ts.map +1 -1
- package/lib/exercises/math/calcul/arithmetics/index.js +5 -0
- package/lib/exercises/math/calcul/arithmetics/sqrtInequality.d.ts +10 -0
- package/lib/exercises/math/calcul/arithmetics/sqrtInequality.d.ts.map +1 -0
- package/lib/exercises/math/calcul/arithmetics/sqrtInequality.js +160 -0
- package/lib/exercises/math/calcul/sign/absoluteNumber.js +1 -1
- package/lib/exercises/math/functions/absolute/absoluteValueInequations.d.ts.map +1 -1
- package/lib/exercises/math/functions/absolute/absoluteValueInequations.js +5 -1
- package/lib/exercises/math/functions/basics/graphicEquation.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/graphicEquation.js +33 -1
- package/lib/exercises/math/functions/basics/twoFunctionsEquation.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/twoFunctionsEquation.js +27 -0
- package/lib/exercises/math/functions/cube/compareCubeValues.d.ts +8 -0
- package/lib/exercises/math/functions/cube/compareCubeValues.d.ts.map +1 -0
- package/lib/exercises/math/functions/cube/compareCubeValues.js +113 -0
- package/lib/exercises/math/functions/cube/index.d.ts +1 -0
- package/lib/exercises/math/functions/cube/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/cube/index.js +1 -0
- package/lib/exercises/math/functions/index.d.ts +1 -0
- package/lib/exercises/math/functions/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/index.js +1 -0
- package/lib/exercises/math/functions/sqrt/compareSqrtValues.d.ts +8 -0
- package/lib/exercises/math/functions/sqrt/compareSqrtValues.d.ts.map +1 -0
- package/lib/exercises/math/functions/sqrt/compareSqrtValues.js +83 -0
- package/lib/exercises/math/functions/sqrt/index.d.ts +2 -0
- package/lib/exercises/math/functions/sqrt/index.d.ts.map +1 -0
- package/lib/exercises/math/functions/sqrt/index.js +1 -0
- package/lib/exercises/math/functions/variations/varTableExtremaReading.d.ts.map +1 -1
- package/lib/exercises/math/functions/variations/varTableExtremaReading.js +23 -8
- package/lib/exercises/math/geometry/angles/index.d.ts +1 -0
- package/lib/exercises/math/geometry/angles/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/angles/index.js +1 -0
- package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.d.ts +8 -0
- package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.d.ts.map +1 -0
- package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.js +92 -0
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnLine.js +26 -1
- package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.d.ts.map +1 -1
- package/lib/exercises/math/geometry/euclidian/pythagoreOrThales.js +47 -13
- package/lib/exercises/math/geometry/lines/linesRelativePositions.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/linesRelativePositions.js +29 -5
- package/lib/exercises/math/probaStat/calculateMeanFromFrequencies.d.ts +8 -0
- package/lib/exercises/math/probaStat/calculateMeanFromFrequencies.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/calculateMeanFromFrequencies.js +108 -0
- package/lib/exercises/math/probaStat/checkEquiprobability.d.ts +9 -0
- package/lib/exercises/math/probaStat/checkEquiprobability.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/checkEquiprobability.js +129 -0
- package/lib/exercises/math/probaStat/getComplementaryProbability.d.ts +7 -0
- package/lib/exercises/math/probaStat/getComplementaryProbability.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/getComplementaryProbability.js +90 -0
- package/lib/exercises/math/probaStat/getMissingProbabilityValue.d.ts +9 -0
- package/lib/exercises/math/probaStat/getMissingProbabilityValue.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/getMissingProbabilityValue.js +109 -0
- package/lib/exercises/math/probaStat/index.d.ts +6 -0
- package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/index.js +6 -0
- package/lib/exercises/math/probaStat/mostLeastProbable.d.ts +8 -0
- package/lib/exercises/math/probaStat/mostLeastProbable.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/mostLeastProbable.js +114 -0
- package/lib/exercises/math/probaStat/unionIntersectionProba.d.ts +11 -0
- package/lib/exercises/math/probaStat/unionIntersectionProba.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/unionIntersectionProba.js +164 -0
- package/lib/exercises/math/python/conditionIfElifElse.d.ts +9 -0
- package/lib/exercises/math/python/conditionIfElifElse.d.ts.map +1 -0
- package/lib/exercises/math/python/conditionIfElifElse.js +121 -0
- package/lib/exercises/math/python/index.d.ts +1 -0
- package/lib/exercises/math/python/index.d.ts.map +1 -1
- package/lib/exercises/math/python/index.js +1 -0
- package/lib/exercises/math/python/pyNestedForLoopExercise.d.ts.map +1 -1
- package/lib/exercises/math/python/pyNestedForLoopExercise.js +26 -10
- package/lib/exercises/math/python/pyWhileLoop1Exercise.d.ts +0 -1
- package/lib/exercises/math/python/pyWhileLoop1Exercise.d.ts.map +1 -1
- package/lib/exercises/math/python/pyWhileLoop1Exercise.js +54 -31
- package/lib/exercises/math/python/pythonFunctionTrinom.d.ts.map +1 -1
- package/lib/exercises/math/python/pythonFunctionTrinom.js +23 -1
- package/lib/exercises/math/python/whileLoop.js +2 -2
- package/lib/exercises/math/python/whileLoopCount.js +1 -1
- package/lib/exercises/math/sequences/explicitFormulaUsage.js +3 -3
- package/lib/exercises/math/sequences/genericSequenceVariations.js +2 -2
- package/lib/exercises/math/sets/index.d.ts +2 -0
- package/lib/exercises/math/sets/index.d.ts.map +1 -1
- package/lib/exercises/math/sets/index.js +2 -0
- package/lib/exercises/math/sets/nameOfNumberSets.d.ts +8 -0
- package/lib/exercises/math/sets/nameOfNumberSets.d.ts.map +1 -0
- package/lib/exercises/math/sets/nameOfNumberSets.js +125 -0
- package/lib/exercises/math/sets/subsetsOfKnownSets.d.ts +8 -0
- package/lib/exercises/math/sets/subsetsOfKnownSets.d.ts.map +1 -0
- package/lib/exercises/math/sets/subsetsOfKnownSets.js +99 -0
- package/lib/index.d.ts +61 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/latexTester.d.ts.map +1 -1
- package/lib/latexTester.js +25 -7
- package/lib/tests/pdfExo.test.d.ts.map +1 -1
- package/lib/tests/pdfExo.test.js +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
a: NodeIdentifiers;
|
|
5
|
+
b: number;
|
|
6
|
+
c: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const calculateDistanceWithAbsoluteValue: Exercise<Identifiers>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=calculateDistanceWithAbsoluteValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateDistanceWithAbsoluteValue.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/calculateDistanceWithAbsoluteValue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IAEjB,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAsHF,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,WAAW,CAqBpE,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { randfloat } from "../../../../math/utils/random/randfloat.js";
|
|
4
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
5
|
+
import { round } from "../../../../math/utils/round.js";
|
|
6
|
+
import { abs } from "../../../../tree/nodes/functions/absNode.js";
|
|
7
|
+
import { NodeIds } from "../../../../tree/nodes/node.js";
|
|
8
|
+
import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
|
|
9
|
+
import { add } from "../../../../tree/nodes/operators/addNode.js";
|
|
10
|
+
import { substract } from "../../../../tree/nodes/operators/substractNode.js";
|
|
11
|
+
import { VariableNode } from "../../../../tree/nodes/variables/variableNode.js";
|
|
12
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
13
|
+
const getPropositions = (n, { answer, a, b, c }) => {
|
|
14
|
+
const propositions = [];
|
|
15
|
+
addValidProp(propositions, answer);
|
|
16
|
+
tryToAddWrongProp(propositions, substract(abs(b), abs(reifyAlgebraic(a))).toTex() + "=" + c.frenchify());
|
|
17
|
+
tryToAddWrongProp(propositions, substract(abs(reifyAlgebraic(a)), abs(b)).toTex() + "=" + c.frenchify());
|
|
18
|
+
tryToAddWrongProp(propositions, add(abs(b), reifyAlgebraic(a)).toTex() + "=" + c.frenchify());
|
|
19
|
+
return shuffleProps(propositions, n);
|
|
20
|
+
};
|
|
21
|
+
const getAnswer = (identifiers) => {
|
|
22
|
+
const { a, b, c } = identifiers;
|
|
23
|
+
return `${abs(substract(b, reifyAlgebraic(a))).toTex()}=${c.frenchify()}`;
|
|
24
|
+
};
|
|
25
|
+
const getInstruction = (identifiers) => {
|
|
26
|
+
const { a, b, c } = identifiers;
|
|
27
|
+
const proposition = a.id === NodeIds.variable
|
|
28
|
+
? `la distance entre $${reifyAlgebraic(a).toTex()}$ et $${b.frenchify()}$ est égale à $${c.frenchify()}$`
|
|
29
|
+
: `$${reifyAlgebraic(a).toTex()}$ et $${b.frenchify()}$ sont situés à une distance de $${c.frenchify()}$ l'un de l'autre`;
|
|
30
|
+
return `Traduire par une égalité avec une valeur absolue la phrase suivante :
|
|
31
|
+
|
|
32
|
+
"${proposition}".`;
|
|
33
|
+
};
|
|
34
|
+
const getHint = (identifiers) => {
|
|
35
|
+
return `La distance entre deux nombres $a$ et $b$ est égale à :
|
|
36
|
+
|
|
37
|
+
$$
|
|
38
|
+
${abs(substract("b", "a")).toTex()}
|
|
39
|
+
$$`;
|
|
40
|
+
};
|
|
41
|
+
const getCorrection = (identifiers) => {
|
|
42
|
+
const { a, b } = identifiers;
|
|
43
|
+
return `La distance entre $${reifyAlgebraic(a).toTex()}$ et $${b.frenchify()}$ est égale à $${abs(substract(b, reifyAlgebraic(a))).toTex()}$.
|
|
44
|
+
|
|
45
|
+
Ici, on a donc :
|
|
46
|
+
|
|
47
|
+
$$
|
|
48
|
+
${getAnswer(identifiers)}
|
|
49
|
+
$$`;
|
|
50
|
+
};
|
|
51
|
+
const getKeys = (identifiers) => {
|
|
52
|
+
return ["abs", "x", "equal"];
|
|
53
|
+
};
|
|
54
|
+
const isAnswerValid = (ans, { answer, a, b, c }) => {
|
|
55
|
+
const aNode = reifyAlgebraic(a);
|
|
56
|
+
return [
|
|
57
|
+
`${abs(substract(b, aNode)).toTex()}=${c.frenchify()}`,
|
|
58
|
+
`${abs(substract(aNode, b)).toTex()}=${c.frenchify()}`,
|
|
59
|
+
].includes(ans);
|
|
60
|
+
};
|
|
61
|
+
const getCalculateDistanceWithAbsoluteValueQuestion = (ops) => {
|
|
62
|
+
const containsVariable = coinFlip();
|
|
63
|
+
let a;
|
|
64
|
+
let b;
|
|
65
|
+
let c;
|
|
66
|
+
if (containsVariable) {
|
|
67
|
+
a = new VariableNode("x");
|
|
68
|
+
b = coinFlip() ? randint(-10, 10) : randfloat(-10, 10, 2);
|
|
69
|
+
c = coinFlip() ? randint(1, 10, [b]) : randfloat(0, 10, 2, [b, 0]);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const aNb = coinFlip() ? randint(-10, 10) : randfloat(-10, 10, 2);
|
|
73
|
+
a = aNb.toTree();
|
|
74
|
+
b = randint(-10, 10, [aNb]);
|
|
75
|
+
c = round(Math.abs(b - aNb), 4);
|
|
76
|
+
}
|
|
77
|
+
const identifiers = {
|
|
78
|
+
a: a.toIdentifiers(),
|
|
79
|
+
b,
|
|
80
|
+
c,
|
|
81
|
+
};
|
|
82
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
83
|
+
};
|
|
84
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
85
|
+
return {
|
|
86
|
+
answer: getAnswer(identifiers),
|
|
87
|
+
instruction: getInstruction(identifiers),
|
|
88
|
+
keys: getKeys(identifiers),
|
|
89
|
+
answerFormat: "tex",
|
|
90
|
+
identifiers,
|
|
91
|
+
hint: getHint(identifiers),
|
|
92
|
+
correction: getCorrection(identifiers),
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
export const calculateDistanceWithAbsoluteValue = {
|
|
96
|
+
id: "calculateDistanceWithAbsoluteValue",
|
|
97
|
+
connector: "=",
|
|
98
|
+
label: "Traduire une distance par une valeur absolue",
|
|
99
|
+
isSingleStep: true,
|
|
100
|
+
generator: (nb, opts) => getDistinctQuestions(() => getCalculateDistanceWithAbsoluteValueQuestion(opts), nb),
|
|
101
|
+
qcmTimer: 60,
|
|
102
|
+
freeTimer: 60,
|
|
103
|
+
getPropositions,
|
|
104
|
+
isAnswerValid,
|
|
105
|
+
subject: "Mathématiques",
|
|
106
|
+
getInstruction,
|
|
107
|
+
getHint,
|
|
108
|
+
getCorrection,
|
|
109
|
+
getAnswer,
|
|
110
|
+
getQuestionFromIdentifiers,
|
|
111
|
+
hasHintAndCorrection: true,
|
|
112
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
expression: NodeIdentifiers;
|
|
5
|
+
};
|
|
6
|
+
export declare const calculateWithAbsoluteValue: Exercise<Identifiers>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=calculateWithAbsoluteValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateWithAbsoluteValue.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/calculateWithAbsoluteValue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAmHF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAiB5D,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
|
|
4
|
+
import { randfloat } from "../../../../math/utils/random/randfloat.js";
|
|
5
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
6
|
+
import { abs, isAbsNode } from "../../../../tree/nodes/functions/absNode.js";
|
|
7
|
+
import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
|
|
8
|
+
import { add } from "../../../../tree/nodes/operators/addNode.js";
|
|
9
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
10
|
+
import { random } from "../../../../utils/alea/random.js";
|
|
11
|
+
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
12
|
+
import { alignTex } from "../../../../utils/latex/alignTex.js";
|
|
13
|
+
const getPropositions = (n, { answer }) => {
|
|
14
|
+
const propositions = [];
|
|
15
|
+
addValidProp(propositions, answer);
|
|
16
|
+
while (propositions.length < n) {
|
|
17
|
+
const delta = coinFlip() ? randint(1, 5) : randfloat(1, 5, 2);
|
|
18
|
+
const direction = coinFlip() ? 1 : -1;
|
|
19
|
+
const wrongValue = Number((answer.unfrenchify() + direction * delta).toFixed(2));
|
|
20
|
+
tryToAddWrongProp(propositions, wrongValue.frenchify());
|
|
21
|
+
}
|
|
22
|
+
return shuffleProps(propositions, n);
|
|
23
|
+
};
|
|
24
|
+
const getAnswer = (identifiers) => {
|
|
25
|
+
const { expression } = identifiers;
|
|
26
|
+
const expressionValue = reifyAlgebraic(expression).simplify().evaluate();
|
|
27
|
+
return expressionValue.frenchify();
|
|
28
|
+
};
|
|
29
|
+
const getInstruction = (identifiers) => {
|
|
30
|
+
const { expression } = identifiers;
|
|
31
|
+
const expressionTex = reifyAlgebraic(expression).toTex();
|
|
32
|
+
return `Calculer et donner le résultat sans utiliser la notation de la valeur absolue :
|
|
33
|
+
|
|
34
|
+
$$
|
|
35
|
+
${expressionTex}
|
|
36
|
+
$$ `;
|
|
37
|
+
};
|
|
38
|
+
const getHint = (identifiers) => {
|
|
39
|
+
const expressionTex = reifyAlgebraic(identifiers.expression).toTex();
|
|
40
|
+
return `Utilise la définition de la valeur absolue :
|
|
41
|
+
|
|
42
|
+
- $|x| = x$ si $x \\geq 0$;
|
|
43
|
+
- $|x| = -x$ si $x < 0$.`;
|
|
44
|
+
};
|
|
45
|
+
const getCorrection = (identifiers) => {
|
|
46
|
+
const { expression } = identifiers;
|
|
47
|
+
const exprNode = reifyAlgebraic(expression);
|
|
48
|
+
const absChild = isAbsNode(exprNode) ? exprNode.child : null;
|
|
49
|
+
const absChildValue = absChild ? absChild.simplify().evaluate() : "";
|
|
50
|
+
const answer = getAnswer(identifiers);
|
|
51
|
+
return `On rappelle que :
|
|
52
|
+
|
|
53
|
+
- $|x| = x$ si $x \\geq 0$;
|
|
54
|
+
- $|x| = -x$ si $x < 0$.
|
|
55
|
+
|
|
56
|
+
Ici, on a donc :
|
|
57
|
+
|
|
58
|
+
${alignTex([
|
|
59
|
+
[
|
|
60
|
+
exprNode.toTex(),
|
|
61
|
+
"=",
|
|
62
|
+
isAbsNode(exprNode)
|
|
63
|
+
? abs(exprNode.child.simplify()).toTex()
|
|
64
|
+
: exprNode.simplify({ forbidAdditions: true }).toTex(),
|
|
65
|
+
],
|
|
66
|
+
["", "=", answer],
|
|
67
|
+
])}
|
|
68
|
+
|
|
69
|
+
`;
|
|
70
|
+
};
|
|
71
|
+
const getKeys = (identifiers) => {
|
|
72
|
+
return [];
|
|
73
|
+
};
|
|
74
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
75
|
+
try {
|
|
76
|
+
return numberVEA(ans, answer);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
return handleVEAError(err);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const getCalculateWithAbsoluteValueQuestion = (ops) => {
|
|
83
|
+
const a = coinFlip() ? randint(-10, 10, [0]) : randfloat(-10, 10, 2, [0]);
|
|
84
|
+
const b = coinFlip() ? randint(-10, 10, [a]) : randfloat(-10, 10, 2, [a]);
|
|
85
|
+
const expressionGenerators = [
|
|
86
|
+
() => abs(add(a, b)).toIdentifiers(), // |a + b|
|
|
87
|
+
() => abs(add(a, -b)).toIdentifiers(), // |a - b|
|
|
88
|
+
() => add(abs(a), b).toIdentifiers(), // |a| + b
|
|
89
|
+
() => add(a, abs(b)).toIdentifiers(), // a + |b|
|
|
90
|
+
() => add(abs(a), abs(b)).toIdentifiers(), // |a| + |b|
|
|
91
|
+
];
|
|
92
|
+
const expression = random(expressionGenerators)();
|
|
93
|
+
const identifiers = { expression };
|
|
94
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
95
|
+
};
|
|
96
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
97
|
+
return {
|
|
98
|
+
answer: getAnswer(identifiers),
|
|
99
|
+
instruction: getInstruction(identifiers),
|
|
100
|
+
keys: getKeys(identifiers),
|
|
101
|
+
answerFormat: "tex",
|
|
102
|
+
identifiers,
|
|
103
|
+
hint: getHint(identifiers),
|
|
104
|
+
correction: getCorrection(identifiers),
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
export const calculateWithAbsoluteValue = {
|
|
108
|
+
id: "calculateWithAbsoluteValue",
|
|
109
|
+
label: "Calculer avec des valeurs absolues",
|
|
110
|
+
isSingleStep: true,
|
|
111
|
+
generator: (nb, opts) => getDistinctQuestions(() => getCalculateWithAbsoluteValueQuestion(opts), nb),
|
|
112
|
+
qcmTimer: 60,
|
|
113
|
+
freeTimer: 60,
|
|
114
|
+
getPropositions,
|
|
115
|
+
isAnswerValid,
|
|
116
|
+
subject: "Mathématiques",
|
|
117
|
+
getInstruction,
|
|
118
|
+
getHint,
|
|
119
|
+
getCorrection,
|
|
120
|
+
getAnswer,
|
|
121
|
+
getQuestionFromIdentifiers,
|
|
122
|
+
hasHintAndCorrection: true,
|
|
123
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
a: NodeIdentifiers;
|
|
5
|
+
b: NodeIdentifiers;
|
|
6
|
+
isMinusInside: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const compareInverseValues: Exercise<Identifiers>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=compareInverseValues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareInverseValues.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/compareInverseValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAM7C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,eAAe,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAuIF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAkBtD,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { randfloat } from "../../../../math/utils/random/randfloat.js";
|
|
4
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
5
|
+
import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
|
|
6
|
+
import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
|
|
7
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
8
|
+
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
9
|
+
const getPropositions = (n, { answer }) => {
|
|
10
|
+
const propositions = [];
|
|
11
|
+
const symbols = ["<", "=", ">"];
|
|
12
|
+
addValidProp(propositions, answer);
|
|
13
|
+
const remaining = symbols.filter((s) => s !== answer);
|
|
14
|
+
for (const sym of remaining) {
|
|
15
|
+
tryToAddWrongProp(propositions, sym);
|
|
16
|
+
}
|
|
17
|
+
return shuffleProps(propositions, n);
|
|
18
|
+
};
|
|
19
|
+
const getAnswer = ({ a, b }) => {
|
|
20
|
+
const aNode = reifyAlgebraic(a);
|
|
21
|
+
const bNode = reifyAlgebraic(b);
|
|
22
|
+
const aVal = aNode.simplify().evaluate();
|
|
23
|
+
const bVal = bNode.simplify().evaluate();
|
|
24
|
+
return aVal === bVal ? "=" : aVal < bVal ? ">" : "<";
|
|
25
|
+
};
|
|
26
|
+
const getInstruction = ({ a, b, isMinusInside, }) => {
|
|
27
|
+
const aNode = reifyAlgebraic(a);
|
|
28
|
+
const bNode = reifyAlgebraic(b);
|
|
29
|
+
return `Compléter par le bon symbole :
|
|
30
|
+
|
|
31
|
+
$$
|
|
32
|
+
${frac(1, aNode).toTex({
|
|
33
|
+
allowMinusAnywhereInFraction: isMinusInside,
|
|
34
|
+
})}\\ \\ldots \\ ${frac(1, bNode).toTex({
|
|
35
|
+
allowMinusAnywhereInFraction: isMinusInside,
|
|
36
|
+
})}
|
|
37
|
+
$$`;
|
|
38
|
+
};
|
|
39
|
+
const getHint = ({ a, b }) => {
|
|
40
|
+
return `Si $a$ et $b$ sont deux nombres non nuls et de même signe, alors la fonction inverse ne conserve pas l'ordre :
|
|
41
|
+
|
|
42
|
+
- $\\frac{1}{a} < \\frac{1}{b}$ si et seulement si $a>b$ ;
|
|
43
|
+
- $\\frac{1}{a} > \\frac{1}{b}$ si et seulement si $a<b$ ;
|
|
44
|
+
- $\\frac{1}{a} = \\frac{1}{b}$ si et seulement si $a=b$ ; `;
|
|
45
|
+
};
|
|
46
|
+
const getCorrection = (identifiers) => {
|
|
47
|
+
const { a, b, isMinusInside } = identifiers;
|
|
48
|
+
const aNode = reifyAlgebraic(a);
|
|
49
|
+
const bNode = reifyAlgebraic(b);
|
|
50
|
+
const aVal = aNode.simplify().evaluate();
|
|
51
|
+
const bVal = bNode.simplify().evaluate();
|
|
52
|
+
const signe = aVal < bVal ? "<" : aVal > bVal ? ">" : "=";
|
|
53
|
+
const answer = getAnswer(identifiers);
|
|
54
|
+
// return aVal === bVal ? "=" : aVal < bVal ? ">" : "<";
|
|
55
|
+
return `Puisque $${aNode.toTex()} ${signe} ${bNode.toTex()}$, et puisque ce sont deux nombres de même signe, leurs inverses sont dans l'ordre contraire :
|
|
56
|
+
|
|
57
|
+
$$
|
|
58
|
+
${frac(1, aNode).toTex({
|
|
59
|
+
allowMinusAnywhereInFraction: isMinusInside,
|
|
60
|
+
})} ${answer} ${frac(1, bNode).toTex({
|
|
61
|
+
allowMinusAnywhereInFraction: isMinusInside,
|
|
62
|
+
})}
|
|
63
|
+
$$
|
|
64
|
+
`;
|
|
65
|
+
};
|
|
66
|
+
const getKeys = () => [];
|
|
67
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
68
|
+
try {
|
|
69
|
+
return ans === answer;
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
return handleVEAError(err);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
function randBetween(isInteger, min, max, roundTo, excludes) {
|
|
76
|
+
if (isInteger) {
|
|
77
|
+
return randint(min, max, excludes);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return randfloat(min, max, roundTo, excludes);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const getCompareInverseValuesQuestion = () => {
|
|
84
|
+
const min = 2;
|
|
85
|
+
const max = 50;
|
|
86
|
+
const roundTo = 2;
|
|
87
|
+
const isInteger = coinFlip();
|
|
88
|
+
let x;
|
|
89
|
+
let y;
|
|
90
|
+
if (coinFlip()) {
|
|
91
|
+
// tous deux positifs
|
|
92
|
+
x = randBetween(isInteger, min, max, roundTo);
|
|
93
|
+
y = randBetween(isInteger, min, max, roundTo, [x]);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// tous deux négatifs
|
|
97
|
+
x = -randBetween(isInteger, min, max, roundTo);
|
|
98
|
+
y = -randBetween(isInteger, min, max, roundTo, [Math.abs(x)]);
|
|
99
|
+
}
|
|
100
|
+
const isMinusOutside = coinFlip();
|
|
101
|
+
const identifiers = {
|
|
102
|
+
a: x.toTree().toIdentifiers(),
|
|
103
|
+
b: y.toTree().toIdentifiers(),
|
|
104
|
+
isMinusInside: coinFlip(),
|
|
105
|
+
};
|
|
106
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
107
|
+
};
|
|
108
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
109
|
+
return {
|
|
110
|
+
answer: getAnswer(identifiers),
|
|
111
|
+
instruction: getInstruction(identifiers),
|
|
112
|
+
keys: getKeys(identifiers),
|
|
113
|
+
answerFormat: "tex",
|
|
114
|
+
identifiers,
|
|
115
|
+
hint: getHint(identifiers),
|
|
116
|
+
correction: getCorrection(identifiers),
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
export const compareInverseValues = {
|
|
120
|
+
id: "compareInverseValues",
|
|
121
|
+
label: "Comparer des inverses",
|
|
122
|
+
isSingleStep: true,
|
|
123
|
+
generator: (nb, opts) => getDistinctQuestions(() => getCompareInverseValuesQuestion(opts), nb),
|
|
124
|
+
qcmTimer: 60,
|
|
125
|
+
freeTimer: 60,
|
|
126
|
+
getPropositions,
|
|
127
|
+
isAnswerValid,
|
|
128
|
+
subject: "Mathématiques",
|
|
129
|
+
getInstruction,
|
|
130
|
+
getHint,
|
|
131
|
+
getCorrection,
|
|
132
|
+
getAnswer,
|
|
133
|
+
getQuestionFromIdentifiers,
|
|
134
|
+
hasHintAndCorrection: true,
|
|
135
|
+
answerType: "QCU",
|
|
136
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
a: NodeIdentifiers;
|
|
5
|
+
b: NodeIdentifiers;
|
|
6
|
+
};
|
|
7
|
+
export declare const compareSquaredValues: Exercise<Identifiers>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=compareSquaredValues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareSquaredValues.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/compareSquaredValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAK7C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,eAAe,CAAC;CACpB,CAAC;AAkJF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAkBtD,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { randfloat } from "../../../../math/utils/random/randfloat.js";
|
|
4
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
5
|
+
import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
|
|
6
|
+
import { square } from "../../../../tree/nodes/operators/powerNode.js";
|
|
7
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
8
|
+
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
9
|
+
const getPropositions = (n, { answer }) => {
|
|
10
|
+
const propositions = [];
|
|
11
|
+
const symbols = ["<", "=", ">"];
|
|
12
|
+
addValidProp(propositions, answer);
|
|
13
|
+
let remaining = symbols.filter((s) => s !== answer);
|
|
14
|
+
while (remaining.length > 0) {
|
|
15
|
+
tryToAddWrongProp(propositions, remaining[remaining.length - 1]);
|
|
16
|
+
remaining.pop();
|
|
17
|
+
}
|
|
18
|
+
return shuffleProps(propositions, n);
|
|
19
|
+
};
|
|
20
|
+
const getAnswer = (identifiers) => {
|
|
21
|
+
const { a, b } = identifiers;
|
|
22
|
+
const aNode = square(reifyAlgebraic(a));
|
|
23
|
+
const bNode = square(reifyAlgebraic(b));
|
|
24
|
+
const aValue = aNode.simplify({ calculatePowers: true }).evaluate();
|
|
25
|
+
const bValue = bNode.simplify({ calculatePowers: true }).evaluate();
|
|
26
|
+
const res = aValue === bValue ? "=" : aValue < bValue ? "<" : ">";
|
|
27
|
+
return res;
|
|
28
|
+
};
|
|
29
|
+
const getInstruction = (identifiers) => {
|
|
30
|
+
const { a, b } = identifiers;
|
|
31
|
+
const aNode = square(reifyAlgebraic(a));
|
|
32
|
+
const bNode = square(reifyAlgebraic(b));
|
|
33
|
+
return `Compléter par le bon symbole :
|
|
34
|
+
|
|
35
|
+
$$
|
|
36
|
+
${aNode.toTex()} \\ \\ldots \\ ${bNode.toTex()}
|
|
37
|
+
$$`;
|
|
38
|
+
};
|
|
39
|
+
const getHint = (identifiers) => {
|
|
40
|
+
const { a, b } = identifiers;
|
|
41
|
+
const aNode = reifyAlgebraic(a);
|
|
42
|
+
const bNode = reifyAlgebraic(b);
|
|
43
|
+
return `Pour tous nombres $a$ et $b$ tels que $a<b$ :
|
|
44
|
+
|
|
45
|
+
- Si $a$ et $b$ sont positifs, alors $a^2 <b^2$ ;
|
|
46
|
+
- Si $a$ et $b$ sont négatifs, alors $a^2 > b^2$.`;
|
|
47
|
+
};
|
|
48
|
+
const getCorrection = (identifiers) => {
|
|
49
|
+
const { a, b } = identifiers;
|
|
50
|
+
const aNode = reifyAlgebraic(a);
|
|
51
|
+
const bNode = reifyAlgebraic(b);
|
|
52
|
+
const simplifiedA = aNode.simplify({
|
|
53
|
+
calculatePowers: true,
|
|
54
|
+
});
|
|
55
|
+
const simplifiedB = bNode.simplify({ calculatePowers: true });
|
|
56
|
+
const valueA = simplifiedA.evaluate();
|
|
57
|
+
const valueB = simplifiedB.evaluate();
|
|
58
|
+
const sign = valueA < 0 ? "négatif" : "positif";
|
|
59
|
+
const symbol = valueA < valueB ? "<" : valueA > valueB ? ">" : "=";
|
|
60
|
+
const answer = getAnswer(identifiers);
|
|
61
|
+
return `Puisque $${aNode.toTex()}$ et $${bNode.toTex()}$ sont ${sign}s, et puisque $${aNode.toTex()} ${symbol} ${bNode.toTex()}$, on a :
|
|
62
|
+
|
|
63
|
+
$$
|
|
64
|
+
${square(aNode).toTex()} ${answer} ${square(bNode).toTex()}
|
|
65
|
+
$$
|
|
66
|
+
|
|
67
|
+
`;
|
|
68
|
+
};
|
|
69
|
+
const getKeys = (identifiers) => {
|
|
70
|
+
return [];
|
|
71
|
+
};
|
|
72
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
73
|
+
try {
|
|
74
|
+
throw Error("VEA not implemented");
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
return handleVEAError(err);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const randCase = () => Math.floor(Math.random() * 2);
|
|
81
|
+
function randBetween(isInteger, min, max, roundTo, excludes) {
|
|
82
|
+
if (isInteger) {
|
|
83
|
+
return randint(min, max, excludes);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return randfloat(min, max, roundTo, excludes);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const getCompareSquaredValuesQuestion = (ops) => {
|
|
90
|
+
const min = 0;
|
|
91
|
+
const max = 50;
|
|
92
|
+
const roundTo = 2;
|
|
93
|
+
const caseType = randCase();
|
|
94
|
+
const isInteger = coinFlip();
|
|
95
|
+
let a;
|
|
96
|
+
let b;
|
|
97
|
+
switch (caseType) {
|
|
98
|
+
case 0:
|
|
99
|
+
// tous deux positifs
|
|
100
|
+
a = randBetween(isInteger, min, max, roundTo);
|
|
101
|
+
b = randBetween(isInteger, min, max, roundTo, [a]);
|
|
102
|
+
break;
|
|
103
|
+
case 1:
|
|
104
|
+
// tous deux négatifs
|
|
105
|
+
a = -randBetween(isInteger, min, max, roundTo);
|
|
106
|
+
b = -randBetween(isInteger, min, max, roundTo, [-a]);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
const identifiers = {
|
|
110
|
+
a: a.toTree().toIdentifiers(),
|
|
111
|
+
b: b.toTree().toIdentifiers(),
|
|
112
|
+
};
|
|
113
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
114
|
+
};
|
|
115
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
116
|
+
return {
|
|
117
|
+
answer: getAnswer(identifiers),
|
|
118
|
+
instruction: getInstruction(identifiers),
|
|
119
|
+
keys: getKeys(identifiers),
|
|
120
|
+
answerFormat: "tex",
|
|
121
|
+
identifiers,
|
|
122
|
+
hint: getHint(identifiers),
|
|
123
|
+
correction: getCorrection(identifiers),
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
export const compareSquaredValues = {
|
|
127
|
+
id: "compareSquaredValues",
|
|
128
|
+
label: "Comparer des nombres élevés au carré",
|
|
129
|
+
isSingleStep: true,
|
|
130
|
+
generator: (nb, opts) => getDistinctQuestions(() => getCompareSquaredValuesQuestion(opts), nb),
|
|
131
|
+
qcmTimer: 60,
|
|
132
|
+
freeTimer: 60,
|
|
133
|
+
getPropositions,
|
|
134
|
+
isAnswerValid,
|
|
135
|
+
subject: "Mathématiques",
|
|
136
|
+
getInstruction,
|
|
137
|
+
getHint,
|
|
138
|
+
getCorrection,
|
|
139
|
+
getAnswer,
|
|
140
|
+
getQuestionFromIdentifiers,
|
|
141
|
+
hasHintAndCorrection: true,
|
|
142
|
+
answerType: "QCU",
|
|
143
|
+
};
|
|
@@ -17,5 +17,10 @@ export * from "./isPointOnReciprocalFunction.js";
|
|
|
17
17
|
export * from "./isPointOnFunction.js";
|
|
18
18
|
export * from "./whichMultipleAmI.js";
|
|
19
19
|
export * from "./isMultipleOrDivisor.js";
|
|
20
|
+
export * from "./compareInverseValues.js";
|
|
20
21
|
export * from "./calculateDistanceBetweenNumbers.js";
|
|
22
|
+
export * from "./compareSquaredValues.js";
|
|
23
|
+
export * from "./calculateWithAbsoluteValue.js";
|
|
24
|
+
export * from "./sqrtInequality.js";
|
|
25
|
+
export * from "./calculateDistanceWithAbsoluteValue.js";
|
|
21
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yCAAyC,CAAC"}
|
|
@@ -17,4 +17,9 @@ export * from "./isPointOnReciprocalFunction.js";
|
|
|
17
17
|
export * from "./isPointOnFunction.js";
|
|
18
18
|
export * from "./whichMultipleAmI.js";
|
|
19
19
|
export * from "./isMultipleOrDivisor.js";
|
|
20
|
+
export * from "./compareInverseValues.js";
|
|
20
21
|
export * from "./calculateDistanceBetweenNumbers.js";
|
|
22
|
+
export * from "./compareSquaredValues.js";
|
|
23
|
+
export * from "./calculateWithAbsoluteValue.js";
|
|
24
|
+
export * from "./sqrtInequality.js";
|
|
25
|
+
export * from "./calculateDistanceWithAbsoluteValue.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
twoSided: boolean;
|
|
5
|
+
a: NodeIdentifiers;
|
|
6
|
+
b?: NodeIdentifiers;
|
|
7
|
+
};
|
|
8
|
+
export declare const sqrtInequality: Exercise<Identifiers>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=sqrtInequality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqrtInequality.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/sqrtInequality.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAU7C,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,CAAC,EAAE,eAAe,CAAC;CACrB,CAAC;AAsJF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAkBhD,CAAC"}
|