===== Кейс 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
// Задача: найти площадь и периметр
=== Педагогическое применение ===
**Использование в школе:**
- Создание индивидуальных заданий по геометрии
- Автоматическая проверка решений
- Подготовка к ЕГЭ по математике
----
[[gram:labs|← К списку]] | [[gram:case-005|← 005]] | [[gram:case-007|007 →]]