Files
Learn_System/frontend/js/exam9/variants/v40.js
T
Maxim Dolgolyov 6cff327e88 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/*.
2026-05-16 12:53:49 +03:00

203 lines
18 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
VARIANTS[40] = {
label: "Вариант 40",
tasks: [
{
text: `Определите промежуток, которому принадлежит число $2{,}21$:`,
opts: [
["а", "$(2{,}1;\\; 2{,}121)$"], ["б", "$(2;\\; 2{,}01)$"], ["в", "$(2;\\; 2{,}1)$"],
["г", "$(2{,}2;\\; 2{,}3)$"], ["д", "$(2{,}1;\\; 2{,}2)$"],
],
sol: `Проверяем каждый вариант: $2{,}2 < 2{,}21 < 2{,}3$ ✓
<div class="sol-ans">Ответ: г)&ensp;$(2{,}2;\\;2{,}3)$</div>`
},
{
text: `Значение выражения $-1{,}5 : 3 - 0{,}4$ равно:`,
opts: [
["а", "$-0{,}9$"], ["б", "$-0{,}1$"], ["в", "$0{,}1$"], ["г", "$0{,}9$"], ["д", "$-5{,}4$"],
],
sol: `$$-1{,}5 : 3 - 0{,}4 = -0{,}5 - 0{,}4 = -0{,}9$$
<div class="sol-ans">Ответ: а)&ensp;$-0{,}9$</div>`
},
{
text: `Какое из следующих утверждений <b>НЕ</b> верно:`,
opts: [
["а", "если все стороны квадрата уменьшить в $2$ раза, то его площадь уменьшится в $2$ раза;"],
["б", "в треугольнике против большего угла лежит большая сторона;"],
["в", "сторона квадрата с диагональю $d$ равна $\\dfrac{d}{\\sqrt{2}}$;"],
["г", "внешний угол треугольника равен сумме двух внутренних углов, не смежных с ним?"],
],
sol: `<ul>
<li>а) Стороны $\\div2$ ⟹ площадь $\\div 2^2 = 4$, а не в $2$ — <b style="color:#dc2626">НЕВЕРНО</b></li>
<li>б) В треугольнике против большего угла лежит большая сторона — <b>верно</b></li>
<li>в) Диагональ $d = a\\sqrt{2} \\Rightarrow a = \\dfrac{d}{\\sqrt{2}}$ — <b>верно</b></li>
<li>г) Внешний угол равен сумме двух несмежных внутренних — <b>верно</b></li>
</ul>
<div class="sol-ans">Ответ: а)</div>`
},
{
text: `Выполните деление: $\\dfrac{m^2-1}{m} : \\dfrac{m-1}{m}$.`,
sol: `Деление на дробь — умножаем на обратную. ОДЗ: $m\\neq0$, $m\\neq1$.
$$\\dfrac{m^2-1}{m}:\\dfrac{m-1}{m} = \\dfrac{m^2-1}{m}\\cdot\\dfrac{m}{m-1} = \\dfrac{(m-1)(m+1)}{\\cancel{m}}\\cdot\\dfrac{\\cancel{m}}{m-1} = m+1$$
<div class="sol-ans">Ответ: $m+1$</div>`
},
{
text: `Найдите больший корень уравнения $x^4 - 8x^2 - 9 = 0$.`,
sol: `<b>Метод решения биквадратного уравнения:</b> уравнение вида $ax^4 + bx^2 + c = 0$ решается заменой $t = x^2$, где $t \\geq 0$ (квадрат числа неотрицателен).
<br><b>Шаг 1.</b> Делаем замену $t = x^2$, $t \\geq 0$:
$$t^2 - 8t - 9 = 0$$
<b>Шаг 2.</b> Решаем по <b>теореме Виета</b> (ищем числа с суммой $8$ и произведением $-9$): это $9$ и $-1$.
$$(t - 9)(t + 1) = 0 \\implies t_1 = 9,\\; t_2 = -1$$
<b>Шаг 3.</b> Корень $t_2 = -1$ <em>не подходит</em>, так как $t = x^2 \\geq 0$. Остаётся $t = 9$.
<br><b>Шаг 4.</b> Возвращаемся к $x$:
$$x^2 = 9 \\implies x = \\pm\\sqrt{9} = \\pm 3$$
<b>Шаг 5.</b> Больший из корней $\\{-3,\\,3\\}$ — это $x = 3$.
<div class="sol-ans">Ответ: больший корень $x = 3$</div>`
},
{
text: `В треугольнике $ABC$ $BC = 10$ см, $CM$ — биссектриса, $AM = MB = 8$ см.
Найдите синус угла $B$.`,
sol: `<b>Свойство:</b> если в треугольнике биссектриса является одновременно медианой, то треугольник — равнобедренный (с боковыми сторонами, выходящими из этой вершины).
<br><b>Шаг 1.</b> Условие $AM = MB = 8$ см означает, что $M$ — середина $AB$, то есть $CM$ является <em>медианой</em> из вершины $C$. По условию $CM$ — также <em>биссектриса</em>.
<br>По указанному свойству $\\triangle ABC$ равнобедренный с $AC = BC$, причём $BC = 10$ см дано, значит $AC = 10$ см.
<br>$AB = AM + MB = 8 + 8 = 16$ см.
<svg viewBox="0 0 200 105" xmlns="http://www.w3.org/2000/svg" style="max-width:260px;width:100%;height:auto;display:block;margin:8px 0">
<polygon points="20,88 170,88 95,28" fill="rgba(37,99,235,0.07)" stroke="#334155" stroke-width="1.8"/>
<line x1="95" y1="28" x2="95" y2="88" stroke="#dc2626" stroke-width="1.8" stroke-dasharray="5,3"/>
<polygon points="95,88 103,88 103,80 95,80" fill="none" stroke="#334155" stroke-width="1.2"/>
<circle cx="95" cy="88" r="3" fill="#dc2626"/>
<text x="6" y="100" font-size="13" font-family="serif" font-style="italic">A</text>
<text x="173" y="100" font-size="13" font-family="serif" font-style="italic">B</text>
<text x="91" y="22" font-size="13" font-family="serif" font-style="italic">C</text>
<text x="90" y="100" font-size="11" font-family="serif" font-style="italic" fill="#dc2626">M</text>
<text x="50" y="56" font-size="11" fill="#334155">10</text>
<text x="132" y="56" font-size="11" fill="#334155">10</text>
<text x="90" y="102" font-size="11" fill="#334155">16</text>
<text x="99" y="61" font-size="11" fill="#dc2626">h</text>
</svg>
<br><b>Шаг 2.</b> Применим <b>теорему косинусов:</b> $c^2 = a^2 + b^2 - 2ab\\cos\\gamma$, где $\\gamma$ — угол между сторонами $a$ и $b$, $c$ — сторона напротив этого угла.
<br>В $\\triangle ABC$: сторона $AC$ лежит напротив угла $B$, $BC$ и $AB$ — стороны, выходящие из вершины $B$. Поэтому:
$$AC^2 = BC^2 + AB^2 - 2\\cdot BC\\cdot AB\\cdot\\cos B$$
$$10^2 = 10^2 + 16^2 - 2\\cdot 10\\cdot 16\\cdot\\cos B$$
$$100 = 100 + 256 - 320\\cos B$$
$$320\\cos B = 256 \\implies \\cos B = \\dfrac{256}{320} = \\dfrac{4}{5}$$
<b>Шаг 3.</b> Применим <b>основное тригонометрическое тождество:</b> $\\sin^2\\alpha + \\cos^2\\alpha = 1$.
<br>Угол $B$ — острый (так как $\\cos B \\gt 0$), значит $\\sin B \\gt 0$:
$$\\sin B = \\sqrt{1 - \\cos^2 B} = \\sqrt{1 - \\dfrac{16}{25}} = \\sqrt{\\dfrac{9}{25}} = \\dfrac{3}{5}$$
<div class="sol-ans">Ответ: $\\sin B = \\dfrac{3}{5}$</div>`
},
{
text: `Найдите число целых решений неравенства
$\\dfrac{(x+3)(-x^2+3x+4)}{x+2} \\geq 0$.`,
sol: `<b>Метод интервалов</b> применяется для решения рациональных неравенств: находим корни числителя и знаменателя, отмечаем их на числовой прямой, определяем знак выражения на каждом интервале.
<br><b>Шаг 1.</b> Разложим квадратный трёхчлен в скобках. По <b>теореме Виета</b> ($x_1 + x_2 = 3$, $x_1 x_2 = -4$): корни $4$ и $-1$.
$$-x^2 + 3x + 4 = -(x^2 - 3x - 4) = -(x - 4)(x + 1)$$
<b>Шаг 2.</b> Подставляем в неравенство:
$$\\dfrac{(x + 3)\\cdot[-(x - 4)(x + 1)]}{x + 2} \\geq 0$$
Умножим обе части на $-1$ (знак неравенства меняется!):
$$\\dfrac{(x + 3)(x - 4)(x + 1)}{x + 2} \\leq 0$$
<b>Шаг 3.</b> Находим корни числителя ($-3,\\,-1,\\,4$) и точку, в которой выражение не определено: $x = -2$ (знаменатель равен нулю).
<br><b>Шаг 4.</b> Расставляем точки на числовой прямой и определяем знаки методом интервалов. Получаем:
$$x \\in [-3;\\,-2)\\cup[-1;\\,4]$$
(в точке $x = -2$ знаменатель обнуляется, поэтому она исключается; остальные корни числителя включаются, так как неравенство нестрогое).
<svg viewBox="0 0 310 52" xmlns="http://www.w3.org/2000/svg" style="max-width:310px;width:100%;height:auto;display:block;margin:6px 0">
<defs><marker id="v40t7" viewBox="0 0 7 6" refX="7" refY="3" markerWidth="5" markerHeight="5" orient="auto"><path d="M0,0.5 L7,3 L0,5.5Z" fill="#555"/></marker></defs>
<line x1="8" y1="26" x2="302" y2="26" stroke="#bbb" stroke-width="1.2" marker-end="url(#v40t7)"/>
<line x1="45" y1="22" x2="45" y2="30" stroke="#777" stroke-width="1"/><text x="45" y="43" font-size="10" text-anchor="middle" fill="#555">3</text>
<line x1="85" y1="22" x2="85" y2="30" stroke="#777" stroke-width="1"/><text x="85" y="43" font-size="10" text-anchor="middle" fill="#555">2</text>
<line x1="125" y1="22" x2="125" y2="30" stroke="#777" stroke-width="1"/><text x="125" y="43" font-size="10" text-anchor="middle" fill="#555">1</text>
<line x1="245" y1="22" x2="245" y2="30" stroke="#777" stroke-width="1"/><text x="245" y="43" font-size="10" text-anchor="middle" fill="#555">4</text>
<line x1="45" y1="26" x2="85" y2="26" stroke="#2563eb" stroke-width="4" opacity="0.55"/>
<circle cx="45" cy="26" r="5" fill="#2563eb"/>
<circle cx="85" cy="26" r="5" fill="white" stroke="#2563eb" stroke-width="2"/>
<line x1="125" y1="26" x2="245" y2="26" stroke="#2563eb" stroke-width="4" opacity="0.55"/>
<circle cx="125" cy="26" r="5" fill="#2563eb"/>
<circle cx="245" cy="26" r="5" fill="#2563eb"/>
</svg>
<b>Шаг 5.</b> Считаем целые числа в найденных интервалах:
<br>— Из $[-3;\\,-2)$: только $-3$ (1 число).
<br>— Из $[-1;\\,4]$: $-1, 0, 1, 2, 3, 4$ (6 чисел).
<br>Всего: $1 + 6 = 7$.
<div class="sol-ans">Ответ: $7$ целых решений</div>`
},
{
text: `График линейной функции проходит через точки $A(-2;\\; 1)$ и $B(-1;\\; -3)$.
Запишите формулу, задающую эту функцию.
Найдите, при каких значениях переменной функция принимает неотрицательные значения.`,
sol: `<b>Линейная функция:</b> график $y = kx + b$ — прямая; коэффициенты $k$ и $b$ находятся подстановкой координат двух точек графика.
<br><b>Шаг 1.</b> Найдём угловой коэффициент по формуле $k = \\dfrac{y_2 - y_1}{x_2 - x_1}$:
$$k = \\dfrac{-3 - 1}{-1 - (-2)} = \\dfrac{-4}{1} = -4$$
<b>Шаг 2.</b> Найдём $b$, подставив точку $A(-2;\\,1)$ в уравнение $y = kx + b$:
$$1 = -4\\cdot(-2) + b \\implies 1 = 8 + b \\implies b = -7$$
Значит, $f(x) = -4x - 7$.
<br><b>Шаг 3. Проверка</b> по второй точке $B(-1;\\,-3)$:
$$f(-1) = -4\\cdot(-1) - 7 = 4 - 7 = -3 \\quad \\checkmark$$
<b>Шаг 4.</b> «Функция принимает неотрицательные значения» означает $f(x) \\geq 0$. Решаем неравенство:
$$-4x - 7 \\geq 0 \\implies -4x \\geq 7$$
Делим обе части на $-4$ (отрицательное число — знак неравенства меняется):
$$x \\leq -\\dfrac{7}{4}$$
<div class="sol-ans">Ответ: $f(x)=-4x-7$;&ensp;функция неотрицательна при $x\\leq-\\dfrac{7}{4}$</div>`
},
{
text: `Найдите площадь треугольника, если две его стороны равны $5$ см и $12$ см,
а медиана, проведённая к третьей стороне, равна $6{,}5$ см.`,
sol: `<b>Шаг 1. Строим параллелограмм.</b>
<br>Пусть $M$ — середина третьей стороны $AB$, а $CM=6{,}5$ — медиана. Отметим точку $D$ так, чтобы $M$ стала серединой отрезка $CD$ ($MD=CM=6{,}5$, $CD=13$).
<br>Тогда $ACBD$ — <b>параллелограмм</b>, диагонали $AB$ и $CD$ делятся точкой $M$ пополам.
<svg viewBox="0 0 155 130" xmlns="http://www.w3.org/2000/svg" style="max-width:240px;width:100%;height:auto;display:block;margin:8px 0">
<polygon points="107,110 35,110 35,14 107,14" fill="rgba(234,179,8,0.10)" stroke="#ca8a04" stroke-width="1.3" stroke-dasharray="5,3"/>
<polygon points="35,110 107,110 35,14" fill="rgba(37,99,235,0.12)" stroke="#2563eb" stroke-width="2"/>
<polygon points="107,110 35,110 107,14" fill="rgba(22,163,74,0.12)" stroke="#16a34a" stroke-width="1.3"/>
<line x1="35" y1="110" x2="107" y2="14" stroke="#dc2626" stroke-width="1.8"/>
<circle cx="71" cy="62" r="3.5" fill="#dc2626"/>
<polygon points="35,110 43,110 43,102 35,102" fill="none" stroke="#2563eb" stroke-width="1.2"/>
<polygon points="107,110 107,102 99,102 99,110" fill="none" stroke="#16a34a" stroke-width="1.2"/>
<text x="20" y="122" font-size="13" font-family="serif" font-style="italic">C</text>
<text x="110" y="122" font-size="13" font-family="serif" font-style="italic">A</text>
<text x="20" y="10" font-size="13" font-family="serif" font-style="italic">B</text>
<text x="110" y="10" font-size="13" font-family="serif" font-style="italic">D</text>
<text x="67" y="57" font-size="11" font-family="serif" font-style="italic" fill="#dc2626">M</text>
<text x="66" y="122" font-size="11" fill="#334155">5</text>
<text x="22" y="65" font-size="11" fill="#334155">12</text>
<text x="112" y="65" font-size="11" fill="#16a34a">12</text>
<text x="66" y="9" font-size="11" fill="#334155">5</text>
<text x="38" y="84" font-size="10" fill="#dc2626">6,5</text>
<text x="82" y="42" font-size="10" fill="#dc2626">6,5</text>
<text x="72" y="75" font-size="11" fill="#dc2626">13</text>
</svg>
<b>Шаг 2. Стороны параллелограмма.</b>
<br>$AC=BD=5$, $BC=AD=12$, диагональ $CD=2\\cdot6{,}5=13$.
<b>Шаг 3. Треугольник $ACD$ — прямоугольный.</b>
<br>Стороны $AC=5$, $AD=12$, $CD=13$:
$$5^2 + 12^2 = 25 + 144 = 169 = 13^2 \\checkmark$$
По обратной теореме Пифагора: $\\angle A = 90°$.
$$S_{\\triangle ACD} = \\dfrac{1}{2}\\cdot AC\\cdot AD = \\dfrac{1}{2}\\cdot5\\cdot12 = 30\\text{ см}^2$$
<b>Шаг 4. Площадь исходного треугольника.</b>
<br>Диагональ $CD$ делит параллелограмм на два равных треугольника:
$$S_{\\triangle ABC} = S_{\\triangle ACD} = 30\\text{ см}^2$$
<div class="sol-ans">Ответ: $30$ см²</div>`
},
{
text: `Из двух домов, расстояние между которыми $280$ м, вышли и одновременно пошли
в одном направлении в школу мальчик и девочка. Девочка идёт впереди мальчика.
Скорость девочки $70$ м/мин, скорость мальчика $5{,}4$ км/ч.
Догонит ли мальчик девочку до прихода в школу, если путь девочки занимает $6$ мин?
Ответ обоснуйте.`,
sol: `<b>Переводим скорость мальчика:</b>
$$5{,}4\\text{ км/ч} = \\dfrac{5400\\text{ м}}{60\\text{ мин}} = 90\\text{ м/мин}$$
<b>Расстояние до школы</b> (от девочки): $70\\times6=420$ м. Мальчик стартует на $280$ м позади, значит ему до школы $420+280=700$ м.
<br><b>Скорость сближения:</b> мальчик быстрее на $90-70=20$ м/мин. Начальный разрыв $=280$ м.
<br><b>Время до нагона:</b>
$$t = \\dfrac{280}{20} = 14\\text{ мин}$$
Но девочка добирается до школы за $6$ мин, а мальчику нужно $14>6$ мин, чтобы её нагнать.
<br>Проверим по позициям (отсчёт от старта девочки):
<table style="border-collapse:collapse;font-size:12px;margin:6px 0">
<tr style="background:#f1f5f9"><td style="padding:3px 10px;border:1px solid #cbd5e1">Момент</td><td style="padding:3px 10px;border:1px solid #cbd5e1">Девочка</td><td style="padding:3px 10px;border:1px solid #cbd5e1">Мальчик</td></tr>
<tr><td style="padding:3px 10px;border:1px solid #cbd5e1">$t=0$</td><td style="padding:3px 10px;border:1px solid #cbd5e1">$0$ м</td><td style="padding:3px 10px;border:1px solid #cbd5e1">$-280$ м</td></tr>
<tr><td style="padding:3px 10px;border:1px solid #cbd5e1">$t=6$ мин</td><td style="padding:3px 10px;border:1px solid #cbd5e1">$420$ м (школа) ✓</td><td style="padding:3px 10px;border:1px solid #cbd5e1">$-280+540=260$ м</td></tr>
</table>
В момент, когда девочка прибыла в школу ($420$ м), мальчик находится на расстоянии $420-260=160$ м позади.
<div class="sol-ans">Ответ: нет, мальчик <b>не догонит</b> — время нагона $14$ мин, а путь девочки $6$ мин</div>`
},
]
};