gram:case-005
Table of Contents
Кейс 005: Сокращение полиномов (gram:case-005)
Общая информация
| Уровень сложности | 🟡 Средний |
|---|---|
| Рекомендуемые языки | Python |
| Основные инструменты | ANTLR4, SymPy (опционально) |
| Предметная область | Алгебра 7-9 класс |
Описание кейса
Система для работы с полиномами: проверка сокращения, разложение на множители, операции с алгебраическими дробями.
Грамматика языка
// Лексемы
NUMBER : [0-9]+
VARIABLE : [a-zA-Z]
POW : '^'
PLUS : '+'
MINUS : '-'
MUL : '*'
DIV : '/'
LPAREN : '('
RPAREN : ')'
WS : [ \t\r\n]+ -> skip
// Синтаксис
polynomial : term ( (PLUS | MINUS) term )*
term : (number MUL)? monomial
monomial : variable (POW number)?
variable : VARIABLE
number : NUMBER
fraction : polynomial DIV polynomial
expression : polynomial | fraction
План лабораторных работ
ЛР1: Лексический анализ
Задачи:
- Распознавание мономов и полиномов
- Поддержка степеней переменных
- Обработка алгебраических дробей
ЛР2: Синтаксический анализ
Задачи:
- Парсер полиномиальных выражений
- Построение AST для дробей
- Валидация структуры выражений
ЛР3: Семантический анализ
Задачи:
- Проверка эквивалентности полиномов
- Сокращение дробей
- Разложение на множители
ЛР4: Генерация заданий
Задачи:
- Создание задач на сокращение
- Генерация ответов и решений
- Экспорт в GIFT-формат
Примеры задач
// Сокращение дробей (x^2 - 4)/(x - 2) → x + 2 (2x^2 + 4x)/(2x) → x + 2 (x^2 - 1)/(x^2 - 2x + 1) → (x + 1)/(x - 1)
Педагогическое применение
Использование в школе:
- Автоматическая проверка заданий на сокращение
- Тренажер алгебраических преобразований
- Подготовка к ОГЭ по алгебре
← К списку | ← 004 | 006 →
gram/case-005.txt · Last modified: by eugeneai
