Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
DIM C(15),S(15),OM(15),LI(15) !角振動数や長さなど15個の振り子について区別する変数(下記参照)
INPUT PROMPT "何秒まで":N
REM INPUT "振幅(CM)";A
INPUT PROMPT "一番長い振り子(cm)":L
INPUT PROMPT "一番短い振り子(cm)":LS
LET G=980 !重力加速度(CM/S^2)
LET OME=SQR(G/L) !一番長い振り子の角振動数
LET OMES=SQR(G/LS) !一番短い振り子の角振動数
LET DOME=(OMES-OME)/14 !隣り合う振り子どうしの角振動数の増分
FOR T=0 TO N STEP 0.01 !0秒からN秒まで、0.01秒ずつ増やしながら、下記のNEXT Tまでを繰り返す
CLS 3 !(以下で15個の円を描いてから)画面を一端クリア
FOR I=1 TO 15 !一番長い振り子(I=1)から一番短い振り子(I=15)までNEXT Iまでを繰り返す
LET OM(I)=OME+DOME*(I-1) !I番目の振り子の角振動数
LET LI(I)=G/OM(I)^2 !I番目の振り子の長さ
LET C(I)=COS(OM(I)*T) !I番目の振り子のcos(ωt)
LET X=LI(I)/L*C(I)*50+50 !一番長い振り子の振幅を0から100までとしたときのI番目の振り子の位置
LET S(I)=INT(C(I)*200) !I番目の振り子のcos(ωt)を0から200までの整数に置き換え
CIRCLE(X*6,LI(I)*4),10 !振り子の位置X座標と長さY座標で円を描く。*6や*4などの倍率は適当に調整
NEXT I !ここまでが1番目から15番目の繰り返し
PRINT T !現在の時刻T(秒)を表示
!10秒後以降の時刻で、振幅を1としたときの振り子の位置がすべての振り子で一致するならば、
IF(T>10 AND S(1)=S(2) AND S(1)=S(2) AND S(1)=S(3) AND S(1)=S(4) AND S(1)=S(5) AND S(1)=S(6) AND S(1)=S(7) AND S(1)=S(8) AND S(1)=S(9) AND S(1)=S(10) AND S(1)=S(11) AND S(1)=S(12) AND S(1)=S(13) AND S(1)=S(14) AND S(1)=S(15) ) THEN
FOR I=1 TO 15 !1番目の振り子から15番目の振り子まで
PRINT I+1,"COS(ωt)=",C(I),"L=",LI(I) !番号とcos(ωt)と振り子の長さを表示
NEXT I
STOP !上記を表示したら終了
END IF
NEXT T
END