gram:case-006
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: Лексический анализ
Задачи:
- Распознавание геометрических терминов
- Поддержка единиц измерения
- Обработка математических функций
ЛР2: Синтаксический анализ
Задачи:
- Парсер описаний геометрических фигур
- Построение AST геометрических объектов
- Валидация свойств фигур
ЛР3: Семантический анализ
Задачи:
- Проверка корректности фигур (сумма углов и т.д.)
- Вычисление неизвестных параметров
- Применение теорем (Пифагора, косинусов)
ЛР4: Генерация задач
Задачи:
- Создание вариантов геометрических задач
- Генерация чертежей (опционально)
- Проверка решений учащихся
Примеры задач
// Описание фигуры треугольник сторона a=3, сторона b=4, угол C=90° // Задача: найти сторону c прямоугольник сторона a=5, сторона b=8 // Задача: найти площадь и периметр
Педагогическое применение
Использование в школе:
- Создание индивидуальных заданий по геометрии
- Автоматическая проверка решений
- Подготовка к ЕГЭ по математике
← К списку | ← 005 | 007 →
gram/case-006.txt · Last modified: by eugeneai
