| Уровень сложности | 🟠 Продвинутый |
|---|---|
| Рекомендуемые языки | 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
Задачи:
Задачи:
Задачи:
Задачи:
динамика тело масса = 2 кг силы F1 = 10 Н -> вправо F2 = 4 Н -> влево движение равноускоренное найти ускорение
Использование в школе:
← К списку | ← 009 | 011 →