16.已知數軸上有一條長度為 L(L為偶數)的線段,左端點在原點,右端點在坐標 L處。有 n個不計體積的小球在線段上,開始時所有的小球都處在偶數坐標上,速度方向向右,速度大小為 1單位長度每秒。當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然為原來大小。當兩個小球撞到一起的時候,兩個小球會分別向與自己原來移動的方向相反的方向,以原來的速度大小繼續移動。小王設計了一個模擬碰撞的小球的程序,其功能為:在文本框 Text1、Text2和 Text3中分別輸入線段長度 L、小球數量 n以及運動時間 t,在文本框 Text4 中輸入 n個小球的初始坐標位置,單擊“求解”按鈕 Command1,計算 t秒之后,各個小球的位置,并在標簽框 Label5 上顯示結果。 (1)實現上述功能的VB程序如下,請在橫線處填入合適代碼。 Private Sub Command1_Click ( ) DimnAsInteger,LAs Integer,tAsInteger Dim i As Integer,j As Integer,k As Integer Dim s As String,result AsString Dim a(1 To 50)As Integer,dir(1 To 50)As Integer L=Val(Text1.Text):n=Val(Text2.Text):t=Val(Text3.Text) s=Text4.Text s=s+″.″:tmp=0:k=0 For i=1 ToLen(s) ch=Mid(s,i,1) If ch>=″0″And ch<=″9″Then tmp=tmp*10+Val(ch) Else k=k+1 a(k)=tmp:dir(k)=1 tmp=0 End If Next i For i=1 To t For j=1 To n If
Then dir(j)=-dir(j) Else For c=1 To n If
Then dir(c)=(-1)*dir(c) dir(j)=(-1)* dir(j) End If Next c End If
Next j Next i For i=1 To n result=result+Str(a(i)) Nexti Label5.Caption=Str(t)+″秒后小球的位置為:″+result End Sub (2)若文本框Text3中輸入的內容為“4”,單擊“求解”按鈕后,在標簽框Label5 中顯示的結果為