注意:下面出现的“考生文件夹”均为c:\wexam\25160001。 在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有一个文本框,名称为Text1;两个命令按钮,名称分别为C1和C2,标题分别为“计算”、“存盘”,设计界面如图20-5所示。并有一个函数过程isprime,其功能是判断参数a是否为素数,如果是素数,则返回True,否则返回False。 请将程序中问号的地方用相应的代码补充完整,使得在运行时,单击“计算”按钮,则找出小于18000的最大的素数,并显示在Text1中;单击“存盘”按钮,则把Text1中的计算结果存入考生文件夹下的out5.txt文件中。 注意:考生不得修改isprime函数过程和控件的属性,必须把计算结果通过“存盘”按钮存入out5.txt文件中,否则无成绩。
参考答案:
解析: 在窗体上建立好控件后,先设置控件的属性,再编写事件过程。
素数的判断准则就是看是否该数除了1和其本身外别无其他约数(即从2到n-1之间没有可以将其整除的数)即可,变量 flag是用于保留判断数是否是素数的结果的,值有True和False两个(从程序中可以看出)所以应将其定义为布尔型(Boolean),并且在函数中判断完之后,将flag的值赋给函数过程isprime的名字。
文本框用Text属性来显示计算机结果,其形式为:
文本框名.Text=要显示的内容
将数据写入文件可用命令Write#或Print#,本程序中用的是后者,其形式为:
Pint#文件号,[输出列表]。
解题步骤:
第一步:建立界面并设置控件属性。
程序中用到的控件及其属性值见表20-5。
表 20-5
对 象 | 属 性 | 设 置 值 |
文本框 | Name | Text1 |
命令按钮 | Name Cption | C1 计算 |
命令按钮 | Name Cption | C2 存盘 |
程序中提供的代码:
Private Function isprime(a As Integer) As Boolean
’ Dim flag As
flag=True
b%=2
Do While b%<=Int(a/2) And flag
If Int(a/b%)=a/b% Then
flag=False
Else
b%=b%+1
End If
’
isprime=flag
End Function
Private Sub C1_Click()
Dim i As Integer
i=18000
Do
i=i-1
Loop Until isprime(i)
’ Text1.=i
End Sub
Private Sub C2_Click()
Open "out5.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
参考代码:
Private Function isprime(a As Integer) As Boolean
Dim flag As Boolean
flag=True
b%=2
Do While b%<=Int(a/2) And flag
If Int(a/b%)=a/b% Then
flag=False
Else
b%=b%+1
End If
Loop
isprime=flag
End Function
Private Sub C1_Click()
Dim i As Integer
i=18000
Do
i=i-1
Loop Until isprime(i)
Text1.Text=i
End Sub
Private Sub C2_Click()
Open "out5.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。