Files
Learn_System/frontend/textbooks/math_6_ch1.html
T
Maxim Dolgolyov dd0d63d25a feat(math6): Глава 1, волна 2 — §4–§6 (сложение/вычитание, сдвиг запятой, умножение)
§4 столбик «запятая под запятой» + ловушка выравнивания;
§5 демонстратор сдвига запятой ×/÷10,100,1000 + тренажёр;
§6 подсчёт знаков после запятой (ползунки) + тренажёр умножения.
Целочисленные мантиссы вместо float. Шпаргалки/типсы/глоссарий. Тесты 10/10.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 14:58:44 +03:00

553 lines
50 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<title>Математика 6 · Глава 1 · Десятичные дроби</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js"
onload="renderMathInElement(document.body,{delimiters:[{left:'$$',right:'$$',display:true},{left:'$',right:'$',display:false},{left:'\\[',right:'\\]',display:true},{left:'\\(',right:'\\)',display:false}],throwOnError:false})"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Unbounded:wght@700;800;900&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/css/math6.css">
<script src="/js/api.js" defer></script>
<script src="/js/xp.js" defer></script>
<script src="/js/math6_svg.js" defer></script>
<script src="/js/math6_engine.js" defer></script>
<style>:root{--pri:#4f46e5;--pri2:#3730a3;--pri-soft:#e0e7ff;--acc:#6366f1;--acc2:#4f46e5;--acc-soft:#eef2ff}</style>
</head>
<body>
<header class="hdr" data-wm="0,5">
<div class="hdr-row">
<div>
<h1>Математика 6 · Глава 1</h1>
<div class="hdr-sub">Десятичные дроби: запись и разряды · сравнение и округление · действия · бесконечные дроби</div>
</div>
<div class="hdr-side">
<a href="/textbook/math-6" class="hdr-btn" title="Ко всем главам"><svg class="ic" viewBox="0 0 24 24"><polyline points="15 18 9 12 15 6"/></svg> К математике 6</a>
<button id="search-btn" class="hdr-btn" title="Поиск (Ctrl+K)"><svg class="ic" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="m21 21-4-4"/></svg> <span>Поиск</span></button>
<button id="sidebar-btn" class="hdr-btn" title="Шпаргалка"><svg class="ic" viewBox="0 0 24 24"><line x1="4" y1="6" x2="20" y2="6"/><line x1="4" y1="12" x2="20" y2="12"/><line x1="4" y1="18" x2="14" y2="18"/></svg> Шпаргалка</button>
<button id="theme-btn" class="hdr-btn" title="Сменить тему"><svg class="ic" viewBox="0 0 24 24"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg> <span id="theme-lab">Тёмная</span></button>
</div>
</div>
</header>
<main class="main">
<div class="col-main">
<section class="hero" data-wm="0,5">
<h2>Десятичные дроби</h2>
<p>Десятичная дробь — это привычная запись чисел с запятой: цена, рост, масса, показания приборов. В этой главе мы научимся <b>читать и записывать</b> десятичные дроби по разрядам, <b>сравнивать и округлять</b> их, отмечать на координатном луче и выполнять <b>все четыре действия</b> — вплоть до деления на десятичную дробь и перевода обыкновенных дробей в десятичные.</p>
<div class="hero-row">
<button class="btn-primary" onclick="goTo('p1')"><svg class="ic" viewBox="0 0 24 24"><polygon points="6 4 20 12 6 20 6 4" fill="currentColor" stroke="none"/></svg> Начать § 1</button>
<div class="hero-progress"><span class="hp-label">Прогресс по главе</span><div class="hp-bar"><div id="hero-hp-fill" class="hp-fill"></div></div><span id="hero-hp-text" class="hp-text">0%</span></div>
<div id="hero-xp-badge" class="hero-xp-badge" title="Опыт" data-gamified></div>
</div>
</section>
<section class="psel"><div class="psel-title">Параграфы главы</div><div id="psel-grid" class="psel-grid"></div></section>
<div id="sections"></div>
</div>
<aside class="col-side" id="col-side"><div id="sidebar-content"></div></aside>
<div class="col-side-backdrop" id="col-side-backdrop"></div>
</main>
<footer class="foot" id="m6-foot">Интерактивный учебник «Математика 6» · Глава 1 · Десятичные дроби · LearnSpace</footer>
<div id="ach-popup" class="ach-popup"><svg class="ic" viewBox="0 0 24 24" style="width:22px;height:22px"><polygon points="12,2 22,20 2,20"/></svg><span id="ach-text">Достижение!</span></div>
<div id="gloss-tip" class="gloss-tip"></div>
<div id="search-modal" class="search-modal" role="dialog" aria-label="Поиск по главе">
<div class="search-box">
<input type="text" id="search-input" class="search-input" placeholder="Поиск: понятие, действие, параграф…" autocomplete="off">
<div id="search-results" class="search-results"></div>
<div class="search-foot"><span><kbd>&#8593;&#8595;</kbd> навигация</span><span><kbd>Enter</kbd> открыть</span><span><kbd>Esc</kbd> закрыть</span></div>
</div>
</div>
<script>
'use strict';
window.M6 = {
slug: 'math-6-ch1', lsPrefix: 'math6_ch1', xpKey: 'math6_xp', wm: '0,5',
paras: [
{ id:'p1', num:'§ 1', name:'Десятичная запись дробей. Разряды', sub:'Как устроена запись с запятой' },
{ id:'p2', num:'§ 2', name:'Сравнение и округление', sub:'Что больше и как округлить' },
{ id:'p3', num:'§ 3', name:'Изображение на координатном луче', sub:'Дробь как точка на луче' },
{ id:'p4', num:'§ 4', name:'Сложение и вычитание', sub:'Запятая под запятой' },
{ id:'p5', num:'§ 5', name:'Умножение и деление на 10, 100, 1000', sub:'Сдвиг запятой' },
{ id:'p6', num:'§ 6', name:'Умножение десятичных дробей', sub:'Считаем знаки после запятой' },
{ id:'p7', num:'§ 7', name:'Деление на натуральное число', sub:'Деление уголком' },
{ id:'p8', num:'§ 8', name:'Деление на десятичную дробь', sub:'Переносим запятую' },
{ id:'p9', num:'§ 9', name:'Конечные и бесконечные дроби', sub:'Период дроби' },
{ id:'p10', num:'§ 10', name:'Преобразования выражений', sub:'Обыкновенные и десятичные вместе' },
{ id:'app', num:'§ 12', name:'Математика вокруг нас', sub:'Десятичные дроби в жизни', applied:true },
{ id:'final', num:'★', name:'Финал главы', sub:'Тест · боссы главы 1', final:true }
],
achLabels: {
start:'Начало главы 1!', p1_done:'Разряды освоены!', p2_done:'Сравнение и округление — легко!',
p3_done:'Координатный луч покорён!', p4_done:'Сложение и вычитание — точно!', p5_done:'Сдвиг запятой освоен!',
p6_done:'Умножение десятичных — мастер!', p7_done:'Деление уголком — уверенно!', p8_done:'Деление на дробь — без страха!',
p9_done:'Период дроби найден!', p10_done:'Преобразования — на отлично!', app_done:'Математика вокруг нас!',
ch1_done:'Глава 1 пройдена!'
},
startAch: ['start','Начало главы 1!'],
finalAch: ['ch1_done','Глава 1 пройдена!'],
sidebars: {}, tips: [], glossary: [], builders: {},
footer: 'Интерактивный учебник «Математика 6» · Глава 1 · Десятичные дроби · LearnSpace'
};
/* ===================== ВСПОМОГАТЕЛЬНОЕ ===================== */
function _ri(a,b){ return a + Math.floor(Math.random()*(b-a+1)); }
function _pick(a){ return a[_ri(0,a.length-1)]; }
function _kf(x){ return String(x).replace('.','{,}'); } /* число → KaTeX с запятой */
function _round(n,d){ var p=Math.pow(10,d); return Math.round(n*p)/p; }
/* ===================== § 1. ЗАПИСЬ И РАЗРЯДЫ ===================== */
function buildP1(){
var box=document.getElementById('p1-body'); var h='';
h+=makeCard('theory','Что такое десятичная дробь','1.1',
'<p><b>Десятичная дробь</b> — это дробь со знаменателем $10$, $100$, $1000$ и&nbsp;т.&nbsp;д. Такие дроби записывают <b>без знаменателя</b>, отделяя целую часть от дробной <b>запятой</b>.</p>'
+'<p>$\\dfrac{7}{10}=0{,}7$ &nbsp;·&nbsp; $\\dfrac{25}{100}=0{,}25$ &nbsp;·&nbsp; $3\\dfrac{4}{100}=3{,}04$</p>'
+'<p>Слева от запятой — <b>целая</b> часть, справа — <b>дробная</b>. Сколько нулей в знаменателе, столько цифр после запятой.</p>');
h+=makeCard('rule','Разряды десятичной дроби','1.2',
'<p>После запятой идут разряды: <b>десятые</b> $\\bigl(\\tfrac{1}{10}\\bigr)$, <b>сотые</b> $\\bigl(\\tfrac{1}{100}\\bigr)$, <b>тысячные</b> $\\bigl(\\tfrac{1}{1000}\\bigr)$ и далее.</p>'
+'<table class="tbl"><tr><th>дес.</th><th>ед.</th><th>,</th><th>десятые</th><th>сотые</th><th>тысячные</th></tr>'
+'<tr><td>1</td><td>2</td><td><b>,</b></td><td>3</td><td>0</td><td>5</td></tr></table>'
+'<p>Это число $12{,}305$ — «двенадцать целых триста пять тысячных».</p>');
h+=makeCard('example','Читаем по разрядам','1.3',
'<p>$0{,}7$ — семь десятых; &nbsp; $0{,}09$ — девять сотых; &nbsp; $5{,}28$ — пять целых двадцать восемь сотых.</p>'
+'<p>Приписывание нулей <b>справа</b> не меняет дробь: $0{,}5=0{,}50=0{,}500$.</p>');
h+='<div class="wg" id="p1-iv1"><div class="wg-header"><span class="wg-badge">Интерактив 1</span><div class="wg-title">Разрядный конструктор</div></div>'
+'<div class="wg-help">Двигай ползунки разрядов — число собирается из целой части и десятых, сотых, тысячных.</div>'
+'<div class="sliders">'
+'<label>Целые = <b id="p1-cv">3</b><input type="range" id="p1-c" min="0" max="20" value="3"></label>'
+'<label>Десятые = <b id="p1-tv">2</b><input type="range" id="p1-t" min="0" max="9" value="2"></label>'
+'<label>Сотые = <b id="p1-hv">5</b><input type="range" id="p1-h" min="0" max="9" value="5"></label>'
+'<label>Тысячные = <b id="p1-thv">0</b><input type="range" id="p1-th" min="0" max="9" value="0"></label>'
+'</div><div id="p1-iv1-out" class="qbox"></div></div>';
h+='<div class="wg" id="p1-iv2"><div class="wg-header"><span class="wg-badge">Интерактив 2</span><div class="wg-title">Какая цифра в разряде?</div></div>'
+'<div class="wg-help">Назови цифру в указанном разряде данного числа. Введи одну цифру (09).</div>'
+'<div class="score-display"><span>Вопрос <b id="p1-qi">1</b> / 6</span><span>Очки: <b id="p1-qs">0</b> / 6</span></div>'
+'<div id="p1-qq" class="qbox"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap"><input type="number" id="p1-qa" class="tinp" style="width:90px;text-align:center" min="0" max="9"><button class="btn primary" id="p1-qgo">Проверить</button></div>'
+'<div class="feedback" id="p1-qfb"></div></div>';
h+=secNav(null,'p2')+readBtn('p1');
box.innerHTML=h; renderMath(box);
(function(){
var c=document.getElementById('p1-c'),t=document.getElementById('p1-t'),hh=document.getElementById('p1-h'),th=document.getElementById('p1-th'),out=document.getElementById('p1-iv1-out');
function upd(){
document.getElementById('p1-cv').textContent=c.value; document.getElementById('p1-tv').textContent=t.value;
document.getElementById('p1-hv').textContent=hh.value; document.getElementById('p1-thv').textContent=th.value;
var ci=+c.value,ti=+t.value,hi=+hh.value,thi=+th.value, total=ci*1000+ti*100+hi*10+thi, val=total/1000;
out.innerHTML='<div style="font-size:1.5rem;font-weight:800;color:var(--pri2)">$'+_kf(val)+'$</div>'
+'<div style="font-size:.88rem;color:var(--muted);margin-top:6px">$'+ci+' + '+ti+'\\cdot 0{,}1 + '+hi+'\\cdot 0{,}01 + '+thi+'\\cdot 0{,}001 = \\dfrac{'+total+'}{1000}$</div>';
renderMath(out);
}
c.oninput=t.oninput=hh.oninput=th.oninput=upd; upd();
})();
(function(){
var places=[['десятков',2],['единиц',1],['десятых',-1],['сотых',-2],['тысячных',-3]];
var i=0,score=0,cur=null;
function gen(){ var ws=String(_ri(10,99)), ds=String(_ri(0,999)).padStart(3,'0'), pl=_pick(places), dg;
if(pl[1]===2)dg=+ws[0]; else if(pl[1]===1)dg=+ws[1]; else if(pl[1]===-1)dg=+ds[0]; else if(pl[1]===-2)dg=+ds[1]; else dg=+ds[2];
cur={num:ws+','+ds, place:pl[0], digit:dg}; }
function show(){
if(i>=6){ document.getElementById('p1-qq').innerHTML='<b>Готово!</b> Результат: '+score+' / 6'; if(score>=5){addXp(15,'p1-iv2');bumpProgress('p1',30);}else if(score>=3){addXp(8,'p1-iv2');bumpProgress('p1',18);} return; }
gen(); document.getElementById('p1-qi').textContent=i+1;
document.getElementById('p1-qq').innerHTML='Число <b style="font-family:JetBrains Mono,monospace;font-size:1.25rem">'+cur.num+'</b>. Какая цифра в разряде <b>'+cur.place+'</b>?';
document.getElementById('p1-qa').value=''; document.getElementById('p1-qfb').style.display='none';
}
function go(){ if(i>=6)return; var fb=document.getElementById('p1-qfb'), a=parseInt(document.getElementById('p1-qa').value,10);
if(isNaN(a)){ feedback(fb,false,'Введи одну цифру 0–9.'); return; }
if(a===cur.digit){ score++; feedback(fb,true,'✓ Верно! В разряде '+cur.place+' стоит '+cur.digit+'.'); } else feedback(fb,false,'✗ Нет. Правильный ответ: '+cur.digit+'.');
document.getElementById('p1-qs').textContent=score; i++; setTimeout(show,1100); }
document.getElementById('p1-qgo').addEventListener('click',go);
document.getElementById('p1-qa').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); });
show();
})();
}
/* ===================== § 2. СРАВНЕНИЕ И ОКРУГЛЕНИЕ ===================== */
function buildP2(){
var box=document.getElementById('p2-body'); var h='';
h+=makeCard('rule','Как сравнивать десятичные дроби','2.1',
'<p>1) Сначала сравнивают <b>целые</b> части: больше та дробь, у которой целая часть больше.</p>'
+'<p>2) Если целые части равны — сравнивают <b>поразрядно</b> слева направо: десятые, потом сотые и&nbsp;т.&nbsp;д.</p>'
+'<p>Чтобы было удобно, число знаков после запятой <b>уравнивают</b> нулями: $0{,}5$ и $0{,}48 \\Rightarrow 0{,}50$ и $0{,}48$, значит $0{,}5>0{,}48$.</p>');
h+=makeCard('rule','Округление до разряда','2.2',
'<p>Чтобы округлить дробь до некоторого разряда, смотрят на <b>следующую</b> цифру:</p>'
+'<ul style="padding-left:22px;line-height:1.9"><li>если она $0,1,2,3,4$ — разряд <b>оставляют</b>, остальное отбрасывают;</li>'
+'<li>если она $5,6,7,8,9$ — разряд <b>увеличивают на 1</b>.</li></ul>'
+'<p>$3{,}472 \\approx 3{,}5$ (до десятых), $\\;3{,}472 \\approx 3$ (до целых).</p>');
h+=makeCard('example','Примеры','2.3',
'<p>$0{,}9>0{,}89$, ведь $0{,}90>0{,}89$. &nbsp; $2{,}1<2{,}15$. &nbsp; $7{,}0=7$.</p>'
+'<p>$12{,}96 \\approx 13{,}0$ (до десятых) — при округлении $9$ превратилось в $10$, перенос в целые.</p>');
h+='<div class="wg" id="p2-iv1"><div class="wg-header"><span class="wg-badge">Интерактив 1</span><div class="wg-title">Что больше?</div></div>'
+'<div class="wg-help">Сравни два числа на координатной прямой и выбери верный знак.</div>'
+'<div class="score-display"><span>Вопрос <b id="p2-ci">1</b> / 6</span><span>Очки: <b id="p2-cs">0</b> / 6</span></div>'
+'<div id="p2-cfig"></div><div id="p2-cq" class="qbox"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;flex-wrap:wrap"><button class="btn primary" data-cmp=">">a &gt; b</button><button class="btn primary" data-cmp="=">a = b</button><button class="btn primary" data-cmp="<">a &lt; b</button></div>'
+'<div class="feedback" id="p2-cfb"></div></div>';
h+='<div class="wg" id="p2-iv2"><div class="wg-header"><span class="wg-badge">Интерактив 2</span><div class="wg-title">Округли число</div></div>'
+'<div class="wg-help">Округли данное число до указанного разряда. Десятичную запятую вводи как точку или запятую.</div>'
+'<div class="score-display"><span>Вопрос <b id="p2-ri">1</b> / 5</span><span>Очки: <b id="p2-rs">0</b> / 5</span></div>'
+'<div id="p2-rq" class="qbox"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap"><input type="text" id="p2-ra" class="tinp" style="width:120px;text-align:center" placeholder="ответ"><button class="btn primary" id="p2-rgo">Проверить</button></div>'
+'<div class="feedback" id="p2-rfb"></div></div>';
h+=secNav('p1','p3')+readBtn('p2');
box.innerHTML=h; renderMath(box);
(function(){
var i=0,score=0,cur=null;
function gen(){ var a=_ri(0,49)/10, b=_ri(0,49)/10; cur={a:a,b:b}; }
function show(){
if(i>=6){ document.getElementById('p2-cq').innerHTML='<b>Готово!</b> Результат: '+score+' / 6'; document.getElementById('p2-cfig').innerHTML=''; if(score>=5){addXp(15,'p2-iv1');bumpProgress('p2',30);}else if(score>=3){addXp(8,'p2-iv1');bumpProgress('p2',16);} return; }
gen(); document.getElementById('p2-ci').textContent=i+1;
document.getElementById('p2-cfig').innerHTML=Math6.numberLine({min:0,max:5,minor:0.5,major:1,width:560,marks:[{v:cur.a,label:'a',color:'#4f46e5'},{v:cur.b,label:'b',color:'#e11d48',above:false}]});
document.getElementById('p2-cq').innerHTML='$a='+_kf(cur.a)+'$, &nbsp; $b='+_kf(cur.b)+'$. Что верно?'; renderMath(document.getElementById('p2-cq'));
document.getElementById('p2-cfb').style.display='none';
}
function ans(sym){ if(i>=6)return; var fb=document.getElementById('p2-cfb'), correct=cur.a>cur.b?'>':(cur.a<cur.b?'<':'=');
if(sym===correct){ score++; feedback(fb,true,'✓ Верно: $'+_kf(cur.a)+' '+correct+' '+_kf(cur.b)+'$.'); } else feedback(fb,false,'✗ Нет. Верно: $'+_kf(cur.a)+' '+correct+' '+_kf(cur.b)+'$.');
document.getElementById('p2-cs').textContent=score; i++; setTimeout(show,1100); }
document.querySelectorAll('#p2-iv1 [data-cmp]').forEach(function(b){ b.addEventListener('click',function(){ ans(b.getAttribute('data-cmp')); }); });
show();
})();
(function(){
var i=0,score=0,cur=null;
function gen(){ var n=_ri(105,4995)/100, pl=_pick([['целых',0],['десятых',1]]); cur={n:n, place:pl[0], d:pl[1], ans:_round(n,pl[1])}; }
function show(){
if(i>=5){ document.getElementById('p2-rq').innerHTML='<b>Готово!</b> Результат: '+score+' / 5'; if(score>=4){addXp(15,'p2-iv2');bumpProgress('p2',30);}else if(score>=2){addXp(8,'p2-iv2');bumpProgress('p2',16);} return; }
gen(); document.getElementById('p2-ri').textContent=i+1;
document.getElementById('p2-rq').innerHTML='Округли $'+_kf(n_str(cur.n))+'$ до <b>'+cur.place+'</b>.'; renderMath(document.getElementById('p2-rq'));
document.getElementById('p2-ra').value=''; document.getElementById('p2-rfb').style.display='none';
}
function n_str(x){ return x; }
function go(){ if(i>=5)return; var fb=document.getElementById('p2-rfb'), raw=document.getElementById('p2-ra').value.replace(',','.').trim(); var v=parseFloat(raw);
if(isNaN(v)){ feedback(fb,false,'Введи число.'); return; }
if(Math.abs(v-cur.ans)<1e-9){ score++; feedback(fb,true,'✓ Верно: $'+_kf(cur.ans)+'$.'); } else feedback(fb,false,'✗ Нет. Правильно: $'+_kf(cur.ans)+'$.');
document.getElementById('p2-rs').textContent=score; i++; setTimeout(show,1200); }
document.getElementById('p2-rgo').addEventListener('click',go);
document.getElementById('p2-ra').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); });
show();
})();
}
/* ===================== § 3. КООРДИНАТНЫЙ ЛУЧ ===================== */
function buildP3(){
var box=document.getElementById('p3-body'); var h='';
h+=makeCard('theory','Координатный луч','3.1',
'<p><b>Координатный луч</b> — это луч с началом в точке $O$, которой соответствует число $0$, выбранным <b>единичным отрезком</b> и направлением.</p>'
+'<p>Каждой точке луча соответствует <b>координата</b> — число, показывающее, на каком расстоянии (в единичных отрезках) от начала она находится.</p>');
h+=makeCard('rule','Как отметить десятичную дробь','3.2',
'<p>Чтобы отметить десятые, единичный отрезок делят на <b>10</b> равных частей. Тогда $0{,}7$ — это $7$ маленьких делений от нуля.</p>'
+'<p>$1{,}3$ лежит между $1$ и $2$, ближе к $1$; $2{,}5$ — ровно посередине между $2$ и $3$.</p>');
h+=makeCard('example','Пример','3.3',
'<p>Точка с координатой $0{,}4$ — четвёртое деление после нуля. Точка с координатой $1{,}8$ — восьмое деление после единицы.</p>');
h+='<div class="wg" id="p3-iv1"><div class="wg-header"><span class="wg-badge">Интерактив 1</span><div class="wg-title">Прочитай координату</div></div>'
+'<div class="wg-help">Определи координату отмеченной точки. Запятую вводи как точку или запятую.</div>'
+'<div class="score-display"><span>Вопрос <b id="p3-ai">1</b> / 5</span><span>Очки: <b id="p3-as">0</b> / 5</span></div>'
+'<div id="p3-afig"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap"><input type="text" id="p3-aa" class="tinp" style="width:120px;text-align:center" placeholder="координата"><button class="btn primary" id="p3-ago">Проверить</button></div>'
+'<div class="feedback" id="p3-afb"></div></div>';
h+='<div class="wg" id="p3-iv2"><div class="wg-header"><span class="wg-badge">Интерактив 2</span><div class="wg-title">Найди точку</div></div>'
+'<div class="wg-help">Какая из точек $A, B, C, D$ имеет указанную координату?</div>'
+'<div class="score-display"><span>Вопрос <b id="p3-bi">1</b> / 5</span><span>Очки: <b id="p3-bs">0</b> / 5</span></div>'
+'<div id="p3-bfig"></div><div id="p3-bq" class="qbox"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;flex-wrap:wrap"><button class="btn primary" data-pt="A">A</button><button class="btn primary" data-pt="B">B</button><button class="btn primary" data-pt="C">C</button><button class="btn primary" data-pt="D">D</button></div>'
+'<div class="feedback" id="p3-bfb"></div></div>';
h+=secNav('p2','p4')+readBtn('p3');
box.innerHTML=h; renderMath(box);
(function(){
var i=0,score=0,cur=0;
function show(){
if(i>=5){ document.getElementById('p3-afig').innerHTML='<b>Готово!</b> Результат: '+score+' / 5'; if(score>=4){addXp(15,'p3-iv1');bumpProgress('p3',30);}else if(score>=2){addXp(8,'p3-iv1');bumpProgress('p3',16);} return; }
cur=_ri(1,29)/10; document.getElementById('p3-ai').textContent=i+1;
document.getElementById('p3-afig').innerHTML=Math6.numberLine({min:0,max:3,minor:0.1,major:1,ray:true,width:560,marks:[{v:cur,label:'?',color:'#e11d48'}]});
document.getElementById('p3-aa').value=''; document.getElementById('p3-afb').style.display='none';
}
function go(){ if(i>=5)return; var fb=document.getElementById('p3-afb'), v=parseFloat(document.getElementById('p3-aa').value.replace(',','.').trim());
if(isNaN(v)){ feedback(fb,false,'Введи число.'); return; }
if(Math.abs(v-cur)<0.001){ score++; feedback(fb,true,'✓ Верно: $'+_kf(cur)+'$.'); } else feedback(fb,false,'✗ Нет. Координата: $'+_kf(cur)+'$.');
document.getElementById('p3-as').textContent=score; i++; setTimeout(show,1200); }
document.getElementById('p3-ago').addEventListener('click',go);
document.getElementById('p3-aa').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); });
show();
})();
(function(){
var i=0,score=0,cur=null;
function gen(){ var set={}; var vals=[]; while(vals.length<4){ var v=_ri(2,48)/10; if(!set[v]){ set[v]=1; vals.push(v); } } vals.sort(function(a,b){return a-b;});
var labels=['A','B','C','D']; var marks=vals.map(function(v,k){ return {v:v,label:labels[k],color:'#4f46e5'}; });
var ti=_ri(0,3); cur={marks:marks, target:vals[ti], label:labels[ti]}; }
function show(){
if(i>=5){ document.getElementById('p3-bfig').innerHTML=''; document.getElementById('p3-bq').innerHTML='<b>Готово!</b> Результат: '+score+' / 5'; if(score>=4){addXp(15,'p3-iv2');bumpProgress('p3',30);}else if(score>=2){addXp(8,'p3-iv2');bumpProgress('p3',16);} return; }
gen(); document.getElementById('p3-bi').textContent=i+1;
document.getElementById('p3-bfig').innerHTML=Math6.numberLine({min:0,max:5,minor:0.5,major:1,width:560,marks:cur.marks});
document.getElementById('p3-bq').innerHTML='Точка с координатой $'+_kf(cur.target)+'$ — это ...?'; renderMath(document.getElementById('p3-bq'));
document.getElementById('p3-bfb').style.display='none';
}
function ans(lab){ if(i>=5)return; var fb=document.getElementById('p3-bfb');
if(lab===cur.label){ score++; feedback(fb,true,'✓ Верно — это точка '+cur.label+'.'); } else feedback(fb,false,'✗ Нет. Это точка '+cur.label+'.');
document.getElementById('p3-bs').textContent=score; i++; setTimeout(show,1100); }
document.querySelectorAll('#p3-iv2 [data-pt]').forEach(function(b){ b.addEventListener('click',function(){ ans(b.getAttribute('data-pt')); }); });
show();
})();
}
/* ===================== § 4. СЛОЖЕНИЕ И ВЫЧИТАНИЕ ===================== */
function _dec(x){ var s=String(x), i=s.indexOf('.'); return i<0?0:s.length-i-1; }
function _mant(x,d){ return Math.round(x*Math.pow(10,d)); }
function _splitNum(x){ var s=String(x).replace(',','.').split('.'); return {i:s[0], f:s[1]||''}; }
function _rnum(maxd){ var d=_ri(0,maxd==null?2:maxd); var m=_ri(1, d===0?99:(d===1?499:4999)); return m/Math.pow(10,d); }
function _colText(a,b,op){
var A=_splitNum(a),B=_splitNum(b), iw=Math.max(A.i.length,B.i.length), fw=Math.max(A.f.length,B.f.length);
function line(sign,N){ var f=fw?(','+N.f.padEnd(fw,'0')):''; return sign+' '+N.i.padStart(iw)+f; }
var w=2+iw+(fw?fw+1:0);
return '<div style="font-family:JetBrains Mono,monospace;font-size:1.3rem;white-space:pre;display:inline-block;color:var(--pri2)">'+line(' ',A)+'\n'+line(op,B)+'\n'+'─'.repeat(w)+'</div>';
}
function buildP4(){
var box=document.getElementById('p4-body'); var h='';
h+=makeCard('rule','Сложение и вычитание «в столбик»','4.1',
'<p>1) Записывают числа так, чтобы <b>запятая стояла под запятой</b>, одинаковые разряды — друг под другом.</p>'
+'<p>2) Уравнивают число знаков после запятой <b>нулями</b>.</p>'
+'<p>3) Складывают или вычитают как натуральные числа, не глядя на запятую.</p>'
+'<p>4) В ответе ставят запятую <b>под запятыми</b>.</p>');
h+=makeCard('example','Примеры','4.2',
'<p>$3{,}4 + 12{,}65 = 3{,}40 + 12{,}65 = 16{,}05$.</p>'
+'<p>$7 - 2{,}3 = 7{,}0 - 2{,}3 = 4{,}7$.</p>');
h+='<div class="wg" id="p4-iv1"><div class="wg-header"><span class="wg-badge">Интерактив 1</span><div class="wg-title">Столбик: посчитай сам</div></div>'
+'<div class="wg-help">Запятая под запятой — выполни действие и введи ответ (запятая или точка).</div>'
+'<div class="score-display"><span>Пример <b id="p4-i">1</b> / 6</span><span>Очки: <b id="p4-s">0</b> / 6</span></div>'
+'<div id="p4-fig" style="text-align:center;margin-bottom:10px"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap"><input type="text" id="p4-a" class="tinp" style="width:130px;text-align:center" placeholder="ответ"><button class="btn primary" id="p4-go">Проверить</button></div>'
+'<div class="feedback" id="p4-fb"></div></div>';
h+='<div class="wg" id="p4-iv2"><div class="wg-header"><span class="wg-badge">Интерактив 2</span><div class="wg-title">Найди ошибку выравнивания</div></div>'
+'<div class="wg-help">Частая ошибка — сложить «по правому краю», не выровняв запятую. Выбери <b>верный</b> ответ.</div>'
+'<div class="score-display"><span>Вопрос <b id="p4-ei">1</b> / 5</span><span>Очки: <b id="p4-es">0</b> / 5</span></div>'
+'<div id="p4-eq" class="qbox"></div><div id="p4-eopts" style="display:flex;gap:10px;justify-content:center;flex-wrap:wrap"></div>'
+'<div class="feedback" id="p4-efb"></div></div>';
h+=secNav('p3','p5')+readBtn('p4');
box.innerHTML=h; renderMath(box);
(function(){
var i=0,score=0,cur=null;
function gen(){ var op=_pick(['+','']), a=_rnum(2), b=_rnum(2); if(op===''&&b>a){ var t=a;a=b;b=t; }
var D=Math.max(_dec(a),_dec(b)), A=_mant(a,D),B=_mant(b,D), r=(op==='+'?A+B:A-B)/Math.pow(10,D); cur={a:a,b:b,op:op,r:r}; }
function show(){
if(i>=6){ document.getElementById('p4-fig').innerHTML='<b>Готово!</b> Результат: '+score+' / 6'; if(score>=5){addXp(15,'p4-iv1');bumpProgress('p4',30);}else if(score>=3){addXp(8,'p4-iv1');bumpProgress('p4',16);} return; }
gen(); document.getElementById('p4-i').textContent=i+1;
document.getElementById('p4-fig').innerHTML=_colText(cur.a,cur.b,cur.op);
document.getElementById('p4-a').value=''; document.getElementById('p4-fb').style.display='none';
}
function go(){ if(i>=6)return; var fb=document.getElementById('p4-fb'), v=parseFloat(document.getElementById('p4-a').value.replace(',','.').trim());
if(isNaN(v)){ feedback(fb,false,'Введи число.'); return; }
if(Math.abs(v-cur.r)<1e-9){ score++; feedback(fb,true,'✓ Верно: $'+_kf(cur.r)+'$.'); } else feedback(fb,false,'✗ Нет. Правильно: $'+_kf(cur.r)+'$.');
document.getElementById('p4-s').textContent=score; i++; setTimeout(show,1200); }
document.getElementById('p4-go').addEventListener('click',go);
document.getElementById('p4-a').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); });
show();
})();
(function(){
var i=0,score=0,cur=null;
function gen(){ var a=_rnum(2), b=_rnum(2); var D=Math.max(_dec(a),_dec(b)), r=(_mant(a,D)+_mant(b,D))/Math.pow(10,D);
// ловушка: выравнивание по правому краю (складываем мантиссы как целые)
var trapD=Math.max(_dec(a),_dec(b)); var trap=(_mant(a,_dec(a))+_mant(b,_dec(b)))/Math.pow(10,trapD);
var opts=[r]; if(Math.abs(trap-r)>1e-9)opts.push(trap); opts.push(_round(r+_pick([0.1,-0.1,1,-1]),2));
opts=opts.filter(function(v,k,arr){return arr.indexOf(v)===k;}); while(opts.length<3)opts.push(_round(r+_ri(1,9)/10,2));
// перемешать
for(var j=opts.length-1;j>0;j--){ var k=_ri(0,j); var t=opts[j];opts[j]=opts[k];opts[k]=t; }
cur={a:a,b:b,r:r,opts:opts.slice(0,3)}; }
function show(){
if(i>=5){ document.getElementById('p4-eq').innerHTML='<b>Готово!</b> Результат: '+score+' / 5'; document.getElementById('p4-eopts').innerHTML=''; if(score>=4){addXp(15,'p4-iv2');bumpProgress('p4',30);}else if(score>=2){addXp(8,'p4-iv2');bumpProgress('p4',16);} return; }
gen(); document.getElementById('p4-ei').textContent=i+1;
document.getElementById('p4-eq').innerHTML='Чему равно $'+_kf(cur.a)+' + '+_kf(cur.b)+'$?'; renderMath(document.getElementById('p4-eq'));
document.getElementById('p4-eopts').innerHTML=cur.opts.map(function(o){ return '<button class="btn primary" data-v="'+o+'">$'+_kf(o)+'$</button>'; }).join('');
document.querySelectorAll('#p4-eopts [data-v]').forEach(function(b){ b.addEventListener('click',function(){ ans(parseFloat(b.getAttribute('data-v'))); }); });
renderMath(document.getElementById('p4-eopts'));
document.getElementById('p4-efb').style.display='none';
}
function ans(v){ if(i>=5)return; var fb=document.getElementById('p4-efb');
if(Math.abs(v-cur.r)<1e-9){ score++; feedback(fb,true,'✓ Верно: $'+_kf(cur.r)+'$. Запятая под запятой!'); } else feedback(fb,false,'✗ Нет. Правильно $'+_kf(cur.r)+'$ — выравнивай по запятой.');
document.getElementById('p4-es').textContent=score; i++; setTimeout(show,1300); }
show();
})();
}
/* ===================== § 5. УМНОЖЕНИЕ И ДЕЛЕНИЕ НА 10, 100, 1000 ===================== */
function buildP5(){
var box=document.getElementById('p5-body'); var h='';
h+=makeCard('rule','Сдвиг запятой','5.1',
'<p>Чтобы <b>умножить</b> десятичную дробь на $10$, $100$, $1000$, запятую переносят <b>вправо</b> на $1$, $2$, $3$ знака.</p>'
+'<p>Чтобы <b>разделить</b> на $10$, $100$, $1000$, запятую переносят <b>влево</b> на $1$, $2$, $3$ знака.</p>'
+'<p>Если цифр не хватает — дописывают <b>нули</b>: $3{,}5\\cdot 100 = 350$, &nbsp; $4\\div 100 = 0{,}04$.</p>');
h+=makeCard('example','Примеры','5.2',
'<p>$2{,}71\\cdot 10 = 27{,}1$ &nbsp;·&nbsp; $0{,}6\\cdot 1000 = 600$ &nbsp;·&nbsp; $58{,}3\\div 100 = 0{,}583$.</p>');
h+='<div class="wg" id="p5-iv1"><div class="wg-header"><span class="wg-badge">Интерактив 1</span><div class="wg-title">Куда сдвинуть запятую?</div></div>'
+'<div class="wg-help">Выбери число и действие — посмотри, как и куда переносится запятая.</div>'
+'<div class="sliders"><label>Число = <b id="p5-nv">3,45</b><input type="range" id="p5-n" min="0" max="5" value="2"></label></div>'
+'<div style="display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:8px">'
+'<button class="btn" data-op="0.001">÷1000</button><button class="btn" data-op="0.01">÷100</button><button class="btn" data-op="0.1">÷10</button>'
+'<button class="btn primary" data-op="10">×10</button><button class="btn primary" data-op="100">×100</button><button class="btn primary" data-op="1000">×1000</button></div>'
+'<div id="p5-out" class="qbox"></div></div>';
h+='<div class="wg" id="p5-iv2"><div class="wg-header"><span class="wg-badge">Интерактив 2</span><div class="wg-title">Вычисли в уме</div></div>'
+'<div class="wg-help">Перенеси запятую и введи ответ.</div>'
+'<div class="score-display"><span>Пример <b id="p5-i">1</b> / 6</span><span>Очки: <b id="p5-s">0</b> / 6</span></div>'
+'<div id="p5-q" class="qbox"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap"><input type="text" id="p5-a" class="tinp" style="width:130px;text-align:center" placeholder="ответ"><button class="btn primary" id="p5-go">Проверить</button></div>'
+'<div class="feedback" id="p5-fb"></div></div>';
h+=secNav('p4','p6')+readBtn('p5');
box.innerHTML=h; renderMath(box);
(function(){
var NUMS=[0.6,2.71,3.45,58.3,0.04,12.5]; var sl=document.getElementById('p5-n'), out=document.getElementById('p5-out');
function shift(n,f){ var d=_dec(n); if(f>=1){ var k=Math.round(Math.log10(f)); return {res:_round(n*f, Math.max(0,d-k)), dir:'вправо', k:k}; } var k2=Math.round(-Math.log10(f)); return {res:_round(n/Math.pow(10,k2), d+k2), dir:'влево', k:k2}; }
var lastF=10;
function render(){ var n=NUMS[+sl.value]; document.getElementById('p5-nv').textContent=_kf(n).replace('{,}',','); var r=shift(n,lastF);
var sign=lastF>=1?'\\cdot '+lastF:'\\div '+Math.round(1/lastF);
out.innerHTML='<div style="font-size:1.4rem;font-weight:800;color:var(--pri2)">$'+_kf(n)+' '+sign+' = '+_kf(r.res)+'$</div>'
+'<div style="font-size:.88rem;color:var(--muted);margin-top:6px">Запятая сдвигается <b>'+r.dir+'</b> на '+r.k+' '+(r.k===1?'знак':'знака')+'.</div>'; renderMath(out); }
sl.oninput=render;
document.querySelectorAll('#p5-iv1 [data-op]').forEach(function(b){ b.addEventListener('click',function(){ lastF=parseFloat(b.getAttribute('data-op')); render(); }); });
render();
})();
(function(){
var i=0,score=0,cur=null, fs=[10,100,1000,0.1,0.01,0.001];
function gen(){ var n=_rnum(2), f=_pick(fs); var d=_dec(n), r; if(f>=1){ var k=Math.round(Math.log10(f)); r=_round(n*f,Math.max(0,d-k)); } else { var k2=Math.round(-Math.log10(f)); r=_round(n/Math.pow(10,k2), d+k2); } cur={n:n,f:f,r:r}; }
function show(){
if(i>=6){ document.getElementById('p5-q').innerHTML='<b>Готово!</b> Результат: '+score+' / 6'; if(score>=5){addXp(15,'p5-iv2');bumpProgress('p5',30);}else if(score>=3){addXp(8,'p5-iv2');bumpProgress('p5',16);} return; }
gen(); document.getElementById('p5-i').textContent=i+1;
var sign=cur.f>=1?'\\cdot '+cur.f:'\\div '+Math.round(1/cur.f);
document.getElementById('p5-q').innerHTML='Вычисли $'+_kf(cur.n)+' '+sign+'$'; renderMath(document.getElementById('p5-q'));
document.getElementById('p5-a').value=''; document.getElementById('p5-fb').style.display='none';
}
function go(){ if(i>=6)return; var fb=document.getElementById('p5-fb'), v=parseFloat(document.getElementById('p5-a').value.replace(',','.').trim());
if(isNaN(v)){ feedback(fb,false,'Введи число.'); return; }
if(Math.abs(v-cur.r)<1e-9){ score++; feedback(fb,true,'✓ Верно: $'+_kf(cur.r)+'$.'); } else feedback(fb,false,'✗ Нет. Правильно: $'+_kf(cur.r)+'$.');
document.getElementById('p5-s').textContent=score; i++; setTimeout(show,1200); }
document.getElementById('p5-go').addEventListener('click',go);
document.getElementById('p5-a').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); });
show();
})();
}
/* ===================== § 6. УМНОЖЕНИЕ ДЕСЯТИЧНЫХ ДРОБЕЙ ===================== */
function buildP6(){
var box=document.getElementById('p6-body'); var h='';
h+=makeCard('rule','Как умножать десятичные дроби','6.1',
'<p>1) Умножают числа, <b>не обращая внимания на запятые</b> (как натуральные).</p>'
+'<p>2) В произведении отделяют запятой <b>столько</b> цифр справа, сколько их после запятой у <b>обоих</b> множителей вместе.</p>');
h+=makeCard('example','Пример','6.2',
'<p>$1{,}2\\cdot 0{,}3$: умножаем $12\\cdot 3 = 36$; всего знаков после запятой $1+1=2$, значит $1{,}2\\cdot 0{,}3 = 0{,}36$.</p>'
+'<p>$0{,}25\\cdot 4 = 1$ (знаков $2+0=2$: $100\\to 1{,}00 = 1$).</p>');
h+='<div class="wg" id="p6-iv1"><div class="wg-header"><span class="wg-badge">Интерактив 1</span><div class="wg-title">Считаем знаки после запятой</div></div>'
+'<div class="wg-help">Двигай множители — смотри, как число знаков после запятой определяет ответ.</div>'
+'<div class="sliders"><label>Первый = <b id="p6-av">1,2</b><input type="range" id="p6-asl" min="0" max="5" value="1"></label>'
+'<label>Второй = <b id="p6-bv">0,3</b><input type="range" id="p6-bsl" min="0" max="5" value="2"></label></div>'
+'<div id="p6-out" class="qbox"></div></div>';
h+='<div class="wg" id="p6-iv2"><div class="wg-header"><span class="wg-badge">Интерактив 2</span><div class="wg-title">Тренажёр умножения</div></div>'
+'<div class="wg-help">Перемножь десятичные дроби и введи ответ.</div>'
+'<div class="score-display"><span>Пример <b id="p6-i">1</b> / 6</span><span>Очки: <b id="p6-s">0</b> / 6</span></div>'
+'<div id="p6-q" class="qbox"></div>'
+'<div style="display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap"><input type="text" id="p6-a" class="tinp" style="width:130px;text-align:center" placeholder="ответ"><button class="btn primary" id="p6-go">Проверить</button></div>'
+'<div class="feedback" id="p6-fb"></div></div>';
h+=secNav('p5','p7')+readBtn('p6');
box.innerHTML=h; renderMath(box);
(function(){
var AS=[0.4,1.2,0.25,3.5,0.06,2.5], BS=[0.3,4,0.2,1.5,0.7,0.08];
var asl=document.getElementById('p6-asl'), bsl=document.getElementById('p6-bsl'), out=document.getElementById('p6-out');
function render(){ var a=AS[+asl.value], b=BS[+bsl.value]; document.getElementById('p6-av').textContent=_kf(a).replace('{,}',','); document.getElementById('p6-bv').textContent=_kf(b).replace('{,}',',');
var da=_dec(a),db=_dec(b), ma=_mant(a,da),mb=_mant(b,db), p=ma*mb, r=p/Math.pow(10,da+db);
out.innerHTML='<div style="font-size:.95rem;color:var(--muted)">$'+ma+'\\cdot '+mb+' = '+p+'$, знаков после запятой: $'+da+'+'+db+'='+(da+db)+'$</div>'
+'<div style="font-size:1.4rem;font-weight:800;color:var(--pri2);margin-top:6px">$'+_kf(a)+'\\cdot '+_kf(b)+' = '+_kf(r)+'$</div>'; renderMath(out); }
asl.oninput=render; bsl.oninput=render; render();
})();
(function(){
var i=0,score=0,cur=null;
function gen(){ var a=_rnum(_pick([1,2])), b=_rnum(_pick([0,1])); var da=_dec(a),db=_dec(b), r=_mant(a,da)*_mant(b,db)/Math.pow(10,da+db); cur={a:a,b:b,r:r}; }
function show(){
if(i>=6){ document.getElementById('p6-q').innerHTML='<b>Готово!</b> Результат: '+score+' / 6'; if(score>=5){addXp(15,'p6-iv2');bumpProgress('p6',30);}else if(score>=3){addXp(8,'p6-iv2');bumpProgress('p6',16);} return; }
gen(); document.getElementById('p6-i').textContent=i+1;
document.getElementById('p6-q').innerHTML='Вычисли $'+_kf(cur.a)+'\\cdot '+_kf(cur.b)+'$'; renderMath(document.getElementById('p6-q'));
document.getElementById('p6-a').value=''; document.getElementById('p6-fb').style.display='none';
}
function go(){ if(i>=6)return; var fb=document.getElementById('p6-fb'), v=parseFloat(document.getElementById('p6-a').value.replace(',','.').trim());
if(isNaN(v)){ feedback(fb,false,'Введи число.'); return; }
if(Math.abs(v-cur.r)<1e-9){ score++; feedback(fb,true,'✓ Верно: $'+_kf(cur.r)+'$.'); } else feedback(fb,false,'✗ Нет. Правильно: $'+_kf(cur.r)+'$.');
document.getElementById('p6-s').textContent=score; i++; setTimeout(show,1200); }
document.getElementById('p6-go').addEventListener('click',go);
document.getElementById('p6-a').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); });
show();
})();
}
/* ===================== ДАННЫЕ САЙДБАРА / ГЛОССАРИЯ ===================== */
var SIDEBARS = {
p1:{ title:'Шпаргалка § 1', rows:[
['Десятичная дробь','знаменатель $10,100,1000\\ldots$, пишут через запятую'],
['Целая часть','слева от запятой'],
['Дробная часть','справа от запятой'],
['Разряды','десятые, сотые, тысячные …'],
['Нули справа','$0{,}5=0{,}50=0{,}500$'] ]},
p2:{ title:'Шпаргалка § 2', rows:[
['Сравнение','сначала целые части, потом поразрядно'],
['Уравнять знаки','дописать нули: $0{,}5=0{,}50$'],
['Округление','следующая цифра $<5$ — отбросить'],
['','следующая цифра $\\ge 5$ — прибавить 1'] ]},
p3:{ title:'Шпаргалка § 3', rows:[
['Координатный луч','начало $O$, $0$, единичный отрезок'],
['Координата','расстояние от $0$ в единичных отрезках'],
['Десятые','единичный отрезок делим на 10'],
['$2{,}5$','посередине между 2 и 3'] ]},
p4:{ title:'Шпаргалка § 4', rows:[
['Запятая','под запятой'],
['Уравнять','нулями справа'],
['Считаем','как натуральные'],
['$7-2{,}3$','$=7{,}0-2{,}3=4{,}7$'] ]},
p5:{ title:'Шпаргалка § 5', rows:[
['× 10, 100, 1000','запятая вправо на 1, 2, 3'],
['÷ 10, 100, 1000','запятая влево на 1, 2, 3'],
['Не хватает цифр','дописываем нули'],
['$0{,}6\\cdot 1000$','$=600$'] ]},
p6:{ title:'Шпаргалка § 6', rows:[
['Умножение','как натуральные числа'],
['Запятая','знаков = сумма знаков множителей'],
['$1{,}2\\cdot 0{,}3$','$12\\cdot3=36$, 2 знака → $0{,}36$'] ]}
};
var TIPS = [
{ sec:'p1', html:'Число цифр после запятой = числу нулей в знаменателе. У $0{,}305$ три цифры → знаменатель $1000$.' },
{ sec:'p2', html:'Перед сравнением мысленно <b>уравняй</b> число знаков нулями: $0{,}5$ это $0{,}50$, и сразу видно, что $0{,}50>0{,}48$.' },
{ sec:'p3', html:'Чтобы отметить десятые, дели единичный отрезок на 10. $1{,}7$ — это $1$ и ещё $7$ маленьких делений.' },
{ sec:'p4', html:'Перед сложением «лесенкой» допиши нули: $7$ это $7{,}0$, тогда $7{,}0-2{,}3$ считается легко.' },
{ sec:'p5', html:'Считай нули множителя: у $1000$ их три → запятая прыгает на 3 знака. Умножаем — вправо, делим — влево.' },
{ sec:'p6', html:'Сначала перемножь без запятых. Потом отсчитай справа столько знаков, сколько их после запятой у обоих множителей вместе.' }
];
var GLOSSARY = [
{ term:'десятичная дробь', def:'Дробь со знаменателем $10,100,1000,\\ldots$, записанная через запятую.', sec:'p1', aliases:['десятичная дробь','десятичной дроби','десятичные дроби','десятичных дробей','десятичную дробь'] },
{ term:'разряд', def:'Место цифры в записи числа: десятые, сотые, тысячные и т. д.', sec:'p1', aliases:['разряд','разряда','разряде','разряды','разрядов'] },
{ term:'координатный луч', def:'Луч с началом $O$ (число $0$), единичным отрезком и направлением.', sec:'p3', aliases:['координатный луч','координатном луче','координатного луча'] },
{ term:'координата', def:'Число, показывающее расстояние точки от начала в единичных отрезках.', sec:'p3', aliases:['координата','координату','координаты','координатой'] },
{ term:'округление', def:'Замена числа близким с меньшим числом разрядов по правилу: следующая цифра $\\ge5$ — разряд увеличивают.', sec:'p2', aliases:['округление','округления','округлить','округлении'] },
{ term:'множитель', def:'Число, которое умножают. В произведении число знаков после запятой равно сумме знаков множителей.', sec:'p6', aliases:['множитель','множителя','множители','множителей'] },
{ term:'произведение', def:'Результат умножения. $1{,}2\\cdot 0{,}3 = 0{,}36$.', sec:'p6', aliases:['произведение','произведения','произведении'] }
];
var BUILDERS = { p1:buildP1, p2:buildP2, p3:buildP3, p4:buildP4, p5:buildP5, p6:buildP6 };
Object.assign(window.M6, { sidebars:SIDEBARS, tips:TIPS, glossary:GLOSSARY, builders:BUILDERS });
</script>
</body>
</html>