math-exercises 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/exercises/calcul/addAndSub.js +2 -2
- package/src/exercises/calcul/addAndSub.ts +2 -2
- package/src/exercises/calcul/fractions/fractionAndIntegerDivision.js +3 -3
- package/src/exercises/calcul/fractions/fractionAndIntegerDivision.ts +3 -3
- package/src/exercises/calcul/fractions/fractionAndIntegerProduct.js +3 -3
- package/src/exercises/calcul/fractions/fractionAndIntegerProduct.ts +3 -3
- package/src/exercises/calcul/fractions/fractionAndIntegerSum.js +3 -3
- package/src/exercises/calcul/fractions/fractionAndIntegerSum.ts +3 -3
- package/src/exercises/calcul/fractions/fractionsDivision.js +3 -3
- package/src/exercises/calcul/fractions/fractionsDivision.ts +3 -3
- package/src/exercises/calcul/fractions/fractionsProduct.js +3 -3
- package/src/exercises/calcul/fractions/fractionsProduct.ts +3 -3
- package/src/exercises/calcul/fractions/fractionsSum.js +3 -3
- package/src/exercises/calcul/fractions/fractionsSum.ts +3 -3
- package/src/exercises/calcul/fractions/simplifyFraction.js +3 -3
- package/src/exercises/calcul/fractions/simplifyFraction.ts +3 -3
- package/src/exercises/calcul/operationsPriorities.js +3 -21
- package/src/exercises/calcul/operationsPriorities.ts +2 -2
- package/src/exercises/calcul/rounding/roundToUnit.js +3 -3
- package/src/exercises/calcul/rounding/roundToUnit.ts +3 -3
- package/src/exercises/calculLitteral/distributivity/doubleDistributivity.js +3 -3
- package/src/exercises/calculLitteral/distributivity/doubleDistributivity.ts +3 -3
- package/src/exercises/calculLitteral/distributivity/firstIdentity.js +3 -3
- package/src/exercises/calculLitteral/distributivity/firstIdentity.ts +3 -3
- package/src/exercises/calculLitteral/distributivity/secondIdentity.js +3 -3
- package/src/exercises/calculLitteral/distributivity/secondIdentity.ts +3 -3
- package/src/exercises/calculLitteral/distributivity/simpleDistributivity.js +3 -3
- package/src/exercises/calculLitteral/distributivity/simpleDistributivity.ts +3 -3
- package/src/exercises/calculLitteral/distributivity/thirdIdentity.js +3 -3
- package/src/exercises/calculLitteral/distributivity/thirdIdentity.ts +3 -3
- package/src/exercises/calculLitteral/equation/equationType1Exercise.js +2 -2
- package/src/exercises/calculLitteral/equation/equationType1Exercise.ts +2 -2
- package/src/exercises/calculLitteral/equation/equationType2Exercise.js +3 -3
- package/src/exercises/calculLitteral/equation/equationType2Exercise.ts +3 -3
- package/src/exercises/calculLitteral/equation/equationType3Exercise.js +3 -3
- package/src/exercises/calculLitteral/equation/equationType3Exercise.ts +3 -3
- package/src/exercises/calculLitteral/equation/equationType4Exercise.js +3 -3
- package/src/exercises/calculLitteral/equation/equationType4Exercise.ts +3 -3
- package/src/exercises/calculLitteral/factorisation/factoType1Exercise.js +3 -3
- package/src/exercises/calculLitteral/factorisation/factoType1Exercise.ts +3 -3
- package/src/exercises/exercise.ts +1 -1
- package/src/exercises/exercises.ts +6 -0
- package/src/exercises/powers/powersDivision.js +3 -3
- package/src/exercises/powers/powersDivision.ts +3 -3
- package/src/exercises/powers/powersOfTenToDecimal.js +3 -3
- package/src/exercises/powers/powersOfTenToDecimal.ts +3 -3
- package/src/exercises/powers/powersPower.js +3 -3
- package/src/exercises/powers/powersPower.ts +3 -3
- package/src/exercises/powers/powersProduct.js +3 -3
- package/src/exercises/powers/powersProduct.ts +3 -3
- package/src/exercises/powers/scientificToDecimal.js +3 -3
- package/src/exercises/powers/scientificToDecimal.ts +3 -3
- package/src/exercises/squareRoots/simpifySquareRoot.js +3 -3
- package/src/exercises/squareRoots/simpifySquareRoot.ts +3 -3
- package/src/exercises/utils/getDistinctQuestions.ts +2 -5
- package/src/index.js +8 -0
- package/src/index.ts +4 -1
- package/src/tree/parsers/derivateParser.js +61 -0
- package/src/tree/parsers/derivateParser.ts +66 -0
- package/src/tree/parsers/latexParser.js +117 -0
- package/src/tree/{latexParser/latexParse.ts → parsers/latexParser.ts} +4 -4
|
@@ -5,7 +5,7 @@ var integer_1 = require("../../../numbers/integer/integer");
|
|
|
5
5
|
var affine_1 = require("../../../polynomials/affine");
|
|
6
6
|
var discreteSet_1 = require("../../../sets/discreteSet");
|
|
7
7
|
var intervals_1 = require("../../../sets/intervals/intervals");
|
|
8
|
-
var
|
|
8
|
+
var latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
9
9
|
var multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
|
|
10
10
|
var getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
11
11
|
exports.thirdIdentity = {
|
|
@@ -25,8 +25,8 @@ function getThirdIdentityQuestion() {
|
|
|
25
25
|
var statementTree = new multiplyNode_1.MultiplyNode(affine.toTree(), affine2.toTree());
|
|
26
26
|
var answerTree = affine.multiply(affine2).toTree();
|
|
27
27
|
return {
|
|
28
|
-
statement: (0,
|
|
29
|
-
answer: (0,
|
|
28
|
+
statement: (0, latexParser_1.latexParser)(statementTree),
|
|
29
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
exports.getThirdIdentityQuestion = getThirdIdentityQuestion;
|
|
@@ -2,7 +2,7 @@ import { Integer } from "../../../numbers/integer/integer";
|
|
|
2
2
|
import { Affine, AffineConstructor } from "../../../polynomials/affine";
|
|
3
3
|
import { DiscreteSet } from "../../../sets/discreteSet";
|
|
4
4
|
import { Interval } from "../../../sets/intervals/intervals";
|
|
5
|
-
import {
|
|
5
|
+
import { latexParser } from "../../../tree/parsers/latexParser";
|
|
6
6
|
import { NumberNode } from "../../../tree/nodes/numbers/numberNode";
|
|
7
7
|
import { MultiplyNode } from "../../../tree/nodes/operators/multiplyNode";
|
|
8
8
|
import { PowerNode } from "../../../tree/nodes/operators/powerNode";
|
|
@@ -28,7 +28,7 @@ export function getThirdIdentityQuestion(): Question {
|
|
|
28
28
|
const answerTree = affine.multiply(affine2).toTree();
|
|
29
29
|
|
|
30
30
|
return {
|
|
31
|
-
|
|
32
|
-
answer:
|
|
31
|
+
startStatement: latexParser(statementTree),
|
|
32
|
+
answer: latexParser(answerTree),
|
|
33
33
|
};
|
|
34
34
|
}
|
|
@@ -5,7 +5,7 @@ var integer_1 = require("../../../numbers/integer/integer");
|
|
|
5
5
|
var affine_1 = require("../../../polynomials/affine");
|
|
6
6
|
var discreteSet_1 = require("../../../sets/discreteSet");
|
|
7
7
|
var intervals_1 = require("../../../sets/intervals/intervals");
|
|
8
|
-
var
|
|
8
|
+
var latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
9
9
|
var equalNode_1 = require("../../../tree/nodes/operators/equalNode");
|
|
10
10
|
var getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
11
11
|
/**
|
|
@@ -30,7 +30,7 @@ function getEquationType1ExerciseQuestion() {
|
|
|
30
30
|
var affine = new affine_1.Affine(1, a.value).toTree();
|
|
31
31
|
var tree = new equalNode_1.EqualNode(affine, b.toTree());
|
|
32
32
|
var question = {
|
|
33
|
-
statement: (0,
|
|
33
|
+
statement: (0, latexParser_1.latexParser)(tree),
|
|
34
34
|
answer: "x = ".concat(solution)
|
|
35
35
|
};
|
|
36
36
|
return question;
|
|
@@ -2,7 +2,7 @@ import { Integer } from "../../../numbers/integer/integer";
|
|
|
2
2
|
import { Affine } from "../../../polynomials/affine";
|
|
3
3
|
import { DiscreteSet } from "../../../sets/discreteSet";
|
|
4
4
|
import { Interval } from "../../../sets/intervals/intervals";
|
|
5
|
-
import {
|
|
5
|
+
import { latexParser } from "../../../tree/parsers/latexParser";
|
|
6
6
|
import { EqualNode } from "../../../tree/nodes/operators/equalNode";
|
|
7
7
|
import { Exercise, Question } from "../../exercise";
|
|
8
8
|
import { getDistinctQuestions } from "../../utils/getDistinctQuestions";
|
|
@@ -31,7 +31,7 @@ export function getEquationType1ExerciseQuestion(): Question {
|
|
|
31
31
|
const tree = new EqualNode(affine, b.toTree());
|
|
32
32
|
|
|
33
33
|
const question: Question = {
|
|
34
|
-
|
|
34
|
+
startStatement: latexParser(tree),
|
|
35
35
|
answer: `x = ${solution}`,
|
|
36
36
|
};
|
|
37
37
|
return question;
|
|
@@ -6,7 +6,7 @@ var rational_1 = require("../../../numbers/rationals/rational");
|
|
|
6
6
|
var affine_1 = require("../../../polynomials/affine");
|
|
7
7
|
var discreteSet_1 = require("../../../sets/discreteSet");
|
|
8
8
|
var intervals_1 = require("../../../sets/intervals/intervals");
|
|
9
|
-
var
|
|
9
|
+
var latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
10
10
|
var equalNode_1 = require("../../../tree/nodes/operators/equalNode");
|
|
11
11
|
var variableNode_1 = require("../../../tree/nodes/variables/variableNode");
|
|
12
12
|
var getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
@@ -33,8 +33,8 @@ function getEquationType2ExerciseQuestion() {
|
|
|
33
33
|
var tree = new equalNode_1.EqualNode(affine, b.toTree());
|
|
34
34
|
var answer = new equalNode_1.EqualNode(new variableNode_1.VariableNode("x"), solution.toTree());
|
|
35
35
|
var question = {
|
|
36
|
-
statement: (0,
|
|
37
|
-
answer: (0,
|
|
36
|
+
statement: (0, latexParser_1.latexParser)(tree),
|
|
37
|
+
answer: (0, latexParser_1.latexParser)(answer)
|
|
38
38
|
};
|
|
39
39
|
return question;
|
|
40
40
|
}
|
|
@@ -3,7 +3,7 @@ import { Rational } from "../../../numbers/rationals/rational";
|
|
|
3
3
|
import { Affine } from "../../../polynomials/affine";
|
|
4
4
|
import { DiscreteSet } from "../../../sets/discreteSet";
|
|
5
5
|
import { Interval } from "../../../sets/intervals/intervals";
|
|
6
|
-
import {
|
|
6
|
+
import { latexParser } from "../../../tree/parsers/latexParser";
|
|
7
7
|
import { EqualNode } from "../../../tree/nodes/operators/equalNode";
|
|
8
8
|
import { VariableNode } from "../../../tree/nodes/variables/variableNode";
|
|
9
9
|
import { Exercise, Question } from "../../exercise";
|
|
@@ -34,8 +34,8 @@ export function getEquationType2ExerciseQuestion(): Question {
|
|
|
34
34
|
const tree = new EqualNode(affine, b.toTree());
|
|
35
35
|
const answer = new EqualNode(new VariableNode("x"), solution.toTree());
|
|
36
36
|
const question: Question = {
|
|
37
|
-
|
|
38
|
-
answer:
|
|
37
|
+
startStatement: latexParser(tree),
|
|
38
|
+
answer: latexParser(answer),
|
|
39
39
|
};
|
|
40
40
|
return question;
|
|
41
41
|
}
|
|
@@ -6,7 +6,7 @@ var rational_1 = require("../../../numbers/rationals/rational");
|
|
|
6
6
|
var affine_1 = require("../../../polynomials/affine");
|
|
7
7
|
var discreteSet_1 = require("../../../sets/discreteSet");
|
|
8
8
|
var intervals_1 = require("../../../sets/intervals/intervals");
|
|
9
|
-
var
|
|
9
|
+
var latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
10
10
|
var equalNode_1 = require("../../../tree/nodes/operators/equalNode");
|
|
11
11
|
var variableNode_1 = require("../../../tree/nodes/variables/variableNode");
|
|
12
12
|
var getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
@@ -34,8 +34,8 @@ function getEquationType3ExerciseQuestion() {
|
|
|
34
34
|
var statementTree = new equalNode_1.EqualNode(affine, c.toTree());
|
|
35
35
|
var answerTree = new equalNode_1.EqualNode(new variableNode_1.VariableNode("x"), solution.toTree());
|
|
36
36
|
var question = {
|
|
37
|
-
statement: (0,
|
|
38
|
-
answer: (0,
|
|
37
|
+
statement: (0, latexParser_1.latexParser)(statementTree),
|
|
38
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
39
39
|
};
|
|
40
40
|
return question;
|
|
41
41
|
}
|
|
@@ -3,7 +3,7 @@ import { Rational } from "../../../numbers/rationals/rational";
|
|
|
3
3
|
import { Affine } from "../../../polynomials/affine";
|
|
4
4
|
import { DiscreteSet } from "../../../sets/discreteSet";
|
|
5
5
|
import { Interval } from "../../../sets/intervals/intervals";
|
|
6
|
-
import {
|
|
6
|
+
import { latexParser } from "../../../tree/parsers/latexParser";
|
|
7
7
|
import { EqualNode } from "../../../tree/nodes/operators/equalNode";
|
|
8
8
|
import { VariableNode } from "../../../tree/nodes/variables/variableNode";
|
|
9
9
|
import { Exercise, Question } from "../../exercise";
|
|
@@ -36,8 +36,8 @@ export function getEquationType3ExerciseQuestion(): Question {
|
|
|
36
36
|
const statementTree = new EqualNode(affine, c.toTree());
|
|
37
37
|
const answerTree = new EqualNode(new VariableNode("x"), solution.toTree());
|
|
38
38
|
const question: Question = {
|
|
39
|
-
|
|
40
|
-
answer:
|
|
39
|
+
startStatement: latexParser(statementTree),
|
|
40
|
+
answer: latexParser(answerTree),
|
|
41
41
|
};
|
|
42
42
|
return question;
|
|
43
43
|
}
|
|
@@ -6,7 +6,7 @@ var rational_1 = require("../../../numbers/rationals/rational");
|
|
|
6
6
|
var affine_1 = require("../../../polynomials/affine");
|
|
7
7
|
var discreteSet_1 = require("../../../sets/discreteSet");
|
|
8
8
|
var intervals_1 = require("../../../sets/intervals/intervals");
|
|
9
|
-
var
|
|
9
|
+
var latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
10
10
|
var equalNode_1 = require("../../../tree/nodes/operators/equalNode");
|
|
11
11
|
var variableNode_1 = require("../../../tree/nodes/variables/variableNode");
|
|
12
12
|
var getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
@@ -36,8 +36,8 @@ function getEquationType4ExerciseQuestion() {
|
|
|
36
36
|
var statementTree = new equalNode_1.EqualNode(affines[0].toTree(), affines[1].toTree());
|
|
37
37
|
var answerTree = new equalNode_1.EqualNode(new variableNode_1.VariableNode("x"), solution.toTree());
|
|
38
38
|
var question = {
|
|
39
|
-
statement: (0,
|
|
40
|
-
answer: (0,
|
|
39
|
+
statement: (0, latexParser_1.latexParser)(statementTree),
|
|
40
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
41
41
|
};
|
|
42
42
|
return question;
|
|
43
43
|
}
|
|
@@ -3,7 +3,7 @@ import { Rational } from "../../../numbers/rationals/rational";
|
|
|
3
3
|
import { Affine } from "../../../polynomials/affine";
|
|
4
4
|
import { DiscreteSet } from "../../../sets/discreteSet";
|
|
5
5
|
import { Interval } from "../../../sets/intervals/intervals";
|
|
6
|
-
import {
|
|
6
|
+
import { latexParser } from "../../../tree/parsers/latexParser";
|
|
7
7
|
import { EqualNode } from "../../../tree/nodes/operators/equalNode";
|
|
8
8
|
import { VariableNode } from "../../../tree/nodes/variables/variableNode";
|
|
9
9
|
import { Exercise, Question } from "../../exercise";
|
|
@@ -39,8 +39,8 @@ export function getEquationType4ExerciseQuestion(): Question {
|
|
|
39
39
|
const statementTree = new EqualNode(affines[0].toTree(), affines[1].toTree());
|
|
40
40
|
const answerTree = new EqualNode(new VariableNode("x"), solution.toTree());
|
|
41
41
|
const question: Question = {
|
|
42
|
-
|
|
43
|
-
answer:
|
|
42
|
+
startStatement: latexParser(statementTree),
|
|
43
|
+
answer: latexParser(answerTree),
|
|
44
44
|
};
|
|
45
45
|
return question;
|
|
46
46
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
exports.__esModule = true;
|
|
3
3
|
exports.getFactoType1Question = exports.factoType1Exercise = void 0;
|
|
4
4
|
var affine_1 = require("../../../polynomials/affine");
|
|
5
|
-
var
|
|
5
|
+
var latexParser_1 = require("../../../tree/parsers/latexParser");
|
|
6
6
|
var addNode_1 = require("../../../tree/nodes/operators/addNode");
|
|
7
7
|
var multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
|
|
8
8
|
var substractNode_1 = require("../../../tree/nodes/operators/substractNode");
|
|
@@ -31,8 +31,8 @@ function getFactoType1Question() {
|
|
|
31
31
|
: new substractNode_1.SubstractNode(new multiplyNode_1.MultiplyNode(permut[0][0].toTree(), permut[0][1].toTree()), new multiplyNode_1.MultiplyNode(permut[1][0].toTree(), permut[1][1].toTree()));
|
|
32
32
|
var answerTree = new multiplyNode_1.MultiplyNode(affines[0].toTree(), affines[1].add(operation === "add" ? affines[2] : affines[2].opposite()).toTree());
|
|
33
33
|
var question = {
|
|
34
|
-
statement: (0,
|
|
35
|
-
answer: (0,
|
|
34
|
+
statement: (0, latexParser_1.latexParser)(statementTree),
|
|
35
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
36
36
|
};
|
|
37
37
|
return question;
|
|
38
38
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Affine, AffineConstructor } from "../../../polynomials/affine";
|
|
2
|
-
import {
|
|
2
|
+
import { latexParser } from "../../../tree/parsers/latexParser";
|
|
3
3
|
import { AddNode } from "../../../tree/nodes/operators/addNode";
|
|
4
4
|
import { MultiplyNode } from "../../../tree/nodes/operators/multiplyNode";
|
|
5
5
|
import { SubstractNode } from "../../../tree/nodes/operators/substractNode";
|
|
@@ -47,8 +47,8 @@ export function getFactoType1Question(): Question {
|
|
|
47
47
|
);
|
|
48
48
|
|
|
49
49
|
const question: Question = {
|
|
50
|
-
|
|
51
|
-
answer:
|
|
50
|
+
startStatement: latexParser(statementTree),
|
|
51
|
+
answer: latexParser(answerTree),
|
|
52
52
|
};
|
|
53
53
|
return question;
|
|
54
54
|
}
|
|
@@ -26,6 +26,12 @@ import { powersOfTenProduct, powersProduct } from "./powers/powersProduct";
|
|
|
26
26
|
import { scientificToDecimal } from "./powers/scientificToDecimal";
|
|
27
27
|
import { simplifySquareRoot } from "./squareRoots/simpifySquareRoot";
|
|
28
28
|
|
|
29
|
+
export const data = [
|
|
30
|
+
{
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
|
|
29
35
|
export const exercises = [
|
|
30
36
|
/**
|
|
31
37
|
* calcul litteral
|
|
@@ -3,7 +3,7 @@ exports.__esModule = true;
|
|
|
3
3
|
exports.getPowersDivisionQuestion = exports.powersOfTenDivision = exports.powersDivision = void 0;
|
|
4
4
|
var randint_1 = require("../../mathutils/random/randint");
|
|
5
5
|
var power_1 = require("../../numbers/integer/power");
|
|
6
|
-
var
|
|
6
|
+
var latexParser_1 = require("../../tree/parsers/latexParser");
|
|
7
7
|
var numberNode_1 = require("../../tree/nodes/numbers/numberNode");
|
|
8
8
|
var fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
|
|
9
9
|
var powerNode_1 = require("../../tree/nodes/operators/powerNode");
|
|
@@ -38,8 +38,8 @@ function getPowersDivisionQuestion(useOnlyPowersOfTen) {
|
|
|
38
38
|
var statement = new fractionNode_1.FractionNode(new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(c)));
|
|
39
39
|
var answerTree = new power_1.Power(a, b - c).simplify();
|
|
40
40
|
var question = {
|
|
41
|
-
statement: (0,
|
|
42
|
-
answer: (0,
|
|
41
|
+
statement: (0, latexParser_1.latexParser)(statement),
|
|
42
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
43
43
|
};
|
|
44
44
|
return question;
|
|
45
45
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randint } from "../../mathutils/random/randint";
|
|
2
2
|
import { Power } from "../../numbers/integer/power";
|
|
3
|
-
import {
|
|
3
|
+
import { latexParser } from "../../tree/parsers/latexParser";
|
|
4
4
|
import { NumberNode } from "../../tree/nodes/numbers/numberNode";
|
|
5
5
|
import { FractionNode } from "../../tree/nodes/operators/fractionNode";
|
|
6
6
|
import { MultiplyNode } from "../../tree/nodes/operators/multiplyNode";
|
|
@@ -44,8 +44,8 @@ export function getPowersDivisionQuestion(useOnlyPowersOfTen: boolean = false):
|
|
|
44
44
|
const answerTree = new Power(a, b - c).simplify();
|
|
45
45
|
|
|
46
46
|
const question: Question = {
|
|
47
|
-
|
|
48
|
-
answer:
|
|
47
|
+
startStatement: latexParser(statement),
|
|
48
|
+
answer: latexParser(answerTree),
|
|
49
49
|
};
|
|
50
50
|
return question;
|
|
51
51
|
}
|
|
@@ -3,7 +3,7 @@ exports.__esModule = true;
|
|
|
3
3
|
exports.getPowersOfTenDivisionQuestion = exports.powersOfTenToDecimal = void 0;
|
|
4
4
|
var randint_1 = require("../../mathutils/random/randint");
|
|
5
5
|
var power_1 = require("../../numbers/integer/power");
|
|
6
|
-
var
|
|
6
|
+
var latexParser_1 = require("../../tree/parsers/latexParser");
|
|
7
7
|
var numberNode_1 = require("../../tree/nodes/numbers/numberNode");
|
|
8
8
|
var powerNode_1 = require("../../tree/nodes/operators/powerNode");
|
|
9
9
|
var getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
|
|
@@ -25,8 +25,8 @@ function getPowersOfTenDivisionQuestion() {
|
|
|
25
25
|
var statement = new powerNode_1.PowerNode(new numberNode_1.NumberNode(10), new numberNode_1.NumberNode(randPower));
|
|
26
26
|
var answerTree = new power_1.Power(10, randPower).toDecimalWriting().toTree();
|
|
27
27
|
var question = {
|
|
28
|
-
statement: (0,
|
|
29
|
-
answer: (0,
|
|
28
|
+
statement: (0, latexParser_1.latexParser)(statement),
|
|
29
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
30
30
|
};
|
|
31
31
|
return question;
|
|
32
32
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randint } from "../../mathutils/random/randint";
|
|
2
2
|
import { Power } from "../../numbers/integer/power";
|
|
3
|
-
import {
|
|
3
|
+
import { latexParser } from "../../tree/parsers/latexParser";
|
|
4
4
|
import { NumberNode } from "../../tree/nodes/numbers/numberNode";
|
|
5
5
|
import { FractionNode } from "../../tree/nodes/operators/fractionNode";
|
|
6
6
|
import { MultiplyNode } from "../../tree/nodes/operators/multiplyNode";
|
|
@@ -30,8 +30,8 @@ export function getPowersOfTenDivisionQuestion(): Question {
|
|
|
30
30
|
const answerTree = new Power(10, randPower).toDecimalWriting().toTree();
|
|
31
31
|
|
|
32
32
|
const question: Question = {
|
|
33
|
-
|
|
34
|
-
answer:
|
|
33
|
+
startStatement: latexParser(statement),
|
|
34
|
+
answer: latexParser(answerTree),
|
|
35
35
|
};
|
|
36
36
|
return question;
|
|
37
37
|
}
|
|
@@ -3,7 +3,7 @@ exports.__esModule = true;
|
|
|
3
3
|
exports.getPowersPowerQuestion = exports.powersPower = exports.powersOfTenPower = void 0;
|
|
4
4
|
var randint_1 = require("../../mathutils/random/randint");
|
|
5
5
|
var power_1 = require("../../numbers/integer/power");
|
|
6
|
-
var
|
|
6
|
+
var latexParser_1 = require("../../tree/parsers/latexParser");
|
|
7
7
|
var numberNode_1 = require("../../tree/nodes/numbers/numberNode");
|
|
8
8
|
var powerNode_1 = require("../../tree/nodes/operators/powerNode");
|
|
9
9
|
var getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
|
|
@@ -37,8 +37,8 @@ function getPowersPowerQuestion(useOnlyPowersOfTen) {
|
|
|
37
37
|
var statement = new powerNode_1.PowerNode(new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new numberNode_1.NumberNode(c));
|
|
38
38
|
var answerTree = new power_1.Power(a, b * c).simplify();
|
|
39
39
|
var question = {
|
|
40
|
-
statement: (0,
|
|
41
|
-
answer: (0,
|
|
40
|
+
statement: (0, latexParser_1.latexParser)(statement),
|
|
41
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
42
42
|
};
|
|
43
43
|
return question;
|
|
44
44
|
}
|
|
@@ -3,7 +3,7 @@ import { Integer } from "../../numbers/integer/integer";
|
|
|
3
3
|
import { Power } from "../../numbers/integer/power";
|
|
4
4
|
import { DiscreteSet } from "../../sets/discreteSet";
|
|
5
5
|
import { Interval } from "../../sets/intervals/intervals";
|
|
6
|
-
import {
|
|
6
|
+
import { latexParser } from "../../tree/parsers/latexParser";
|
|
7
7
|
import { Node } from "../../tree/nodes/node";
|
|
8
8
|
import { NumberNode } from "../../tree/nodes/numbers/numberNode";
|
|
9
9
|
import { AddNode } from "../../tree/nodes/operators/addNode";
|
|
@@ -48,8 +48,8 @@ export function getPowersPowerQuestion(useOnlyPowersOfTen: boolean = false): Que
|
|
|
48
48
|
let answerTree = new Power(a, b * c).simplify();
|
|
49
49
|
|
|
50
50
|
const question: Question = {
|
|
51
|
-
|
|
52
|
-
answer:
|
|
51
|
+
startStatement: latexParser(statement),
|
|
52
|
+
answer: latexParser(answerTree),
|
|
53
53
|
};
|
|
54
54
|
return question;
|
|
55
55
|
}
|
|
@@ -3,7 +3,7 @@ exports.__esModule = true;
|
|
|
3
3
|
exports.getPowersProductQuestion = exports.powersProduct = exports.powersOfTenProduct = void 0;
|
|
4
4
|
var randint_1 = require("../../mathutils/random/randint");
|
|
5
5
|
var power_1 = require("../../numbers/integer/power");
|
|
6
|
-
var
|
|
6
|
+
var latexParser_1 = require("../../tree/parsers/latexParser");
|
|
7
7
|
var numberNode_1 = require("../../tree/nodes/numbers/numberNode");
|
|
8
8
|
var multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
|
|
9
9
|
var powerNode_1 = require("../../tree/nodes/operators/powerNode");
|
|
@@ -38,8 +38,8 @@ function getPowersProductQuestion(useOnlyPowersOfTen) {
|
|
|
38
38
|
var statement = new multiplyNode_1.MultiplyNode(new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(b)), new powerNode_1.PowerNode(new numberNode_1.NumberNode(a), new numberNode_1.NumberNode(c)));
|
|
39
39
|
var answerTree = new power_1.Power(a, b + c).simplify();
|
|
40
40
|
var question = {
|
|
41
|
-
statement: (0,
|
|
42
|
-
answer: (0,
|
|
41
|
+
statement: (0, latexParser_1.latexParser)(statement),
|
|
42
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
43
43
|
};
|
|
44
44
|
return question;
|
|
45
45
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randint } from "../../mathutils/random/randint";
|
|
2
2
|
import { Power } from "../../numbers/integer/power";
|
|
3
|
-
import {
|
|
3
|
+
import { latexParser } from "../../tree/parsers/latexParser";
|
|
4
4
|
import { NumberNode } from "../../tree/nodes/numbers/numberNode";
|
|
5
5
|
import { MultiplyNode } from "../../tree/nodes/operators/multiplyNode";
|
|
6
6
|
import { PowerNode } from "../../tree/nodes/operators/powerNode";
|
|
@@ -44,8 +44,8 @@ export function getPowersProductQuestion(useOnlyPowersOfTen: boolean = false): Q
|
|
|
44
44
|
const answerTree = new Power(a, b + c).simplify();
|
|
45
45
|
|
|
46
46
|
const question: Question = {
|
|
47
|
-
|
|
48
|
-
answer:
|
|
47
|
+
startStatement: latexParser(statement),
|
|
48
|
+
answer: latexParser(answerTree),
|
|
49
49
|
};
|
|
50
50
|
return question;
|
|
51
51
|
}
|
|
@@ -4,7 +4,7 @@ exports.getScientificToDecimalQuestion = exports.scientificToDecimal = void 0;
|
|
|
4
4
|
var randint_1 = require("../../mathutils/random/randint");
|
|
5
5
|
var decimal_1 = require("../../numbers/decimals/decimal");
|
|
6
6
|
var integer_1 = require("../../numbers/integer/integer");
|
|
7
|
-
var
|
|
7
|
+
var latexParser_1 = require("../../tree/parsers/latexParser");
|
|
8
8
|
var numberNode_1 = require("../../tree/nodes/numbers/numberNode");
|
|
9
9
|
var multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
|
|
10
10
|
var powerNode_1 = require("../../tree/nodes/operators/powerNode");
|
|
@@ -30,8 +30,8 @@ function getScientificToDecimalQuestion() {
|
|
|
30
30
|
var statement = new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(randDecimal.value), new powerNode_1.PowerNode(new numberNode_1.NumberNode(10), new numberNode_1.NumberNode(randPower)));
|
|
31
31
|
var answerTree = randDecimal.multiplyByPowerOfTen(randPower).toTree();
|
|
32
32
|
var question = {
|
|
33
|
-
statement: (0,
|
|
34
|
-
answer: (0,
|
|
33
|
+
statement: (0, latexParser_1.latexParser)(statement),
|
|
34
|
+
answer: (0, latexParser_1.latexParser)(answerTree)
|
|
35
35
|
};
|
|
36
36
|
return question;
|
|
37
37
|
}
|
|
@@ -2,7 +2,7 @@ import { randint } from "../../mathutils/random/randint";
|
|
|
2
2
|
import { DecimalConstructor } from "../../numbers/decimals/decimal";
|
|
3
3
|
import { IntegerConstructor } from "../../numbers/integer/integer";
|
|
4
4
|
import { Power } from "../../numbers/integer/power";
|
|
5
|
-
import {
|
|
5
|
+
import { latexParser } from "../../tree/parsers/latexParser";
|
|
6
6
|
import { NumberNode } from "../../tree/nodes/numbers/numberNode";
|
|
7
7
|
import { FractionNode } from "../../tree/nodes/operators/fractionNode";
|
|
8
8
|
import { MultiplyNode } from "../../tree/nodes/operators/multiplyNode";
|
|
@@ -37,8 +37,8 @@ export function getScientificToDecimalQuestion(): Question {
|
|
|
37
37
|
const answerTree = randDecimal.multiplyByPowerOfTen(randPower).toTree();
|
|
38
38
|
|
|
39
39
|
const question: Question = {
|
|
40
|
-
|
|
41
|
-
answer:
|
|
40
|
+
startStatement: latexParser(statement),
|
|
41
|
+
answer: latexParser(answerTree),
|
|
42
42
|
};
|
|
43
43
|
return question;
|
|
44
44
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
exports.__esModule = true;
|
|
3
3
|
exports.getSimplifySquareRoot = exports.simplifySquareRoot = void 0;
|
|
4
4
|
var squareRoot_1 = require("../../numbers/reals/squareRoot");
|
|
5
|
-
var
|
|
5
|
+
var latexParser_1 = require("../../tree/parsers/latexParser");
|
|
6
6
|
var getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
|
|
7
7
|
exports.simplifySquareRoot = {
|
|
8
8
|
id: "simplifySqrt",
|
|
@@ -20,8 +20,8 @@ function getSimplifySquareRoot() {
|
|
|
20
20
|
maxSquare: 11
|
|
21
21
|
});
|
|
22
22
|
var question = {
|
|
23
|
-
statement: (0,
|
|
24
|
-
answer: (0,
|
|
23
|
+
statement: (0, latexParser_1.latexParser)(squareRoot.toTree()),
|
|
24
|
+
answer: (0, latexParser_1.latexParser)(squareRoot.simplify().toTree())
|
|
25
25
|
};
|
|
26
26
|
return question;
|
|
27
27
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SquareRootConstructor } from "../../numbers/reals/squareRoot";
|
|
2
|
-
import {
|
|
2
|
+
import { latexParser } from "../../tree/parsers/latexParser";
|
|
3
3
|
import { Exercise, Question } from "../exercise";
|
|
4
4
|
import { getDistinctQuestions } from "../utils/getDistinctQuestions";
|
|
5
5
|
|
|
@@ -20,8 +20,8 @@ export function getSimplifySquareRoot(): Question {
|
|
|
20
20
|
maxSquare: 11,
|
|
21
21
|
});
|
|
22
22
|
const question: Question = {
|
|
23
|
-
|
|
24
|
-
answer:
|
|
23
|
+
startStatement: latexParser(squareRoot.toTree()),
|
|
24
|
+
answer: latexParser(squareRoot.simplify().toTree()),
|
|
25
25
|
};
|
|
26
26
|
return question;
|
|
27
27
|
}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { Question } from "../exercise";
|
|
2
|
-
export const getDistinctQuestions = (
|
|
3
|
-
generator: Function,
|
|
4
|
-
nb: number
|
|
5
|
-
): Question[] => {
|
|
2
|
+
export const getDistinctQuestions = (generator: Function, nb: number): Question[] => {
|
|
6
3
|
const res: Question[] = [];
|
|
7
4
|
|
|
8
5
|
for (let i = 0; i < nb; i++) {
|
|
@@ -10,7 +7,7 @@ export const getDistinctQuestions = (
|
|
|
10
7
|
|
|
11
8
|
do {
|
|
12
9
|
question = generator();
|
|
13
|
-
} while (res.some((q) => q.
|
|
10
|
+
} while (res.some((q) => q.startStatement === question.startStatement));
|
|
14
11
|
res.push(question);
|
|
15
12
|
}
|
|
16
13
|
return res;
|
package/src/index.js
CHANGED
|
@@ -3,3 +3,11 @@ exports.__esModule = true;
|
|
|
3
3
|
exports.exercises = void 0;
|
|
4
4
|
var exercises_1 = require("./exercises/exercises");
|
|
5
5
|
exports.exercises = exercises_1.exercises;
|
|
6
|
+
var latexParser_1 = require("./tree/parsers/latexParser");
|
|
7
|
+
var polynomial_1 = require("./polynomials/polynomial");
|
|
8
|
+
var derivateParser_1 = require("./tree/parsers/derivateParser");
|
|
9
|
+
// exercises.forEach((exo) => {
|
|
10
|
+
// console.log(exo.instruction, exo.generator(10));
|
|
11
|
+
// });
|
|
12
|
+
var pol = new polynomial_1.Polynomial([2, 3, 1, 4]);
|
|
13
|
+
console.log((0, latexParser_1.latexParser)((0, derivateParser_1.derivateParser)(pol.toTree())));
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { operationsPriorities } from "./exercises/calcul/operationsPriorities";
|
|
2
2
|
import { exercises } from "./exercises/exercises";
|
|
3
|
-
import {
|
|
3
|
+
import { latexParser } from "./tree/parsers/latexParser";
|
|
4
4
|
import { NumberNode } from "./tree/nodes/numbers/numberNode";
|
|
5
5
|
import { MultiplyNode } from "./tree/nodes/operators/multiplyNode";
|
|
6
|
+
import { Polynomial } from "./polynomials/polynomial";
|
|
7
|
+
import { derivateParser } from "./tree/parsers/derivateParser";
|
|
6
8
|
|
|
7
9
|
// exercises.forEach((exo) => {
|
|
8
10
|
// console.log(exo.instruction, exo.generator(10));
|
|
9
11
|
// });
|
|
10
12
|
|
|
13
|
+
const pol = new Polynomial([2, 3, 1, 4]);
|
|
11
14
|
export { exercises };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.derivateParser = void 0;
|
|
4
|
+
var node_1 = require("../nodes/node");
|
|
5
|
+
var numberNode_1 = require("../nodes/numbers/numberNode");
|
|
6
|
+
var powerNode_1 = require("../nodes/operators/powerNode");
|
|
7
|
+
var addNode_1 = require("../nodes/operators/addNode");
|
|
8
|
+
var fractionNode_1 = require("../nodes/operators/fractionNode");
|
|
9
|
+
var multiplyNode_1 = require("../nodes/operators/multiplyNode");
|
|
10
|
+
var operatorNode_1 = require("../nodes/operators/operatorNode");
|
|
11
|
+
var substractNode_1 = require("../nodes/operators/substractNode");
|
|
12
|
+
var functionNode_1 = require("../nodes/functions/functionNode");
|
|
13
|
+
var sqrtNode_1 = require("../nodes/functions/sqrtNode");
|
|
14
|
+
var oppositeNode_1 = require("../nodes/functions/oppositeNode");
|
|
15
|
+
function derivateParser(node) {
|
|
16
|
+
if (!node)
|
|
17
|
+
throw Error("encountered a null node ??");
|
|
18
|
+
switch (node.type) {
|
|
19
|
+
case node_1.NodeType.variable:
|
|
20
|
+
return new numberNode_1.NumberNode(1);
|
|
21
|
+
case node_1.NodeType.number:
|
|
22
|
+
return new numberNode_1.NumberNode(0);
|
|
23
|
+
case node_1.NodeType.operator:
|
|
24
|
+
var operatorNode = node;
|
|
25
|
+
var u = operatorNode.leftChild;
|
|
26
|
+
var v = operatorNode.rightChild;
|
|
27
|
+
switch (operatorNode.id) {
|
|
28
|
+
case operatorNode_1.OperatorIds.add:
|
|
29
|
+
return new addNode_1.AddNode(derivateParser(u), derivateParser(v));
|
|
30
|
+
case operatorNode_1.OperatorIds.substract: {
|
|
31
|
+
return new substractNode_1.SubstractNode(derivateParser(u), derivateParser(v));
|
|
32
|
+
}
|
|
33
|
+
case operatorNode_1.OperatorIds.multiply: {
|
|
34
|
+
return new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(derivateParser(u), v), new multiplyNode_1.MultiplyNode(u, derivateParser(v)));
|
|
35
|
+
}
|
|
36
|
+
case operatorNode_1.OperatorIds.divide:
|
|
37
|
+
case operatorNode_1.OperatorIds.fraction: {
|
|
38
|
+
return new fractionNode_1.FractionNode(new substractNode_1.SubstractNode(new multiplyNode_1.MultiplyNode(derivateParser(u), v), new multiplyNode_1.MultiplyNode(u, derivateParser(v))), new powerNode_1.PowerNode(v, new numberNode_1.NumberNode(2)));
|
|
39
|
+
}
|
|
40
|
+
case operatorNode_1.OperatorIds.power: {
|
|
41
|
+
var operatorNode_2 = node;
|
|
42
|
+
var n = operatorNode_2.rightChild;
|
|
43
|
+
var u_1 = operatorNode_2.leftChild;
|
|
44
|
+
return new multiplyNode_1.MultiplyNode(n, new multiplyNode_1.MultiplyNode(derivateParser(u_1), new powerNode_1.PowerNode(u_1, new numberNode_1.NumberNode(n.value - 1))));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
case node_1.NodeType["function"]: {
|
|
48
|
+
var functionNode = node;
|
|
49
|
+
var child = functionNode.child;
|
|
50
|
+
switch (functionNode.id) {
|
|
51
|
+
case functionNode_1.FunctionsIds.sqrt: {
|
|
52
|
+
return new fractionNode_1.FractionNode(derivateParser(child), new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(2), new sqrtNode_1.SqrtNode(child)));
|
|
53
|
+
}
|
|
54
|
+
case functionNode_1.FunctionsIds.opposite: {
|
|
55
|
+
return new oppositeNode_1.OppositeNode(derivateParser(child));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.derivateParser = derivateParser;
|