Files
Learn_System/frontend/js/exam9/variants/v44.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

243 lines
19 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[44] = {
label: "Вариант 44",
tasks: [
{
text: `Выберите функцию, график которой изображён на рисунке:`,
figure: `<svg viewBox="0 0 280 220" xmlns="http://www.w3.org/2000/svg" style="max-width:300px;width:100%;height:auto;display:block;margin:8px auto;background:#fff">
<defs>
<marker id="v44t1ax" markerWidth="7" markerHeight="6" refX="7" refY="3" orient="auto"><path d="M0,0.5 L7,3 L0,5.5z" fill="#94a3b8"/></marker>
</defs>
<!-- Сетка: шаг 20px = 1 единица. Origin: (40,80). x: -1..11, y: -4..6 -->
<g stroke="#e2e8f0" stroke-width="1">
<line x1="60" y1="20" x2="60" y2="200"/><line x1="80" y1="20" x2="80" y2="200"/>
<line x1="100" y1="20" x2="100" y2="200"/><line x1="140" y1="20" x2="140" y2="200"/>
<line x1="160" y1="20" x2="160" y2="200"/><line x1="180" y1="20" x2="180" y2="200"/>
<line x1="200" y1="20" x2="200" y2="200"/><line x1="220" y1="20" x2="220" y2="200"/>
<line x1="240" y1="20" x2="240" y2="200"/><line x1="260" y1="20" x2="260" y2="200"/>
<line x1="20" y1="40" x2="270" y2="40" /><line x1="20" y1="60" x2="270" y2="60" />
<line x1="20" y1="100" x2="270" y2="100"/><line x1="20" y1="120" x2="270" y2="120"/>
<line x1="20" y1="140" x2="270" y2="140"/><line x1="20" y1="160" x2="270" y2="160"/>
<line x1="20" y1="180" x2="270" y2="180"/>
</g>
<!-- оси -->
<line x1="20" y1="80" x2="278" y2="80" stroke="#475569" stroke-width="1.4" marker-end="url(#v44t1ax)"/>
<line x1="40" y1="210" x2="40" y2="12" stroke="#475569" stroke-width="1.4" marker-end="url(#v44t1ax)"/>
<!-- метки -->
<text x="270" y="94" font-size="11" fill="#475569" font-style="italic">x</text>
<text x="46" y="18" font-size="11" fill="#475569" font-style="italic">y</text>
<text x="32" y="94" font-size="10" fill="#64748b">0</text>
<text x="118" y="94" font-size="10" fill="#64748b">4</text>
<text x="198" y="94" font-size="10" fill="#64748b">8</text>
<text x="26" y="64" font-size="10" fill="#64748b">2</text>
<text x="26" y="124" font-size="10" fill="#64748b">-2</text>
<text x="26" y="164" font-size="10" fill="#64748b">-4</text>
<!-- парабола y=(x-4)^2-2: точки -->
<!-- x=1,y=7→(60,-60 за рамкой); x=2,y=2→(80,40); x=3,y=-1→(100,100); x=4,y=-2→(120,120); x=5,y=-1→(140,100); x=6,y=2→(160,40); x=7,y=7→(180,-60) -->
<path d="M 80,40 Q 90,76 100,100 Q 110,116 120,120 Q 130,116 140,100 Q 150,76 160,40" fill="none" stroke="#2563eb" stroke-width="2.4"/>
<!-- Вершина -->
<circle cx="120" cy="120" r="3.6" fill="#dc2626"/>
<text x="126" y="138" font-size="11" fill="#dc2626" font-weight="bold">(4; -2)</text>
</svg>`,
opts: [
["а", "$y = (x+2)^2 - 2$"], ["б", "$y = (x+2)^2 + 2$"], ["в", "$y = (x-4)^2 - 2$"],
["г", "$y = (x-4)^2 + 2$"], ["д", "$y = (x+4)^2 + 2$"],
],
sol: `<b>Свойство параболы $y=(x-a)^2+b$:</b> вершина находится в точке $(a;\\,b)$, ветви направлены вверх (коэффициент при $x^2$ положительный).
<br><b>Шаг 1.</b> По рисунку определяем координаты вершины: $(4;\\,-2)$. Значит $a=4$, $b=-2$.
<br><b>Шаг 2.</b> Подставляем в общую формулу: $y=(x-4)^2+(-2)=(x-4)^2-2$.
<br><b>Проверка:</b> при $x=2$ получаем $y=4-2=2$ — точка $(2;\\,2)$ на графике; при $x=6$ получаем $y=4-2=2$ — точка $(6;\\,2)$. Парабола симметрична относительно прямой $x=4$ — это ось симметрии через вершину.
<div class="sol-ans">Ответ: в)&ensp;$y=(x-4)^2-2$</div>`
},
{
text: `Результат сокращения дроби $\\dfrac{7mn - 35m}{7mn}$ равен:`,
opts: [
["а", "$\\dfrac{mn-5m}{mn}$"], ["б", "$\\dfrac{n-5}{n}$"], ["в", "$n-5$"],
["г", "$\\dfrac{n-4}{n}$"], ["д", "$1 - 35m$"],
],
sol: `Выносим $7m$ за скобку в числителе:
$$\\dfrac{7mn-35m}{7mn} = \\dfrac{7m(n-5)}{7mn} = \\dfrac{n-5}{n}\\quad(m\\neq0,\\,n\\neq0)$$
<div class="sol-ans">Ответ: б)&ensp;$\\dfrac{n-5}{n}$</div>`
},
{
text: `Какое из следующих утверждений <b>НЕ</b> верно:`,
opts: [
["а", "около любого треугольника можно описать окружность;"],
["б", "если в треугольнике равны два угла, то треугольник равнобедренный;"],
["в", "если у четырёхугольника два угла прямые, то это всегда прямоугольник;"],
["г", "развёрнутый угол равен $180^{\\circ}$?"],
],
sol: `<ul>
<li>а) Около любого треугольника можно описать окружность — <b>верно</b></li>
<li>б) Два равных угла ⟹ равнобедренный треугольник — <b>верно</b></li>
<li>в) Четырёхугольник с двумя прямыми углами — это необязательно прямоугольник. Например, прямоугольная трапеция имеет два прямых угла, но не является прямоугольником — <b style="color:#dc2626">НЕВЕРНО</b></li>
<li>г) Развёрнутый угол $=180°$ — <b>верно</b></li>
</ul>
<div class="sol-ans">Ответ: в)</div>`
},
{
text: `Найдите количество целых решений системы неравенств
$$\\begin{cases} x < 10, \\\\[4pt] x > 3. \\end{cases}$$`,
sol: `Система: $3 < x < 10$. Целые числа в этом промежутке:
$$4,\\;5,\\;6,\\;7,\\;8,\\;9$$
<div class="sol-ans">Ответ: $6$ целых решений</div>`
},
{
text: `Найдите площадь треугольника со сторонами $13$ см, $13$ см и $10$ см.`,
sol: `<b>Свойство равнобедренного треугольника:</b> высота, проведённая к основанию, является также медианой (делит основание пополам).
<br><b>Формула площади треугольника:</b> $S = \\dfrac{1}{2}\\cdot a\\cdot h$, где $a$ — основание, $h$ — высота к нему.
<br><b>Шаг 1.</b> У нашего треугольника две стороны по $13$ см и одна $10$ см — он равнобедренный с основанием $10$ см. Высота $CM$, опущенная на основание, делит его пополам: $AM = MB = 5$ см.
<svg viewBox="0 0 160 105" xmlns="http://www.w3.org/2000/svg" style="max-width:220px;width:100%;height:auto;display:block;margin:8px 0">
<polygon points="20,88 128,88 74,16" fill="rgba(37,99,235,0.08)" stroke="#334155" stroke-width="1.8"/>
<line x1="74" y1="16" x2="74" y2="88" stroke="#dc2626" stroke-width="1.5" stroke-dasharray="4,3"/>
<polygon points="74,88 82,88 82,80 74,80" fill="none" stroke="#334155" stroke-width="1.2"/>
<circle cx="74" cy="88" r="2.5" fill="#dc2626"/>
<text x="5" y="100" font-size="13" font-family="serif" font-style="italic">A</text>
<text x="131" y="100" font-size="13" font-family="serif" font-style="italic">B</text>
<text x="70" y="10" font-size="13" font-family="serif" font-style="italic">C</text>
<text x="69" y="100" font-size="11" font-family="serif" font-style="italic" fill="#dc2626">M</text>
<text x="36" y="56" font-size="12" fill="#334155">13</text>
<text x="100" y="56" font-size="12" fill="#334155">13</text>
<text x="68" y="102" font-size="11" fill="#334155">10</text>
<text x="79" y="55" font-size="12" fill="#dc2626">h</text>
</svg>
<b>Шаг 2.</b> Найдём высоту $h = CM$ по <b>теореме Пифагора</b> в прямоугольном треугольнике $ACM$:
$$AC^2 = AM^2 + CM^2 \\implies 13^2 = 5^2 + h^2$$
$$h^2 = 169 - 25 = 144 \\implies h = \\sqrt{144} = 12\\text{ см}$$
<b>Шаг 3.</b> Считаем площадь:
$$S = \\dfrac{1}{2}\\cdot 10\\cdot 12 = 60\\text{ см}^2$$
<br><br><b>Альтернативный способ — формула Герона.</b>
<br><b>Формула Герона:</b> $S = \\sqrt{p(p-a)(p-b)(p-c)}$, где $p = \\dfrac{a+b+c}{2}$ — полупериметр треугольника со сторонами $a$, $b$, $c$.
<br><b>Шаг 1.</b> Полупериметр: $p = \\dfrac{13+13+10}{2} = \\dfrac{36}{2} = 18$ см.
<br><b>Шаг 2.</b> Подставляем в формулу:
$$S = \\sqrt{18\\cdot(18-13)\\cdot(18-13)\\cdot(18-10)} = \\sqrt{18\\cdot 5\\cdot 5\\cdot 8} = \\sqrt{3600} = 60\\text{ см}^2$$
Оба способа дают один и тот же ответ.
<div class="sol-ans">Ответ: $60$ см²</div>`
},
{
text: `Упростите выражение $\\sqrt{6}\\cdot(\\sqrt{25} - \\sqrt{96} + 3\\sqrt{6})\\cdot(-\\sqrt{54})$.`,
sol: `<b>Свойство квадратного корня:</b> $\\sqrt{a\\cdot b} = \\sqrt{a}\\cdot\\sqrt{b}$ (для $a,b\\geq 0$), а также $\\sqrt{a}\\cdot\\sqrt{a} = a$ (для $a\\geq 0$).
<br><b>Шаг 1.</b> Упрощаем каждый корень в скобках, вынося полные квадраты из-под корня:
$$\\sqrt{25} = 5$$
$$\\sqrt{96} = \\sqrt{16\\cdot 6} = \\sqrt{16}\\cdot\\sqrt{6} = 4\\sqrt{6}$$
$$\\sqrt{54} = \\sqrt{9\\cdot 6} = \\sqrt{9}\\cdot\\sqrt{6} = 3\\sqrt{6}$$
<b>Шаг 2.</b> Подставляем и приводим подобные слагаемые $-4\\sqrt{6}$ и $3\\sqrt{6}$:
$$5 - 4\\sqrt{6} + 3\\sqrt{6} = 5 - \\sqrt{6}$$
Исходное выражение принимает вид:
$$\\sqrt{6}\\cdot(5 - \\sqrt{6})\\cdot(-3\\sqrt{6})$$
<b>Шаг 3.</b> Перемножаем крайние множители $\\sqrt{6}$ и $-3\\sqrt{6}$:
$$\\sqrt{6}\\cdot(-3\\sqrt{6}) = -3\\cdot(\\sqrt{6})^2 = -3\\cdot 6 = -18$$
<b>Шаг 4.</b> Умножаем результат на оставшуюся скобку:
$$-18\\cdot(5 - \\sqrt{6}) = -18\\cdot 5 + 18\\sqrt{6} = -90 + 18\\sqrt{6} = 18(\\sqrt{6} - 5)$$
<div class="sol-ans">Ответ: $18(\\sqrt{6}-5)$</div>`
},
{
text: `Найдите область определения функции
$y = \\dfrac{5}{x^2-9} + \\sqrt{24-8x}$.`,
sol: `<b>Правила нахождения области определения:</b>
<br>1) Знаменатель дроби не может равняться нулю: $\\dfrac{1}{g(x)}$ определена при $g(x) \\neq 0$.
<br>2) Подкоренное выражение чётной степени должно быть неотрицательным: $\\sqrt{f(x)}$ определён при $f(x) \\geq 0$.
<br>В функции есть и дробь, и корень — выписываем оба условия.
<br><b>Шаг 1.</b> Знаменатель $x^2 - 9$ должен быть $\\neq 0$:
$$x^2 - 9 \\neq 0 \\implies x^2 \\neq 9 \\implies x \\neq \\pm 3$$
<b>Шаг 2.</b> Подкоренное выражение $24 - 8x$ должно быть $\\geq 0$:
$$24 - 8x \\geq 0 \\implies 8x \\leq 24 \\implies x \\leq 3$$
<b>Шаг 3.</b> Объединяем: $x \\leq 3$ и $x \\neq -3$ и $x \\neq 3$.
<br>Условие $x \\leq 3$ с исключением $x = 3$ даёт $x \\lt 3$. С учётом $x \\neq -3$:
$$x \\in (-\\infty;\\,-3)\\cup(-3;\\,3)$$
<div class="sol-ans">Ответ: $(-\\infty;\\,-3)\\cup(-3;\\,3)$</div>`
},
{
text: `Найдите значение выражения $75x_0$, где $x_0$ — наименьший корень уравнения
$$\\dfrac{x^2}{4x^2-4x+1} - \\dfrac{4x}{2x-1} + 3 = 0.$$`,
sol: `<b>Формула квадрата разности:</b> $(a - b)^2 = a^2 - 2ab + b^2$.
<br><b>Шаг 1.</b> Замечаем, что $4x^2 - 4x + 1 = (2x)^2 - 2\\cdot 2x\\cdot 1 + 1^2 = (2x - 1)^2$.
<br>Уравнение принимает вид:
$$\\dfrac{x^2}{(2x - 1)^2} - \\dfrac{4x}{2x - 1} + 3 = 0$$
<b>ОДЗ:</b> $2x - 1 \\neq 0$, то есть $x \\neq \\dfrac{1}{2}$.
<br><b>Шаг 2. Замена переменной.</b> Заметим, что $\\dfrac{x^2}{(2x - 1)^2} = \\left(\\dfrac{x}{2x - 1}\\right)^2$.
<br>Пусть $t = \\dfrac{x}{2x - 1}$. Уравнение становится:
$$t^2 - 4t + 3 = 0$$
<b>Шаг 3.</b> По <b>теореме Виета</b> (сумма $4$, произведение $3$): корни $1$ и $3$.
$$(t - 1)(t - 3) = 0 \\implies t = 1 \\text{ или } t = 3$$
<b>Шаг 4. Возвращаемся к $x$.</b>
<br>— При $t = 1$: $\\dfrac{x}{2x - 1} = 1 \\implies x = 2x - 1 \\implies -x = -1 \\implies x = 1$.
<br>— При $t = 3$: $\\dfrac{x}{2x - 1} = 3 \\implies x = 6x - 3 \\implies -5x = -3 \\implies x = \\dfrac{3}{5}$.
<br><b>Шаг 5. Проверка ОДЗ.</b> Оба значения $\\neq \\dfrac{1}{2}$ ✓.
<br><b>Шаг 6.</b> Сравним корни: $\\dfrac{3}{5} = 0{,}6 \\lt 1$. Наименьший корень:
$$x_0 = \\dfrac{3}{5}$$
$$75x_0 = 75\\cdot\\dfrac{3}{5} = \\dfrac{75\\cdot 3}{5} = 15\\cdot 3 = 45$$
<div class="sol-ans">Ответ: $45$</div>`
},
{
text: `Найдите площадь описанной равнобедренной трапеции, если точка касания вписанной
в неё окружности делит боковую сторону на отрезки, равные $2$ см и $8$ см.`,
sol: `<b>Шаг 1. Основания трапеции.</b>
<br>Боковая сторона $= 2+8 = 10$ см. По свойству касательных от каждой вершины оба касательных отрезка равны.
<br>От вершин большего основания — по $8$, от вершин меньшего — по $2$.
<svg viewBox="0 0 195 115" xmlns="http://www.w3.org/2000/svg" style="max-width:300px;width:100%;height:auto;display:block;margin:8px 0">
<!-- Трапеция ABCD: A=(20,98), B=(68,18), C=(124,18), D=(172,98) -->
<!-- AD=152px=16см, BC=56px≈4см (масштаб ~9.5px/см) -->
<polygon points="20,98 172,98 124,18 68,18" fill="rgba(37,99,235,0.06)" stroke="#334155" stroke-width="1.8"/>
<!-- Вписанная окружность: O=(96,58), r=40px -->
<circle cx="96" cy="58" r="40" fill="rgba(22,163,74,0.08)" stroke="#16a34a" stroke-width="1.5"/>
<!-- AP_left = 8 (красный) -->
<line x1="20" y1="98" x2="56" y2="38" stroke="#dc2626" stroke-width="2.5"/>
<!-- P_leftB = 2 (синий) -->
<line x1="56" y1="38" x2="68" y2="18" stroke="#2563eb" stroke-width="2.5"/>
<!-- Правая боковая (зеркально) -->
<line x1="172" y1="98" x2="136" y2="38" stroke="#dc2626" stroke-width="2.5"/>
<line x1="136" y1="38" x2="124" y2="18" stroke="#2563eb" stroke-width="2.5"/>
<!-- Радиус до нижнего основания -->
<line x1="96" y1="58" x2="96" y2="98" stroke="#16a34a" stroke-width="1.2" stroke-dasharray="3,2"/>
<!-- Точки касания -->
<circle cx="96" cy="98" r="3" fill="#16a34a"/>
<circle cx="96" cy="18" r="3" fill="#16a34a"/>
<circle cx="56" cy="38" r="4" fill="#dc2626"/>
<circle cx="136" cy="38" r="4" fill="#dc2626"/>
<circle cx="96" cy="58" r="3" fill="#334155"/>
<!-- Метки вершин -->
<text x="6" y="109" font-size="13" font-family="serif" font-style="italic">A</text>
<text x="175" y="109" font-size="13" font-family="serif" font-style="italic">D</text>
<text x="60" y="13" font-size="13" font-family="serif" font-style="italic">B</text>
<text x="121" y="13" font-size="13" font-family="serif" font-style="italic">C</text>
<text x="99" y="55" font-size="12" font-family="serif" font-style="italic">O</text>
<!-- Метки отрезков -->
<text x="22" y="70" font-size="13" fill="#dc2626" font-weight="bold">8</text>
<text x="46" y="30" font-size="13" fill="#2563eb" font-weight="bold">2</text>
<text x="160" y="70" font-size="13" fill="#dc2626" font-weight="bold">8</text>
<text x="134" y="30" font-size="13" fill="#2563eb" font-weight="bold">2</text>
<!-- Метки оснований -->
<text x="76" y="111" font-size="11" fill="#334155">AD = 16</text>
<text x="80" y="12" font-size="11" fill="#334155">BC = 4</text>
<!-- Радиус -->
<text x="100" y="80" font-size="11" fill="#16a34a">r = 4</text>
</svg>
$$AD = 8+8 = 16\\text{ см}, \\quad BC = 2+2 = 4\\text{ см}$$
<b>Шаг 2. Высота трапеции.</b>
<br>Горизонтальный выступ ноги: $\\dfrac{16-4}{2} = 6$ см.
$$h = \\sqrt{10^2-6^2} = \\sqrt{100-36} = \\sqrt{64} = 8\\text{ см}$$
<b>Шаг 3. Площадь.</b>
$$S = \\dfrac{AD+BC}{2}\\cdot h = \\dfrac{16+4}{2}\\cdot8 = 10\\cdot8 = 80\\text{ см}^2$$
<div class="sol-ans">Ответ: $80$ см²</div>`
},
{
text: `В компанию поступил заказ на укладку $175$ м² напольной плитки.
Плиточник принял решение укладывать на $10$ м² в день больше, чем запланировал ранее.
В результате работа была закончена на $2$ дня раньше установленного срока.
Успеет ли плиточник выполнить заказ за $7$ рабочих дней, если будет работать
по первоначальному плану? Ответ обоснуйте.`,
sol: `Пусть плановая выработка $= x$ м²/день.
<br>По плану: $\\dfrac{175}{x}$ дней. С ускорением: $\\dfrac{175}{x+10}$ дней, на $2$ меньше.
$$\\dfrac{175}{x} - \\dfrac{175}{x+10} = 2$$
Умножаем на $x(x+10)$:
$$175(x+10) - 175x = 2x(x+10)$$
$$1750 = 2x^2+20x \\implies x^2+10x-875=0$$
$$D = 100+3500 = 3600 = 60^2 \\implies x = \\dfrac{-10+60}{2} = 25\\text{ м}^2/\\text{день}$$
<b>Плановый срок:</b> $\\dfrac{175}{25} = 7$ дней.
<br><b>Проверка:</b> при $35$ м²/день: $175\\div35=5$ дней, $7-5=2$ ✓
<br><b>Ответ на вопрос:</b> за $7$ дней при выработке $25$ м²/день плиточник уложит $7\\times25=175$ м².
<div class="sol-ans">Ответ: да, успеет — уложит ровно $175$ м² за $7$ дней</div>`
},
]
};