Table of Contents

Кейс 006: Геометрические задачи (gram:case-006)

Общая информация

Уровень сложности 🟡 Средний
Рекомендуемые языки Python
Основные инструменты ANTLR4
Предметная область Геометрия 8-11 класс

Описание кейса

Система для генерации и проверки геометрических задач: вычисление площадей, периметров, работа с теоремами.

Грамматика языка

// Лексемы
NUMBER    : [0-9]+ ('.' [0-9]+)?
ID        : [a-zA-Z]+
PLUS      : '+'
MINUS     : '-'  
MUL       : '*'
DIV       : '/'
EQ        : '='
COMMA     : ','
DEGREE    : '°'
LPAREN    : '('
RPAREN    : ')'
WS        : [ \t\r\n]+ -> skip

// Синтаксис
figure      : triangle | rectangle | circle
triangle    : 'треугольник' properties
rectangle   : 'прямоугольник' properties  
circle      : 'окружность' properties

properties  : property+
property    : side | angle | area | perimeter
side        : 'сторона' ID EQ NUMBER
angle       : 'угол' ID EQ NUMBER DEGREE
area        : 'площадь' EQ expression
perimeter   : 'периметр' EQ expression

expression  : term ( (PLUS | MINUS) term )*
term        : factor ( (MUL | DIV) factor )*
factor      : NUMBER | ID | function | LPAREN expression RPAREN
function    : 'sqrt' LPAREN expression RPAREN

План лабораторных работ

ЛР1: Лексический анализ

Задачи:

  1. Распознавание геометрических терминов
  2. Поддержка единиц измерения
  3. Обработка математических функций

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

Задачи:

  1. Парсер описаний геометрических фигур
  2. Построение AST геометрических объектов
  3. Валидация свойств фигур

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

Задачи:

  1. Проверка корректности фигур (сумма углов и т.д.)
  2. Вычисление неизвестных параметров
  3. Применение теорем (Пифагора, косинусов)

ЛР4: Генерация задач

Задачи:

  1. Создание вариантов геометрических задач
  2. Генерация чертежей (опционально)
  3. Проверка решений учащихся

Примеры задач

// Описание фигуры
треугольник сторона a=3, сторона b=4, угол C=90°
// Задача: найти сторону c

прямоугольник сторона a=5, сторона b=8
// Задача: найти площадь и периметр

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

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

  1. Создание индивидуальных заданий по геометрии
  2. Автоматическая проверка решений
  3. Подготовка к ЕГЭ по математике

← К списку | ← 005 | 007 →