[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『水平投射のシミュレーションのマクロがうまくいきません』(にゃおごろん)
学校の課題で水平投射のシミュレーションをマクロで作成しています。
学校から提示された初期データをもとに作成しているのですが、うまくいきません。
お手数ですがご教示お願いします。
========================
初期値 垂直位置 100 水平位置 0
設定値 "重力
加速度" 9.8 初速度 10
時間設定 終了時間 5 時間間隔 0.25
時間 t 垂直位置 水平位置
0 100 0
0.25 99.69375 2.5
0.25 99.3875 2.5
0.25 99.08125 2.5
0.25 98.775 2.5
0.25 98.46875 2.5
0.25 98.1625 2.5
0.25 97.85625 2.5
0.25 97.55 2.5
0.25 97.24375 2.5
0.25 96.9375 2.5
0.25 96.63125 2.5
0.25 96.325 2.5
0.25 96.01875 2.5
0.25 95.7125 2.5
0.25 95.40625 2.5
0.25 95.1 2.5
0.25 94.79375 2.5
0.25 94.4875 2.5
0.25 94.18125 2.5
0.25 93.875 2.5
=========================
Sub 水平投射()
'初期値 垂直位置 = Cells(1, 3).Value 水平位置 = Cells(1, 5).Value '設定値 重力加速度 = Cells(2, 3).Value 初速度 = Cells(2, 5).Value '時間設定 終了時間 = Cells(3, 3).Value 時間間隔 = Cells(3, 5).Value '繰り返し回数の初期設定 回数 = 1 '初期状態表示 Cells(6, 1).Value = 0 Cells(6, 2).Value = 垂直位置 Cells(6, 3).Value = 水平位置
'計算 For 時間 = 時間間隔 To 終了時間 Step 時間間隔 垂直位置 = 垂直位置 - 重力加速度 * 時間間隔 * 時間間隔 / 2 水平位置 = 初速度 * 時間間隔 Cells(6 + 回数, 1).Value = 時間間隔 Cells(6 + 回数, 2).Value = 垂直位置 Cells(6 + 回数, 3).Value = 水平位置 回数 = 回数 + 1
If 垂直位置 < 0 Then Exit For
Next 時間
End Sub
============================
掲示板初心者なので實問の仕方がおかしかったり、足りないところがあったら申し訳ないです。
どうぞよろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:unknown >
学校の課題ですよね。 私的には十分なヒントを出したとおもってるので、私からはこれ以上はお断りします。
もしかしたら、親切な回答者がもっとヒントを書いてくれるかもしれません
あと、もう一つ余談ですが、書き込まれた内容がもし課題の内容とまったく同じであれば、 初速度の方向が書いてないのは問題の不備だとおもいます。
初速度が水平方向と明示されてなければ、 鉛直投げ上げや投げ下ろしとして計算しても間違いじゃないように思います。 (´・ω・`) 2021/10/25(月) 22:17
(にゃおごろん) 2021/10/25(月) 22:27
Sub 水平投射() '初期値 初期垂直位置 = Cells(1, 3).Value 初期水平位置 = Cells(1, 5).Value
'設定値 重力加速度 = Cells(2, 3).Value 初速度 = Cells(2, 5).Value
'時間設定 終了時間 = Cells(3, 3).Value 時間間隔 = Cells(3, 5).Value
'繰り返し回数の初期設定 回数 = 1
'初期状態表示 Cells(6, 1).Value = 0 Cells(6, 2).Value = 初期垂直位置 Cells(6, 3).Value = 初期水平位置
'計算 For 時間 = 時間間隔 To 終了時間 Step 時間間隔 垂直位置 = 初期垂直位置 - 重力加速度 * (時間間隔 * 回数) * (時間間隔 * 回数) / 2 水平位置 = 初期水平位置 + 初速度 * 時間間隔 * 回数 Cells(6 + 回数, 1).Value = Cells(6 + 回数 - 1, 1).Value + 時間間隔 Cells(6 + 回数, 2).Value = 垂直位置 Cells(6 + 回数, 3).Value = 水平位置 回数 = 回数 + 1
Next 時間 End Sub
<結果図> 行 ____A____ _____B_____ ____C____ ____D____ __E__ 1 初期値 垂直位置 100 水平位置 0 2 設定値 重力加速度 9.8 初速度 10 3 時間設定 終了時間 5 時間間隔 0.25 4 5 時間 t 垂直位置 水平位置 6 0.00 100.00000 0.0 7 0.25 99.69375 2.5 8 0.50 98.77500 5.0 9 0.75 97.24375 7.5 10 1.00 95.10000 10.0 11 1.25 92.34375 12.5 12 1.50 88.97500 15.0 13 1.75 84.99375 17.5 14 2.00 80.40000 20.0 15 2.25 75.19375 22.5 16 2.50 69.37500 25.0 17 2.75 62.94375 27.5 18 3.00 55.90000 30.0 19 3.25 48.24375 32.5 20 3.50 39.97500 35.0 21 3.75 31.09375 37.5 22 4.00 21.60000 40.0 23 4.25 11.49375 42.5 24 4.50 0.77500 45.0 25 4.75 -10.55625 47.5 26 5.00 -22.50000 50.0
(半平太) 2021/10/25(月) 22:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.