===== Кейс 003: Проверка алгебраических преобразований (gram:case-003) ===== === Общая информация === ^ Уровень сложности ^ 🟢 Начальный ^ ^ Рекомендуемые языки ^ Python ^ ^ Основные инструменты ^ ANTLR4 ^ ^ Предметная область ^ Алгебра 7-9 класс ^ === Описание кейса === Система проверки правильности алгебраических преобразований для школьных задач. === Грамматика языка === // Лексемы NUMBER : [0-9]+ VARIABLE : [a-zA-Z] PLUS : '+' MINUS : '-' MUL : '*' DIV : '/' POW : '^' LPAREN : '(' RPAREN : ')' EQ : '=' WS : [ \t\r\n]+ -> skip // Синтаксис expression : term ( (PLUS | MINUS) term )* term : factor ( (MUL | DIV) factor )* factor : base (POW base)? base : NUMBER | VARIABLE | LPAREN expression RPAREN equation : expression EQ expression === План лабораторных работ === ==== ЛР1: Лексический анализ ==== **Задачи:** - Распознавать переменные, числа, операторы - Поддержка степеней (^) - Игнорирование пробелов ==== ЛР2: Синтаксический анализ ==== **Задачи:** - Построить парсер алгебраических выражений - Реализовать приоритет операций - Поддержка уравнений ==== ЛР3: Семантический анализ ==== **Задачи:** - Проверка эквивалентности выражений - Упрощение выражений - Проверка тождественных преобразований ==== ЛР4: Генерация отчета ==== **Задачи:** - Сравнение эталонного и ученического решения - Генерация пояснений к ошибкам - Создание GIFT-вопросов для Moodle === Примеры проверки === // Правильные преобразования (x + 2)(x - 3) → x^2 - x - 6 2(x + 3) → 2x + 6 // Типичные ошибки (x + 2)^2 → x^2 + 4 // ОШИБКА! Должно быть x^2 + 4x + 4 === Педагогическое применение === **Использование в школе:** - Автоматическая проверка домашних работ - Тренажер алгебраических преобразований - Подготовка к ОГЭ ---- [[gram:labs|← К списку]] | [[gram:case-002|← 002]] | [[gram:case-004|004 →]]