gram:case-007
Table of Contents
Кейс 007: Кинематика - равномерное движение (gram:case-007)
Общая информация
| Уровень сложности | 🟡 Средний |
|---|---|
| Рекомендуемые языки | Python |
| Основные инструменты | ANTLR4 |
| Предметная область | Физика 9 класс |
Описание кейса
Система для задач на равномерное прямолинейное движение: генерация условий, проверка решений, работа с формулами.
Грамматика языка
// Лексемы
NUMBER : [0-9]+ ('.' [0-9]+)?
UNIT : 'м' | 'с' | 'м/с' | 'км' | 'ч' | 'км/ч'
ID : [vVsStT]
PLUS : '+'
MINUS : '-'
MUL : '*'
DIV : '/'
EQ : '='
LPAREN : '('
RPAREN : ')'
WS : [ \t\r\n]+ -> skip
// Синтаксис
problem : 'движение' body conditions question
body : 'тело' | 'автомобиль' | 'пешеход'
conditions : condition+
condition : (speed | distance | time) EQ value
speed : 'скорость' | 'v'
distance : 'расстояние' | 's'
time : 'время' | 't'
value : NUMBER UNIT?
question : 'найти' (speed | distance | time)
expression : term ( (PLUS | MINUS) term )*
term : factor ( (MUL | DIV) factor )*
factor : NUMBER | ID | LPAREN expression RPAREN
План лабораторных работ
ЛР1: Лексический анализ
Задачи:
- Распознавание физических величин и единиц
- Поддержка различных обозначений (v, скорость)
- Обработка математических операций
ЛР2: Синтаксический анализ
Задачи:
- Парсер условий задач по кинематике
- Построение AST физической задачи
- Валидация структуры условия
ЛР3: Семантический анализ
Задачи:
- Проверка размерностей величин
- Решение уравнений движения
- Контроль применения формул
ЛР4: Генерация задач
Задачи:
- Создание вариантов задач на движение
- Генерация числовых данных
- Проверка решений учащихся
Примеры задач
// Формулировка задачи движение автомобиль скорость=60 км/ч, время=2 ч, найти расстояние // Проверка решения s = v * t = 60 * 2 = 120 км
Педагогическое применение
Использование в школе:
- Тренажер решения задач по кинематике
- Автоматическая проверка домашних работ
- Подготовка к ОГЭ по физике
← К списку | ← 006 | 008 →
gram/case-007.txt · Last modified: by eugeneai
