User Tools

Site Tools


gram:case-010

Кейс 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: Лексический анализ

Задачи:

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

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

Задачи:

  1. Парсер условий задач по динамике
  2. Построение AST физической системы
  3. Валидация описания сил и движения

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

Задачи:

  1. Проверка применения второго закона Ньютона
  2. Анализ векторной суммы сил
  3. Решение систем уравнений

ЛР4: Генерация и проверка

Задачи:

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

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

динамика 
тело масса = 2 кг
силы 
  F1 = 10 Н -> вправо
  F2 = 4 Н -> влево
движение равноускоренное
найти ускорение

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

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

  1. Тренажер решения задач по динамике
  2. Визуализация векторных диаграмм
  3. Подготовка к ЕГЭ по физике

← К списку | ← 009 | 011 →

gram/case-010.txt · Last modified: by eugeneai