情報:IT
高校生
解決済み

写真のプログラムでいくつか疑問があったので教えて欲しいです🙏
1.なぜtを300以下の間としているのか。
 他の数字ではダメなのか。
2.printではどういう様に表示されるのか。
3.breakの後のt=t+1とは何を表しているのか。
よろしくお願いします。

• ボールを斜めに投げあげた場合(斜方投射) の論理モデル 左右方向 (水平方向)のボールの速さは変わらない。 • 上下方向(鉛直方向)のボールの速さは,時間とともに一定の割合で 小さくなり, 0 になった後は,下向きに一定の割合で大きくなる。 経過時間tが短ければ,時間 t の間の上下方向の速さは一定とみな すことができる。
ボールの投げあげのシミュレーションをするプログラムの例 LINK [プログラム] Python JavaScript 1 x = 0 1 2 y = 0 let x, y, vx, vy, t; 3 Vx = 5 2 x = 0; y = 0; vx = 5; vy = 10; 4 vy = 10 t = 0; 4 5 t=0 while(t <300) { 5 6 while t< 300: document.write("("+x+","+y+")"); 6 x = x + VX; 7 print("(", x, ",", y, ")") 7 y = y + vy; 8 9 x = x + VX 8 vy = vy - 1; 10 11 07 y = y + vy vy = vy - 1 if y <= 0: break 9 if(y <=0){208.0 10 break; 11 } t = t + 1; 12 13 t = t + 1 14 print("(", x, ",", y, ")") 12 13 } 14 document.write("("+x+","+y+")"); to ※「break」 という命令は,おもに, くりかえし処理を中断するときに使われる。 JavaScript では,ブラウザ上に文字などを表示する命令として「document.write()」がある。
y 手順1 ボールを投げたときの右向きの速さひxと 上向きの速さを決める。 また, ボール を投げる位置の座標を (0, 0) とする。 60 50 • 手順2 現在のボールの位置を方眼紙に記入する。 手順3 現在のボールの位置が(x, y)のとき, 1秒 後のボールの位置を(x + vx, y + vy) とし て計算する。 40 30 20 20 手順41秒後のボールの上向きの速さvy を1減 らす。 10 10 手順5 ボールが地面に落ちていなければ時間を1 秒後に進め, 手順2へもどる。 • ● 5 10 50 60 70 80 90 100 110 X (0,0) 10 20 30 40 図11 方眼紙にかいたボールの動きのイメージ ボールを投げたときの右向きの速さが5, 上向きの速さが 10 上向きの速さの変化を毎秒1減少とした場合のボールの動き を, 方眼紙にかいたものである。

回答

✨ ベストアンサー ✨

1.プログラムを見る限りyが0より小さくなったら計算を終えるようになっています。tが300になるまで計算すればそれより先にy<0となるだろうということでtを300までに設定していますね。実際に計算するとt=30にも満たないうちにy<0となるのでt<30でも良いかと思います。

2.printでは
(0,0)
(5,10)
(10,19)と表示されます。もっと続きますが省略。

3.これなんでしょうね。なくても計算できるはずですが...

白猫

回答ありがとうございます!

1,2はよく理解できました。3はもう少し考えてみようと思います。

この回答にコメントする
疑問は解決しましたか?