All MicroEvals
1. Структура Старого шаблона В старом файле все данные по од...
Create MicroEval
Header image for 1. Структура Старого шаблона
В старом файле все данные по од...

1. Структура Старого шаблона В старом файле все данные по од...

Prompt

1. Структура Старого шаблона В старом файле все данные по одному студенту находятся в одну горизонтальную строку, а предметы и виды работ растягиваются на десятки колонок вправо. Базовая информация (Колонки A-G): UID студенческого билета ФАМИЛИЯ ИМЯ ОТЧЕСТВО КУРС (текущий курс студента) НОМЕР ЗАЧЕТНОЙ КНИЖКИ ДАТА ВЫДАЧИ ЗАЧЕТНОЙ КНИЖКИ Блок НИР (Научно-исследовательская работа) (Колонки H-K): 8. Вид научно - исследовательской работы 9. Оценка 10. Дата сдачи 11. Фамилия и инициалы преподавателя Блок ВКР (Выпускная квалификационная работа) (Колонки L-Q): 12. Форма ВКР 13. Тема ВКР 14. Дата защиты 15. Оценка 16. Номер протокола 17. Дата протокола Массивы оценок (повторяющиеся блоки колонок): Промежуточная аттестация (блоки по 6 колонок): Дисциплина | Учебный год | Часы | Оценка | Дата | Преподаватель Факультативные дисциплины (блоки по 6 колонок): тот же формат Курсовые проекты (блоки по 5 колонок): Дисциплина | Тема | Оценка | Дата | Преподаватель Практика (блоки по 5 колонок): Вид практики | Место | Часы | Оценка | Руководитель Государственный экзамен (блоки по 3 колонки): Дисциплина | Оценка | Дата 2. Структура Нового шаблона Новый шаблон имеет те же логические блоки, но изменен порядок колонок и обновлены названия заголовков. Базовая информация (Колонки A-G): (Остается без изменений: UID, ФИО, Курс, Номер зачетки, Дата выдачи). Блок ВКР (Сдвинулся влево, Колонки H-M): Форма ВКР Тема ВКР Дата защиты Оценка Номер протокола Дата протокола Блок НИР (Сдвинулся вправо, Колонки N-Q): Вид НИР Оценка Дата сдачи Фамилия Имя Отчество педагогического работника (изменилось название!) Массивы оценок (Остальные блоки): Идут в том же порядке (Промежуточная -> Факультативы -> Курсовые -> Практика -> Гос. экзамен), но во всех заголовках слово «Фамилия и инициалы» заменено на «Фамилия Имя Отчество». 3. Главные отличия (Старый vs Новый) № Параметр Старый шаблон Новый шаблон 1 Порядок блоков Сначала идет блок НИР, затем блок ВКР. Сначала идет блок ВКР, затем блок НИР. 2 Названия колонок «Фамилия и инициалы преподавателя/руководителя» «Фамилия Имя Отчество педагогического работника/руководителя» 3 Представление данных Все предметы за все годы обучения свалены в одну огромную строку (горизонтально). Требуется вертикальное расширение: 1 учебный год = 1 строка. 4. Что нужно сделать (Алгоритм трансформации) Главная задача скрипта — не просто перенести данные, а разбить горизонтальную матрицу старого файла на вертикальные строки нового. Шаг 1. Парсинг старого файла Скрипт должен прочитать строку студента и найти все заполненные предметы. Поскольку в старом файле предметы идут сплошным потоком, скрипт должен смотреть на колонку «Учебный год» внутри каждого 6-колоночного блока. Пример: Скрипт видит, что у студента есть предметы за 2022/2023, 2023/2024, 2024/2025 и 2025/2026. Шаг 2. Группировка по учебным годам Скрипт создает словарь (объект), где ключом является Учебный год, а значением — массив предметов, относящихся к этому году. Шаг 3. Генерация строк (Правило "1 курс = 1 строка") Вместо того чтобы создать одну строку на студента, скрипт должен создать столько строк, сколько уникальных учебных годов найдено в gradesByYear. Как заполнять каждую строку: Базовая информация (A-G): Дублируется в каждую строку (ФИО, UID, Номер зачетки и т.д. должны быть на каждой строке). Блок ВКР (H-M): Заполняется только в той строке, которая соответствует году защиты (или дублируется/оставляется пустой в остальных, обычно ВКР пишется на последнем курсе). Блок НИР (N-Q): Аналогично ВКР. Блок Промежуточной аттестации: В строке, соответствующей году 2022/2023, заполняются только первые 6 колонок блока аттестации (предметы за 22/23 год). Остальные 50 колонок блока аттестации в этой строке остаются пустыми! В следующей строке (за 23/24 год) заполняются следующие 6 колонок, и так далее.

A system prompt was added to support web rendering