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