[問答題] 在考生文件夾下有一個工程文件sjt5.vbp,其功能是: 單擊“讀數(shù)據(jù)”按鈕,則把考生文件夾下in5.dat文件中的100個正整數(shù)讀入數(shù)組a中,同
[問答題] 在考生文件夾下有一個工程文件sjt5.vbp,其功能是:
單擊“讀數(shù)據(jù)”按鈕,則把考生文件夾下in5.dat文件中的100個正整數(shù)讀入數(shù)組a中,同時顯示在Text1文本框中;
單擊“素數(shù)”按鈕,則將數(shù)組a中所有素數(shù)(只能被1和自身整除的數(shù)稱為素數(shù))存入數(shù)組b中,并將數(shù)組b中的元素顯示在文本框Text2中。
在給出的窗體文件中已經(jīng)有了全部控件(如圖5所示),但程序不完整。
要求:完善程序使其實現(xiàn)上述功能。
注意:考生不得修改窗體文件中已經(jīng)存在的控件和程序,在結(jié)束程序運(yùn)行之前,必須先執(zhí)行“素數(shù)”操作,然后再用窗體右上角的關(guān)閉按鈕結(jié)束程序,否則無成績。最后程序按原文件名存盤。
[題目提供的源程序]
Option Base 1
Dim a(100) As Integer, num As Integer
Private Sub Command1_Click()
Dim k As Integer
Open App.Path & "in5.dat" For Input As #1
For k=1 To 100
Input #1, a(k)
Text1=Text1+Str(a(k))+Space(2)
Next k
Close #1
End Sub
Private Sub Command2_Click()
Dim b(100) As Integer
num=0
If Len(Text1.Text)=0 Then
MsgBox "請先執(zhí)行"讀數(shù)據(jù)"功能!"
正確答案:[操作步驟] 第1步:打開工程文件sjt5.vbp。 第2步:編寫程序。參考程序如下: For k=1 To 100 flag=True ’假定a(k)是素數(shù),用flag為真來表示 For i=2 To Sqr(a(k)) If a(k)Mod i=0 Then flag=False ’假定不成立,修改flag的值為False Exit For ’得出結(jié)論后,無須繼續(xù)檢查 End If Next i If flag=True Then ’a(k)是素數(shù),計數(shù)并將a(k)存入數(shù)
參考解析:程序在Command1_Click事件過程中將100個整數(shù)讀入到數(shù)組a中。在Command2_Click事件過程中,首先檢查文本框中是否有內(nèi)容,在有內(nèi)容的情況下再判斷該數(shù)是否為素數(shù)。判斷一個數(shù)是否為素數(shù)算法為:對于數(shù)n,用n除以2到[*]之間的全部整數(shù),若都除不盡,則n是素數(shù),否則n不是素數(shù)。要表達(dá)“都除不盡”這一條件是困難的,可采用以下方法解決:先假定數(shù)n是素數(shù),再用2到[*]之間的整數(shù)去與n相除,如果其中有一個數(shù)能整除n則說明假定不成立,n不是素數(shù)。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。