diff --git a/frontend/textbooks/physics_10_ch1.html b/frontend/textbooks/physics_10_ch1.html
index 7e71d55..cb01da6 100644
--- a/frontend/textbooks/physics_10_ch1.html
+++ b/frontend/textbooks/physics_10_ch1.html
@@ -2803,34 +2803,784 @@ function build_p6(){
function build_p7(){
const box = document.getElementById('p7-body');
let html = '';
- html += makeCard('theory', "Строение и свойства твёрдых тел", "§7", `
-
Строение и свойства твёрдых тел — этот параграф в разработке (Phase 1+).
-
Здесь появятся: теория, формулы, разобранные примеры и 3–4 интерактива в стиле «алгебры 11» — таблицы, симуляции, ползунки, drag-and-drop и автопроверяемые тренажёры.
-
- Phase 0: создан скелет учебника. Phase 1+: наполнение этого § содержанием по учебнику «Физика 10» (Беларусь, 2019).
-
+
+ /* THEORY 1 — Кристаллические и аморфные тела */
+ html += makeCard('theory', "Кристаллические и аморфные тела", "§7", `
+
Кристаллические тела имеют упорядоченное расположение частиц — кристаллическую решётку.
+
Виды кристаллических тел:
+
+
Монокристалл — единая решётка во всём объёме (кварц, алмаз, поваренная соль, сахар).
+
Поликристалл — много мелких кристалликов, ориентированных хаотически (металлы, лёд, керамика).
+
+
У кристаллических тел есть точная температура плавления: при $t_{\\text{пл}}$ решётка разрушается, и тело переходит в жидкое состояние.
+
Аморфные тела (стекло, смола, пластмассы, янтарь, воск) не имеют упорядоченной решётки. Их называют «переохлаждёнными жидкостями». При нагревании они размягчаются плавно, без чёткой температуры плавления.
`);
+
+ /* THEORY 2 — Анизотропия и изотропия */
+ html += makeCard('rule', "Анизотропия и изотропия", "§7", `
+
Анизотропия — зависимость физических свойств от направления (твёрдость, теплопроводность, скорость распространения света). Характерна для монокристаллов.
+
Примеры:
+
+
Алмаз в одном направлении режется легче, чем в другом.
+
Графит легко расщепляется на тонкие чешуйки (вдоль слоёв).
+
В кварце скорость звука зависит от оси кристалла.
+
+
Изотропия — свойства одинаковы во всех направлениях. Характерна для поликристаллов и аморфных тел.
+
Поликристаллы состоят из множества мелких разно ориентированных кристалликов, поэтому в среднем свойства одинаковы по всем направлениям.
`;
+
html += secNav('p6', 'p8');
html += readButton('p7');
+
box.innerHTML = html;
renderMath(box);
+
+ /* IV1 — Визуализатор решётки */
+ (function(){
+ const tabs = document.getElementById('p7-iv1-tabs');
+ const svg = document.getElementById('p7-iv1-svg');
+ const info = document.getElementById('p7-iv1-info');
+ const seen = new Set();
+ let _done = false;
+ let mode = 'ion';
+
+ function drawIon(){
+ // 5×5 сетка чередующихся Na+/Cl−
+ let g = '';
+ const cols = 6, rows = 5, sx = 50, sy = 30, dx = 56, dy = 48;
+ for(let j = 0; j < rows; j++){
+ for(let i = 0; i < cols; i++){
+ const cx = sx + i * dx, cy = sy + j * dy;
+ const isPlus = ((i + j) % 2 === 0);
+ // соединительные линии (соседи справа/снизу)
+ if(i < cols-1) g += '';
+ if(j < rows-1) g += '';
+ }
+ }
+ for(let j = 0; j < rows; j++){
+ for(let i = 0; i < cols; i++){
+ const cx = sx + i * dx, cy = sy + j * dy;
+ const isPlus = ((i + j) % 2 === 0);
+ const col = isPlus ? '#e11d48' : '#2563eb';
+ const r = isPlus ? 13 : 17;
+ g += '';
+ g += ''+(isPlus?'Na⁺':'Cl⁻')+'';
+ }
+ }
+ svg.innerHTML = g;
+ }
+
+ function drawAtom(){
+ // Тетраэдрическая сетка алмаза — упрощённая 2D-проекция
+ let g = '';
+ const sx = 50, sy = 40, dx = 70, dy = 60;
+ const nodes = [];
+ for(let j = 0; j < 4; j++){
+ for(let i = 0; i < 5; i++){
+ const off = (j % 2) * dx / 2;
+ nodes.push({x: sx + i*dx + off, y: sy + j*dy, i, j});
+ }
+ }
+ // соединения — ковалентные связи (жирные линии к ближайшим)
+ for(const a of nodes){
+ for(const b of nodes){
+ if(a === b) continue;
+ const d = Math.hypot(a.x - b.x, a.y - b.y);
+ if(d < dx * 1.05 && d > 0.1){
+ g += '';
+ }
+ }
+ }
+ for(const n of nodes){
+ g += '';
+ g += 'C';
+ }
+ svg.innerHTML = g;
+ }
+
+ function drawMol(){
+ // Молекулы H₂O в упорядоченной сетке + водородные связи (пунктир)
+ let g = '';
+ const cols = 4, rows = 3, sx = 60, sy = 50, dx = 90, dy = 80;
+ const centers = [];
+ for(let j = 0; j < rows; j++){
+ for(let i = 0; i < cols; i++){
+ centers.push({x: sx + i*dx, y: sy + j*dy});
+ }
+ }
+ // водородные связи (пунктир) между соседями
+ for(let i = 0; i < centers.length; i++){
+ for(let k = i+1; k < centers.length; k++){
+ const d = Math.hypot(centers[i].x - centers[k].x, centers[i].y - centers[k].y);
+ if(d < dx * 1.05){
+ g += '';
+ }
+ }
+ }
+ // молекулы H₂O: 1 кислород (синий) + 2 водорода (белые)
+ for(const c of centers){
+ const ox = c.x, oy = c.y;
+ const ang1 = -Math.PI/2 - 0.5, ang2 = -Math.PI/2 + 0.5;
+ const hr = 18;
+ const h1x = ox + hr*Math.cos(ang1), h1y = oy + hr*Math.sin(ang1);
+ const h2x = ox + hr*Math.cos(ang2), h2y = oy + hr*Math.sin(ang2);
+ g += '';
+ g += '';
+ g += '';
+ g += 'O';
+ g += '';
+ g += 'H';
+ g += '';
+ g += 'H';
+ }
+ svg.innerHTML = g;
+ }
+
+ function drawMet(){
+ // Положительные ионы (большие синие круги) + свободные электроны (точки)
+ let g = '';
+ const cols = 5, rows = 4, sx = 50, sy = 40, dx = 70, dy = 60;
+ // электронное «море» — фоновая дымка
+ g += '';
+ // свободные электроны (50 хаотичных точек)
+ for(let k = 0; k < 70; k++){
+ const ex = 30 + Math.random() * 320;
+ const ey = 30 + Math.random() * 220;
+ g += '';
+ g += '−';
+ }
+ // положительные ионы
+ for(let j = 0; j < rows; j++){
+ for(let i = 0; i < cols; i++){
+ const cx = sx + i*dx, cy = sy + j*dy;
+ g += '';
+ g += '+';
+ }
+ }
+ svg.innerHTML = g;
+ }
+
+ const INFO = {
+ ion: 'Ионная решётка (пример: NaCl, поваренная соль). Связь: электростатическая между «+» и «−» ионами. Свойства: твёрдые, $t_{\\text{пл}}$ высокая (≈ 800°C), хрупкие, в расплаве проводят ток.',
+ atom: 'Атомная решётка (пример: алмаз, кремний). Связь: ковалентная между атомами. Свойства: очень твёрдые, тугоплавкие ($t_{\\text{пл}}$ > 1000°C), плохо проводят ток.',
+ mol: 'Молекулярная решётка (пример: лёд H$_2$O, нафталин, йод). Связь: слабая (Ван-дер-Ваальса, водородные связи). Свойства: мягкие, легкоплавкие, не проводят ток.',
+ met: 'Металлическая решётка (пример: Cu, Fe, Al). «+» ионы в «море» свободных электронов. Свойства: пластичные, отлично проводят ток и тепло, имеют металлический блеск.'
+ };
+
+ function render(){
+ if(mode === 'ion') drawIon();
+ else if(mode === 'atom') drawAtom();
+ else if(mode === 'mol') drawMol();
+ else drawMet();
+ info.innerHTML = INFO[mode];
+ renderMath(info);
+ seen.add(mode);
+ if(!_done && seen.size >= 4){ _done = true; addXp(10, 'p7-iv1'); bumpProgress('p7', 15); }
+ }
+ tabs.querySelectorAll('button').forEach(b => {
+ b.addEventListener('click', () => {
+ mode = b.dataset.mode;
+ const colMap = { ion:'#e11d48', atom:'#475569', mol:'#0ea5e9', met:'#f59e0b' };
+ tabs.querySelectorAll('button').forEach(x => { x.className = 'btn'; x.style.background=''; x.style.borderColor=''; });
+ b.className = 'btn primary';
+ b.style.background = colMap[mode]; b.style.borderColor = colMap[mode];
+ render();
+ });
+ });
+ render();
+ })();
+
+ /* IV2 — DnD: кристалл/аморф */
+ (function(){
+ const items = [
+ { id:'s1', cat:'cryst', html:'Поваренная соль (NaCl)' },
+ { id:'s2', cat:'amorph', html:'Стекло' },
+ { id:'s3', cat:'cryst', html:'Алмаз' },
+ { id:'s4', cat:'amorph', html:'Янтарь' },
+ { id:'s5', cat:'cryst', html:'Лёд' },
+ { id:'s6', cat:'amorph', html:'Парафин' },
+ { id:'s7', cat:'cryst', html:'Железо' },
+ { id:'s8', cat:'amorph', html:'Резина' },
+ ];
+ const sorter = setupSorter({
+ poolId:'p7-iv2-pool',
+ scopeSelector:'#p7-iv2',
+ items: items,
+ cats:['cryst','amorph'],
+ columnLayout:false,
+ });
+ document.getElementById('p7-iv2-check').addEventListener('click', () => {
+ const fb = document.getElementById('p7-iv2-fb');
+ const placedCount = items.filter(it => sorter.placed[it.id]).length;
+ const correct = items.filter(it => sorter.placed[it.id] === it.cat).length;
+ if(placedCount < items.length){ feedback(fb, false, '✗ Размести все 8 веществ.'); return; }
+ if(correct === items.length){ feedback(fb, true, '✓ Все 8 верно! +10 XP'); addXp(10,'p7-iv2'); bumpProgress('p7', 15); }
+ else feedback(fb, false, '✗ Правильно ' + correct + ' из 8. Попробуй ещё.');
+ });
+ document.getElementById('p7-iv2-reset').addEventListener('click', () => { sorter.reset(); document.getElementById('p7-iv2-fb').style.display = 'none'; });
+ })();
+
+ /* IV3 — квикфайр: тип решётки */
+ (function(){
+ // ans: 0=ион, 1=атом, 2=мол, 3=метал
+ const Q = [
+ { q:'NaCl — поваренная соль', ans:0, why:'Чередование Na⁺ и Cl⁻ — ионная решётка.' },
+ { q:'Алмаз', ans:1, why:'Атомы углерода связаны ковалентными связями — атомная решётка.' },
+ { q:'Лёд (H$_2$O в твёрдом состоянии)', ans:2, why:'Между молекулами H$_2$O слабые водородные связи — молекулярная решётка.' },
+ { q:'Медь, железо, алюминий', ans:3, why:'Положительные ионы в «море» свободных электронов — металлическая.' },
+ { q:'Кремний (полупроводник)', ans:1, why:'Атомная решётка (как у алмаза), ковалентные связи.' },
+ { q:'Йод (I$_2$)', ans:2, why:'Молекулы I$_2$ связаны слабыми силами — молекулярная.' },
+ ];
+ const LABELS = ['Ионная','Атомная','Молекулярная','Металлическая'];
+ const COLS = ['#e11d48','#475569','#0ea5e9','#f59e0b'];
+ let i = 0, score = 0;
+ const qEl = document.getElementById('p7-iv3-q');
+ const oEl = document.getElementById('p7-iv3-opts');
+ const fb = document.getElementById('p7-iv3-fb');
+ const iEl = document.getElementById('p7-iv3-i');
+ const sEl = document.getElementById('p7-iv3-s');
+ function show(){
+ if(i >= Q.length){
+ qEl.innerHTML = 'Готово! Результат: ' + score + ' / ' + Q.length;
+ oEl.innerHTML = '';
+ if(score === Q.length){ addXp(15, 'p7-iv3'); bumpProgress('p7', 25); }
+ else if(score >= 4){ addXp(8, 'p7-iv3'); bumpProgress('p7', 15); }
+ return;
+ }
+ iEl.textContent = (i+1); sEl.textContent = score;
+ qEl.innerHTML = Q[i].q;
+ let opts = '';
+ for(let k = 0; k < 4; k++){
+ opts += '';
+ }
+ oEl.innerHTML = opts;
+ fb.style.display = 'none';
+ renderMath(qEl);
+ oEl.querySelectorAll('button').forEach(b => {
+ b.addEventListener('click', () => {
+ const v = +b.dataset.v;
+ if(v === Q[i].ans){ score++; feedback(fb, true, '✓ Верно! ' + Q[i].why + ' Дальше ▶'); }
+ else feedback(fb, false, '✗ Неверно. Правильно: '+LABELS[Q[i].ans]+'. '+Q[i].why+' Дальше ▶');
+ sEl.textContent = score;
+ oEl.querySelectorAll('button').forEach(x => x.disabled = true);
+ i++;
+ setTimeout(show, 1700);
+ });
+ });
+ }
+ document.getElementById('p7-iv3-restart').addEventListener('click', () => { i = 0; score = 0; show(); });
+ show();
+ })();
+
+ /* IV4 — Тренажёр свойств твёрдых тел */
+ (function(){
+ const Q = [
+ { q:'В монокристалле скорость звука вдоль оси $X$ равна $5000$ м/с, вдоль $Y$ — $3000$ м/с. Найди разность в м/с (это пример анизотропии).', ans:2000, hint:'$5000 - 3000 = 2000$ м/с — разные направления, разные скорости.' },
+ { q:'Стекло — это кристаллическое (1) или аморфное (2) тело?', ans:2, hint:'Стекло не имеет упорядоченной решётки — это «переохлаждённая жидкость».' },
+ { q:'Алмаз и графит — оба состоят из углерода. У какого больше твёрдость? Введи: алмаз = 1, графит = 2.', ans:1, hint:'У алмаза 3D-решётка ковалентных связей — он твёрже. Графит — слоистый.' },
+ { q:'Сколько типов кристаллических решёток рассматривается в §7?', ans:4, hint:'Ионная, атомная, молекулярная, металлическая.' },
+ { q:'Какой тип решётки у меди? Введи цифру: 1 = ионная, 2 = атомная, 3 = молекулярная, 4 = металлическая.', ans:4, hint:'Cu — металл, значит решётка металлическая («+» ионы в «море» электронов).' },
+ ];
+ let i = 0, score = 0;
+ function show(){
+ if(i >= Q.length){
+ document.getElementById('p7-iv4-q').innerHTML = 'Готово! Результат: ' + score + ' / ' + Q.length;
+ if(score === Q.length){ addXp(15, 'p7-iv4'); bumpProgress('p7', 25); }
+ else if(score >= 3){ addXp(8, 'p7-iv4'); bumpProgress('p7', 15); }
+ return;
+ }
+ document.getElementById('p7-iv4-i').textContent = (i+1);
+ document.getElementById('p7-iv4-s').textContent = score;
+ document.getElementById('p7-iv4-q').innerHTML = Q[i].q;
+ document.getElementById('p7-iv4-ans').value = '';
+ renderMath(document.getElementById('p7-iv4-q'));
+ document.getElementById('p7-iv4-fb').style.display = 'none';
+ }
+ function go(){
+ if(i >= Q.length) return;
+ const fb = document.getElementById('p7-iv4-fb');
+ const raw = document.getElementById('p7-iv4-ans').value.replace(',', '.');
+ const ans = parseFloat(raw);
+ if(isNaN(ans)){ feedback(fb, false, '✗ Введи число.'); return; }
+ const tol = Math.max(0.05 * Math.abs(Q[i].ans), 0.5);
+ if(Math.abs(ans - Q[i].ans) < tol + 0.001){ score++; feedback(fb, true, '✓ Верно! '+Q[i].hint+' Дальше ▶'); }
+ else feedback(fb, false, '✗ Неверно. Ответ: $'+Q[i].ans+'$. '+Q[i].hint+' Дальше ▶');
+ document.getElementById('p7-iv4-s').textContent = score;
+ i++;
+ setTimeout(show, 1800);
+ }
+ document.getElementById('p7-iv4-go').addEventListener('click', go);
+ document.getElementById('p7-iv4-ans').addEventListener('keydown', e => { if(e.key === 'Enter') go(); });
+ document.getElementById('p7-iv4-start').addEventListener('click', () => { i = 0; score = 0; show(); });
+ show();
+ })();
+
wireReadBtn('p7');
}
function build_p8(){
const box = document.getElementById('p8-body');
let html = '';
- html += makeCard('theory', "Строение и свойства жидкостей", "§8", `
-
Строение и свойства жидкостей — этот параграф в разработке (Phase 1+).
-
Здесь появятся: теория, формулы, разобранные примеры и 3–4 интерактива в стиле «алгебры 11» — таблицы, симуляции, ползунки, drag-and-drop и автопроверяемые тренажёры.
-
- Phase 0: создан скелет учебника. Phase 1+: наполнение этого § содержанием по учебнику «Физика 10» (Беларусь, 2019).
-
+
+ /* THEORY 1 — Свойства и строение жидкостей */
+ html += makeCard('theory', "Свойства и строение жидкостей", "§8", `
+
Жидкости занимают промежуточное положение между газами и твёрдыми телами:
+
+
От твёрдых тел жидкость унаследовала: сохранение объёма (несжимаемость).
+
От газов: отсутствие собственной формы — жидкость принимает форму сосуда.
+
+
Молекулы жидкости расположены тесно (как в твёрдом теле), но могут перемещаться (как в газе).
+
Ближний порядок — упорядоченность молекул в области порядка нескольких диаметров молекулы. На больших расстояниях упорядоченности нет (в отличие от кристалла).
+
При охлаждении жидкость может кристаллизоваться (вода → лёд) или, при особых условиях, остаться аморфной (стекло — переохлаждённая жидкость).
`);
+
+ /* THEORY 2 — Поверхностное натяжение */
+ html += makeCard('rule', "Поверхностное натяжение", "§8", `
+
На поверхности жидкости молекулы испытывают силу, направленную внутрь жидкости. Это объясняется тем, что молекула в объёме окружена молекулами со всех сторон, а молекула на поверхности — только снизу и с боков.
+
В результате жидкость стремится минимизировать площадь поверхности. Поэтому маленькая капля принимает почти сферическую форму.
+
Сила поверхностного натяжения на границе пленки длиной $L$:
+
$$F = \\sigma L$$
+
где $\\sigma$ — коэффициент поверхностного натяжения (Н/м).
Молекулы расположены тесно и колеблются. Меняй $t$: при росте температуры амплитуда колебаний растёт, при $t \\to 100°$C — молекулы начинают «вырываться» (испарение → §9).