diff --git a/backend/scripts/seed_phys_ct2018.js b/backend/scripts/seed_phys_ct2018.js new file mode 100644 index 0000000..8fd9243 --- /dev/null +++ b/backend/scripts/seed_phys_ct2018.js @@ -0,0 +1,173 @@ +'use strict'; +/** + * ЦТ 2018 Физика — Вариант 1 (30 заданий: A1-A18 + B1-B12) + * Источник: ЦТ 2018.pdf + Сборники ЦТ/2018.pdf (ответы стр. 54) + */ +const db = require('../src/db/db'); +const PHYS_ID = 4; +const T = {kinem:29,dynam:30,cons:31,mol:32,thermo:33,electro:34,dc:35,magnet:36,emf:37,optics:38,quantum:39,waves:40}; +function getTopic(n){const e=db.prepare('SELECT id FROM topics WHERE subject_id=? AND LOWER(name)=LOWER(?)').get(PHYS_ID,n);if(e)return e.id;return Number(db.prepare('INSERT INTO topics (subject_id,name) VALUES (?,?)').run(PHYS_ID,n).lastInsertRowid);} +const Tx={nuclear:getTopic('Ядерная физика'),hydro:getTopic('Гидростатика'),}; +const ex=new Set(db.prepare('SELECT text FROM questions WHERE subject_id=4').all().map(q=>q.text.slice(0,80).trim())); +let added=0,skipped=0; +const insQ=db.prepare(`INSERT INTO questions (subject_id,topic_id,text,type,difficulty,year,explanation,correct_text,image,source_type) VALUES (?,?,?,?,?,?,?,?,?,?)`); +const insO=db.prepare(`INSERT INTO options (question_id,text,is_correct,order_index) VALUES (?,?,?,?)`); +function q(tid,text,opts,diff,year,img){ + const key=text.slice(0,80).trim();if(ex.has(key)){skipped++;return;}ex.add(key); + const r=insQ.run(PHYS_ID,tid,text,'single',diff,year||null,null,null,img||null,'ЦТ'); + const id=r.lastInsertRowid;opts.forEach((o,i)=>insO.run(id,o.t,o.c?1:0,i));added++; +} +function fb(tid,text,ans,diff,year,img){ + const a=String(ans); + const key=text.slice(0,80).trim();if(ex.has(key)){skipped++;return;}ex.add(key); + insQ.run(PHYS_ID,tid,text,'fill-blank',diff,year||null,null,a,img||null,'ЦТ'); + added++; +} + +const run=db.transaction(()=>{ + +// ══ ЧАСТЬ A ══════════════════════════════════════════════════ + +// A1 — модуль ИМПУЛЬСА силы в СИ → Н·с (ответ: 4) +q(T.dynam,`A1. Модуль импульса силы в СИ измеряется в:\n1) Н; 2) Н/с; 3) Н·м/с; 4) Н·с; 5) Н·м.`, +[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}], +1,2018); + +// A2 — перемещение из A(250м,500м) в B(-50м,100м) [РИСУНОК; ответ: 1 — 500м] +q(T.kinem,`A2. Тело переместилось из точки \\(A\\) с координатами \\(x_1=250\\) м, \\(y_1=500\\) м в точку \\(B\\) с координатами \\(x_2=-50\\) м, \\(y_2=100\\) м. Модуль перемещения \\(AB\\) тела равен:\n1) 500 м; 2) 600 м; 3) 400 м; 4) 200 м; 5) 100 м.`, +[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}], +1,2018,'/img/ct/phys/2018/a2.png'); + +// A3 — два автомобиля удаляются от перекрёстка, скорость v₂ [РИСУНОК; ответ: 2] +q(T.kinem,`A3. Два автомобиля удалились от перекрёстка по взаимно перпендикулярным дорогам. Направление их движения показано на рисунке. Модуль скорости второго автомобиля, если скорость первого \\(v_1=61\\) км/ч, равна:\n1) \\(16\\dfrac{\\text{км}}{\\text{ч}}\\); 2) \\(48\\dfrac{\\text{км}}{\\text{ч}}\\); 3) \\(51\\dfrac{\\text{км}}{\\text{ч}}\\); 4) \\(56\\dfrac{\\text{км}}{\\text{ч}}\\); 5) \\(80\\dfrac{\\text{км}}{\\text{ч}}\\).`, +[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}], +2,2018,'/img/ct/phys/2018/a3.png'); + +// A4 — самолёт садится с отклонением от посадочной полосы [РИСУНОК; ответ: 3] +q(T.kinem,`A4. Самолёт, снижаясь равноускоренно из состояния покоя, до отрыва от взлётной полосы пролетел путь \\(s=680\\) м. Если в конце отрыва модуль скорости самолёта \\(v=252\\) км/ч, то модуль ускорения самолёта при взлёте от взлётной полосы равен:\n1) \\(1{,}4\\dfrac{\\text{м}}{\\text{с}^2}\\); 2) \\(2{,}5\\dfrac{\\text{м}}{\\text{с}^2}\\); 3) \\(3{,}6\\dfrac{\\text{м}}{\\text{с}^2}\\); 4) \\(4{,}5\\dfrac{\\text{м}}{\\text{с}^2}\\); 5) \\(5{,}8\\dfrac{\\text{м}}{\\text{с}^2}\\).`, +[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}], +1,2018,'/img/ct/phys/2018/a4.png'); + +// A5 — два одинаковых шара, F₀=2F₂, расстояние (ответ: 2) +q(T.electro,`A5. Расстояние между центрами двух одинаковых шаров массами \\(m_1=4\\) кг и \\(m_2=2\\) кг равно \\(l\\). Если модуль силы гравитационного взаимодействия между шарами равен \\(F_{12}\\), а расстояние между центрами шаров массами \\(m_1=8\\) кг и \\(m_0=0{,}5\\) кг составляет \\(F_g=2F_{12}\\), то расстояние \\(l_2\\) равно:\n1) \\(\\dfrac{l}{2}\\); 2) \\(\\dfrac{l}{2}\\sqrt{2}\\); 3) \\(l\\); 4) \\(l\\sqrt{2}\\); 5) \\(2l\\).`, +[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}], +2,2018); + +// A6 — шарик брошен вертикально вверх, кинетические энергии [РИСУНОК; ответ: 2] +q(T.cons,`A6. Один и тот же шарик три раза бросали с некоторой высотой в одном направлении по траектории (см. рис.). Кинетические энергии \\(E_{k1}\\), \\(E_{k2}\\), \\(E_{k3}\\) в момент бросания в точке \\(a\\) и скорости в момент падения на горизонтальную поверхность связаны соотношением:\n1) \\(E_{k1}>E_{k2}>E_{k3}\\); 2) \\(E_{k1}=E_{k2}=E_{k3}\\); 3) \\(E_{k1}E_{k2}=E_{k3}\\); 5) \\(E_{k1}=E_{k2}m_2>m_3\\); 2) \\(m_1m_2=m_3\\); 4) \\(m_1