User Tools

Site Tools


gram:case-003

Кейс 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: Лексический анализ

Задачи:

  1. Распознавать переменные, числа, операторы
  2. Поддержка степеней (^)
  3. Игнорирование пробелов

ЛР2: Синтаксический анализ

Задачи:

  1. Построить парсер алгебраических выражений
  2. Реализовать приоритет операций
  3. Поддержка уравнений

ЛР3: Семантический анализ

Задачи:

  1. Проверка эквивалентности выражений
  2. Упрощение выражений
  3. Проверка тождественных преобразований

ЛР4: Генерация отчета

Задачи:

  1. Сравнение эталонного и ученического решения
  2. Генерация пояснений к ошибкам
  3. Создание 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

Педагогическое применение

Использование в школе:

  1. Автоматическая проверка домашних работ
  2. Тренажер алгебраических преобразований
  3. Подготовка к ОГЭ

← К списку | ← 002 | 004 →

gram/case-003.txt · Last modified: by eugeneai