===== Кейс 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 →]]