feat: exam9 — Экзамен 9 класс по математике (80 вариантов)

Новый отдельный модуль /exam9 в стиле LearnSpace:
- 80 вариантов × 10 заданий = 800 задач с разбором (KaTeX + SVG)
- Сайдбар: пункт «Экзамен 9 класс» (clipboard-check)
- Feature flag: feature_exam9_enabled (мигр. 002)
- Видим всем авторизованным; рендер на стороне клиента
- Прогресс в localStorage: подсветка вариантов (done/partial)
- Возобновление последнего варианта при возврате

Структура:
  frontend/exam9.html              — страница (LearnSpace layout)
  frontend/js/exam9/app.js         — рендерер
  frontend/js/exam9/variants/      — 80 файлов с данными
  frontend/img/exam9/              — 22 PNG/JPG фигур заданий

Картинки путей _tmp/ → /img/exam9/ переписаны автоматически.

Все маршруты проверены: 200 OK на /exam9, /js/exam9/*, /img/exam9/*.
This commit is contained in:
Maxim Dolgolyov
2026-05-16 12:53:49 +03:00
parent ae31e4c4e8
commit 6cff327e88
107 changed files with 16507 additions and 0 deletions
+187
View File
@@ -0,0 +1,187 @@
VARIANTS[50] = {
label: "Вариант 50",
tasks: [
{
text: `Определите, какое из данных выражений <b>НЕ</b> является одночленом:`,
opts: [
["а", "$n^{12}$"], ["б", "$-\\dfrac{3}{8}b^3$"], ["в", "$\\dfrac{5}{z}$"],
["г", "$3abc$"], ["д", "$1$"],
],
sol: `<b>Определение:</b> одночлен — произведение чисел и переменных в натуральных степенях.<br>
Выражение $\\dfrac{5}{z}=5z^{-1}$ содержит переменную в знаменателе (отрицательная степень),
поэтому одночленом <b>не является</b>.<br>
Остальные варианты — корректные одночлены.
<div class="sol-ans">Ответ: в) $\\dfrac{5}{z}$.</div>`
},
{
text: `Уравнение окружности с центром в точке $(0;\\; 4)$ и радиусом $\\sqrt{5}$ имеет вид:`,
opts: [
["а", "$x^2 + (y+4)^2 = 5$"], ["б", "$x^2 + (y-4)^2 = 5$"], ["в", "$x^2 - (y+4)^2 = 5$"],
["г", "$x^2 - (y-4)^2 = 5$"], ["д", "$x^2 + (y-4)^2 = \\sqrt{5}$"],
],
sol: `<b>Уравнение окружности</b> с центром $(a;\\,b)$ и радиусом $R$:
$$(x-a)^{2}+(y-b)^{2}=R^{2}.$$
Подставляем $a=0,\\;b=4,\\;R=\\sqrt{5},\\;R^{2}=5$:
$$x^{2}+(y-4)^{2}=5.$$
<div class="sol-ans">Ответ: б) $x^{2}+(y-4)^{2}=5$.</div>`
},
{
text: `Какое из следующих утверждений <b>НЕ</b> верно:`,
opts: [
["а", "у подобных треугольников соответствующие стороны пропорциональны;"],
["б", "$\\operatorname{ctg} 45^{\\circ} = 1$;"],
["в", "если угол между прямыми равен $90^{\\circ}$, то они перпендикулярны;"],
["г", "медиана любого треугольника перпендикулярна стороне, к которой проведена?"],
],
sol: `Проверим утверждения:
<ul>
<li>а) верно — определение подобных треугольников;</li>
<li>б) верно — табличное значение $\\operatorname{ctg}45^{\\circ}=1$;</li>
<li>в) верно — определение перпендикулярных прямых;</li>
<li>г) <b>неверно</b> — медиана соединяет вершину с серединой противоположной стороны,
но в общем случае она не перпендикулярна этой стороне.</li>
</ul>
<div class="sol-ans">Ответ: г).</div>`
},
{
text: `Найдите значение выражения
$12^0 + \\sqrt{36} - \\left(\\dfrac{1}{2}\\right)^{-1} + \\sqrt{\\dfrac{1}{16}}$.`,
sol: `Вычисляем по частям:
<ul>
<li>$12^{0}=1;$</li>
<li>$\\sqrt{36}=6;$</li>
<li>$\\left(\\dfrac{1}{2}\\right)^{-1}=2;$</li>
<li>$\\sqrt{\\dfrac{1}{16}}=\\dfrac{1}{4}.$</li>
</ul>
Тогда $1+6-2+\\dfrac{1}{4}=5+\\dfrac{1}{4}=5{,}25.$
<div class="sol-ans">Ответ: $5{,}25$ (или $\\dfrac{21}{4}$).</div>`
},
{
text: `$ABCD$ — параллелограмм, $DC = 12$ см. Биссектриса угла $B$ пересекает сторону $AD$
в точке $M$, $MD = 4$ см. Найдите периметр параллелограмма.`,
sol: `<svg viewBox="0 0 340 200" width="320" xmlns="http://www.w3.org/2000/svg" style="display:block;margin:6px auto;">
<polygon points="40,160 110,30 320,30 250,160" fill="#eef6ff" stroke="#1e63a8" stroke-width="2"/>
<line x1="320" y1="30" x2="110" y2="160" stroke="#d33" stroke-width="2"/>
<circle cx="110" cy="160" r="3" fill="#d33"/>
<text x="22" y="172" font-size="14">A</text>
<text x="100" y="22" font-size="14">B</text>
<text x="322" y="22" font-size="14">C</text>
<text x="252" y="172" font-size="14">D</text>
<text x="98" y="172" font-size="14">M</text>
<text x="55" y="172" font-size="11" fill="#1e63a8">AM=12</text>
<text x="175" y="172" font-size="11" fill="#1e63a8">MD=4</text>
</svg>
<b>Свойство биссектрисы и параллельных прямых.</b><br>
<b>Шаг 1.</b> Пусть $\\angle B = 2\\beta$. Так как $BM$ — биссектриса угла $B$, то $\\angle ABM = \\angle MBC = \\beta$.<br>
<b>Шаг 2.</b> По свойству параллелограмма $AD \\parallel BC$. $BM$ — секущая, значит накрест лежащие углы равны:
$$\\angle BMA = \\angle MBC = \\beta.$$
<b>Шаг 3.</b> В $\\triangle ABM$ два угла равны ($\\angle ABM = \\angle BMA = \\beta$), значит он равнобедренный, и стороны напротив равных углов равны:
$$AB = AM.$$
<b>Шаг 4.</b> Так как в параллелограмме противоположные стороны равны, $AB = DC = 12$ см. Значит $AM = 12$ см.<br>
<b>Шаг 5.</b> Находим $AD$: точка $M$ лежит на стороне $AD$, поэтому
$$AD = AM + MD = 12 + 4 = 16\\text{ см}.$$
А $BC = AD = 16$ см (противоположные стороны параллелограмма).<br>
<b>Шаг 6.</b> Периметр параллелограмма:
$$P = 2(AB + BC) = 2(12 + 16) = 56\\text{ см}.$$
<div class="sol-ans">Ответ: $56$ см.</div>`
},
{
text: `Упростите выражение $\\dfrac{y^2 + 14y + 49}{(y+3)^2 - 16}$.`,
sol: `<b>Формула квадрата суммы:</b> $a^2+2ab+b^2=(a+b)^2$.<br>
<b>Формула разности квадратов:</b> $a^2-b^2=(a-b)(a+b)$.<br>
<b>Шаг 1.</b> Раскладываем числитель по формуле квадрата суммы (так как $14y=2\\cdot y\\cdot 7$ и $49=7^2$):
$$y^{2}+14y+49=(y+7)^{2}.$$
<b>Шаг 2.</b> Раскладываем знаменатель по формуле разности квадратов (так как $16=4^2$):
$$(y+3)^{2}-16=(y+3-4)(y+3+4)=(y-1)(y+7).$$
<b>Шаг 3.</b> Подставляем разложения и сокращаем общий множитель $(y+7)$:
$$\\dfrac{(y+7)^{2}}{(y-1)(y+7)}=\\dfrac{y+7}{y-1}.$$
<b>Шаг 4.</b> ОДЗ: знаменатели исходного и сокращённого выражений не должны быть равны нулю, значит $y\\ne 1$ и $y\\ne -7$.
<div class="sol-ans">Ответ: $\\dfrac{y+7}{y-1}$.</div>`
},
{
text: `Определите, сколько общих точек у прямой $y = -6$ и графика функции $y = -4x^2 + x - 1$.
В ответ запишите координаты точек пересечения.`,
sol: `<b>Метод:</b> в общей точке двух графиков ординаты совпадают. Поэтому приравниваем правые части и считаем количество корней.<br>
<b>Шаг 1.</b> Приравниваем правые части уравнений:
$$-6=-4x^{2}+x-1.$$
<b>Шаг 2.</b> Переносим в одну часть и приводим к стандартному виду:
$$4x^{2}-x-5=0.$$
<b>Шаг 3.</b> Считаем дискриминант по формуле $D=b^2-4ac$:
$$D=(-1)^{2}-4\\cdot 4\\cdot(-5)=1+80=81,\\quad \\sqrt{D}=9.$$
<b>Шаг 4.</b> Находим корни по формуле $x_{1,2}=\\dfrac{-b\\pm\\sqrt{D}}{2a}$:
$$x_{1,2}=\\dfrac{1\\pm 9}{8}\\;\\implies\\;x_{1}=\\dfrac{5}{4},\\;x_{2}=-1.$$
<b>Шаг 5.</b> Уравнение имеет два корня, значит общих точек две. При обоих значениях $y=-6$ (так как точки лежат на прямой $y=-6$).
<div class="sol-ans">Ответ: $2$ точки: $\\left(\\dfrac{5}{4};\\,-6\\right)$ и $(-1;\\,-6)$.</div>`
},
{
text: `Бригада маляров красит фасад здания площадью $2700$ м², ежедневно увеличивая норму покраски
на одно и то же число квадратных метров. Известно, что за первый и последний день
в сумме бригада покрасила $360$ м² фасада.
Определите, сколько дней бригада маляров красила весь фасад.`,
sol: `<b>Формула суммы $n$ членов арифметической прогрессии:</b>
$$S_n = \\dfrac{(a_1 + a_n) \\cdot n}{2}.$$
<b>Шаг 1.</b> Так как ежедневные нормы увеличиваются на одно и то же число, они образуют арифметическую прогрессию $a_1, a_2, \\ldots, a_n$, где $n$ — искомое число дней.<br>
<b>Шаг 2.</b> По условию $a_1 + a_n = 360$ м² и общая площадь $S_n = 2700$ м².<br>
<b>Шаг 3.</b> Подставляем в формулу суммы:
$$2700 = \\dfrac{360 \\cdot n}{2} = 180n.$$
<b>Шаг 4.</b> Находим $n$:
$$n = \\dfrac{2700}{180} = 15.$$
<div class="sol-ans">Ответ: $15$ дней.</div>`
},
{
text: `Найдите сумму целых решений системы неравенств
$$\\begin{cases} \\dfrac{x-3}{x+5} \\leq 0, \\\\[6pt] x^2 + 3x > -2. \\end{cases}$$`,
sol: `<b>Метод интервалов:</b> решаем каждое неравенство и находим пересечение.<br>
<b>Шаг 1. Первое неравенство $\\dfrac{x-3}{x+5} \\leq 0$.</b><br>
Нули числителя и знаменателя: $x = 3$ (входит, потому что $\\leq$) и $x = -5$ (выколота, нельзя делить на ноль).<br>
Методом интервалов: $x \\in (-5;\\,3]$.<br>
<b>Шаг 2. Второе неравенство $x^2 + 3x \\gt -2$.</b><br>
Переносим: $x^2 + 3x + 2 \\gt 0$, раскладываем: $(x+1)(x+2) \\gt 0$.<br>
Парабола ветвями вверх, поэтому
$$x \\in (-\\infty;\\,-2) \\cup (-1;\\,+\\infty).$$
<b>Шаг 3. Пересечение:</b>
$$x \\in (-5;\\,-2) \\cup (-1;\\,3].$$
<b>Шаг 4. Целые решения.</b><br>
На $(-5;\\,-2)$ — это $-4$ и $-3$; на $(-1;\\,3]$ — это $0, 1, 2, 3$.<br>
<b>Шаг 5. Сумма:</b> $(-4) + (-3) + 0 + 1 + 2 + 3 = -1$.
<div class="sol-ans">Ответ: $-1$.</div>`
},
{
text: `В треугольнике $ABC$ проведены отрезки $MK \\| AC$ и $KE \\| AB$,
где точки $M$, $K$ и $E$ принадлежат сторонам $AB$, $BC$ и $AC$ соответственно.
Площадь треугольника $MBK$ равна $16$ см², треугольника $EKC$$25$ см².
Найдите площадь четырёхугольника $AMKE$.`,
sol: `<svg viewBox="0 0 360 230" xmlns="http://www.w3.org/2000/svg" style="max-width:380px;width:100%;height:auto;display:block;margin:8px auto">
<polygon points="30,210 180,20 330,210" fill="rgba(234,179,8,0.06)" stroke="#334155" stroke-width="2"/>
<polygon points="100,104 180,20 260,104" fill="rgba(220,38,38,0.18)" stroke="#dc2626" stroke-width="1.6"/>
<polygon points="170,210 260,104 330,210" fill="rgba(37,99,235,0.18)" stroke="#2563eb" stroke-width="1.6"/>
<polygon points="30,210 100,104 260,104 170,210" fill="rgba(22,163,74,0.18)" stroke="#16a34a" stroke-width="1.6"/>
<text x="14" y="222" font-size="14" font-family="serif" font-style="italic">A</text>
<text x="174" y="14" font-size="14" font-family="serif" font-style="italic">B</text>
<text x="334" y="222" font-size="14" font-family="serif" font-style="italic">C</text>
<text x="83" y="108" font-size="13" font-family="serif" font-style="italic">M</text>
<text x="264" y="108" font-size="13" font-family="serif" font-style="italic">K</text>
<text x="164" y="225" font-size="13" font-family="serif" font-style="italic">E</text>
<text x="158" y="65" font-size="11" fill="#dc2626" font-weight="bold">S=16</text>
<text x="265" y="170" font-size="11" fill="#2563eb" font-weight="bold">S=25</text>
<text x="128" y="185" font-size="12" fill="#16a34a" font-weight="bold">AMKE = ?</text>
</svg>
<b>Теорема:</b> отношение площадей подобных треугольников равно квадрату коэффициента подобия.<br>
<b>Шаг 1. Подобие $\\triangle MBK \\sim \\triangle ABC$.</b><br>
Так как $MK \\parallel AC$, треугольники подобны с коэффициентом
$$k_1 = \\dfrac{BK}{BC}.$$
<b>Шаг 2. Подобие $\\triangle KEC \\sim \\triangle ABC$.</b><br>
Так как $KE \\parallel AB$, аналогично
$$k_2 = \\dfrac{KC}{BC}.$$
<b>Шаг 3.</b> Так как $BK + KC = BC$, то $k_1 + k_2 = 1$.<br>
<b>Шаг 4. Выражаем коэффициенты через площади.</b><br>
Пусть $S = S_{ABC}$. Тогда
$$\\dfrac{S_{MBK}}{S} = k_1^2 \\implies k_1 = \\dfrac{4}{\\sqrt{S}}; \\quad \\dfrac{S_{EKC}}{S} = k_2^2 \\implies k_2 = \\dfrac{5}{\\sqrt{S}}.$$
<b>Шаг 5. Находим $S$.</b>
$$\\dfrac{4}{\\sqrt{S}} + \\dfrac{5}{\\sqrt{S}} = 1 \\implies \\dfrac{9}{\\sqrt{S}} = 1 \\implies \\sqrt{S} = 9 \\implies S = 81.$$
<b>Шаг 6. Площадь четырёхугольника $AMKE$.</b>
$$S_{AMKE} = S - S_{MBK} - S_{EKC} = 81 - 16 - 25 = 40\\text{ см}^2.$$
<div class="sol-ans">Ответ: $40$ см².</div>`
},
]
};