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
+178
View File
@@ -0,0 +1,178 @@
VARIANTS[65] = {
label: "Вариант 65",
tasks: [
{
text: `Из данных равенств выберите тождество:`,
opts: [
["а", "$x + x + x = x^3$"], ["б", "$x \\cdot x \\cdot x = 3x$"], ["в", "$x + x + x = 3x$"],
["г", "$x \\cdot x \\cdot x \\cdot x = 4 + x$"], ["д", "$x + x + x = 3 + x$"],
],
sol: `Тождество — равенство, верное при <em>любых</em> значениях переменной.
<ul>
<li>а) $x+x+x=x^3$ — неверно: слева $3x$, справа $x^3$;</li>
<li>б) $x\\cdot x\\cdot x=3x$ — неверно: слева $x^3$;</li>
<li>в) $x+x+x=3x$ — <b>верно</b> ✓ (сумма трёх одинаковых слагаемых равна утроенному слагаемому);</li>
<li>г) $x\\cdot x\\cdot x\\cdot x=4+x$ — неверно: слева $x^4$;</li>
<li>д) $x+x+x=3+x$ — неверно: слева $3x$, а $3x\\neq 3+x$ (например, при $x=2$: $6\\neq 5$).</li>
</ul>
<div class="sol-ans">Ответ: в)&ensp;$x+x+x=3x$</div>`
},
{
text: `Определите, в какой из данных точек график функции $y = 2x + 3$ пересекает ось ординат:`,
opts: [
["а", "$A(1{,}5;\\;0)$"], ["б", "$B(0;\\;1{,}5)$"], ["в", "$C(3;\\;0)$"],
["г", "$D(-1{,}5;\\;0)$"], ["д", "$E(0;\\;3)$"],
],
sol: `Ось ординат ($Oy$) — это прямая $x=0$. Подставим $x=0$ в уравнение функции:
$$y = 2\\cdot 0 + 3 = 3.$$
Значит, график пересекает ось $Oy$ в точке $(0;\\;3)$.
<div class="sol-ans">Ответ: д)&ensp;$E(0;\\;3)$</div>`
},
{
text: `Какое из следующих утверждений <b>НЕ</b> верно:`,
opts: [
["а", "для сторон треугольника $ABC$ верно $\\dfrac{AB}{\\sin C} = \\dfrac{AC}{\\sin B}$;"],
["б", "$\\sin 120^{\\circ} = -\\dfrac{\\sqrt{3}}{2}$;"],
["в", "около прямоугольника всегда можно описать окружность;"],
["г", "длина окружности находится по формуле $C = 2\\pi R$?"],
],
sol: `<ul>
<li>а) Теорема синусов — <b>верно</b>;</li>
<li>б) По формуле приведения: $\\sin 120^{\\circ}=\\sin(180^{\\circ}-60^{\\circ})=\\sin 60^{\\circ}=\\dfrac{\\sqrt{3}}{2}$ (положительное число!) — <b style="color:#dc2626">НЕВЕРНО</b>;</li>
<li>в) Около любого прямоугольника описывается окружность (центр — точка пересечения диагоналей) — <b>верно</b>;</li>
<li>г) Формула длины окружности $C=2\\pi R$ — <b>верно</b>.</li>
</ul>
<div class="sol-ans">Ответ: б)</div>`
},
{
text: `Какая из следующих последовательностей является геометрической прогрессией? Ответ обоснуйте.<br>
а) $5;\\; 15;\\; 45;\\; \\ldots$&emsp;
б) $5;\\; 10;\\; 15;\\; \\ldots$&emsp;
в) $1;\\; 4;\\; 9;\\; 16;\\; \\ldots$&emsp;
г) $\\dfrac{1}{2};\\; \\dfrac{1}{3};\\; \\dfrac{1}{4};\\; \\dfrac{1}{5};\\; \\ldots$`,
sol: `Геометрическая прогрессия — последовательность, в которой каждый член (начиная со второго) получается умножением предыдущего на одно и то же число $q$ (знаменатель прогрессии).
<ul>
<li>а) $5;\\; 15;\\; 45;\\;\\ldots$ &nbsp; $\\dfrac{15}{5}=3,\\;\\dfrac{45}{15}=3$ — отношение постоянное, $q=3$. Это <b>ГП</b> ✓</li>
<li>б) $5;\\; 10;\\; 15;\\;\\ldots$ &nbsp; $\\dfrac{10}{5}=2,\\;\\dfrac{15}{10}=1{,}5$ — отношения разные. Это <b>арифметическая</b> прогрессия ($d=5$).</li>
<li>в) $1;\\; 4;\\; 9;\\; 16;\\;\\ldots$ &nbsp; $\\dfrac{4}{1}=4,\\;\\dfrac{9}{4}=2{,}25$ — отношения разные (квадраты натуральных).</li>
<li>г) $\\dfrac{1}{2};\\;\\dfrac{1}{3};\\;\\dfrac{1}{4};\\;\\ldots$ &nbsp; $\\dfrac{1/3}{1/2}=\\dfrac{2}{3},\\;\\dfrac{1/4}{1/3}=\\dfrac{3}{4}$ — отношения разные.</li>
</ul>
<div class="sol-ans">Ответ: а)&ensp;$5;\\; 15;\\; 45;\\;\\ldots$ — ГП со знаменателем $q=3$.</div>`
},
{
text: `Упростите выражение $\\dfrac{m^3}{m+1} \\cdot \\dfrac{m^2+2m+1}{2m^4}$.`,
sol: `<b>Формула квадрата суммы:</b> $a^2 + 2ab + b^2 = (a+b)^2$.
<br><b>Правило умножения дробей:</b> $\\dfrac{a}{b}\\cdot\\dfrac{c}{d}=\\dfrac{a\\cdot c}{b\\cdot d}$.
<br><b>Шаг 1. Найдём ОДЗ.</b> Знаменатели не должны равняться нулю: $m+1\\neq 0$ и $2m^4\\neq 0$, значит $m\\neq -1$ и $m\\neq 0$.
<br><b>Шаг 2.</b> Разложим числитель второй дроби по формуле квадрата суммы. Замечаем, что $m^2+2m+1 = m^2 + 2\\cdot m\\cdot 1 + 1^2 = (m+1)^2$:
$$\\dfrac{m^3}{m+1}\\cdot\\dfrac{(m+1)^2}{2m^4}.$$
<b>Шаг 3.</b> Перемножим дроби и сократим общие множители. В числителе появляется $m^3(m+1)^2$, в знаменателе — $(m+1)\\cdot 2m^4$. Сокращаем $(m+1)$ в первой степени и $m^3$ из степени $m^4$:
$$\\dfrac{m^3(m+1)^2}{(m+1)\\cdot 2m^4} = \\dfrac{m+1}{2m}.$$
<div class="sol-ans">Ответ: $\\dfrac{m+1}{2m}$.</div>`
},
{
text: `Около окружности с радиусом $4$ см описана равнобедренная трапеция,
площадь которой равна $80$ см². Найдите длину боковой стороны этой трапеции.`,
sol: `<b>Свойство 1.</b> Высота трапеции, описанной около окружности, равна диаметру вписанной окружности:
$$h = 2r = 2\\cdot 4 = 8\\text{ см}.$$
<b>Свойство 2.</b> Если четырёхугольник описан около окружности, то суммы его противоположных сторон равны. Для равнобедренной трапеции с основаниями $a,\\;b$ и боковыми сторонами $c$:
$$a+b = 2c.$$
Из формулы площади трапеции $S=\\dfrac{a+b}{2}\\cdot h$:
$$80 = \\dfrac{a+b}{2}\\cdot 8 \\implies a+b = 20\\text{ см}.$$
<svg viewBox="0 0 165 110" xmlns="http://www.w3.org/2000/svg" style="max-width:320px;width:100%;height:auto;display:block;margin:10px 0">
<!-- Точные пропорции: a=16, b=4, c=10, h=8, r=4. Масштаб 7px/см -->
<!-- A=(20,86), B=(62,30), C=(90,30), D=(132,86). Центр окружности (76,58), r=28 -->
<polygon points="20,86 62,30 90,30 132,86" fill="rgba(37,99,235,0.06)" stroke="#475569" stroke-width="1.8"/>
<!-- Вписанная окружность r=4см=28px, центр (76,58) -->
<circle cx="76" cy="58" r="28" fill="rgba(220,38,38,0.06)" stroke="#dc2626" stroke-width="1.5"/>
<!-- Радиус до нижнего основания -->
<line x1="76" y1="58" x2="76" y2="86" stroke="#dc2626" stroke-width="1" stroke-dasharray="3,2"/>
<circle cx="76" cy="58" r="2" fill="#dc2626"/>
<!-- Высота трапеции (вертикальная линия по центру) -->
<line x1="76" y1="30" x2="76" y2="86" stroke="#16a34a" stroke-width="1" stroke-dasharray="4,2"/>
<!-- Метки вершин -->
<text x="9" y="98" font-size="13" font-family="serif" font-style="italic">A</text>
<text x="135" y="98" font-size="13" font-family="serif" font-style="italic">D</text>
<text x="55" y="24" font-size="13" font-family="serif" font-style="italic">B</text>
<text x="92" y="24" font-size="13" font-family="serif" font-style="italic">C</text>
<!-- Метки сторон -->
<text x="74" y="100" font-size="11" fill="#334155">a</text>
<text x="74" y="22" font-size="11" fill="#334155">b</text>
<text x="32" y="62" font-size="11" fill="#334155">c</text>
<text x="115" y="62" font-size="11" fill="#334155">c</text>
<!-- Высота и радиус -->
<text x="80" y="50" font-size="10" fill="#16a34a">h=8</text>
<text x="58" y="76" font-size="10" fill="#dc2626" font-weight="bold">r=4</text>
</svg>
Тогда $2c = a+b = 20\\implies c = 10$ см.
<div class="sol-ans">Ответ: $c = 10$ см.</div>`
},
{
text: `Сравните корень уравнения $\\dfrac{4}{5}\\left(\\dfrac{6}{25}x - 1\\right) = 4$
с числом $\\left(\\dfrac{1}{5}\\right)^{-2}$.`,
sol: `<b>Свойство степени с отрицательным показателем:</b> $\\left(\\dfrac{a}{b}\\right)^{-n} = \\left(\\dfrac{b}{a}\\right)^{n}$.
<br><b>Шаг 1.</b> Решим уравнение. Сначала избавимся от множителя $\\dfrac{4}{5}$ перед скобкой — разделим обе части на $\\dfrac{4}{5}$, то есть умножим на $\\dfrac{5}{4}$:
$$\\dfrac{6}{25}x - 1 = 4\\cdot\\dfrac{5}{4} = 5.$$
<b>Шаг 2.</b> Переносим $-1$ в правую часть (меняем знак):
$$\\dfrac{6}{25}x = 5 + 1 = 6.$$
<b>Шаг 3.</b> Чтобы найти $x$, умножим обе части на $\\dfrac{25}{6}$ (число, обратное к $\\dfrac{6}{25}$):
$$x = 6\\cdot\\dfrac{25}{6} = 25.$$
<b>Шаг 4.</b> Вычислим число для сравнения. По свойству степени:
$$\\left(\\dfrac{1}{5}\\right)^{-2} = 5^{2} = 25.$$
<b>Шаг 5.</b> Сравниваем: $x = 25$ и $25$. Значит, корень уравнения <b>равен</b> числу $\\left(\\dfrac{1}{5}\\right)^{-2}$.
<div class="sol-ans">Ответ: корень уравнения равен числу $\\left(\\dfrac{1}{5}\\right)^{-2}$ (оба равны $25$).</div>`
},
{
text: `Найдите сумму целых значений аргумента, для которых график функции
$y = \\dfrac{2x-10}{x^2+x-12}$ расположен выше прямой $y = 1$.`,
sol: `Условие: $\\dfrac{2x-10}{x^2+x-12} > 1.$ Перенесём всё в одну часть:
$$\\dfrac{2x-10}{x^2+x-12} - 1 > 0 \\iff \\dfrac{2x-10-(x^2+x-12)}{x^2+x-12} > 0 \\iff \\dfrac{-x^2+x+2}{x^2+x-12} > 0.$$
Умножим числитель и знаменатель на $-1$ (знак неравенства меняется):
$$\\dfrac{x^2-x-2}{x^2+x-12} \\lt 0.$$
Разложим: $x^2-x-2=(x-2)(x+1)$, $\\;x^2+x-12=(x+4)(x-3)$:
$$\\dfrac{(x-2)(x+1)}{(x+4)(x-3)} \\lt 0.$$
Корни: $-4,\\;-1,\\;2,\\;3$ (точки $-4$ и $3$ не входят — ОДЗ).
<br><b>Метод интервалов:</b>
<table style="border-collapse:collapse;margin:8px 0;font-size:14px">
<tr><th style="border:1px solid #cbd5e1;padding:4px 8px">интервал</th><th style="border:1px solid #cbd5e1;padding:4px 8px">$x\\lt-4$</th><th style="border:1px solid #cbd5e1;padding:4px 8px">$(-4;-1)$</th><th style="border:1px solid #cbd5e1;padding:4px 8px">$(-1;2)$</th><th style="border:1px solid #cbd5e1;padding:4px 8px">$(2;3)$</th><th style="border:1px solid #cbd5e1;padding:4px 8px">$x\\gt 3$</th></tr>
<tr><td style="border:1px solid #cbd5e1;padding:4px 8px">знак дроби</td><td style="border:1px solid #cbd5e1;padding:4px 8px">$+$</td><td style="border:1px solid #cbd5e1;padding:4px 8px;color:#2563eb"><b>$-$</b></td><td style="border:1px solid #cbd5e1;padding:4px 8px">$+$</td><td style="border:1px solid #cbd5e1;padding:4px 8px;color:#2563eb"><b>$-$</b></td><td style="border:1px solid #cbd5e1;padding:4px 8px">$+$</td></tr>
</table>
Решение: $x\\in(-4;\\;-1)\\cup(2;\\;3)$.
<br>Целые значения: в $(-4;-1)$ — это $-3,\\;-2$; в $(2;3)$ — целых нет.
<br>Сумма: $-3+(-2)=-5$.
<div class="sol-ans">Ответ: $-5$.</div>`
},
{
text: `Дана окружность, длина которой равна $12\\pi$.
Найдите площадь сектора круга, ограниченного этой окружностью,
если угол этого сектора равен $40^{\\circ}$.`,
sol: `<b>Формула длины окружности:</b> $C = 2\\pi R$.
<br><b>Формула площади сектора</b> с центральным углом $\\alpha^{\\circ}$: $S_{\\text{сект}} = \\dfrac{\\alpha}{360^{\\circ}}\\cdot \\pi R^{2}$.
<br><b>Шаг 1.</b> Найдём радиус. По условию длина окружности равна $12\\pi$, значит:
$$2\\pi R = 12\\pi \\implies R = 6\\text{ см}.$$
<b>Шаг 2.</b> Подставим в формулу площади сектора $\\alpha = 40^{\\circ}$ и $R = 6$:
$$S_{\\text{сект}} = \\dfrac{40}{360}\\cdot \\pi\\cdot 6^{2} = \\dfrac{1}{9}\\cdot 36\\pi = 4\\pi.$$
<div class="sol-ans">Ответ: $4\\pi$ (кв. ед.).</div>`
},
{
text: `На соревнованиях управляемых планеров первый планер пролетел на $20\\%$,
или на $1080$ м, меньше второго. Скорость первого планера на $20\\%$,
или на $2$ м/с, больше скорости второго.
Сколько минут находился в воздухе каждый планер?`,
sol: `<b>Связь процентов и десятичной дроби:</b> $20\\% = \\dfrac{20}{100} = 0{,}2$.
<br><b>Формула пути:</b> $S = v\\cdot t$, откуда $t = \\dfrac{S}{v}$.
<br><b>Шаг 1. Найдём путь второго планера.</b> По условию $20\\%$ от $S_{2}$ — это $1080$ м, так как разница $S_{2} - S_{1}$ одновременно есть и $20\\%$ от $S_{2}$, и $1080$ м. Составим уравнение:
$$0{,}2\\cdot S_{2} = 1080 \\implies S_{2} = \\dfrac{1080}{0{,}2} = 5400\\text{ м}.$$
Тогда путь первого планера:
$$S_{1} = S_{2} - 1080 = 5400 - 1080 = 4320\\text{ м}.$$
<b>Шаг 2. Найдём скорость второго планера.</b> Аналогично, $20\\%$ от $v_{2}$ равны $2$ м/с:
$$0{,}2\\cdot v_{2} = 2 \\implies v_{2} = \\dfrac{2}{0{,}2} = 10\\text{ м/с}.$$
Скорость первого планера больше на $2$ м/с:
$$v_{1} = v_{2} + 2 = 12\\text{ м/с}.$$
<b>Шаг 3. Найдём время полёта каждого планера</b> по формуле $t = \\dfrac{S}{v}$ и переведём секунды в минуты ($60$ с $= 1$ мин):
$$t_{1} = \\dfrac{S_{1}}{v_{1}} = \\dfrac{4320}{12} = 360\\text{ с} = 6\\text{ мин};$$
$$t_{2} = \\dfrac{S_{2}}{v_{2}} = \\dfrac{5400}{10} = 540\\text{ с} = 9\\text{ мин}.$$
<div class="sol-ans">Ответ: 1-й планер — $6$ мин, 2-й планер — $9$ мин.</div>`
},
]
};