===== Кейс 010: Динамика - законы Ньютона (gram:case-010) =====
=== Общая информация ===
^ Уровень сложности ^ 🟠 Продвинутый ^
^ Рекомендуемые языки ^ Python ^
^ Основные инструменты ^ ANTLR4, SymPy ^
^ Предметная область ^ Физика 10 класс ^
=== Описание кейса ===
Система для решения задач на динамику: анализ сил, применение законов Ньютона, проверка векторных уравнений.
=== Грамматика языка ===
// Лексемы
NUMBER : [0-9]+ ('.' [0-9]+)?
UNIT : 'Н' | 'кг' | 'м/с²' | 'м/с'
ID : [Fmav]
VECTOR : [F][xyz]?
PLUS : '+'
MINUS : '-'
MUL : '*'
DIV : '/'
EQ : '='
ARROW : '->'
LPAREN : '('
RPAREN : ')'
WS : [ \t\r\n]+ -> skip
// Синтаксис
problem : 'динамика' body forces motion question
body : 'тело' mass | 'материальная точка' mass
mass : 'масса' EQ value
forces : 'силы' force+
force : ID EQ value direction
direction : ARROW ('вверх' | 'вниз' | 'влево' | 'вправо' | 'по горизонтали' | 'по вертикали')
motion : 'движение' type acceleration
type : 'равномерное' | 'равноускоренное' | 'покоится'
acceleration: 'ускорение' EQ value
question : 'найти' (acceleration | force | mass)
value : NUMBER UNIT?
expression : term ( (PLUS | MINUS) term )*
term : factor ( (MUL | DIV) factor )*
factor : NUMBER | ID | LPAREN expression RPAREN
=== План лабораторных работ ===
==== ЛР1: Лексический анализ ====
**Задачи:**
- Распознавание физических величин и направлений
- Поддержка векторных обозначений
- Обработка единиц измерения
==== ЛР2: Синтаксический анализ ====
**Задачи:**
- Парсер условий задач по динамике
- Построение AST физической системы
- Валидация описания сил и движения
==== ЛР3: Семантический анализ ====
**Задачи:**
- Проверка применения второго закона Ньютона
- Анализ векторной суммы сил
- Решение систем уравнений
==== ЛР4: Генерация и проверка ====
**Задачи:**
- Создание задач на динамику
- Проверка решений учащихся
- Генерация подсказок
=== Пример задачи ===
динамика
тело масса = 2 кг
силы
F1 = 10 Н -> вправо
F2 = 4 Н -> влево
движение равноускоренное
найти ускорение
=== Педагогическое применение ===
**Использование в школе:**
- Тренажер решения задач по динамике
- Визуализация векторных диаграмм
- Подготовка к ЕГЭ по физике
----
[[gram:labs|← К списку]] | [[gram:case-009|← 009]] | [[gram:case-011|011 →]]