math-exercises 2.2.58 → 2.2.60
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 +2 -0
- package/lib/exercises/exercise.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerDivision.d.ts +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerDivision.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerDivision.js +75 -37
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerProduct.d.ts +6 -2
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerProduct.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerProduct.js +88 -40
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerSum.d.ts +4 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerSum.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerSum.js +23 -5
- package/lib/exercises/math/calcul/fractions/fractionsDivision.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsDivision.js +24 -6
- package/lib/exercises/math/calcul/fractions/fractionsProduct.d.ts +4 -1
- package/lib/exercises/math/calcul/fractions/fractionsProduct.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsProduct.js +24 -6
- package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts +2 -2
- package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSum.js +20 -11
- package/lib/exercises/math/calcul/fractions/fractionsSumsMultiplesDenominators.js +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSumsPrimeDenominators.js +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.js +2 -2
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.d.ts +7 -2
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.js +52 -44
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts +7 -2
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.js +48 -40
- package/lib/exercises/math/functions/affines/signFunction.js +1 -1
- package/lib/exercises/math/functions/trinoms/factorizedFormFromRoots.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/factorizedFormFromRoots.js +19 -12
- package/lib/exercises/math/probaStat/binomial/binomialInequation.js +2 -2
- package/lib/exercises/math/spaceGeometry/lineAndPlaneRelativePosition.d.ts +1 -0
- package/lib/exercises/math/spaceGeometry/lineAndPlaneRelativePosition.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/lineAndPlaneRelativePosition.js +84 -0
- package/lib/exercises/math/squareRoots/index.d.ts +2 -0
- package/lib/exercises/math/squareRoots/index.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/index.js +2 -0
- package/lib/exercises/math/squareRoots/squareRootsFractions.d.ts +10 -0
- package/lib/exercises/math/squareRoots/squareRootsFractions.d.ts.map +1 -0
- package/lib/exercises/math/squareRoots/squareRootsFractions.js +93 -0
- package/lib/exercises/math/squareRoots/squareRootsToSquare.d.ts +10 -0
- package/lib/exercises/math/squareRoots/squareRootsToSquare.d.ts.map +1 -0
- package/lib/exercises/math/squareRoots/squareRootsToSquare.js +116 -0
- package/lib/exercises/math/trigonometry/mainAngleMeasure.js +13 -13
- package/lib/index.d.ts +35 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/math/numbers/reals/extendedRingElement.d.ts +1 -1
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +8 -1
- package/lib/tree/nodes/functions/absNode.d.ts +1 -1
- package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/absNode.js +9 -1
- package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sqrtNode.js +9 -0
- package/lib/tree/nodes/operators/operatorNode.d.ts +2 -1
- package/lib/tree/nodes/operators/operatorNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/operatorNode.js +1 -0
- package/lib/tree/nodes/operators/powerNode.d.ts +1 -0
- package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/powerNode.js +12 -83
- package/lib/tree/parsers/rationalParser.d.ts +1 -1
- package/lib/tree/parsers/rationalParser.d.ts.map +1 -1
- package/lib/tree/parsers/rationalParser.js +13 -8
- package/package.json +1 -1
|
@@ -94,6 +94,7 @@ export type QuestionGenerator<TIdentifiers = {}, TOptions = any> = (opts?: TOpti
|
|
|
94
94
|
export type GetHint<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
95
95
|
export type GetCorrection<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
96
96
|
export type GetInstruction<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
97
|
+
export type GetStartStatement<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
97
98
|
export type GetAnswer<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
|
|
98
99
|
export type GetKeys<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => (KeyId | KeyProps)[];
|
|
99
100
|
export type GetGGBAnswer<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string[];
|
|
@@ -130,6 +131,7 @@ export interface Exercise<TIdentifiers = {}, TOptions = {}> {
|
|
|
130
131
|
subject: "Mathématiques" | "Chimie" | "Physique";
|
|
131
132
|
hasHintAndCorrection?: boolean;
|
|
132
133
|
getInstruction?: GetInstruction<TIdentifiers, TOptions>;
|
|
134
|
+
getStartStatement?: GetStartStatement<TIdentifiers, TOptions>;
|
|
133
135
|
getHint?: GetHint<TIdentifiers, TOptions>;
|
|
134
136
|
getCorrection?: GetCorrection<TIdentifiers, TOptions>;
|
|
135
137
|
getKeys?: GetKeys<TIdentifiers, TOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,eAAO,MAAM,YAAY,UAChB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAQtB,CAAC;AACF,eAAO,MAAM,YAAY,UAChB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAQtB,CAAC;AACF,eAAO,MAAM,iBAAiB,UACrB,WAAW,EAAE,aACT,MAAM,WACT,KAAK,GAAG,KAAK,SAUtB,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,WAAW,EAAE,KAAK,MAAM,kBAE3D,CAAC;AAEF,oBAAY,qBAAqB;IAC/B,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AACD,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AACD,MAAM,MAAM,eAAe,CAAC,MAAM,GAAG,GAAG,IAAI;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACjC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,oCAAoC,CAAC,EAAE,OAAO,CAAC;CAChD,CAAC;AAEF,MAAM,WAAW,QAAQ,CAAC,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;IAE5B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,KAAK,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,WAAW,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACtD,CAAC,EAAE,MAAM,EACT,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,EACvC,OAAO,CAAC,EAAE,QAAQ,KACf,WAAW,EAAE,CAAC;AACnB,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAC7C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,EACvC,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,CAAC;AACb,MAAM,MAAM,MAAM,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAChD,aAAa,EAAE,MAAM,EAAE,EACvB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,YAAY,EAC5C,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,CAAC;AACb,MAAM,MAAM,iBAAiB,CAAC,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,GAAG,IAAI,CACjE,IAAI,CAAC,EAAE,QAAQ,KACZ,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACtC,MAAM,MAAM,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACjD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,aAAa,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACvD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACxD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,SAAS,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACnD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,CAAC;AACZ,MAAM,MAAM,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACjD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC1B,MAAM,MAAM,YAAY,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,MAAM,EAAE,CAAC;AACd,MAAM,MAAM,aAAa,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACvD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,eAAe,CAAC;AACrB,MAAM,MAAM,oBAAoB,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAC9D,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,QAAQ,KACf,eAAe,CAAC;AACrB,MAAM,MAAM,kBAAkB,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CAC5D,cAAc,EAAE,GAAG,EACnB,OAAO,CAAC,EAAE,QAAQ,KACf,YAAY,CAAC;AAClB,MAAM,MAAM,0BAA0B,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACpE,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE,QAAQ,KACf,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,QAAQ,GAAG,EAAE,IAAI,CACxD,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,OAAO,CAAC,EAAE,QAAQ,KACf,QAAQ,CAAC,YAAY,CAAC,CAAC;AAE5B,KAAK,UAAU,GAAG;IAEhB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AACF,MAAM,WAAW,QAAQ,CAAC,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,UAAU,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,YAAY,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5E,aAAa,CAAC,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChE,0BAA0B,CAAC,EAAE,0BAA0B,CACrD,YAAY,EACZ,QAAQ,CACT,CAAC;IACF,MAAM,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,8BAA8B,GAC9B,aAAa,GACb,YAAY,GACZ,SAAS,GACT,0BAA0B,GAC1B,WAAW,GACX,2BAA2B,GAC3B,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,mBAAmB,GACnB,wBAAwB,GACxB,WAAW,GACX,uBAAuB,GACvB,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,SAAS,GACT,qBAAqB,GACrB,oBAAoB,GACpB,UAAU,GACV,mBAAmB,GACnB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,kBAAkB,GAClB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,QAAQ,GACR,UAAU,GACV,uBAAuB,GACvB,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,UAAU,CAAC;AAEf,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,SAAS,GACT,cAAc,GACd,+CAA+C,GAC/C,OAAO,GACP,KAAK,GACL,wBAAwB,GACxB,SAAS,GACT,KAAK,GACL,aAAa,GACb,4BAA4B,GAC5B,oBAAoB,GACpB,WAAW,GACX,iBAAiB,GACjB,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Exercise } from "../../../../exercises/exercise";
|
|
|
2
2
|
type Identifiers = {
|
|
3
3
|
integerFirst: boolean;
|
|
4
4
|
integer: number;
|
|
5
|
-
rational: [
|
|
5
|
+
rational: number[];
|
|
6
6
|
};
|
|
7
7
|
export declare const fractionAndIntegerDivision: Exercise<Identifiers>;
|
|
8
8
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fractionAndIntegerDivision.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionAndIntegerDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"fractionAndIntegerDivision.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionAndIntegerDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,0BAA0B,CAAC;AAYlC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAiKF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAmB5D,CAAC"}
|
|
@@ -9,66 +9,100 @@ const randint_1 = require("../../../../math/utils/random/randint");
|
|
|
9
9
|
const divideNode_1 = require("../../../../tree/nodes/operators/divideNode");
|
|
10
10
|
const multiplyNode_1 = require("../../../../tree/nodes/operators/multiplyNode");
|
|
11
11
|
const coinFlip_1 = require("../../../../utils/alea/coinFlip");
|
|
12
|
-
const
|
|
13
|
-
const rational =
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
? new integer_1.Integer((0, randint_1.randint)(-10, 11, [0]))
|
|
17
|
-
: new integer_1.Integer((0, randint_1.randint)(-10, 11, [0, 1]));
|
|
18
|
-
const statementTree = integerFirst
|
|
19
|
-
? new divideNode_1.DivideNode(integer.toTree(), rational.toTree())
|
|
20
|
-
: new divideNode_1.DivideNode(rational.toTree(), integer.toTree());
|
|
12
|
+
const getAnswer = (identifiers) => {
|
|
13
|
+
const { integerFirst, integer, rational } = identifiers;
|
|
14
|
+
const rationalObj = new rational_1.Rational(rational[0], rational[1]);
|
|
15
|
+
const integerObj = new integer_1.Integer(integer);
|
|
21
16
|
const answerTree = integerFirst
|
|
22
|
-
?
|
|
23
|
-
:
|
|
17
|
+
? integerObj.divide(rationalObj).toTree()
|
|
18
|
+
: rationalObj.divide(integerObj).toTree();
|
|
24
19
|
const answerTex = answerTree.toTex();
|
|
20
|
+
return answerTex;
|
|
21
|
+
};
|
|
22
|
+
const getInstruction = (identifiers) => {
|
|
23
|
+
const { integerFirst, integer, rational } = identifiers;
|
|
24
|
+
const rationalObj = new rational_1.Rational(rational[0], rational[1]);
|
|
25
|
+
const statementTree = integerFirst
|
|
26
|
+
? new divideNode_1.DivideNode(integer.toTree(), rationalObj.toTree())
|
|
27
|
+
: new divideNode_1.DivideNode(rationalObj.toTree(), integer.toTree());
|
|
28
|
+
return `Calculer et simplifier au maximum :
|
|
29
|
+
|
|
30
|
+
$$
|
|
31
|
+
${statementTree.toTex()}
|
|
32
|
+
$$`;
|
|
33
|
+
};
|
|
34
|
+
const getHint = (identifiers) => {
|
|
35
|
+
return "Pour diviser une fraction par un nombre entier, on peut écrire le nombre entier sous forme de fraction. Puis, on multiplie la première fraction par l'inverse de la seconde. Enfin, on simplife la fraction obtenue si possible.";
|
|
36
|
+
};
|
|
37
|
+
const getCorrection = (identifiers) => {
|
|
38
|
+
const { integerFirst, integer, rational } = identifiers;
|
|
39
|
+
const rationalObj = new rational_1.Rational(rational[0], rational[1]);
|
|
25
40
|
const beforeSimplification = integerFirst
|
|
26
|
-
? new rational_1.Rational(integer
|
|
27
|
-
: new rational_1.Rational(
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
answer: answerTex,
|
|
32
|
-
keys: [],
|
|
33
|
-
hint: "Pour diviser une fraction par un nombre entier, on peut écrire le nombre entier sous forme de fraction. Puis, on multiplie la première fraction par l'inverse de la seconde. Enfin, on simplife la fraction obtenue si possible.",
|
|
34
|
-
correction: `
|
|
35
|
-
On écrit $${integer.value}$ sous forme de fraction :
|
|
41
|
+
? new rational_1.Rational(integer * rationalObj.denum, rationalObj.num)
|
|
42
|
+
: new rational_1.Rational(rationalObj.num, rationalObj.denum * integer);
|
|
43
|
+
const answerTex = getAnswer(identifiers);
|
|
44
|
+
return `
|
|
45
|
+
On écrit $${integer}$ sous forme de fraction :
|
|
36
46
|
|
|
37
47
|
$$
|
|
38
|
-
${integer
|
|
48
|
+
${integer} = \\frac{${integer}}{1}
|
|
39
49
|
$$
|
|
40
50
|
|
|
41
51
|
On multiplie la première fraction par l'inverse de la seconde :
|
|
42
52
|
|
|
43
53
|
$$
|
|
44
54
|
${integerFirst
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
55
|
+
? `\\frac{${integer}}{1}\\div ${rationalObj
|
|
56
|
+
.toTree()
|
|
57
|
+
.toTex()} = \\frac{${integer}}{1} \\times ${rationalObj
|
|
58
|
+
.reverse(false)
|
|
59
|
+
.toTree()
|
|
60
|
+
.toTex()} = \\frac{${new multiplyNode_1.MultiplyNode(integer.toTree(), rationalObj.denum.toTree()).toTex({ forceNoSimplification: true })}}{${new multiplyNode_1.MultiplyNode((1).toTree(), rationalObj.num.toTree()).toTex({ forceNoSimplification: true })}}
|
|
49
61
|
= ${beforeSimplification.toTree().toTex()}`
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
62
|
+
: `${rationalObj
|
|
63
|
+
.toTree()
|
|
64
|
+
.toTex()}\\div \\frac{${integer}}{1} = ${rationalObj
|
|
65
|
+
.toTree()
|
|
66
|
+
.toTex()}\\times \\frac{1}{${integer}} = \\frac{${rationalObj.num}\\times 1}{${new multiplyNode_1.MultiplyNode(rationalObj.denum.toTree(), integer.toTree()).toTex({ forceNoSimplification: true })}} = ${beforeSimplification
|
|
67
|
+
.toTree()
|
|
68
|
+
.toTex()}`}
|
|
53
69
|
$$
|
|
54
70
|
|
|
55
71
|
${!beforeSimplification.isIrreductible()
|
|
56
|
-
|
|
72
|
+
? `On peut alors simplifier cette fraction :
|
|
57
73
|
|
|
58
74
|
$$
|
|
59
75
|
${beforeSimplification.toTree().toTex()} = ${answerTex}
|
|
60
76
|
$$
|
|
61
77
|
`
|
|
62
|
-
|
|
78
|
+
: "Cette fraction est déjà simplifiée."}
|
|
63
79
|
|
|
64
80
|
Ainsi, le résultat attendu est $${answerTex}$.
|
|
65
|
-
|
|
81
|
+
`;
|
|
82
|
+
};
|
|
83
|
+
const getFractionAndIntegerDivision = () => {
|
|
84
|
+
const rational = rational_1.RationalConstructor.randomIrreductible();
|
|
85
|
+
const integerFirst = (0, coinFlip_1.coinFlip)();
|
|
86
|
+
const integer = integerFirst
|
|
87
|
+
? new integer_1.Integer((0, randint_1.randint)(-10, 11, [0]))
|
|
88
|
+
: new integer_1.Integer((0, randint_1.randint)(-10, 11, [0, 1]));
|
|
89
|
+
const statementTree = integerFirst
|
|
90
|
+
? new divideNode_1.DivideNode(integer.toTree(), rational.toTree())
|
|
91
|
+
: new divideNode_1.DivideNode(rational.toTree(), integer.toTree());
|
|
92
|
+
const identifiers = {
|
|
93
|
+
integerFirst,
|
|
94
|
+
integer: integer.value,
|
|
95
|
+
rational: [rational.num, rational.denum],
|
|
96
|
+
};
|
|
97
|
+
const question = {
|
|
98
|
+
instruction: getInstruction(identifiers),
|
|
99
|
+
startStatement: statementTree.toTex(),
|
|
100
|
+
answer: getAnswer(identifiers),
|
|
101
|
+
keys: [],
|
|
102
|
+
hint: getHint(identifiers),
|
|
103
|
+
correction: getCorrection(identifiers),
|
|
66
104
|
answerFormat: "tex",
|
|
67
|
-
identifiers
|
|
68
|
-
integerFirst,
|
|
69
|
-
integer: integer.value,
|
|
70
|
-
rational: [rational.num, rational.denum],
|
|
71
|
-
},
|
|
105
|
+
identifiers,
|
|
72
106
|
};
|
|
73
107
|
return question;
|
|
74
108
|
};
|
|
@@ -112,4 +146,8 @@ exports.fractionAndIntegerDivision = {
|
|
|
112
146
|
isAnswerValid,
|
|
113
147
|
subject: "Mathématiques",
|
|
114
148
|
hasHintAndCorrection: true,
|
|
149
|
+
getAnswer,
|
|
150
|
+
getInstruction,
|
|
151
|
+
getHint,
|
|
152
|
+
getCorrection,
|
|
115
153
|
};
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { Exercise } from "../../../../exercises/exercise";
|
|
2
2
|
type Identifiers = {
|
|
3
3
|
integer: number;
|
|
4
|
-
rational: [
|
|
4
|
+
rational: number[];
|
|
5
|
+
integerFirst: boolean;
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
+
type Options = {
|
|
8
|
+
allowNonIrreductible?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const fractionAndIntegerProduct: Exercise<Identifiers, Options>;
|
|
7
11
|
export {};
|
|
8
12
|
//# sourceMappingURL=fractionAndIntegerProduct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fractionAndIntegerProduct.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionAndIntegerProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"fractionAndIntegerProduct.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionAndIntegerProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,0BAA0B,CAAC;AAkBlC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AA2IF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBpE,CAAC"}
|
|
@@ -2,75 +2,117 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fractionAndIntegerProduct = void 0;
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
|
+
const allowNonIrreductibleFractions_1 = require("../../../../exercises/options/allowNonIrreductibleFractions");
|
|
5
6
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
|
-
const integer_1 = require("../../../../math/numbers/integer/integer");
|
|
7
7
|
const rational_1 = require("../../../../math/numbers/rationals/rational");
|
|
8
8
|
const randint_1 = require("../../../../math/utils/random/randint");
|
|
9
|
+
const fractionNode_1 = require("../../../../tree/nodes/operators/fractionNode");
|
|
9
10
|
const multiplyNode_1 = require("../../../../tree/nodes/operators/multiplyNode");
|
|
11
|
+
const rationalParser_1 = require("../../../../tree/parsers/rationalParser");
|
|
12
|
+
const coinFlip_1 = require("../../../../utils/alea/coinFlip");
|
|
10
13
|
const shuffle_1 = require("../../../../utils/alea/shuffle");
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
const integer
|
|
14
|
-
const
|
|
15
|
-
statementTree
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
const options = [allowNonIrreductibleFractions_1.allowNonIrreductibleOption];
|
|
15
|
+
const getStatement = (identifiers) => {
|
|
16
|
+
const { integer, rational, integerFirst } = identifiers;
|
|
17
|
+
const fraction = (0, fractionNode_1.frac)(rational[0], rational[1]);
|
|
18
|
+
const statementTree = integerFirst
|
|
19
|
+
? (0, multiplyNode_1.multiply)(integer, fraction)
|
|
20
|
+
: (0, multiplyNode_1.multiply)(fraction, integer);
|
|
21
|
+
return statementTree;
|
|
22
|
+
};
|
|
23
|
+
const getInstruction = (identifiers, opts) => {
|
|
24
|
+
const statementTree = getStatement(identifiers);
|
|
25
|
+
return `Calculer ${opts?.allowNonIrreductible
|
|
26
|
+
? ""
|
|
27
|
+
: "et donner le résultat sous la forme la plus simplifiée possible"} :
|
|
28
|
+
|
|
29
|
+
$$
|
|
30
|
+
${statementTree.toTex()}
|
|
31
|
+
$$`;
|
|
32
|
+
};
|
|
33
|
+
const getStartStatement = (identifiers) => {
|
|
34
|
+
const statementTree = getStatement(identifiers);
|
|
35
|
+
return statementTree.toTex();
|
|
36
|
+
};
|
|
37
|
+
const getAnswer = (identifiers) => {
|
|
38
|
+
const statementTree = getStatement(identifiers);
|
|
39
|
+
return statementTree.simplify().toTex();
|
|
40
|
+
};
|
|
41
|
+
const getHint = (identifiers) => {
|
|
42
|
+
return "Pour multiplier une fraction par un nombre entier, on multiplie le numérateur de la fraction par le nombre entier, sans toucher au dénominateur. On simplifie ensuite la fraction obtenue si possible.";
|
|
43
|
+
};
|
|
44
|
+
const getCorrection = (identifiers) => {
|
|
45
|
+
const { integer, rational } = identifiers;
|
|
46
|
+
const answer = getAnswer(identifiers);
|
|
47
|
+
const statementTree = getStatement(identifiers);
|
|
48
|
+
const beforeSimplification = new rational_1.Rational(rational[0] * integer, rational[1]);
|
|
49
|
+
return `
|
|
27
50
|
On multiplie le numérateur de la fraction par le nombre entier :
|
|
28
51
|
|
|
29
52
|
$$
|
|
30
|
-
${statementTree.toTex()} = \\frac{${new multiplyNode_1.MultiplyNode(rational.
|
|
53
|
+
${statementTree.toTex()} = \\frac{${new multiplyNode_1.MultiplyNode(rational[0].toTree(), integer.toTree()).toTex({ forceNoSimplification: true })}}{${rational[1]}} = ${beforeSimplification.toTree().toTex()}
|
|
31
54
|
$$
|
|
32
55
|
|
|
33
56
|
${!beforeSimplification.isIrreductible()
|
|
34
|
-
|
|
57
|
+
? `On peut alors simplifier cette fraction :
|
|
35
58
|
|
|
36
59
|
$$
|
|
37
60
|
${beforeSimplification.toTree().toTex()} = ${answer}
|
|
38
61
|
$$
|
|
39
62
|
`
|
|
40
|
-
|
|
63
|
+
: "Cette fraction est déjà simplifiée."}
|
|
41
64
|
|
|
42
65
|
Ainsi, le résultat attendu est $${answer}$.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
66
|
+
`;
|
|
67
|
+
};
|
|
68
|
+
const getFractionAndIntegerProduct = (opts) => {
|
|
69
|
+
const rational = rational_1.RationalConstructor.randomIrreductible();
|
|
70
|
+
const integer = (0, randint_1.randint)(-10, 11, [-1, 0, 1]);
|
|
71
|
+
const integerFirst = (0, coinFlip_1.coinFlip)();
|
|
72
|
+
const identifiers = {
|
|
73
|
+
integer,
|
|
74
|
+
rational: [rational.num, rational.denum],
|
|
75
|
+
integerFirst,
|
|
76
|
+
};
|
|
77
|
+
const question = {
|
|
78
|
+
instruction: getInstruction(identifiers, opts),
|
|
79
|
+
startStatement: getStartStatement(identifiers),
|
|
80
|
+
answer: getAnswer(identifiers),
|
|
81
|
+
keys: [],
|
|
82
|
+
answerFormat: "tex",
|
|
83
|
+
hint: getHint(identifiers),
|
|
84
|
+
correction: getCorrection(identifiers),
|
|
85
|
+
identifiers,
|
|
48
86
|
};
|
|
49
87
|
return question;
|
|
50
88
|
};
|
|
51
89
|
const getPropositions = (n, { answer, integer, rational }) => {
|
|
52
90
|
const propositions = [];
|
|
53
|
-
const integerObj = new integer_1.Integer(integer);
|
|
54
|
-
const rationalObj = new rational_1.Rational(rational[0], rational[1]);
|
|
55
91
|
(0, exercise_1.addValidProp)(propositions, answer);
|
|
56
|
-
(0, exercise_1.tryToAddWrongProp)(propositions,
|
|
92
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, (0, fractionNode_1.frac)(integer * rational[0], integer * rational[1]).toTex());
|
|
57
93
|
while (propositions.length < n) {
|
|
58
94
|
const randomMultiplier = (0, randint_1.randint)(-10, 10);
|
|
59
|
-
const wrongAnswerTree =
|
|
60
|
-
.multiply(new integer_1.Integer(randomMultiplier))
|
|
61
|
-
.toTree();
|
|
95
|
+
const wrongAnswerTree = (0, multiplyNode_1.multiply)((0, fractionNode_1.frac)(rational[0], rational[1]), randomMultiplier).simplify();
|
|
62
96
|
(0, exercise_1.tryToAddWrongProp)(propositions, wrongAnswerTree.toTex());
|
|
63
97
|
}
|
|
64
98
|
return (0, shuffle_1.shuffle)(propositions);
|
|
65
99
|
};
|
|
66
|
-
const isAnswerValid = (ans, { integer, rational }) => {
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const texs = answerTree.toAllValidTexs();
|
|
73
|
-
|
|
100
|
+
const isAnswerValid = (ans, { integer, rational, integerFirst, answer }, opts) => {
|
|
101
|
+
const answerTree = getStatement({
|
|
102
|
+
integer,
|
|
103
|
+
rational,
|
|
104
|
+
integerFirst,
|
|
105
|
+
}).simplify();
|
|
106
|
+
const texs = answerTree.toAllValidTexs({ allowFractionToDecimal: true });
|
|
107
|
+
if (opts?.allowNonIrreductible) {
|
|
108
|
+
const parsed = (0, rationalParser_1.rationalParser)(ans);
|
|
109
|
+
if (!parsed)
|
|
110
|
+
return false;
|
|
111
|
+
return texs.includes(parsed.simplify().toTex());
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return texs.includes(ans);
|
|
115
|
+
}
|
|
74
116
|
};
|
|
75
117
|
exports.fractionAndIntegerProduct = {
|
|
76
118
|
id: "fractionAndIntegerProduct",
|
|
@@ -79,11 +121,17 @@ exports.fractionAndIntegerProduct = {
|
|
|
79
121
|
levels: ["4ème", "3ème", "2nde", "CAP", "2ndPro", "1rePro"],
|
|
80
122
|
isSingleStep: false,
|
|
81
123
|
sections: ["Fractions"],
|
|
82
|
-
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFractionAndIntegerProduct, nb),
|
|
124
|
+
generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getFractionAndIntegerProduct(opts), nb),
|
|
83
125
|
qcmTimer: 60,
|
|
84
126
|
freeTimer: 60,
|
|
85
127
|
getPropositions,
|
|
86
128
|
isAnswerValid,
|
|
87
129
|
hasHintAndCorrection: true,
|
|
88
130
|
subject: "Mathématiques",
|
|
131
|
+
getHint,
|
|
132
|
+
getCorrection,
|
|
133
|
+
getInstruction,
|
|
134
|
+
getAnswer,
|
|
135
|
+
getStartStatement,
|
|
136
|
+
options,
|
|
89
137
|
};
|
|
@@ -3,6 +3,9 @@ type Identifiers = {
|
|
|
3
3
|
integer: number;
|
|
4
4
|
rational: [number, number];
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
type Options = {
|
|
7
|
+
allowNonIrreductible?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const fractionAndIntegerSum: Exercise<Identifiers, Options>;
|
|
7
10
|
export {};
|
|
8
11
|
//# sourceMappingURL=fractionAndIntegerSum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fractionAndIntegerSum.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionAndIntegerSum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"fractionAndIntegerSum.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionAndIntegerSum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AA4ClC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B,CAAC;AAgCF,KAAK,OAAO,GAAG;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAwBF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAehE,CAAC"}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fractionAndIntegerSum = void 0;
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
|
+
const allowNonIrreductibleFractions_1 = require("../../../../exercises/options/allowNonIrreductibleFractions");
|
|
5
6
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
7
|
const integer_1 = require("../../../../math/numbers/integer/integer");
|
|
7
8
|
const rational_1 = require("../../../../math/numbers/rationals/rational");
|
|
8
9
|
const randint_1 = require("../../../../math/utils/random/randint");
|
|
9
10
|
const addNode_1 = require("../../../../tree/nodes/operators/addNode");
|
|
11
|
+
const rationalParser_1 = require("../../../../tree/parsers/rationalParser");
|
|
10
12
|
const shuffle_1 = require("../../../../utils/alea/shuffle");
|
|
11
|
-
const getFractionAndIntegerSum = () => {
|
|
13
|
+
const getFractionAndIntegerSum = (opts) => {
|
|
12
14
|
const rational = rational_1.RationalConstructor.randomIrreductible();
|
|
13
15
|
const integer = new integer_1.Integer((0, randint_1.randint)(-10, 11, [0]));
|
|
14
16
|
const statementTree = new addNode_1.AddNode(rational.toTree(), integer.toTree());
|
|
@@ -16,7 +18,13 @@ const getFractionAndIntegerSum = () => {
|
|
|
16
18
|
const answerTree = rational.add(integer).toTree();
|
|
17
19
|
const answer = answerTree.toTex();
|
|
18
20
|
const question = {
|
|
19
|
-
instruction: `Calculer
|
|
21
|
+
instruction: `Calculer ${opts?.allowNonIrreductible
|
|
22
|
+
? ""
|
|
23
|
+
: "et donner le résultat sous la forme la plus simplifiée possible"} :
|
|
24
|
+
|
|
25
|
+
$$
|
|
26
|
+
${statementTree.toTex()}
|
|
27
|
+
$`,
|
|
20
28
|
startStatement: statementTree.toTex(),
|
|
21
29
|
answer,
|
|
22
30
|
keys: [],
|
|
@@ -43,14 +51,23 @@ const getPropositions = (n, { answer, integer, rational }) => {
|
|
|
43
51
|
}
|
|
44
52
|
return (0, shuffle_1.shuffle)(propositions);
|
|
45
53
|
};
|
|
46
|
-
const
|
|
54
|
+
const options = [allowNonIrreductibleFractions_1.allowNonIrreductibleOption];
|
|
55
|
+
const isAnswerValid = (ans, { integer, rational }, opts) => {
|
|
47
56
|
const integerObj = new integer_1.Integer(integer);
|
|
48
57
|
const rationalObj = new rational_1.Rational(rational[0], rational[1]);
|
|
49
58
|
const answerTree = rationalObj
|
|
50
59
|
.add(integerObj)
|
|
51
60
|
.toTree({ allowFractionToDecimal: true });
|
|
52
61
|
const texs = answerTree.toAllValidTexs();
|
|
53
|
-
|
|
62
|
+
if (opts?.allowNonIrreductible) {
|
|
63
|
+
const parsed = (0, rationalParser_1.rationalParser)(ans);
|
|
64
|
+
if (!parsed)
|
|
65
|
+
return false;
|
|
66
|
+
return texs.includes(parsed.simplify().toTex());
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return texs.includes(ans);
|
|
70
|
+
}
|
|
54
71
|
};
|
|
55
72
|
exports.fractionAndIntegerSum = {
|
|
56
73
|
id: "fractionAndIntegerSum",
|
|
@@ -59,10 +76,11 @@ exports.fractionAndIntegerSum = {
|
|
|
59
76
|
levels: ["4ème", "3ème", "2nde", "CAP", "2ndPro", "1rePro"],
|
|
60
77
|
isSingleStep: false,
|
|
61
78
|
sections: ["Fractions"],
|
|
62
|
-
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFractionAndIntegerSum, nb),
|
|
79
|
+
generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getFractionAndIntegerSum(opts), nb),
|
|
63
80
|
qcmTimer: 60,
|
|
64
81
|
freeTimer: 60,
|
|
65
82
|
getPropositions,
|
|
66
83
|
isAnswerValid,
|
|
67
84
|
subject: "Mathématiques",
|
|
85
|
+
options,
|
|
68
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fractionsDivision.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionsDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"fractionsDivision.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionsDivision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAkFlC,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAgDF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAgBnD,CAAC"}
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fractionsDivision = void 0;
|
|
4
4
|
const exercise_1 = require("../../../../exercises/exercise");
|
|
5
|
+
const allowNonIrreductibleFractions_1 = require("../../../../exercises/options/allowNonIrreductibleFractions");
|
|
5
6
|
const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
|
|
6
7
|
const rational_1 = require("../../../../math/numbers/rationals/rational");
|
|
7
8
|
const divideNode_1 = require("../../../../tree/nodes/operators/divideNode");
|
|
9
|
+
const rationalParser_1 = require("../../../../tree/parsers/rationalParser");
|
|
8
10
|
const shuffle_1 = require("../../../../utils/alea/shuffle");
|
|
9
|
-
const
|
|
11
|
+
const options = [allowNonIrreductibleFractions_1.allowNonIrreductibleOption];
|
|
12
|
+
const getFractionsDivision = (opts) => {
|
|
10
13
|
const rational = rational_1.RationalConstructor.randomIrreductible();
|
|
11
14
|
const rational2 = rational_1.RationalConstructor.randomIrreductible();
|
|
12
15
|
const statementTree = new divideNode_1.DivideNode(rational.toTree(), rational2.toTree());
|
|
@@ -15,7 +18,13 @@ const getFractionsDivision = () => {
|
|
|
15
18
|
const beforeSimplification = new rational_1.Rational(rational.num * rational2.denum, rational.denum * rational2.num);
|
|
16
19
|
const isSimplifiable = !beforeSimplification.isIrreductible();
|
|
17
20
|
const question = {
|
|
18
|
-
instruction: `Calculer
|
|
21
|
+
instruction: `Calculer ${opts?.allowNonIrreductible
|
|
22
|
+
? ""
|
|
23
|
+
: "et donner le résultat sous la forme la plus simplifiée possible"} :
|
|
24
|
+
|
|
25
|
+
$$
|
|
26
|
+
${statementTree.toTex()}
|
|
27
|
+
$$`,
|
|
19
28
|
startStatement: statementTree.toTex(),
|
|
20
29
|
answer,
|
|
21
30
|
keys: [],
|
|
@@ -42,7 +51,7 @@ ${isSimplifiable
|
|
|
42
51
|
$$
|
|
43
52
|
${beforeSimplification.toTree().toTex()} = ${answer}
|
|
44
53
|
$$`
|
|
45
|
-
: "Cette fraction est déjà
|
|
54
|
+
: "Cette fraction est déjà simplifiée."}
|
|
46
55
|
|
|
47
56
|
Ainsi, le résultat attendu est $${answer}$.
|
|
48
57
|
`,
|
|
@@ -66,14 +75,22 @@ const getPropositions = (n, { answer, rationalNum, rationalDenum }) => {
|
|
|
66
75
|
}
|
|
67
76
|
return (0, shuffle_1.shuffle)(propositions);
|
|
68
77
|
};
|
|
69
|
-
const isAnswerValid = (ans, { rationalDenum, rationalNum }) => {
|
|
78
|
+
const isAnswerValid = (ans, { rationalDenum, rationalNum }, opts) => {
|
|
70
79
|
const rational = new rational_1.Rational(rationalNum[0], rationalNum[1]);
|
|
71
80
|
const rational2 = new rational_1.Rational(rationalDenum[0], rationalDenum[1]);
|
|
72
81
|
const answerTree = rational
|
|
73
82
|
.divide(rational2)
|
|
74
83
|
.toTree({ allowFractionToDecimal: true });
|
|
75
84
|
const texs = answerTree.toAllValidTexs();
|
|
76
|
-
|
|
85
|
+
if (opts?.allowNonIrreductible) {
|
|
86
|
+
const parsed = (0, rationalParser_1.rationalParser)(ans);
|
|
87
|
+
if (!parsed)
|
|
88
|
+
return false;
|
|
89
|
+
return texs.includes(parsed.simplify().toTex());
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return texs.includes(ans);
|
|
93
|
+
}
|
|
77
94
|
};
|
|
78
95
|
exports.fractionsDivision = {
|
|
79
96
|
id: "fractionsDivision",
|
|
@@ -82,11 +99,12 @@ exports.fractionsDivision = {
|
|
|
82
99
|
levels: ["4ème", "3ème", "2nde", "CAP", "2ndPro", "1rePro"],
|
|
83
100
|
sections: ["Fractions"],
|
|
84
101
|
isSingleStep: false,
|
|
85
|
-
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getFractionsDivision, nb),
|
|
102
|
+
generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getFractionsDivision(opts), nb),
|
|
86
103
|
qcmTimer: 60,
|
|
87
104
|
freeTimer: 60,
|
|
88
105
|
getPropositions,
|
|
89
106
|
isAnswerValid,
|
|
90
107
|
subject: "Mathématiques",
|
|
91
108
|
hasHintAndCorrection: true,
|
|
109
|
+
options,
|
|
92
110
|
};
|
|
@@ -3,6 +3,9 @@ type Identifiers = {
|
|
|
3
3
|
rationalNum: [number, number];
|
|
4
4
|
rationalDenum: [number, number];
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
type Options = {
|
|
7
|
+
allowNonIrreductible?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const fractionsProduct: Exercise<Identifiers, Options>;
|
|
7
10
|
export {};
|
|
8
11
|
//# sourceMappingURL=fractionsProduct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fractionsProduct.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionsProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"fractionsProduct.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/fractions/fractionsProduct.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAQT,MAAM,0BAA0B,CAAC;AAYlC,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAgGF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAgB3D,CAAC"}
|