16.對分查找算法可用于求解方程的近似解.現要求方程x3-4x2+x+5=0的一個近似解,可設f(x)=x3-4x2+x+5,若有區間[a,b],使f(a)與f(b)異號,則該區間內必存在該方程的一個解.小吳為此編寫了VB程序,功能如下:分別在文本框Text1和Text2中輸入求解的區間值a和b(a<b),單擊“計算”按鈕Command1,若該區間必有解,則求解出該區間內的一個近似解(精確到10-5),否則提示“重新輸入區間”,計算后的相關結果顯示在列表框List1中.程序運行界面如圖所示. 實現上述功能的VB程序如下,但加框處代碼有錯,請改正. Function f(x As Double) As Double Dim y As Double y=x^3-4*x^2+x+5:(1) End Function Private Sub Command1_Click ( ) Dim a As Double,b As Double,m As Double,x As Double a=Val(Text1.Text):b=Val(Text2.Text) If f(a)*f(b)<0And a<b Then Do While a<=b m=(a+b)/2 If Abs(f(m))<0.00001Then Exit Do If <0 Then'(2) b=m Else a=m End If Loop x=Format(m,“0.00000“)'Format函數用于定義輸出的小數位數 List1.AddItem“[“& Text1.Text &“,“& Text2.Text &“]“&“解為:“& x Else List1.AddItem“[“& a &“,“& b &“]“&“重新輸入區間“ End If End Sub.
17.小林很期待建國100年大慶的盛典,在學習了VB程序設計后,他設計一個VB應用程序,在Text1、Text2、Text3中輸入當天的年、月、日,點擊命令按鈕Command1,程序在標簽Label4上顯示離2049年10月1日還有多少天,程序運行界面如圖所示 : 實現上述功能的VB程序如下,請在橫線處填入合適代碼. Dim mon(1To 12)As Long Sub makemonth ( ?。?br />mon(1)=31:mon(2)=28:mon(3)=31:mon(4)=30:mon(5)=31:mon(6)=30 mon(7)=31:mon(8)=31:mon(9)=30:mon(10)=31:mon(11)=30:mon(12)=31 End Sub Function isp(y as Integer) As
'判斷是否閏年 If y Mod 400=0Then isp=True ElseIf y Mod 100<>0And y Mod 4=0Then isp=True Else isp=False End If End Function Private Sub Command1_Click ( ) Dim y As Long,m As Long,d As Long Dim cnt As Long y=Val(Text1.Text) m=Val(Text2.Text) d=Val(Text3.Text) Call makemonth'預定義每個月最大天數 cnt=0 Do While (y<>2049)Or (m<>10)Or (d<>1) cnt=cnt+1
md=mon(m) If m=2And isp(y)=True Then
If d>md Then d=1 m=m+1 End If If m>12Then m=1 y=y+1 End If Loop Label4.Caption=“到2049年10月1日還有“+Str(cnt)+“天“ End Sub 其中,(1)、(2)、(3)處語句分別填