[问答题] 在考生文件夹下有一个工程文件sjt5.vbp,其功能是: 单击“读数据”按钮,则把考生文件夹下in5.dat文件中的100个正整数读入数组a中,同时显示在Text1文本框中; 单击“素

19 查阅

[问答题] 在考生文件夹下有一个工程文件sjt5.vbp,其功能是:

单击“读数据”按钮,则把考生文件夹下in5.dat文件中的100个正整数读入数组a中,同时显示在Text1文本框中;

单击“素数”按钮,则将数组a中所有素数(只能被1和自身整除的数称为素数)存入数组b中,并将数组b中的元素显示在文本框Text2中。

在给出的窗体文件中已经有了全部控件(如图5所示),但程序不完整。

要求:完善程序使其实现上述功能。

注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行之前,必须先执行“素数”操作,然后再用窗体右上角的关闭按钮结束程序,否则无成绩。最后程序按原文件名存盘。

[题目提供的源程序]

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 "请先执行"读数据"功能!"

参考答案:

[操作步骤] 第1步:打开工程文件sjt5.vbp。 第2步:编写程序。参考程序如下: For k=1 To 100 flag=True ’假定a(k)是素数,用flag为真来表示 For i=2 To Sqr(a(k)) If a(k)Mod i=0 Then flag=False ’假定不成立,修改flag的值为False Exit For ’得出结论后,无须继续检查 End If Next i If flag=True Then ’a(k)是素数,计数并将a(k)存入数

程序在Command1_Click事件过程中将100个整数读入到数组a中。在Command2_Click事件过程中,首先检查文本框中是否有内容,在有内容的情况下再判断该数是否为素数。判断一个数是否为素数算法为:对于数n,用n除以2到[*]之间的全部整数,若都除不尽,则n是素数,否则n不是素数。要表达“都除不尽”这一条件是困难的,可采用以下方法解决:先假定数n是素数,再用2到[*]之间的整数去与n相除,如果其中有一个数能整除n则说明假定不成立,n不是素数。

计算机考试