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
+138
View File
@@ -0,0 +1,138 @@
VARIANTS[60] = {
label: "Вариант 60",
tasks: [
{
text: `Определите рисунок, на котором изображён график функции $y = x^2 - 2$:`,
figure: `<img src="/img/exam9/v60_t1.jpg" class="task-fig" />`,
sol: `Парабола $y=x^2-2$: вершина $(0;-2)$, ветви вверх. <div class="sol-ans">Ответ: парабола с вершиной $(0;-2)$, ветви вверх.</div>`
},
{
text: `Результат деления многочлена $10a^3 - 15a^2$ на одночлен $5a$ имеет вид:`,
opts: [
["а", "$50a^4 - 75a^3$"], ["б", "$-a^2$"], ["в", "$2a^2 - 3a$"],
["г", "$2a^2 - 3$"], ["д", "$2a^3 - 3a^2$"],
],
sol: `$\\dfrac{10a^3-15a^2}{5a}=2a^2-3a$. <div class="sol-ans">Ответ: в)&ensp;$2a^2-3a$</div>`
},
{
text: `Какое из следующих утверждений <b>НЕ</b> верно:`,
opts: [
["а", "диагонали квадрата перпендикулярны;"],
["б", "периметр параллелограмма со сторонами $a$ и $b$ равен $P = 2a + 2b$;"],
["в", "$\\cos 45^{\\circ} = 1$;"],
["г", "центральный угол окружности в $2$ раза больше вписанного угла, опирающегося на ту же дугу?"],
],
sol: `а) верно; б) $P=2a+2b$ — верно; в) $\\cos45^{\\circ}=\\dfrac{\\sqrt{2}}{2}\\neq1$ — <b>НЕВЕРНО</b>; г) верно. <div class="sol-ans">Ответ: в)</div>`
},
{
text: `Найдите значение выражения
$12^0 + \\sqrt{36} - \\left(\\dfrac{1}{2}\\right)^{-1} - \\sqrt{\\dfrac{1}{16}}$.`,
sol: `$1+6-2-\\tfrac{1}{4}=5-\\tfrac{1}{4}=\\dfrac{19}{4}$. <div class="sol-ans">Ответ: $\\dfrac{19}{4}$</div>`
},
{
text: `Найдите сумму целых решений неравенства $-7 < -3x + 2 \\leq 5$.`,
sol: `<b>Правило:</b> при делении неравенства на отрицательное число знаки меняются на противоположные.<br>
<b>Шаг 1.</b> Выписываем неравенство:
$$-7 \\lt -3x + 2 \\leq 5.$$
<b>Шаг 2.</b> Вычитаем $2$ из всех частей:
$$-9 \\lt -3x \\leq 3.$$
<b>Шаг 3.</b> Делим на $-3$ (знаки меняются):
$$3 \\gt x \\geq -1 \\iff -1 \\leq x \\lt 3.$$
<b>Шаг 4.</b> Целые решения: $-1,\\; 0,\\; 1,\\; 2$.<br>
<b>Шаг 5.</b> Сумма: $-1 + 0 + 1 + 2 = 2$.
<div class="sol-ans">Ответ: $2$</div>`
},
{
text: `Дан правильный многоугольник с периметром, равным $140$ см.
Сумма всех его внутренних углов равна $900^{\\circ}$.
Найдите длину стороны этого многоугольника.`,
sol: `<b>Формула суммы внутренних углов выпуклого $n$-угольника:</b>
$$S_{\\text{углов}} = (n - 2) \\cdot 180^{\\circ}.$$
<b>Свойство правильного многоугольника:</b> все стороны равны, значит $P = n \\cdot a$.<br>
<b>Шаг 1. Находим число сторон $n$.</b><br>
По условию сумма углов равна $900^{\\circ}$:
$$(n - 2) \\cdot 180^{\\circ} = 900^{\\circ} \\implies n - 2 = 5 \\implies n = 7.$$
<b>Шаг 2. Находим длину стороны.</b><br>
Периметр $P = n \\cdot a$, откуда
$$a = \\dfrac{P}{n} = \\dfrac{140}{7} = 20\\text{ см}.$$
<div class="sol-ans">Ответ: $20$ см</div>`
},
{
text: `Найдите среднее арифметическое абсцисс точек пересечения графиков функций,
заданных формулами $y = 4x^2 + x$ и $y = 2 - 4x - 3x^2$.`,
sol: `<b>Теорема Виета:</b> для уравнения $ax^2+bx+c=0$ сумма корней равна $-\\dfrac{b}{a}$.<br>
<b>Шаг 1.</b> В точках пересечения ординаты совпадают, поэтому приравниваем правые части:
$$4x^2 + x = 2 - 4x - 3x^2.$$
<b>Шаг 2.</b> Переносим всё в одну сторону и приводим подобные:
$$4x^2 + x - 2 + 4x + 3x^2 = 0 \\implies 7x^2 + 5x - 2 = 0.$$
<b>Шаг 3.</b> По теореме Виета сумма корней:
$$x_1 + x_2 = -\\dfrac{5}{7}.$$
<b>Шаг 4.</b> Среднее арифметическое — это полусумма:
$$\\dfrac{x_1+x_2}{2} = -\\dfrac{5}{14}.$$
<div class="sol-ans">Ответ: $-\\dfrac{5}{14}$</div>`
},
{
text: `Имеется лом стали двух сортов с содержанием никеля $5\\%$ и $20\\%$.
Сколько тонн металла каждого сорта надо взять, чтобы получить $150$ т стали
с содержанием никеля $10\\%$?`,
sol: `<b>Метод составления системы уравнений</b> по двум условиям: масса смеси = сумма масс компонентов; масса чистого вещества — тоже сумма по компонентам.<br>
<b>Шаг 1.</b> Вводим переменные. Пусть $x$ т — масса лома с содержанием никеля $5\\%$, $y$ т — масса лома с содержанием $20\\%$.<br>
<b>Шаг 2.</b> Составляем первое уравнение (общая масса смеси равна $150$ т):
$$x + y = 150.$$
<b>Шаг 3.</b> Составляем второе уравнение по массе чистого никеля. В первом ломе никеля $0{,}05x$ т, во втором — $0{,}20y$ т. В готовой смеси никеля $10\\%$ от $150$ т, то есть $15$ т:
$$0{,}05x + 0{,}20y = 15.$$
<b>Шаг 4.</b> Решаем систему. Умножим второе уравнение на $20$, чтобы избавиться от десятичных:
$$x + 4y = 300.$$
Вычтем из этого уравнения первое:
$$3y = 150 \\implies y = 50\\text{ т}.$$
<b>Шаг 5.</b> Находим $x$:
$$x = 150 - 50 = 100\\text{ т}.$$
<b>Шаг 6.</b> Проверка: масса никеля $0{,}05\\cdot 100 + 0{,}20\\cdot 50 = 5 + 10 = 15$ т — совпадает с условием.
<div class="sol-ans">Ответ: $100$ т ($5\\%$) и $50$ т ($20\\%$).</div>`
},
{
text: `Высота прямоугольного треугольника, проведённая к гипотенузе, делит треугольник
на два треугольника, площади которых равны $6$ см² и $54$ см².
Найдите гипотенузу.`,
sol: `<svg viewBox="0 0 320 200" width="320" height="200" xmlns="http://www.w3.org/2000/svg" style="background:#fff;border:1px solid #ddd">
<polygon points="40,170 280,170 64,98" fill="#eef6ff" stroke="#2563eb" stroke-width="2"/>
<line x1="64" y1="98" x2="64" y2="170" stroke="#dc2626" stroke-width="2" stroke-dasharray="4,3"/>
<rect x="64" y="158" width="12" height="12" fill="none" stroke="#dc2626" stroke-width="1.5"/>
<text x="32" y="186" font-size="14" fill="#111">A</text>
<text x="282" y="186" font-size="14" fill="#111">B</text>
<text x="56" y="92" font-size="14" fill="#111">C</text>
<text x="60" y="186" font-size="13" fill="#111">H</text>
<text x="46" y="186" font-size="12" fill="#2563eb">2</text>
<text x="166" y="186" font-size="12" fill="#2563eb">18</text>
<text x="70" y="138" font-size="12" fill="#dc2626">h=6</text>
</svg><br>
Пусть $CH = h$ — высота из прямого угла $C$ к гипотенузе $AB$, $AH = a$, $HB = b$.<br>
Площади треугольников:
$$S_1 = \\dfrac{1}{2}\\cdot a\\cdot h = 6, \\quad S_2 = \\dfrac{1}{2}\\cdot b\\cdot h = 54.$$
Делим $S_2$ на $S_1$: $\\dfrac{b}{a} = \\dfrac{54}{6} = 9 \\implies b = 9a.$<br>
По свойству высоты прямоугольного треугольника: $h^2 = a\\cdot b = 9a^2 \\implies h = 3a.$<br>
Подставим в $S_1$: $\\dfrac{1}{2}\\cdot a\\cdot 3a = \\dfrac{3a^2}{2} = 6 \\implies a^2 = 4 \\implies a = 2$ см.<br>
Тогда $b = 9\\cdot 2 = 18$ см.<br>
Гипотенуза: $AB = a + b = 2 + 18 = 20$ см.
<div class="sol-ans">Ответ: $20$ см.</div>`
},
{
text: `Упростите выражение
$\\sqrt{x + 6\\sqrt{x-9}} + \\sqrt{x - 6\\sqrt{x-9}}$ при $x > 18$.`,
sol: `<b>Метод выделения полного квадрата</b> и формула $\\sqrt{a^2}=|a|$.<br>
<b>Шаг 1.</b> Представляем $x$ удобным образом: $x = (x-9) + 9$. Тогда первое подкоренное выражение раскладывается по формуле квадрата суммы $a^2+2ab+b^2=(a+b)^2$ (здесь $a=\\sqrt{x-9}$, $b=3$):
$$x + 6\\sqrt{x-9} = (x-9) + 2\\cdot\\sqrt{x-9}\\cdot 3 + 9 = \\left(\\sqrt{x-9}+3\\right)^2.$$
<b>Шаг 2.</b> Аналогично для второго подкоренного (квадрат разности):
$$x - 6\\sqrt{x-9} = \\left(\\sqrt{x-9}-3\\right)^2.$$
<b>Шаг 3.</b> Извлекаем корни по правилу $\\sqrt{a^2}=|a|$:
$$\\sqrt{x+6\\sqrt{x-9}} = \\left|\\sqrt{x-9}+3\\right| = \\sqrt{x-9}+3,$$
так как $\\sqrt{x-9}+3 \\gt 0$ (модуль не нужен).<br>
$$\\sqrt{x-6\\sqrt{x-9}} = \\left|\\sqrt{x-9}-3\\right|.$$
<b>Шаг 4.</b> Раскрываем второй модуль. По условию $x \\gt 18$, значит $x-9 \\gt 9$ и $\\sqrt{x-9} \\gt 3$, поэтому $\\sqrt{x-9}-3 \\gt 0$ и
$$\\left|\\sqrt{x-9}-3\\right| = \\sqrt{x-9}-3.$$
<b>Шаг 5.</b> Складываем результаты:
$$\\left(\\sqrt{x-9}+3\\right) + \\left(\\sqrt{x-9}-3\\right) = 2\\sqrt{x-9}.$$
<div class="sol-ans">Ответ: $2\\sqrt{x-9}$.</div>`
},
]
};