feat(trainer): обозначения по темам вместо «x» — движение S/t/v, проценты p, прибыль/смесь p
Расширил answerSym на темы, где есть стандартная латинская буква (где это уместно и не конфликтует с обозначением из условия): - Движение: app-move-dist→S (путь), app-move-time→t, app-move-speed→v, app-meet→t, app-overtake→t, app-work-joint→t. - Проценты: pct-what→p, pct-change→p; смеси app-mix-blend→p; прибыль app-profit-pct→p. Линейные/пропорции/неравенства/системы оставлены на x/y (это и есть переменные); углы — x (греческая буква ломала бы KaTeX); НОД/дроби/десятичные — x (нет чистого однобуквенного обозначения). app-upstream и n-й член прогрессии оставлены на x (буква совпала бы с данным из условия: v собств. скорости, a₁/b₁). Итого 42 генератора с обозначением искомой (S/P/C/L/d/p/t/v/b/c/k/n/q). Префикс ввода, подпись ответа и шаги решения используют его. Проверка: 1680 экземпляров, 0 проблем (latex валиден, нет остаточного x/кириллицы, ответ принимается); смоук v41 99634. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -245,7 +245,7 @@
|
|||||||
/* сколько % составляет a от b */
|
/* сколько % составляет a от b */
|
||||||
{
|
{
|
||||||
id: 'pct-what', topic: 'percents', order: 2, subject: 'algebra', grade: 7, kind: 'compute',
|
id: 'pct-what', topic: 'percents', order: 2, subject: 'algebra', grade: 7, kind: 'compute',
|
||||||
title: 'Сколько процентов',
|
title: 'Сколько процентов', answerSym: 'p',
|
||||||
pick: { pidx: [2, 10], bbase: [1, 8] },
|
pick: { pidx: [2, 10], bbase: [1, 8] },
|
||||||
derive: { p: 'pidx*5', b: 'bbase*20', a: 'pidx*bbase' },
|
derive: { p: 'pidx*5', b: 'bbase*20', a: 'pidx*bbase' },
|
||||||
lhs: 'x', rhs: '100*{a}/{b}', display: 'Сколько процентов составляет {a} от {b}?',
|
lhs: 'x', rhs: '100*{a}/{b}', display: 'Сколько процентов составляет {a} от {b}?',
|
||||||
@@ -673,7 +673,7 @@
|
|||||||
/* путь = скорость × время */
|
/* путь = скорость × время */
|
||||||
{
|
{
|
||||||
id: 'app-move-dist', topic: 'applied', order: 1, subject: 'algebra', grade: 7, kind: 'compute',
|
id: 'app-move-dist', topic: 'applied', order: 1, subject: 'algebra', grade: 7, kind: 'compute',
|
||||||
title: 'Путь (движение)',
|
title: 'Путь (движение)', answerSym: 'S',
|
||||||
pick: { v: [10, 90], t: [2, 9] }, derive: { val: 'v*t' },
|
pick: { v: [10, 90], t: [2, 9] }, derive: { val: 'v*t' },
|
||||||
lhs: 'x', rhs: '{v}*{t}', display: 'Автомобиль ехал {t} ч со скоростью {v} км/ч. Какой путь он проехал (в км)?',
|
lhs: 'x', rhs: '{v}*{t}', display: 'Автомобиль ехал {t} ч со скоростью {v} км/ч. Какой путь он проехал (в км)?',
|
||||||
answerVar: 'x', answer: 'val', integerAnswer: true,
|
answerVar: 'x', answer: 'val', integerAnswer: true,
|
||||||
@@ -686,7 +686,7 @@
|
|||||||
/* время = путь / скорость */
|
/* время = путь / скорость */
|
||||||
{
|
{
|
||||||
id: 'app-move-time', topic: 'applied', order: 2, subject: 'algebra', grade: 7, kind: 'compute',
|
id: 'app-move-time', topic: 'applied', order: 2, subject: 'algebra', grade: 7, kind: 'compute',
|
||||||
title: 'Время (движение)',
|
title: 'Время (движение)', answerSym: 't',
|
||||||
pick: { v: [10, 90], t: [2, 9] }, derive: { S: 'v*t', val: 't' },
|
pick: { v: [10, 90], t: [2, 9] }, derive: { S: 'v*t', val: 't' },
|
||||||
lhs: 'x', rhs: '{S}/{v}', display: 'Расстояние между городами {S} км. Автомобиль едет со скоростью {v} км/ч. За сколько часов он доедет?',
|
lhs: 'x', rhs: '{S}/{v}', display: 'Расстояние между городами {S} км. Автомобиль едет со скоростью {v} км/ч. За сколько часов он доедет?',
|
||||||
answerVar: 'x', answer: 'val', integerAnswer: true,
|
answerVar: 'x', answer: 'val', integerAnswer: true,
|
||||||
@@ -699,7 +699,7 @@
|
|||||||
/* скорость = путь / время */
|
/* скорость = путь / время */
|
||||||
{
|
{
|
||||||
id: 'app-move-speed', topic: 'applied', order: 3, subject: 'algebra', grade: 7, kind: 'compute',
|
id: 'app-move-speed', topic: 'applied', order: 3, subject: 'algebra', grade: 7, kind: 'compute',
|
||||||
title: 'Скорость (движение)',
|
title: 'Скорость (движение)', answerSym: 'v',
|
||||||
pick: { v: [10, 90], t: [2, 9] }, derive: { S: 'v*t', val: 'v' },
|
pick: { v: [10, 90], t: [2, 9] }, derive: { S: 'v*t', val: 'v' },
|
||||||
lhs: 'x', rhs: '{S}/{t}', display: 'Поезд прошёл {S} км за {t} ч. Найдите его среднюю скорость (км/ч).',
|
lhs: 'x', rhs: '{S}/{t}', display: 'Поезд прошёл {S} км за {t} ч. Найдите его среднюю скорость (км/ч).',
|
||||||
answerVar: 'x', answer: 'val', integerAnswer: true,
|
answerVar: 'x', answer: 'val', integerAnswer: true,
|
||||||
@@ -1459,7 +1459,7 @@
|
|||||||
/* на сколько процентов изменилось */
|
/* на сколько процентов изменилось */
|
||||||
{
|
{
|
||||||
id: 'pct-change', topic: 'percents', order: 6, subject: 'algebra', grade: 7, kind: 'compute',
|
id: 'pct-change', topic: 'percents', order: 6, subject: 'algebra', grade: 7, kind: 'compute',
|
||||||
title: 'На сколько процентов выросло',
|
title: 'На сколько процентов выросло', answerSym: 'p',
|
||||||
pick: { abase: [2, 12], pidx: [1, 10] },
|
pick: { abase: [2, 12], pidx: [1, 10] },
|
||||||
derive: { a: 'abase*20', p: 'pidx*5', b: 'abase*(100 + pidx*5)/5', val: 'pidx*5' },
|
derive: { a: 'abase*20', p: 'pidx*5', b: 'abase*(100 + pidx*5)/5', val: 'pidx*5' },
|
||||||
lhs: 'x', rhs: '100*({b} - {a})/{a}', display: 'Цена выросла с {a} руб до {b} руб. На сколько процентов выросла цена?',
|
lhs: 'x', rhs: '100*({b} - {a})/{a}', display: 'Цена выросла с {a} руб до {b} руб. На сколько процентов выросла цена?',
|
||||||
@@ -1521,7 +1521,7 @@
|
|||||||
/* встречное движение */
|
/* встречное движение */
|
||||||
{
|
{
|
||||||
id: 'app-meet', topic: 'applied', order: 6, subject: 'algebra', grade: 7, kind: 'compute',
|
id: 'app-meet', topic: 'applied', order: 6, subject: 'algebra', grade: 7, kind: 'compute',
|
||||||
title: 'Встречное движение',
|
title: 'Встречное движение', answerSym: 't',
|
||||||
pick: { u: [20, 70], v: [20, 70], t: [2, 6] },
|
pick: { u: [20, 70], v: [20, 70], t: [2, 6] },
|
||||||
derive: { S: '(u + v)*t', val: 't' },
|
derive: { S: '(u + v)*t', val: 't' },
|
||||||
lhs: 'x', rhs: '{S}/({u}+{v})', display: 'Из двух городов навстречу выехали машины со скоростями {u} и {v} км/ч. Расстояние между городами {S} км. Через сколько часов они встретятся?',
|
lhs: 'x', rhs: '{S}/({u}+{v})', display: 'Из двух городов навстречу выехали машины со скоростями {u} и {v} км/ч. Расстояние между городами {S} км. Через сколько часов они встретятся?',
|
||||||
@@ -1536,7 +1536,7 @@
|
|||||||
/* движение вдогонку */
|
/* движение вдогонку */
|
||||||
{
|
{
|
||||||
id: 'app-overtake', topic: 'applied', order: 7, subject: 'algebra', grade: 8, kind: 'compute',
|
id: 'app-overtake', topic: 'applied', order: 7, subject: 'algebra', grade: 8, kind: 'compute',
|
||||||
title: 'Движение вдогонку',
|
title: 'Движение вдогонку', answerSym: 't',
|
||||||
pick: { u: [10, 40], g: [5, 30], t: [2, 6] },
|
pick: { u: [10, 40], g: [5, 30], t: [2, 6] },
|
||||||
derive: { v: 'u + g', d: 'g*t', val: 't' },
|
derive: { v: 'u + g', d: 'g*t', val: 't' },
|
||||||
lhs: 'x', rhs: '{d}/({v}-{u})', display: 'Велосипедист едет со скоростью {u} км/ч, мотоциклист — со скоростью {v} км/ч, отставая на {d} км. Через сколько часов мотоциклист догонит велосипедиста?',
|
lhs: 'x', rhs: '{d}/({v}-{u})', display: 'Велосипедист едет со скоростью {u} км/ч, мотоциклист — со скоростью {v} км/ч, отставая на {d} км. Через сколько часов мотоциклист догонит велосипедиста?',
|
||||||
@@ -1565,7 +1565,7 @@
|
|||||||
/* совместная работа */
|
/* совместная работа */
|
||||||
{
|
{
|
||||||
id: 'app-work-joint', topic: 'applied', order: 9, subject: 'algebra', grade: 8, kind: 'compute',
|
id: 'app-work-joint', topic: 'applied', order: 9, subject: 'algebra', grade: 8, kind: 'compute',
|
||||||
title: 'Совместная работа',
|
title: 'Совместная работа', answerSym: 't',
|
||||||
pick: { t: [2, 6], a: [3, 14] }, constraint: 'a > t',
|
pick: { t: [2, 6], a: [3, 14] }, constraint: 'a > t',
|
||||||
derive: { b: 'a*t/(a - t)', val: 't' },
|
derive: { b: 'a*t/(a - t)', val: 't' },
|
||||||
require: 'mod(a*t, a - t) == 0 && b >= 2 && b <= 60',
|
require: 'mod(a*t, a - t) == 0 && b >= 2 && b <= 60',
|
||||||
@@ -1581,7 +1581,7 @@
|
|||||||
/* смешивание двух растворов */
|
/* смешивание двух растворов */
|
||||||
{
|
{
|
||||||
id: 'app-mix-blend', topic: 'applied', order: 10, subject: 'algebra', grade: 9, kind: 'compute',
|
id: 'app-mix-blend', topic: 'applied', order: 10, subject: 'algebra', grade: 9, kind: 'compute',
|
||||||
title: 'Концентрация смеси',
|
title: 'Концентрация смеси', answerSym: 'p',
|
||||||
pick: { m1: [1, 6], m2: [1, 6], p1: [10, 40], p2: [50, 90] },
|
pick: { m1: [1, 6], m2: [1, 6], p1: [10, 40], p2: [50, 90] },
|
||||||
derive: { val: '(m1*p1 + m2*p2)/(m1 + m2)' },
|
derive: { val: '(m1*p1 + m2*p2)/(m1 + m2)' },
|
||||||
require: 'mod(m1*p1 + m2*p2, m1 + m2) == 0',
|
require: 'mod(m1*p1 + m2*p2, m1 + m2) == 0',
|
||||||
@@ -1597,7 +1597,7 @@
|
|||||||
/* прибыль в процентах */
|
/* прибыль в процентах */
|
||||||
{
|
{
|
||||||
id: 'app-profit-pct', topic: 'applied', order: 11, subject: 'algebra', grade: 8, kind: 'compute',
|
id: 'app-profit-pct', topic: 'applied', order: 11, subject: 'algebra', grade: 8, kind: 'compute',
|
||||||
title: 'Прибыль в процентах',
|
title: 'Прибыль в процентах', answerSym: 'p',
|
||||||
pick: { cbase: [1, 9], pidx: [1, 10] },
|
pick: { cbase: [1, 9], pidx: [1, 10] },
|
||||||
derive: { c: 'cbase*100', p: 'pidx*5', s: 'cbase*(100 + pidx*5)', val: 'pidx*5' },
|
derive: { c: 'cbase*100', p: 'pidx*5', s: 'cbase*(100 + pidx*5)', val: 'pidx*5' },
|
||||||
lhs: 'x', rhs: '100*({s} - {c})/{c}', display: 'Товар купили за {c} руб, а продали за {s} руб. Сколько процентов прибыли получили?',
|
lhs: 'x', rhs: '100*({s} - {c})/{c}', display: 'Товар купили за {c} руб, а продали за {s} руб. Сколько процентов прибыли получили?',
|
||||||
|
|||||||
Reference in New Issue
Block a user