。 (2)請(qǐng)?jiān)跈M線處①②③填入合適的代碼。 (3)程序中加框處代碼有誤,請(qǐng)修改。 Dim weight(1 To 100)As Integer Dim t As Integer Private Sub Boat_Click ( ?。?br />Dim s As String Dim d As Integer Dim max,sum As Integer Dim L,R As Integer Dim m As Integer s=Text1.Text d=Val(Text2.Text) t=1 '將貨物重量存到weight數(shù)組 For i=1 To Len(s) c=Mid(s,i,1) If c=“,“Then t=t+1 Else①
Next i '求貨物最大重量和總重量 max=0 For i=1 To t-1 If weight(i)>max Then max=weight(i) ②
Next i L=max:R=sum Do While L<R m=(L+R)\2 If③
Then R=m Else L=m+1 Loop Label1.Caption=“貨船最低載重量為:“+Str(L) End Sub Function days(m As Integer)As Integer Dim temp As Integer Dim c As Integer c=1 For i=1 To t-1 temp=temp+weight(i) If temp>m Then temp=0 c=c+1 End If Next i days=c End Function
16.學(xué)校里有一個(gè)水房,水房里一共裝有 m 個(gè)水龍頭可供同學(xué)們打開(kāi)水,每個(gè)龍頭每秒鐘的供水量相等,均為 1?,F(xiàn)在有 n 名同學(xué)準(zhǔn)備接水,他們的初始接水順序已經(jīng)確定。將這些同學(xué)按接水順序從 1到 n 編號(hào),第i 位同學(xué)的接水量為 ai。接水開(kāi)始時(shí),1 到 m 位同學(xué)各占一個(gè)水龍頭,并同時(shí)打開(kāi)水龍頭接水。當(dāng)其中某名同學(xué)j 完成其接水量要求aj 后,下一名排隊(duì)等候接水的同學(xué) k馬上接替 j 同學(xué)的位置開(kāi)始接水。這個(gè)換人的過(guò)程是瞬間完成的,且沒(méi)有任何水的浪費(fèi)。即第j 位同學(xué)第 x 秒結(jié)束時(shí)完成接水,則第 k 位同學(xué)第 x+1 秒立刻開(kāi)始接水。若當(dāng)前接水人數(shù) n不足 m,則只有 n個(gè)水龍頭供水,其它m-n個(gè)水龍頭關(guān)閉。 小王編寫(xiě)了一個(gè)“計(jì)算接水時(shí)間”的程序,功能如下:程序運(yùn)行時(shí),在文本框Text1中輸入每位同學(xué)的接水時(shí)間(以逗號(hào)隔開(kāi)),在文本框Text2中輸入水龍頭數(shù),單擊“計(jì)算”按鈕Command1,在標(biāo)簽Label1中顯示所有同學(xué)接水的總時(shí)間。程序運(yùn)行界面如圖所示。 請(qǐng)回答下列問(wèn)題: (1)如第圖所示,若文本框Text1中輸入的是“4,5,7,1,6,2,8”(不包括雙引號(hào)),則所有同學(xué)接水的總時(shí)間為
秒。 (2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)跈M線處填入合適的代碼。 Private Sub Command1_Click ( ?。?br />Dim i As Integer,j As Integer,t As Integer Dim m As Integer,n As Integer,ans As Integer Dim s As String,ch As String Dim a(1 To 100)As Integer,b(1 To 20)As Integer s=Text1.Text m=Val(Text2.Text) n=1:t=0 For i=1 To Len(s) ch=Mid(s,i,1) If ch>=“0“And ch<=“9“Then t=t*10+Val(ch) Else n=n+1 a(n-1)=t t=0 End If Next i a(n)=t For i=1 To m b(i)=i Next i For i=1 To m-1 For ①
If a(b(j))<a(b(j+1))Then t=b(j):b(j)=b(j+1):b(j+1)=t Next j Next i If n>m Then For i=m+1 To n ②
For j=m To 2 Step-1 If a(b(j))>a(b(j-1))Then t=b(j):b(j)=b(j-1):b(j-1)=t Next j Next i End If ③