From 5eb9fe3f1cab209b07f49c344a1274bec2ee4b6b Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Wed, 3 Jun 2026 09:29:59 +0300 Subject: [PATCH] =?UTF-8?q?feat(math5):=20=D0=93=D0=BB=D0=B0=D0=B2=D0=B0?= =?UTF-8?q?=201=20=C2=A73=E2=80=93=C2=A76=20=E2=80=94=20=D1=81=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5,=20=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D1=83=D1=80=D1=8B,=20=D0=B8=D0=B7=D0=BC=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5,=20=D0=BA=D0=BE=D0=BE=D1=80=D0=B4=D0=B8?= =?UTF-8?q?=D0=BD=D0=B0=D1=82=D0=BD=D1=8B=D0=B9=20=D0=BB=D1=83=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit §3 Сравнение (правила + тренажёр знаков + «выбери наибольшее»). §4 Точка/прямая/луч/отрезок/плоскость (SVG-галерея фигур + квиз «что изображено» + счёт отрезков по точкам). §5 Измерение отрезков (SVG-линейка с цветным отрезком + перевод единиц длины). §6 Координатный луч (Math6.numberLine ray: назови координату + расстояние между точками). Шпаргалки/типсы §3–6. Тесты math5: 8/8. Co-Authored-By: Claude Opus 4.8 (1M context) --- backend/tests/math5-page.test.js | 9 + frontend/textbooks/math_5_ch1.html | 315 ++++++++++++++++++++++++++++- 2 files changed, 323 insertions(+), 1 deletion(-) diff --git a/backend/tests/math5-page.test.js b/backend/tests/math5-page.test.js index 0eec409..2c4d696 100644 --- a/backend/tests/math5-page.test.js +++ b/backend/tests/math5-page.test.js @@ -91,6 +91,15 @@ test('ch1: §1 «как решать задачу», §2 «разрядная т win.goTo('p2'); await wait(80); assert.ok(doc.querySelector('#p2-pv-out table'), '§2: разрядная таблица построена'); assert.ok(doc.querySelector('#p2-iv2 #p2-qa'), '§2: тренажёр «цифра в разряде»'); + win.goTo('p3'); await wait(80); + assert.equal(doc.querySelectorAll('#p3-iv1 [data-cmp]').length, 3, '§3: знаки сравнения'); + win.goTo('p4'); await wait(80); + assert.ok(doc.querySelector('#p4-fig svg'), '§4: рисунок фигуры'); + assert.equal(doc.querySelectorAll('#p4-iv1 [data-f]').length, 4, '§4: 4 варианта фигур'); + win.goTo('p5'); await wait(80); + assert.ok(doc.querySelector('#p5-fig svg rect'), '§5: линейка'); + win.goTo('p6'); await wait(80); + assert.ok(doc.querySelector('#p6-fig svg'), '§6: координатный луч'); win.goTo('final'); await wait(80); assert.ok(doc.querySelector('#fin-go'), 'финал: арена боссов'); win.bumpProgress('final', 100); await wait(20); diff --git a/frontend/textbooks/math_5_ch1.html b/frontend/textbooks/math_5_ch1.html index 29d1f86..d4e0439 100644 --- a/frontend/textbooks/math_5_ch1.html +++ b/frontend/textbooks/math_5_ch1.html @@ -333,6 +333,294 @@ function buildFinal(){ })(); } +/* ===================== § 3. СРАВНЕНИЕ НАТУРАЛЬНЫХ ЧИСЕЛ ===================== */ +function buildP3(){ + var box=document.getElementById('p3-body'); var h=''; + h+=makeCard('oral','Где это в жизни','3.0', + '

Сравнивать числа приходится постоянно: где цена ниже, у какого телефона больше памяти, в каком городе больше жителей, чей результат в игре выше. Натуральные числа сравнивать легко — нужно лишь знать два простых правила.

'); + h+=makeCard('rule','Как сравнивать натуральные числа','3.1', + '

1) Из двух чисел больше то, в записи которого больше цифр (без лишних нулей слева): $1000>999$.

' + +'

2) Если цифр поровну — сравнивают поразрядно слева направо: на первом же различии больше то число, у которого цифра больше.

' + +'

Знаки: $<$ «меньше», $>$ «больше», $=$ «равно». Острый угол знака всегда «смотрит» на меньшее число.

'); + h+=makeCard('example','Примеры','3.2', + '

$58>9$ (две цифры против одной).   $347<352$ (сотни равны, десятки $4<5$).   $1\\,200>1\\,199$.

'); + h+=makeCard('example','Разбор по шагам','3.3', + '

Сравним $4\\,019$ и $4\\,190$.

' + +'
    ' + +'
  1. Цифр поровну — по $4$. Сравниваем поразрядно.
  2. ' + +'
  3. Тысячи: $4=4$. Сотни: $0<1$ — на этом различии всё решается.
  4. ' + +'
  5. Значит $4\\,019<4\\,190$.
  6. ' + +'
'); + h+=makeCard('theory','А знаешь ли ты?','3.4', + '

Знаки $>$ и $<$ придумал английский математик Томас Хэрриот (изданы в $1631$ году). А знак равенства $=$ ещё раньше, в $1557$ году, предложил Роберт Рекорд: «нет двух вещей более равных, чем две параллельные чёрточки».

'); + h+='
Интерактив 1
Поставь знак
' + +'
Сравни два числа и выбери верный знак.
' + +'
Вопрос 1 / 6Очки: 0 / 6
' + +'
' + +'
' + +'
'; + h+='
Интерактив 2
Выбери наибольшее
' + +'
Из четырёх чисел нажми самое большое.
' + +'
Вопрос 1 / 5Очки: 0 / 5
' + +'
' + +'
'; + h+=secNav('p2','p4')+readBtn('p3'); + box.innerHTML=h; renderMath(box); + + (function(){ + var i=0,score=0,cur=null; + function gen(){ var a,b; if(_ri(0,3)===0){ a=_ri(10,9999); b=a; } else { a=_ri(10,9999); b=_ri(10,9999); } cur={a:a,b:b}; } + function show(){ if(i>=6){ document.getElementById('p3-q').innerHTML='Готово! Результат: '+score+' / 6'; if(score>=5){addXp(15,'p3-iv1');bumpProgress('p3',30);}else if(score>=3){addXp(8,'p3-iv1');bumpProgress('p3',16);} return; } + gen(); document.getElementById('p3-i').textContent=i+1; + document.getElementById('p3-q').innerHTML='$'+_grp(cur.a)+' \\;\\square\\; '+_grp(cur.b)+'$'; renderMath(document.getElementById('p3-q')); + document.getElementById('p3-fb').style.display='none'; } + function ans(sym){ if(i>=6)return; var fb=document.getElementById('p3-fb'), correct=cur.a>cur.b?'>':(cur.a0;j--){ var k=_ri(0,j),t=arr[j];arr[j]=arr[k];arr[k]=t; } cur={arr:arr,max:mx}; } + function show(){ if(i>=5){ document.getElementById('p3-mq').innerHTML='Готово! '+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-mi').textContent=i+1; + var html=''; cur.arr.forEach(function(x){ html+=''; }); + document.getElementById('p3-mq').innerHTML=html; + document.querySelectorAll('#p3-mq [data-x]').forEach(function(b){ b.addEventListener('click',function(){ ans(+b.getAttribute('data-x')); }); }); + document.getElementById('p3-mfb').style.display='none'; } + function ans(x){ if(i>=5)return; var fb=document.getElementById('p3-mfb'); + if(x===cur.max){ score++; feedback(fb,true,'✓ Верно! Наибольшее — '+cur.max.toLocaleString('ru-RU')+'.'); } else feedback(fb,false,'✗ Нет. Наибольшее — '+cur.max.toLocaleString('ru-RU')+'.'); + document.getElementById('p3-ms').textContent=score; i++; setTimeout(show,1100); } + show(); + })(); +} + +/* ===================== § 4. ТОЧКА, ПРЯМАЯ, ЛУЧ, ОТРЕЗОК, ПЛОСКОСТЬ ===================== */ +function buildP4(){ + var box=document.getElementById('p4-body'); var h=''; + h+=makeCard('oral','Где это в жизни','4.0', + '

Геометрия начинается с простых образов. Натянутая нить — это отрезок, луч прожектора уходит в небо как луч, ровная гладь озера — кусочек плоскости, а кончик карандаша оставляет точку. Из этих «кирпичиков» строят все чертежи.

'); + h+=makeCard('theory','Главные геометрические фигуры','4.1', + '

Точка — самая простая фигура, у неё нет размеров. Обозначают большой буквой: $A$, $B$.

' + +'

Прямая бесконечна в обе стороны. Обозначают малой буквой $a$ или двумя точками: прямая $AB$.

' + +'

Луч имеет начало и уходит в бесконечность в одну сторону. Обозначают $OA$ (первой ставят начало $O$).

' + +'

Отрезок — часть прямой между двумя точками-концами: отрезок $AB$.

' + +'

Плоскость — бесконечная ровная поверхность (например, поверхность стола, продолженная во все стороны).

'); + h+=makeCard('rule','Сколько фигур можно провести','4.2', + '

Через одну точку можно провести сколько угодно прямых. А через две точки — только одну прямую. Это важное свойство прямой.

'); + h+=makeCard('example','Разбор по шагам','4.3', + '

На прямой отметили $4$ точки: $A, B, C, D$. Сколько получилось отрезков?

' + +'
    ' + +'
  1. Отрезок задаётся двумя точками-концами.
  2. ' + +'
  3. Считаем пары: $AB, AC, AD, BC, BD, CD$.
  4. ' + +'
  5. Получилось $6$ отрезков.
  6. ' + +'
'); + h+=makeCard('theory','А знаешь ли ты?','4.4', + '

Около $2300$ лет назад древнегреческий учёный Евклид написал книгу «Начала», с которой и начинается геометрия. Он первым строго описал точку, прямую и плоскость. По «Началам» учились более двух тысяч лет — это один из самых издаваемых учебников в истории!

'); + h+='
Интерактив 1
Что изображено?
' + +'
Определи фигуру по рисунку.
' + +'
Вопрос 1 / 5Очки: 0 / 5
' + +'
' + +'
' + +'
'; + h+='
Интерактив 2
Сколько отрезков?
' + +'
На прямой отмечено несколько точек. Сколько всего отрезков они задают?
' + +'
Вопрос 1 / 5Очки: 0 / 5
' + +'
' + +'
' + +'
'; + h+=secNav('p3','p5')+readBtn('p4'); + box.innerHTML=h; renderMath(box); + + function figSVG(type){ + var W=300,H=70,y=40; + var s=''; + if(type==='точка'){ s+='A'; } + else if(type==='прямая'){ s+=''; } + else if(type==='луч'){ s+='O'; } + else { s+='AB'; } + return s+''; + } + (function(){ + var T=['точка','прямая','луч','отрезок']; + var i=0,score=0,cur=null; + function gen(){ cur=_pick(T); } + function show(){ if(i>=5){ document.getElementById('p4-fig').innerHTML='Готово! '+score+' / 5'; if(score>=4){addXp(15,'p4-iv1');bumpProgress('p4',30);}else if(score>=2){addXp(8,'p4-iv1');bumpProgress('p4',16);} return; } + gen(); document.getElementById('p4-i').textContent=i+1; + document.getElementById('p4-fig').innerHTML=figSVG(cur); + document.getElementById('p4-fb').style.display='none'; } + function ans(f){ if(i>=5)return; var fb=document.getElementById('p4-fb'); + if(f===cur){ score++; feedback(fb,true,'✓ Верно — это '+cur+'.'); } else feedback(fb,false,'✗ Нет. Это '+cur+'.'); + document.getElementById('p4-s').textContent=score; i++; setTimeout(show,1100); } + document.querySelectorAll('#p4-iv1 [data-f]').forEach(function(b){ b.addEventListener('click',function(){ ans(b.getAttribute('data-f')); }); }); + show(); + })(); + + (function(){ + var i=0,score=0,cur=null; + function gen(){ var n=_ri(3,6); cur={n:n, ans:n*(n-1)/2}; } + function show(){ if(i>=5){ document.getElementById('p4-cfig').innerHTML='Готово! '+score+' / 5'; document.getElementById('p4-cq')&&0; 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-ci').textContent=i+1; + var W=300,y=30,names=['A','B','C','D','E','F'],s=''; + for(var k=0;k'+names[k]+''; } + s+=''; + document.getElementById('p4-cfig').innerHTML=s; + document.getElementById('p4-ca').value=''; document.getElementById('p4-cfb').style.display='none'; } + function go(){ if(i>=5)return; var fb=document.getElementById('p4-cfb'), a=parseInt(document.getElementById('p4-ca').value,10); + if(isNaN(a)){ feedback(fb,false,'Введи число.'); return; } + if(a===cur.ans){ score++; feedback(fb,true,'✓ Верно! '+cur.n+' точки задают '+cur.ans+' отрезков.'); } else feedback(fb,false,'✗ Нет. Правильно: '+cur.ans+' (пары из '+cur.n+' точек).'); + document.getElementById('p4-cs').textContent=score; i++; setTimeout(show,1300); } + document.getElementById('p4-cgo').addEventListener('click',go); + document.getElementById('p4-ca').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); }); + show(); + })(); +} + +/* ===================== § 5. ИЗМЕРЕНИЕ ОТРЕЗКОВ. ДЛИНА ===================== */ +function buildP5(){ + var box=document.getElementById('p5-body'); var h=''; + h+=makeCard('oral','Где это в жизни','5.0', + '

Длину измеряют каждый день: рост на медосмотре, размер стола, расстояние до школы, длину доски при ремонте. Чтобы понять друг друга, люди договорились о единых единицах длины.

'); + h+=makeCard('rule','Единицы длины','5.1', + '

$1$ см $=10$ мм,   $1$ дм $=10$ см,   $1$ м $=10$ дм $=100$ см $=1000$ мм,   $1$ км $=1000$ м.

' + +'

Длина отрезка — это число, которое показывает, сколько раз в нём укладывается единичный отрезок (например, $1$ см). Равные отрезки имеют равные длины.

'); + h+=makeCard('example','Примеры перевода','5.2', + '

$3$ см $=30$ мм.   $250$ см $=2$ м $50$ см.   $1$ м $7$ см $=107$ см.

'); + h+=makeCard('example','Разбор по шагам','5.3', + '

Вырази $3$ м $5$ см в сантиметрах.

' + +'
    ' + +'
  1. $1$ м $=100$ см, значит $3$ м $=300$ см.
  2. ' + +'
  3. Добавляем оставшиеся $5$ см: $300+5$.
  4. ' + +'
  5. Ответ: $3$ м $5$ см $=305$ см.
  6. ' + +'
'); + h+=makeCard('theory','А знаешь ли ты?','5.4', + '

Раньше длину мерили частями тела: локоть, ладонь, фут («ступня»). Но у всех они разные! Поэтому в $1799$ году ввели метр. Сегодня метр определяют через скорость света — это самый точный эталон длины в мире.

'); + h+='
Интерактив 1
Измерь отрезок линейкой
' + +'
Посмотри, до какого деления линейки доходит цветной отрезок, и введи его длину в сантиметрах.
' + +'
Вопрос 1 / 5Очки: 0 / 5
' + +'
' + +'
см
' + +'
'; + h+='
Интерактив 2
Перевод единиц длины
' + +'
Вырази длину в указанных единицах. Ответ — число.
' + +'
Вопрос 1 / 6Очки: 0 / 6
' + +'
' + +'
' + +'
'; + h+=secNav('p4','p6')+readBtn('p5'); + box.innerHTML=h; renderMath(box); + + (function(){ + var i=0,score=0,cur=null; + function gen(){ cur=_ri(2,14); } + function show(){ if(i>=5){ document.getElementById('p5-fig').innerHTML='Готово! '+score+' / 5'; if(score>=4){addXp(15,'p5-iv1');bumpProgress('p5',30);}else if(score>=2){addXp(8,'p5-iv1');bumpProgress('p5',16);} return; } + gen(); document.getElementById('p5-i').textContent=i+1; + var x0=20,unit=18,W=x0+15*unit+24,H=64,yr=44; + var s=''; + for(var k=0;k<=15;k++){ var x=x0+k*unit; s+=''; if(k%5===0)s+=''+k+''; } + s+=''; + s+=''; + document.getElementById('p5-fig').innerHTML=s; + document.getElementById('p5-a').value=''; document.getElementById('p5-fb').style.display='none'; } + function go(){ if(i>=5)return; var fb=document.getElementById('p5-fb'), a=parseInt(document.getElementById('p5-a').value,10); + if(isNaN(a)){ feedback(fb,false,'Введи число.'); return; } + if(a===cur){ score++; feedback(fb,true,'✓ Верно! Длина '+cur+' см.'); } else feedback(fb,false,'✗ Нет. Отрезок доходит до '+cur+' см.'); + 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(); + })(); + + (function(){ + var i=0,score=0,cur=null; + function gen(){ var t=_ri(0,3),a; + if(t===0){ a=_ri(2,9); cur={q:a+'\\text{ см} = \\square \\text{ мм}',ans:a*10}; } + else if(t===1){ a=_ri(2,9); cur={q:a+'\\text{ м} = \\square \\text{ см}',ans:a*100}; } + else if(t===2){ var m=_ri(1,5),c=_ri(5,95); cur={q:m+'\\text{ м } '+c+'\\text{ см} = \\square \\text{ см}',ans:m*100+c}; } + else { a=_ri(2,9); cur={q:a+'\\text{ км} = \\square \\text{ м}',ans:a*1000}; } } + function show(){ if(i>=6){ document.getElementById('p5-uq').innerHTML='Готово! '+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-ui').textContent=i+1; + document.getElementById('p5-uq').innerHTML='$'+cur.q+'$'; renderMath(document.getElementById('p5-uq')); + document.getElementById('p5-ua').value=''; document.getElementById('p5-ufb').style.display='none'; } + function go(){ if(i>=6)return; var fb=document.getElementById('p5-ufb'), a=parseInt(document.getElementById('p5-ua').value,10); + if(isNaN(a)){ feedback(fb,false,'Введи число.'); return; } + if(a===cur.ans){ score++; feedback(fb,true,'✓ Верно! Ответ '+cur.ans+'.'); } else feedback(fb,false,'✗ Нет. Правильно: '+cur.ans+'.'); + document.getElementById('p5-us').textContent=score; i++; setTimeout(show,1200); } + document.getElementById('p5-ugo').addEventListener('click',go); + document.getElementById('p5-ua').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); }); + show(); + })(); +} + +/* ===================== § 6. КООРДИНАТНЫЙ ЛУЧ ===================== */ +function buildP6(){ + var box=document.getElementById('p6-body'); var h=''; + h+=makeCard('oral','Где это в жизни','6.0', + '

Линейка, шкала термометра, разметка на стадионе, числовая ось в играх-«ходилках» — всё это координатные лучи. Каждому числу соответствует своя точка, и наоборот.

'); + h+=makeCard('theory','Что такое координатный луч','6.1', + '

Координатный луч — это луч, на котором выбрали: начало $O$ (ему соответствует число $0$), направление (обычно вправо) и единичный отрезок.

' + +'

Число, соответствующее точке, называют её координатой. Запись $A(3)$ означает: точка $A$ имеет координату $3$.

'); + h+=makeCard('rule','Как отметить число','6.2', + '

Чтобы отметить число $5$, откладывают от начала $O$ пять единичных отрезков вправо. Чем больше число — тем правее точка. Поэтому на луче из двух чисел больше то, что правее.

'); + h+=makeCard('example','Разбор по шагам','6.3', + '

Отметим число $7$ на координатном луче с единичным отрезком в одну клетку.

' + +'
    ' + +'
  1. Ставим начало $O$ и число $0$.
  2. ' + +'
  3. Откладываем вправо $7$ единичных отрезков.
  4. ' + +'
  5. В конце ставим точку и подписываем $A(7)$.
  6. ' + +'
'); + h+=makeCard('theory','А знаешь ли ты?','6.4', + '

Идею изображать числа точками на прямой развил французский математик Рене Декарт в XVII веке. Позже из координатного луча выросла целая координатная плоскость — её ты изучишь в $6$ классе.

'); + h+='
Интерактив 1
Назови координату
' + +'
Какое число соответствует отмеченной точке?
' + +'
Вопрос 1 / 6Очки: 0 / 6
' + +'
' + +'
' + +'
'; + h+='
Интерактив 2
Расстояние между точками
' + +'
На сколько единичных отрезков одна точка дальше другой?
' + +'
Вопрос 1 / 5Очки: 0 / 5
' + +'
' + +'
' + +'
'; + h+=secNav('p5','p7')+readBtn('p6'); + box.innerHTML=h; renderMath(box); + + (function(){ + var i=0,score=0,cur=null; + function gen(){ cur=_ri(1,10); } + function show(){ if(i>=6){ document.getElementById('p6-fig').innerHTML=''; document.getElementById('p6-fb').className='feedback'; document.getElementById('p6-fb').style.display='block'; document.getElementById('p6-fb').innerHTML='Готово! '+score+' / 6'; if(score>=5){addXp(15,'p6-iv1');bumpProgress('p6',30);}else if(score>=3){addXp(8,'p6-iv1');bumpProgress('p6',16);} return; } + gen(); document.getElementById('p6-i').textContent=i+1; + document.getElementById('p6-fig').innerHTML=Math6.numberLine({min:0,max:11,minor:1,major:1,width:560,ray:true,marks:[{v:cur,label:'A',color:'#4f46e5'}]}); + document.getElementById('p6-a').value=''; document.getElementById('p6-fb').style.display='none'; } + function go(){ if(i>=6)return; var fb=document.getElementById('p6-fb'), a=parseInt(document.getElementById('p6-a').value,10); + if(isNaN(a)){ feedback(fb,false,'Введи число.'); return; } + if(a===cur){ score++; feedback(fb,true,'✓ Верно! Координата точки A равна '+cur+'.'); } else feedback(fb,false,'✗ Нет. Координата A равна '+cur+'.'); + document.getElementById('p6-s').textContent=score; i++; setTimeout(show,1100); } + document.getElementById('p6-go').addEventListener('click',go); + document.getElementById('p6-a').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); }); + show(); + })(); + + (function(){ + var i=0,score=0,cur=null; + function gen(){ var a=_ri(1,5), b=_ri(6,11); cur={a:a,b:b,d:b-a}; } + function show(){ if(i>=5){ document.getElementById('p6-dfig').innerHTML=''; var fb0=document.getElementById('p6-dfb'); fb0.className='feedback'; fb0.style.display='block'; fb0.innerHTML='Готово! '+score+' / 5'; if(score>=4){addXp(15,'p6-iv2');bumpProgress('p6',30);}else if(score>=2){addXp(8,'p6-iv2');bumpProgress('p6',16);} return; } + gen(); document.getElementById('p6-di').textContent=i+1; + document.getElementById('p6-dfig').innerHTML=Math6.numberLine({min:0,max:11,minor:1,major:1,width:560,ray:true,marks:[{v:cur.a,label:'A',color:'#4f46e5'},{v:cur.b,label:'B',color:'#e11d48',above:false}]}); + document.getElementById('p6-da').value=''; document.getElementById('p6-dfb').style.display='none'; } + function go(){ if(i>=5)return; var fb=document.getElementById('p6-dfb'), a=parseInt(document.getElementById('p6-da').value,10); + if(isNaN(a)){ feedback(fb,false,'Введи число.'); return; } + if(a===cur.d){ score++; feedback(fb,true,'✓ Верно! Расстояние '+cur.d+' (от '+cur.a+' до '+cur.b+').'); } else feedback(fb,false,'✗ Нет. Расстояние '+cur.d+' = '+cur.b+' − '+cur.a+'.'); + document.getElementById('p6-ds').textContent=score; i++; setTimeout(show,1200); } + document.getElementById('p6-dgo').addEventListener('click',go); + document.getElementById('p6-da').addEventListener('keydown',function(e){ if(e.key==='Enter')go(); }); + show(); + })(); +} + /* ===================== ДАННЫЕ САЙДБАРА / ГЛОССАРИЯ ===================== */ var SIDEBARS = { p1:{ title:'Шпаргалка § 1', rows:[ @@ -345,6 +633,27 @@ var SIDEBARS = { ['Нуль','не натуральное, но нужно в записи'], ['Класс','группа из 3 разрядов'], ['Классы','единицы, тысячи, миллионы…'] ]}, + p3:{ title:'Шпаргалка § 3', rows:[ + ['Больше цифр','то число и больше: $1000>999$'], + ['Поровну цифр','сравниваем поразрядно слева'], + ['Знаки','$<$ меньше, $>$ больше, $=$ равно'], + ['Острый угол','смотрит на меньшее число'] ]}, + p4:{ title:'Шпаргалка § 4', rows:[ + ['Точка','нет размеров; $A$'], + ['Прямая','бесконечна в обе стороны; $a$'], + ['Луч','начало $O$ + бесконечность в одну сторону'], + ['Отрезок','часть прямой между концами $AB$'], + ['Через 2 точки','ровно одна прямая'] ]}, + p5:{ title:'Шпаргалка § 5', rows:[ + ['1 см','$=10$ мм'], + ['1 дм','$=10$ см'], + ['1 м','$=100$ см $=1000$ мм'], + ['1 км','$=1000$ м'] ]}, + p6:{ title:'Шпаргалка § 6', rows:[ + ['Начало','$O$ — это число $0$'], + ['Единичный отрезок','задаёт «шаг»'], + ['Координата','число точки: $A(3)$'], + ['Правее','значит больше'] ]}, final:{ title:'Финал главы 1', rows:[ ['5 боссов','разряды, округление, действия, степень'], ['Победа','4 из 5 и больше'], @@ -353,6 +662,10 @@ var SIDEBARS = { var TIPS = [ { sec:'p1', html:'Не бросайся считать сразу. Сначала спроси себя: «что дано?» и «что нужно найти?» — половина дела готова.' }, { sec:'p2', html:'Разбивай длинное число на классы по три цифры справа: $12\\,345\\,678$. Так его легко прочитать.' }, + { sec:'p3', html:'Сначала глянь на длину записи: где цифр больше — то число и больше. Если поровну — сравнивай поразрядно слева направо.' }, + { sec:'p4', html:'Запоминай по концам: у отрезка два конца, у луча — один (его начало), у прямой — ни одного.' }, + { sec:'p5', html:'Переводя единицы, держи в голове «лесенку»: мм → см → дм → м, каждый шаг в 10 раз. От м до км — в 1000 раз.' }, + { sec:'p6', html:'Координата — это сколько единичных отрезков от нуля. Чем правее точка, тем больше её координата.' }, { sec:'final', html:'Перед ударом прикинь ответ в уме. Для степени $a^n$ — это $a$, умноженное само на себя $n$ раз.' } ]; var GLOSSARY = [ @@ -360,7 +673,7 @@ var GLOSSARY = [ { term:'разряд', def:'Место цифры в записи числа: единицы, десятки, сотни и т. д.', sec:'p2', aliases:['разряд','разряда','разряде','разряды','разрядов'] }, { term:'класс', def:'Группа из трёх соседних разрядов: единицы, тысячи, миллионы.', sec:'p2', aliases:['класс','класса','классе','классы','классов'] } ]; -var BUILDERS = { p1:buildP1, p2:buildP2, final:buildFinal }; +var BUILDERS = { p1:buildP1, p2:buildP2, p3:buildP3, p4:buildP4, p5:buildP5, p6:buildP6, final:buildFinal }; Object.assign(window.M6, { sidebars:SIDEBARS, tips:TIPS, glossary:GLOSSARY, builders:BUILDERS });