feat(trainer): полные решения систем + шапка «Математика»; решения по всем темам

- Шапка-пилюля теперь УНИВЕРСАЛЬНАЯ и не мигает: всегда «Математика · 5–9 класс» (не переключается на «Алгебра»; предмет выбирается сегментом Алгебра/Геометрия)
- Системы 2 ур-ний — ПОЛНОЕ решение методом сложения (6 шагов): уравнять коэффициенты при x, вычесть (исключить x → coefY·y=rhsY), найти y, подставить, найти x, ответ-пара. Коэффициенты 2..4 / |коэф|≥2 — без «1x» в шагах
- Аудит решений по ВСЕМ темам: 7 «тонких» (1 шаг) генераторов (simp-like/expand, pow-mult/pow, sq-sum/diff, diff-sq) развёрнуты в 2 шага (правило → итог)
- смоук T21: у каждого из 60 генераторов решение ≥2 шагов; движок 1214/1214, страница 42/42; эмодзи 0

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-25 18:05:43 +03:00
parent fb16821b0a
commit b5916e7f3b
2 changed files with 35 additions and 21 deletions
+5 -6
View File
@@ -686,15 +686,14 @@
return out;
}
var SUBJ_LBL = { algebra: 'Алгебра', geometry: 'Геометрия' };
// подпись в шапке: предмет + диапазон классов текущего предмета (универсально 5–9)
// подпись в шапке — УНИВЕРСАЛЬНАЯ: «Математика · 5–9 класс» (предмет выбирается
// отдельным сегментом Алгебра/Геометрия, шапка его не дублирует).
function updateSubjectPill() {
var pill = $('tr-subject'); if (!pill) return;
var gr = topics.filter(function (t) { return (t.subject || 'algebra') === curSubject && t.grade; })
.map(function (t) { return t.grade; });
var name = SUBJ_LBL[curSubject] || 'Математика';
if (!gr.length) { pill.textContent = name; return; }
var gr = topics.filter(function (t) { return t.grade; }).map(function (t) { return t.grade; });
if (!gr.length) { pill.textContent = 'Математика'; return; }
var lo = Math.min.apply(null, gr), hi = Math.max.apply(null, gr);
pill.textContent = name + ' · ' + (lo === hi ? (lo + ' класс') : (lo + '' + hi + ' класс'));
pill.textContent = 'Математика · ' + (lo === hi ? (lo + ' класс') : (lo + '' + hi + ' класс'));
}
function renderSubjects() {
updateSubjectPill();