fix(textbooks): Физика 9 — escape § в num + phys9_legacy.js + финалы 5 глав
Багфиксы: - gen_phys9_ch.js: убран двойной escape \u00a7 → литерал § (раньше карточка показывала '\u00a7 1' вместо '§ 1') - phys9_legacy.js (262 КБ): извлечён весь JS монолита для глобальных onclick- обработчиков (startAnim1, lab11add/all/reset, checkNum, togglePend36 и пр.). Setup-код в конце обёрнут в try/catch — он рассчитан на DOM монолита. - migrate_phys9_ch4.js + migrate_phys9_content.js: подключают phys9_legacy.js во все 5 ch-файлов перед закрытием <head>. Финалы глав (write_phys9_finals.js): - ch1: 5 задач (кинематика — поезд, разгон, окружность, лодка/река) - ch2: 5 задач (динамика — трение, Гук, свободное падение, перегрузка) - ch3: 5 задач (статика — рычаг, Архимед, блок, КПД накл. плоск., льдина) - ch4: 5 задач (импульс — неупр. удар, ЗСЭ, мощность крана, пуля, бросок) - ch5: 5 контрольных по практикуму (среднее, ЛР2, ЛР4, ЛР6, ЛР10) Все задачи с автопроверкой через checkNum() (теперь работает из legacy.js).
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
<script src="/js/api.js" defer></script>
|
||||
<script src="/js/xp.js" defer></script>
|
||||
<script src="/js/phys.js" defer></script>
|
||||
<script src="/js/phys9_legacy.js" defer></script>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Manrope:wght@600;700;800;900&family=Unbounded:wght@700;800;900&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root{
|
||||
@@ -616,12 +617,12 @@ const TOTAL_PARAS = 7;
|
||||
const _TB_SLUG = 'physics-9-ch3';
|
||||
|
||||
const PARAS = [
|
||||
{ id:"p25", num:"\\u00a7 25", name:"Условия равновесия тел. Момент силы", sub:"$M = Fl$" },
|
||||
{ id:"p26", num:"\\u00a7 26", name:"Простые механизмы. Рычаги. Блоки", sub:"$F_1 l_1 = F_2 l_2$" },
|
||||
{ id:"p27", num:"\\u00a7 27", name:"Наклонная плоскость. «Золотое правило» механики. КПД", sub:"$\\\\eta = A_{пол}/A_{сов}$" },
|
||||
{ id:"p28", num:"\\u00a7 28", name:"Центр тяжести. Виды равновесия", sub:"ЦТ · равновесие" },
|
||||
{ id:"p29", num:"\\u00a7 29", name:"Закон Архимеда. Выталкивающая сила", sub:"$F_A = \\\\rho g V$" },
|
||||
{ id:"p30", num:"\\u00a7 30", name:"Плавание судов. Воздухоплавание", sub:"$\\\\rho_т \\\\le \\\\rho_ж$" },
|
||||
{ id:"p25", num:"§ 25", name:"Условия равновесия тел. Момент силы", sub:"$M = Fl$" },
|
||||
{ id:"p26", num:"§ 26", name:"Простые механизмы. Рычаги. Блоки", sub:"$F_1 l_1 = F_2 l_2$" },
|
||||
{ id:"p27", num:"§ 27", name:"Наклонная плоскость. «Золотое правило» механики. КПД", sub:"$\\\\eta = A_{пол}/A_{сов}$" },
|
||||
{ id:"p28", num:"§ 28", name:"Центр тяжести. Виды равновесия", sub:"ЦТ · равновесие" },
|
||||
{ id:"p29", num:"§ 29", name:"Закон Архимеда. Выталкивающая сила", sub:"$F_A = \\\\rho g V$" },
|
||||
{ id:"p30", num:"§ 30", name:"Плавание судов. Воздухоплавание", sub:"$\\\\rho_т \\\\le \\\\rho_ж$" },
|
||||
{ id:"final3", num:'\u2605', name:'Финал главы', sub:"Итоги · боссы главы 3", final:true }
|
||||
];
|
||||
PARAS.forEach(p => { STATE.progress[p.id] = 0; });
|
||||
@@ -1468,11 +1469,69 @@ function build_final3(){
|
||||
const box = document.getElementById('final3-body');
|
||||
let html = '';
|
||||
html += makeCard('theory', "Финал главы 3", "★", `
|
||||
<p><b>Финал главы 3</b> — этот параграф в разработке (Phase 3+).</p>
|
||||
<p>Здесь появятся: теория, формулы, разобранные примеры и 3–4 интерактива в стиле «физики 10» — векторные диаграммы, графики движения, ползунки и автопроверяемые тренажёры.</p>
|
||||
<p style="margin-top:10px;padding:10px 14px;background:var(--sec-acc-soft);border-radius:9px;font-size:.92rem">
|
||||
<b>Phase 0:</b> создан скелет. <b>Phase 5:</b> наполнение по учебнику «Физика 9» (Исаченкова, Сокольский, Захаревич, 2019).
|
||||
</p>
|
||||
|
||||
<div class="formula-grid" style="margin-bottom:20px">
|
||||
<div class="fcard highlight"><h3>Равновесие</h3>
|
||||
<div class="main-f">$\\sum\\vec{F} = 0$ и $\\sum M = 0$</div>
|
||||
<p>Момент: $M = F \\cdot \\ell$ (плечо)</p>
|
||||
</div>
|
||||
<div class="fcard"><h3>Простые механизмы</h3>
|
||||
<div class="main-f">$F_1 \\ell_1 = F_2 \\ell_2$</div>
|
||||
<p>Рычаг · подв. блок (выигрыш в 2 раза) · накл. плоскость</p>
|
||||
</div>
|
||||
<div class="fcard"><h3>Архимед</h3>
|
||||
<div class="main-f">$F_A = \\rho_ж g V_{\\text{погр}}$</div>
|
||||
<p>КПД: $\\eta = A_{\\text{пол}}/A_{\\text{сов}} \\cdot 100\\%$</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section-title"><i class="fas fa-star"></i> Интегрированные задачи</div>
|
||||
|
||||
<div class="task-card">
|
||||
<div class="task-num">Задача 1</div>
|
||||
<div class="task-text">Рычаг в равновесии. На левое плечо длиной $\\ell_1 = 0{,}3$ м действует сила $F_1 = 60$ Н. Правое плечо длиной $\\ell_2 = 0{,}9$ м. Найдите силу $F_2$ на правом плече.</div>
|
||||
<div class="task-hint">$F_1 \\ell_1 = F_2 \\ell_2$, отсюда $F_2 = F_1 \\ell_1 / \\ell_2$.</div>
|
||||
<div class="ans-row"><input type="number" class="ans-inp" id="fin3-q1" step="any"><span class="unit-lbl">Н</span>
|
||||
<button class="btn btn-pri" onclick="checkNum('fin3-q1', 20, 'Н', 0.2)">Проверить</button></div>
|
||||
<div class="feedback" id="fb-fin3-q1"></div>
|
||||
</div>
|
||||
|
||||
<div class="task-card">
|
||||
<div class="task-num">Задача 2</div>
|
||||
<div class="task-text">Куб со стороной $a = 10$ см полностью погружён в воду. Плотность воды $\\rho = 1000$ кг/м³, $g = 10$ м/с². Найдите выталкивающую силу.</div>
|
||||
<div class="task-hint">$V = a^3$, $F_A = \\rho g V$.</div>
|
||||
<div class="ans-row"><input type="number" class="ans-inp" id="fin3-q2" step="any"><span class="unit-lbl">Н</span>
|
||||
<button class="btn btn-pri" onclick="checkNum('fin3-q2', 10, 'Н', 0.1)">Проверить</button></div>
|
||||
<div class="feedback" id="fb-fin3-q2"></div>
|
||||
</div>
|
||||
|
||||
<div class="task-card">
|
||||
<div class="task-num">Задача 3</div>
|
||||
<div class="task-text">Подвижный блок поднимает груз весом $P = 200$ Н на высоту $h_1 = 1$ м. Найдите силу тяги $F$, прикладываемую к нити (без учёта трения и веса блока).</div>
|
||||
<div class="task-hint">Подвижный блок даёт выигрыш в силе в 2 раза: $F = P/2$.</div>
|
||||
<div class="ans-row"><input type="number" class="ans-inp" id="fin3-q3" step="any"><span class="unit-lbl">Н</span>
|
||||
<button class="btn btn-pri" onclick="checkNum('fin3-q3', 100, 'Н', 1)">Проверить</button></div>
|
||||
<div class="feedback" id="fb-fin3-q3"></div>
|
||||
</div>
|
||||
|
||||
<div class="task-card">
|
||||
<div class="task-num">Задача 4</div>
|
||||
<div class="task-text">Тело весом $P = 50$ Н поднимают по наклонной плоскости длиной $\\ell = 3$ м на высоту $h = 1$ м. Сила тяги $F = 20$ Н. Найдите КПД наклонной плоскости.</div>
|
||||
<div class="task-hint">$A_{\\text{пол}} = Ph$, $A_{\\text{сов}} = F\\ell$, $\\eta = A_{\\text{пол}}/A_{\\text{сов}} \\cdot 100\\%$.</div>
|
||||
<div class="ans-row"><input type="number" class="ans-inp" id="fin3-q4" step="any"><span class="unit-lbl">%</span>
|
||||
<button class="btn btn-pri" onclick="checkNum('fin3-q4', 83.3, '%', 1)">Проверить</button></div>
|
||||
<div class="feedback" id="fb-fin3-q4"></div>
|
||||
</div>
|
||||
|
||||
<div class="task-card">
|
||||
<div class="task-num">Задача 5 (повышенный уровень)</div>
|
||||
<div class="task-text">Льдина имеет объём $V = 2{,}0$ м³ и плавает в пресной воде. Плотность льда $\\rho_л = 900$ кг/м³, воды $\\rho_в = 1000$ кг/м³. Какой объём льдины находится над водой?</div>
|
||||
<div class="task-hint">Условие плавания: $mg = F_A$, откуда $\\rho_л V g = \\rho_в V_{\\text{погр}} g$. Объём над водой: $V - V_{\\text{погр}}$.</div>
|
||||
<div class="ans-row"><input type="number" class="ans-inp" id="fin3-q5" step="any"><span class="unit-lbl">м³</span>
|
||||
<button class="btn btn-pri" onclick="checkNum('fin3-q5', 0.2, 'м³', 0.01)">Проверить</button></div>
|
||||
<div class="feedback" id="fb-fin3-q5"></div>
|
||||
</div>
|
||||
|
||||
`);
|
||||
html += secNav('p30', null);
|
||||
html += readButton('final3');
|
||||
|
||||
Reference in New Issue
Block a user