Моделирование на ЭВМ: Тема № 8.2: Задача о мухе

Apr 08, 2021 10:57



Каталог тем по моделированию здесь: Моделирование на ЭВМ: Вступление и каталог.

1. Постановка задачи.
Поезд двигается со скоростью V1.
На нем сидит муха, которая в определенный момент взлетает и летит со скоростью V2 > V1 по ходу движения поезда до столба,
расстояние до которого равно S.
Ударившись о столб, муха летит обратно до поезда, потом опять от поезда до столба и так далее.
Определить, какое расстояние пролетит муха, если она летает до тех пор, пока поезд не доедет до столба.

2. Составление алгоритма.
Учащиеся, уже знакомые с циклом, скорее всего составят следующий алгоритм:
Первый раз до столба муха долетит за время T1 = S/V2.
Поезд за это время проедет расстояние S1 = T1 * V1.
От столба до поезда муха долетит за время T2 = (S-S1)/(V1+V2).
Теперь начинается новая итерация, только переменной S надо присвоить новое значение:
S := S - S1 - V1*T2.
Получаем цикл по условию с суммированием расстояний.

3. Математическое решение.
После того, как учащиеся заполнят электронную таблицу, составят программу и "поиграются" с различными значениями S, V1 и V2,
показываем им другой подход:
Поезд доедет до столба за время T = S/V1.
Все это время муха будет летать со скоростью V2, а значит она пролетит расстояние равное V2*T.
Ответ: Муха пролетит расстояние, равное S * V2 / V1.

4. Усложнение модели.
После некоторого шока и вопроса "Зачем тогда мы столько мучились?", усложняем задачу.
Нужно определить, сколько раз муха пролетит туда и обратно.
Вот тут уже сразу видно, что с помощью компьютера ответ найти проще.
Но, выяснится, что необходимо задать размер мухи.
Учащимся математических классов можно предложить решить и эту задачу аналитически.

Следующие этапы усложнения:
- Введение "усталости мухи"
- Введение времени отдыха мухи, как функцию от усталости

P.S. Еще один пример того, что не стоит сразу бросаться решать задачи "в лоб".
Задача:
Вычислить значение ряда 1/(1*2) + 1/(2*3) + 1/(3*4) + ... 1/(n*(n+1)).
После того, как учащиеся успешно составят алгоритм/программу, можно обратить их внимание на то, что:
1/(n*(n+1)) = 1/n - 1/(n+1)
То есть, ответ получается почти сразу и без всяких циклов.

P.P.S. Своим программистам я всегда говорил:
"Не надо сразу программировать, потратьте время на составление Architecture Design Specification, хотя бы для начала в общем виде".

компьютер, моделирование, it

Previous post Next post
Up