16.【加試題】某地2017.1-2017.2月的日期及日最高氣溫?cái)?shù)據(jù)保存在數(shù)據(jù)庫中.現(xiàn)要求根據(jù)日最高氣溫,找出這兩個月中連續(xù)降溫的次數(shù)、連續(xù)最長降溫天數(shù)及其日期.小劉為此編寫了VB程序,程序運(yùn)行時,單擊按鈕Command1后,在標(biāo)簽Label1和Label2上輸出運(yùn)行結(jié)果.實(shí)現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯,請改正. Dim a(1 To 59)As String'依次存儲2017.1-2017.2月的日期數(shù)據(jù) Dim b(1 To 59)As Integer'依次存儲2017.1-2017.2月的日最高氣溫?cái)?shù)據(jù) Private Sub Form_Load( ) '本過程從數(shù)據(jù)庫中按2017.1-2017.2的日期次序,讀取日期和日最高氣溫?cái)?shù)據(jù),分別存儲在數(shù)組a和數(shù)組b中 '代碼略 End Sub Private Sub Command1_Click( ) Dim d As Integer,n As Integer Dim dmax As Integer,m As Integer n=0:d=1:dmax=1 For i=2 To 59 If Then'① d=1+1 Else d=1 EndIf If d=2 Then n=n+1 If d>dmax Then dmax=d m=i EndIf Next i Label1.Caption=“連續(xù)降溫次數(shù)“& Str(n) Label2.Caption=“連續(xù)最長降溫日期為:“& &“-“& Str(a(m)) &“持續(xù)天數(shù)為:“& Str(dmax)'② End Sub (1)①處應(yīng)改為
17.【加試題】當(dāng)計(jì)算機(jī)程序中無法用普通數(shù)據(jù)類型表示位數(shù)較多的乘數(shù)和計(jì)算結(jié)果時,就需要采用高精度乘法.如,當(dāng)兩個各有20位數(shù)字的整數(shù)相乘時,就無法用長整型(Long)數(shù)據(jù)類型來表示.高精度乘法運(yùn)算就是運(yùn)用數(shù)組,用程序模擬列豎式計(jì)算的過程.兩個正整數(shù)進(jìn)行高精度乘法計(jì)算的一般算法如下: (1)將第一個整數(shù)各位上的數(shù)字按照從低位到高位的順序依次存入數(shù)組a(1)、a(2)、…、a(La)中,將另一個整數(shù)各位上的數(shù)字按照從低位到高位的順序表示第二個整數(shù)的位數(shù); (2)按照從低位到高位的順序,將兩個整數(shù)各位數(shù)值進(jìn)行逐位乘法計(jì)算(第一輪先讓b(1)依次乘以a(1)、a(2)、…、a(La),第二輪再讓b(2)依次乘以a(1)、a(2)、…、a(La),依次進(jìn)行),每位的乘法結(jié)果也按照低位到高位的順序依次存入數(shù)組ans(1)、ans(2)、ans(3)…中; (3)對數(shù)組ans中的計(jì)算結(jié)果進(jìn)行從低位到高位的進(jìn)位處理; (4)統(tǒng)計(jì)數(shù)組ans中實(shí)際計(jì)算結(jié)果的有效數(shù)值位數(shù),并將位數(shù)值存入變量length; (5)按照高位到低位的順序輸出數(shù)組ans中的計(jì)算結(jié)果. 小強(qiáng)按照上述方法設(shè)計(jì)了一個兩數(shù)進(jìn)行高精度乘法計(jì)算的VB程序,功能如下:在文本框Text1和Text2中依次輸入兩個整數(shù),單擊“計(jì)算”按鈕Command1,程序進(jìn)行高精度乘法計(jì)算,并在標(biāo)簽Label4中輸出計(jì)算結(jié)果.下面信息顯示了進(jìn)行高精度乘法計(jì)算的主要過程(假設(shè)輸入的兩個整數(shù)分別為“123”和“45”): 程序運(yùn)行效果如圖3所示. 實(shí)現(xiàn)上述功能的VB程序如下: (1)請?jiān)诋嬀€處填入合適代碼. Dim a(1 To 30)As Integer,b(1 To 30)As Integer,ans(1 To 60)As Integer Dim La As Integer,Lb As Integer,length As Integer Private Sub Command1_Click( ) Dim i As Integer,j As Integer,t As Integer,temp As String '將兩個乘數(shù)(正整數(shù))各數(shù)位上的數(shù)字按照上述算法依次存入數(shù)組a和b,每個正整數(shù)位數(shù)分別保存到變量La和Lb;將保存結(jié)果的數(shù)組ans(i)值初始化為零(該部分程序代碼略) For i=1 To Lb'按低位到高位的順序進(jìn)行列豎式的逐位乘法 For j=1 To La ans(i+j-1)=
+b(i)*a(j) Next j Next i For i=1 To La+Lb'對計(jì)算結(jié)果進(jìn)行進(jìn)位處理 ans(i+1)=ans(i+1)+ans(i)\10 ans(i)=
Next i Length=La+Lb Do While ans(lenth)=0 length=length-1 Loop For i=
To 1 Step-1 Label4.Caption=Label4.Caption & Str(ans(i)) Next i End Sub (2)根據(jù)本題算法,若輸入的兩個整數(shù)分別為5125和18,則在輸出乘法計(jì)算結(jié)果時,變量length的值為