From e949cb18a52008653a0469e762c09d1e5ef6dd6b Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Sat, 30 May 2026 18:40:16 +0300 Subject: [PATCH] =?UTF-8?q?feat(chemistry7):=20Phase=202=20=D0=92=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D0=B0=201=20=E2=80=94=20=D0=93=D0=BB=D0=B0=D0=B2?= =?UTF-8?q?=D0=B0=202,=20=C2=A713=20+=20=D0=9B=D0=9E2=20+=20=C2=A714=20+?= =?UTF-8?q?=20=C2=A715?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit §13 Воздух как смесь газов (интерактивная диаграмма состава), ЛО2 Сборка приборов и собирание газов (выбор способа собирания), §14 Кислород — элемент и простое вещество (переключатель O/O2/O3 + модели), §15 Химические свойства кислорода (симулятор горения C/S/P/Fe/Mg → оксид). chem7_ch2_widgets.js. Тест: 11/11 pass. Co-Authored-By: Claude Opus 4.8 (1M context) --- backend/tests/chemistry7-page.test.js | 15 ++ frontend/js/chem7_ch2_widgets.js | 192 ++++++++++++++++++++++++ frontend/textbooks/chemistry_7_ch2.html | 119 ++++++++++++++- 3 files changed, 321 insertions(+), 5 deletions(-) create mode 100644 frontend/js/chem7_ch2_widgets.js diff --git a/backend/tests/chemistry7-page.test.js b/backend/tests/chemistry7-page.test.js index 067e6d1..dc4c4c6 100644 --- a/backend/tests/chemistry7-page.test.js +++ b/backend/tests/chemistry7-page.test.js @@ -24,6 +24,7 @@ function buildPage(file) { '/js/chem8_svg.js': readF('frontend/js/chem8_svg.js'), '/js/chem7_svg.js': readF('frontend/js/chem7_svg.js'), '/js/chem7_ch1_widgets.js': readF('frontend/js/chem7_ch1_widgets.js'), + '/js/chem7_ch2_widgets.js': readF('frontend/js/chem7_ch2_widgets.js'), '/js/chem8_engine.js': readF('frontend/js/chem8_engine.js') }; html = html @@ -133,6 +134,20 @@ test('ch1: переход к §9 и финалу строит без ошибо assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | ')); }); +test('ch2 Волна 1: интерактивы §13 + ЛО2 + §14 + §15 монтируются', async () => { + const { doc, errors } = await loadDom('chemistry_7_ch2.html'); + assert.ok(doc.querySelector('#p13-air .air-seg'), 'диаграмма состава воздуха §13'); + doc.defaultView.goTo('lo2'); await wait(100); + assert.ok(doc.querySelector('#lo2-coll #lo2-pick'), 'выбор собирания газа ЛО2'); + doc.defaultView.goTo('p14'); await wait(100); + assert.ok(doc.querySelector('#p14-tog #p14-o2'), 'переключатель элемент/вещество §14'); + doc.defaultView.goTo('p15'); await wait(100); + assert.ok(doc.querySelector('#p15-burn #p15-go'), 'симулятор горения §15'); + doc.defaultView.goTo('p15'); doc.getElementById('p15-go').dispatchEvent(new doc.defaultView.Event('click', { bubbles: true })); + assert.match(doc.querySelector('#p15-out').textContent, /оксид/, 'горение даёт оксид'); + assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | ')); +}); + /* ── Хаб: каталог глав + финал курса ── */ function buildHub() { let html = readF('frontend/textbooks/chemistry_7_hub.html'); diff --git a/frontend/js/chem7_ch2_widgets.js b/frontend/js/chem7_ch2_widgets.js new file mode 100644 index 0000000..4109066 --- /dev/null +++ b/frontend/js/chem7_ch2_widgets.js @@ -0,0 +1,192 @@ +/* chem7_ch2_widgets.js — интерактивы главы 2 «Кислород» (Химия 7). + * Монтируются движком chem8_engine.js: window.CHEM8_WIDGETS[id] / window.FLAG_MOUNTS[id]. + * Используют window.Chem8 (chem8_svg.js): chemEq, formula, molarMass, arOf. + * Без эмоджи; KaTeX-рендер — через window.chem8RenderMath. + */ +(function (W) { + 'use strict'; + function C() { return W.Chem8 || {}; } + function $(id) { return document.getElementById(id); } + function esc(s){ return String(s).replace(/&/g,'&').replace(//g,'>'); } + function gcd(a, b) { return b ? gcd(b, a % b) : a; } + function ceq(src, opts){ return C().chemEq ? C().chemEq(src, opts || {}) : esc(src); } + + var COL = { H:'#cbd5e1', O:'#ef4444', N:'#3b82f6', C:'#334155', S:'#eab308', P:'#f97316', Fe:'#b45309', Mg:'#22c55e', Cu:'#ea580c' }; + function ball(el, x, r){ + return '' + + ''+el+''; + } + function molSvg(atoms){ // atoms: [['O',2]] + var list=[]; atoms.forEach(function(p){ for(var i=0;i'+svg+''; + } + + /* §13 — состав воздуха (стопочная полоса с кликом) */ + var AIR = [ + { g:'Азот N₂', p:78, c:'#3b82f6', note:'не поддерживает горение и дыхание' }, + { g:'Кислород O₂', p:21, c:'#ef4444', note:'нужен для дыхания и горения' }, + { g:'Другие газы (Ar, CO₂…)', p:1, c:'#94a3b8', note:'аргон, углекислый газ и др. — около 1 %' } + ]; + function mount_p13() { + var m = $('p13-air'); if (!m || m._built) return; m._built = 1; + var bar = AIR.map(function (a, i) { + return '
' + a.p + '%
'; + }).join(''); + m.innerHTML = '
' + bar + '
' + + '
Кликни по части диаграммы, чтобы узнать о газе.
'; + var out = $('p13-air-out'); + m.querySelectorAll('.air-seg').forEach(function (s) { + s.addEventListener('click', function () { + var a = AIR[+s.dataset.i]; out.className = 'out ok'; + out.innerHTML = '' + esc(a.g) + ' — около ' + a.p + ' % воздуха. ' + esc(a.note) + '.'; + }); + }); + } + + /* ЛО2 — выбор способа собирания газа */ + var GASES = [ + { g:'Кислород O₂', heavier:true, ways:['вытеснением воды', 'в сосуд отверстием вверх (тяжелее воздуха)'] }, + { g:'Водород H₂', heavier:false, ways:['вытеснением воды', 'в сосуд отверстием вниз (легче воздуха)'] }, + { g:'Углекислый газ CO₂', heavier:true, ways:['в сосуд отверстием вверх (тяжелее воздуха)'] } + ]; + function mount_lo2() { + var m = $('lo2-coll'); if (!m || m._built) return; m._built = 1; + var idx = 0; + function render(){ + var g = GASES[idx]; + m.innerHTML = '
' + + '
' + esc(g.g) + ' ' + (g.heavier?'тяжелее':'легче') + ' воздуха.
Способы собирания:
' + + g.ways.map(function(w){ return '✓ ' + esc(w); }).join('
') + '
'; + $('lo2-pick').addEventListener('change', function(e){ idx=+e.target.value; m._built=0; render(); }); + } + render(); + } + + /* §14 — кислород: элемент или простое вещество + модели O₂ / O₃ */ + function mount_p14() { + var m = $('p14-tog'); if (!m || m._built) return; m._built = 1; + var mode = 'el'; + function render(){ + m.innerHTML = '
' + + '' + + '
' + + '
' + ( + mode==='el' ? 'Кислород — химический элемент (символ O, Z = 8, A_r = 16). Так говорят, когда речь о атомах кислорода в составе веществ (например, в воде H₂O).' + : mode==='o2' ? 'Кислород — простое вещество O₂: молекула из двух атомов. Газ без цвета и запаха, немного тяжелее воздуха.' + molSvg([['O',2]]) + : 'Озон O₃: молекула из трёх атомов кислорода — другое простое вещество того же элемента.' + molSvg([['O',3]]) + ) + '
'; + $('p14-el').addEventListener('click',function(){mode='el';m._built=0;render();}); + $('p14-o2').addEventListener('click',function(){mode='o2';m._built=0;render();}); + $('p14-o3').addEventListener('click',function(){mode='o3';m._built=0;render();}); + } + render(); + } + + /* §15 — симулятор горения: вещество + O₂ → оксид */ + var FUELS = [ + { el:'C', name:'углерод', eq:'C + O2 = CO2', note:'горит с образованием углекислого газа' }, + { el:'S', name:'сера', eq:'S + O2 = SO2', note:'горит синим пламенем, резкий запах' }, + { el:'P', name:'фосфор', eq:'4P + 5O2 = 2P2O5', note:'горит ярко, белый дым' }, + { el:'Fe', name:'железо', eq:'3Fe + 2O2 = Fe3O4', note:'горит, разбрасывая искры' }, + { el:'Mg', name:'магний', eq:'2Mg + O2 = 2MgO', note:'ослепительно яркое пламя' } + ]; + function flame(){ + return ''; + } + function mount_p15() { + var m = $('p15-burn'); if (!m || m._built) return; m._built = 1; + var idx = 0; + function render(){ + var f = FUELS[idx]; + m.innerHTML = '
' + + '
' + + '
Выбери вещество и подожги его в кислороде.
'; + $('p15-pick').addEventListener('change', function(e){ idx=+e.target.value; m._built=0; render(); }); + $('p15-go').addEventListener('click', function(){ + var out = $('p15-out'); out.className='out ok'; + out.innerHTML = flame() + ' ' + esc(f.name[0].toUpperCase()+f.name.slice(1)) + ' горит в кислороде: ' + esc(f.note) + '.
' + + '
' + ceq(f.eq) + '
' + + '
Продукт — оксид (соединение элемента с кислородом).
'; + }); + } + render(); + } + + /* §16 — конструктор оксида (элемент + валентность, кислород II) + классификатор */ + var OXEL = [ ['Na',1], ['Ca',2], ['Mg',2], ['Cu',2], ['Zn',2], ['Al',3], ['C',4], ['S',4], ['P',5] ]; + function mount_p16() { + var b = $('p16-bld'); + if (b && !b._built) { b._built = 1; + b.innerHTML = '
+ кислород (O, II)
'; + function rom(n){ return ['','I','II','III','IV','V'][n]; } + function upd(){ + var e = OXEL[+$('p16-el').value], lcm = e[1]*2/gcd(e[1],2), ix=lcm/e[1], iy=lcm/2; + var raw = e[0] + (ix>1?ix:'') + 'O' + (iy>1?iy:''); + var out=$('p16-out'); out.className='out ok'; + out.innerHTML = 'Валентности: '+e[0]+' = '+rom(e[1])+', O = II; НОК = '+lcm+'
Формула оксида: '+(C().formula?C().formula(raw):raw)+'
'; + } + $('p16-el').addEventListener('change',upd); upd(); + } + var cl = $('p16-cls'); + if (cl && W.Chem7Classify) W.Chem7Classify(cl); + } + + /* §17 — схема получения кислорода + роль катализатора */ + var PROD = [ + { name:'Разложение перманганата калия (при нагревании)', eq:'2KMnO4 = K2MnO4 + MnO2 + O2^', cond:'t°', note:'Реакция разложения: из одного вещества — несколько. Идёт при нагревании.' }, + { name:'Разложение пероксида водорода (катализатор MnO₂)', eq:'2H2O2 = 2H2O + O2^', cond:'MnO₂', note:'MnO₂ — катализатор: ускоряет реакцию, но сам в ней не расходуется.' } + ]; + function mount_p17() { + var m = $('p17-prod'); if (!m || m._built) return; m._built = 1; + var idx = 0; + function render(){ + var p = PROD[idx]; + m.innerHTML = '
' + + '
' + ceq(p.eq, {cond:p.cond}) + '
' + + '
' + esc(p.note) + '
'; + $('p17-pick').addEventListener('change', function(e){ idx=+e.target.value; m._built=0; render(); }); + } + render(); + } + + /* ПР2 — проверка кислорода тлеющей лучинкой */ + function mount_pr2() { + var m = $('pr2-test'); if (!m || m._built) return; m._built = 1; + m.innerHTML = '
Как доказать, что собранный газ — кислород?
'; + $('pr2-go').addEventListener('click', function(){ + var out=$('pr2-out'); out.className='out ok'; + out.innerHTML = flame() + ' Тлеющая лучинка ярко вспыхивает — значит, газ поддерживает горение. Это кислород.'; + }); + } + + /* классификатор «оксид / не оксид» (используется в §16) */ + W.Chem7Classify = function(mount){ + if (!mount || mount._built) return; mount._built = 1; + var items = [ {t:'CuO',ox:1}, {t:'NaCl',ox:0}, {t:'CO₂',ox:1}, {t:'H₂SO₄',ox:0}, {t:'Fe₂O₃',ox:1}, {t:'HCl',ox:0}, {t:'SO₂',ox:1}, {t:'CaO',ox:1} ]; + var pool = items.map(function(_,i){return i;}), placed={}, sel=null; + function render(){ + var chips = pool.map(function(i){ return ''; }).join('') || 'Готово.'; + var cols = [['Оксид',1],['Не оксид',0]].map(function(b){ + var inb = Object.keys(placed).filter(function(k){return placed[k]===b[1];}); + var cells = inb.map(function(k){ var ok=items[k].ox===b[1]; return '
'+esc(items[k].t)+(ok?' ✓':' ✗')+'
'; }).join('') || '
сюда…
'; + return '
'+b[0]+'
'+cells+'
'; + }).join(''); + mount.innerHTML = '
'+chips+'
'+cols+'
'; + mount.querySelectorAll('.c7-chip').forEach(function(b){ b.addEventListener('click',function(){ mount.querySelectorAll('.c7-chip').forEach(function(x){x.style.outline='';}); sel=+b.dataset.i; b.style.outline='2px solid var(--pri)'; }); }); + mount.querySelectorAll('.c7-bucket').forEach(function(col){ col.addEventListener('click',function(){ if(sel==null)return; placed[sel]=+col.dataset.b; pool=pool.filter(function(x){return x!==sel;}); sel=null; render(); }); }); + } + render(); + }; + + W.CHEM8_WIDGETS = Object.assign(W.CHEM8_WIDGETS || {}, { + p13: mount_p13, lo2: mount_lo2, p14: mount_p14, p15: mount_p15, + p16: mount_p16, p17: mount_p17, pr2: mount_pr2 + }); + W.FLAG_MOUNTS = Object.assign(W.FLAG_MOUNTS || {}, {}); +})(window); diff --git a/frontend/textbooks/chemistry_7_ch2.html b/frontend/textbooks/chemistry_7_ch2.html index e58c89f..4842c14 100644 --- a/frontend/textbooks/chemistry_7_ch2.html +++ b/frontend/textbooks/chemistry_7_ch2.html @@ -17,6 +17,7 @@ + @@ -88,11 +89,113 @@ window.PARAS = [ {id:'final2', num:'★', name:'Финал главы', sub:'босс · ачивка', final:true} ]; -window.ACH_LABELS = { start:'Начало главы 2!', final2_tasks:'Глава 2 пройдена!' }; -window.SIDEBARS = { p13:{ title:'Глава 2 · Химия 7', rows:[['Раздел','Кислород'],['§§','13–17'],['Лаб/ПР','ЛО 2 · ПР 2']] } }; -window.TIPS = [{ sec:'p13', html:'Глава наполняется содержанием по фазам. Сейчас доступны навигация по параграфам и отметка о прочтении (+10 XP).' }]; +window.ACH_LABELS = { start:'Начало главы 2!', p13_done:'§13 изучен!', lo2_done:'Лабораторный опыт 2 выполнен!', + p14_done:'§14 изучен!', p15_done:'§15 изучен!', final2_tasks:'Глава 2 пройдена!' }; +window.SIDEBARS = { + p13:{ title:'Шпаргалка §13', rows:[['Воздух','смесь газов'],['$N_2$','≈ 78 %'],['$O_2$','≈ 21 %']] }, + lo2:{ title:'Лаб. опыт 2', rows:[['Прибор','пробирка + трубка'],['Собирание','воздуха или воды']] }, + p14:{ title:'Шпаргалка §14', rows:[['Элемент','O, $Z=8$'],['Вещество','$O_2$'],['Озон','$O_3$']] }, + p15:{ title:'Шпаргалка §15', rows:[['Горение','+ $O_2$'],['Продукт','оксид'],['Окисление','медленное и быстрое']] } +}; +window.TIPS = [ + { sec:'p13', html:'Воздух — смесь газов: примерно $78\\,\\%$ азота $N_2$ и $21\\,\\%$ кислорода $O_2$, около $1\\,\\%$ — другие газы.' }, + { sec:'lo2', html:'Газ, который тяжелее воздуха (как $O_2$), собирают в сосуд отверстием вверх; легче воздуха ($H_2$) — отверстием вниз; нерастворимый — вытеснением воды.' }, + { sec:'p14', html:'$O$ — элемент (атом в составе веществ). $O_2$ — простое вещество. Кислород $O_2$ и озон $O_3$ — разные простые вещества одного элемента.' }, + { sec:'p15', html:'При горении вещество соединяется с кислородом — образуется оксид. Реакции с кислородом называют реакциями окисления.' } +]; -/* Phase 0: заглушки-builder'ы из PARAS (теория и интерактивы добавляются в фазах 1–4). */ +window.POOLS = { + p13:[ + {q:'Воздух — это…',opts:['Чистое вещество','Смесь газов','Простое вещество','Один газ — кислород'],a:1,ex:'Воздух — смесь нескольких газов.'}, + {q:'Какова примерная объёмная доля кислорода в воздухе (%)?',hint:'около 21',unit:'%',a:21,ex:'Кислорода ≈ 21 %.'}, + {q:'Какова примерная объёмная доля азота в воздухе (%)?',hint:'около 78',unit:'%',a:78,ex:'Азота ≈ 78 %.'}, + {q:'Какой газ воздуха необходим для дыхания и горения?',opts:['Азот','Кислород','Углекислый газ','Аргон'],a:1,ex:'Кислород $O_2$.'} + ], + p14:[ + {q:'Запись «$\\text{O}$» обозначает…',opts:['Химический элемент (атом)','Молекулу кислорода','Озон','Смесь'],a:0,ex:'O — символ химического элемента.'}, + {q:'$\\text{O}_2$ — это…',opts:['Химический элемент','Простое вещество','Сложное вещество','Смесь'],a:1,ex:'Молекула из атомов одного элемента — простое вещество.'}, + {q:'Чему равна относительная атомная масса кислорода $A_r(\\text{O})$?',hint:'из таблицы',unit:'',a:16,ex:'$A_r(\\text{O})=16$.'}, + {q:'$\\text{O}_2$ и $\\text{O}_3$ — это…',opts:['Одно вещество','Разные простые вещества одного элемента','Сложные вещества','Смесь газов'],a:1,ex:'Кислород и озон — разные простые вещества элемента кислород.'} + ], + p15:[ + {q:'Продукт горения простого вещества в кислороде — это…',opts:['Кислота','Оксид','Соль','Металл'],a:1,ex:'Образуется оксид — соединение с кислородом.'}, + {q:'При горении серы в кислороде образуется…',opts:['$\\text{SO}_2$','$\\text{H}_2\\text{S}$','$\\text{S}$','$\\text{SO}_3$ только'],a:0,ex:'$S+O_2=SO_2$ (с резким запахом).'}, + {q:'Реакция $\\text{C}+\\text{O}_2=\\text{CO}_2$ относится к реакциям…',opts:['Разложения','Соединения','Обмена','Замещения'],a:1,ex:'Из двух веществ одно — соединение.'}, + {q:'В уравнении $2\\text{Mg}+\\text{O}_2=2\\text{MgO}$ коэффициент перед $\\text{MgO}$ равен…',hint:'смотри на оксид',unit:'',a:2,ex:'Коэффициент 2.'} + ] +}; + +function rememberBox(items){ + return '
' + +' Запомни!
    ' + +items.map(function(t){return '
  • '+t+'
  • ';}).join('')+'
'; +} +function qList(items){ + return '
Вопросы и задания
    ' + +items.map(function(t){return '
  1. '+t+'
  2. ';}).join('')+'
'; +} +function wgt(title, inner){ + return '
'+title+'
'+inner+'
'; +} + +function build_p13(){ + document.getElementById('p13-body').innerHTML = + '
§ 13 · Химия 7

Воздух как смесь газов

' + +'
Из каких газов состоит воздух и почему он так важен.
' + +'
смесь$N_2$$O_2$
' + +makeCard('theory','Состав воздуха','§13','

Воздух — это смесь газов. Основные из них: азот $\\text{N}_2$ (около 78 %) и кислород $\\text{O}_2$ (около 21 %). Ещё около 1 % приходится на другие газы — аргон, углекислый газ и др.

' + +'
Воздух — однородная смесь: газы перемешаны равномерно. Именно кислород воздуха обеспечивает дыхание живых организмов и горение.
') + +wgt('Состав воздуха: кликни по части диаграммы','
') + +rememberBox(['Воздух — смесь газов.','Азота ≈ 78 %, кислорода ≈ 21 %.','Кислород нужен для дыхания и горения.']) + +qList(['Из каких газов в основном состоит воздух?','Какова доля кислорода в воздухе?','Почему воздух называют смесью, а не чистым веществом?']) + +secNav(null,'lo2')+readButton('p13'); + wireReadBtn('p13'); +} + +function build_lo2(){ + document.getElementById('lo2-body').innerHTML = + '
Лабораторный опыт 2

Сборка простейших приборов для получения и собирания газов

' + +'
Научиться собирать прибор для получения газа и выбирать способ его собирания.
' + +makeCard('lab','Прибор и способы собирания',null,'

Простейший прибор: пробирка с пробкой и газоотводной трубкой. Газ из пробирки по трубке поступает в сосуд для собирания.

' + +'
  • Вытеснением воздуха. Газ тяжелее воздуха ($O_2$, $CO_2$) собирают в сосуд, держа его отверстием вверх; легче воздуха ($H_2$) — отверстием вниз.
  • Вытеснением воды. Так собирают газы, мало растворимые в воде (например, кислород).
' + +'
Проверь герметичность прибора перед опытом; нагревай пробирку осторожно.
') + +wgt('Выбери способ собирания газа','
') + +secNav('p13','p14')+readButton('lo2'); + wireReadBtn('lo2'); +} + +function build_p14(){ + document.getElementById('p14-body').innerHTML = + '
§ 14 · Химия 7

Кислород как химический элемент и простое вещество

' + +'
Чем отличается элемент кислород от простого вещества кислород.
' + +'
$O$$O_2$$O_3$
' + +makeCard('theory','Элемент и простое вещество','§14','

Кислород как элемент — это атомы O ($Z=8$, $A_r=16$). Они входят в состав очень многих веществ (воды $\\text{H}_2\\text{O}$, оксидов, песка $\\text{SiO}_2$). Кислород — самый распространённый элемент земной коры.

' + +'
Кислород как простое вещество — это газ $\\text{O}_2$ (молекула из двух атомов). Элемент кислород образует и другое простое вещество — озон $\\text{O}_3$.
') + +makeCard('theory','Физические свойства кислорода','§14','

$\\text{O}_2$ — газ без цвета и запаха, немного тяжелее воздуха, мало растворим в воде. При сильном охлаждении превращается в голубоватую жидкость.

') + +wgt('Элемент O или простое вещество?','
') + +rememberBox(['Элемент кислород — атомы O в составе веществ.','Простое вещество — газ $O_2$.','Озон $O_3$ — другое простое вещество того же элемента.']) + +qList(['Когда говорят о кислороде-элементе, а когда — о простом веществе?','Назови физические свойства кислорода $O_2$.','Чем озон отличается от кислорода?']) + +secNav('lo2','p15')+readButton('p14'); + wireReadBtn('p14'); +} + +function build_p15(){ + document.getElementById('p15-body').innerHTML = + '
§ 15 · Химия 7

Химические свойства кислорода

' + +'
вещество $+ \\text{O}_2 \\to$ оксид
' + +'
Как кислород реагирует с другими веществами и что такое горение и окисление.
' + +'
горениеоксидокисление
' + +makeCard('theory','Кислород — активное вещество','§15','

Кислород реагирует со многими простыми и сложными веществами. Реакции, идущие с выделением тепла и света, называют горением. Продукты горения простых веществ в кислороде — оксиды.

' + +'
Окисление — реакция вещества с кислородом. Оно бывает быстрым (горение) и медленным (дыхание, гниение, ржавление железа).
') + +makeCard('example','Горение веществ в кислороде',null,'
  • $\\text{C}+\\text{O}_2=\\text{CO}_2$
  • $\\text{S}+\\text{O}_2=\\text{SO}_2$ (резкий запах)
  • $4\\text{P}+5\\text{O}_2=2\\text{P}_2\\text{O}_5$
  • $3\\text{Fe}+2\\text{O}_2=\\text{Fe}_3\\text{O}_4$ (искры)
') + +wgt('Симулятор горения в кислороде','
') + +rememberBox(['Горение — реакция с кислородом, идёт с выделением тепла и света.','Продукт горения простого вещества — оксид.','Окисление бывает быстрым (горение) и медленным.']) + +qList(['Что образуется при горении вещества в кислороде?','Приведи пример медленного окисления.','Запиши уравнение горения углерода.']) + +secNav('p14','p16')+readButton('p15'); + wireReadBtn('p15'); +} + +/* заглушки для ещё не наполненных § (следующая волна) */ (function(){ var P = window.PARAS, B = {}; function ph(p, prev, next){ @@ -102,7 +205,7 @@ window.TIPS = [{ sec:'p13', html:'Глава наполняется содерж '
' + p.num + ' · Химия 7

' + p.name + '

' + '
Содержание этого ' + (p.final ? 'раздела' : 'параграфа') + ' готовится.
' + makeCard('theory', p.name, p.num, - '

Скоро здесь появятся теория, наглядные SVG-схемы, молекулярные модели и интерактивные тренажёры по теме «' + p.name + '». Пока доступна навигация по главе' + (p.final ? '.' : ' и отметка о прочтении.') + '

') + '

Скоро здесь появятся теория, наглядные SVG-схемы и интерактивные тренажёры по теме «' + p.name + '». Пока доступна навигация по главе' + (p.final ? '.' : ' и отметка о прочтении.') + '

') + secNav(prev, next) + (p.final ? '' : readButton(p.id)); if (!p.final) wireReadBtn(p.id); }; @@ -112,6 +215,12 @@ window.TIPS = [{ sec:'p13', html:'Глава наполняется содерж } window.BUILDERS = B; })(); + +/* реальные builder'ы Волны 1 главы 2 */ +window.BUILDERS.p13 = build_p13; +window.BUILDERS.lo2 = build_lo2; +window.BUILDERS.p14 = build_p14; +window.BUILDERS.p15 = build_p15;