问答题 在考生文件夹下有一个工程文件sjt5.vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框Text1中输入一个大于2的偶数,并单击“分解为”命令按钮,则可以将该偶数分解为两个素数之和,且要求其中一个素数是所能够分解出的最小的素数(一个偶数有时可以分解为多种素数的组合,例如24可以分解为5和19,也可以分解为11和13,要求取含有最小素数的组合,如图所示)。要求编写“分解为”命令按钮事件过程中“考生编写程序开始”和“考生编写程序结束”之间的代码,以实现上述功能。过程IsPrime用来判断一个数是否为素数,如果是,返回值为True,否则返回值为False。
【正确答案】[操作步骤] 步骤1:打开本题工程文件。 步骤2:打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。 For i=1 To Val(Text1.Text) 'i从1开始,第一个找到的肯定就是满足条件的最小素数 If IsPrime(i) And IsPrime(Val(Text1.Text)-i)Then '判定两个数是否都满足素数条件 Label1=i Label2=Val(Text1.Text) - i Exit For End If Next i 步骤3:调试并运行程序,关闭程序后按题目要求存盘。
【答案解析】[考点] 本题考点有:Sqr()函数、文件操作、App.Path相对路径、Val()函数、For循环语句、If判断选择语句以及Mod运算符。 [解析] Function IsPrime()函数用来判断一个数是否为素数,在处理循环变量的上限时,为了节约循环的次数,设置为Sqr(x)为x的平方根,如果x能被循环变量的值整除,IsPrime()函数的返回值为:False,x就不是素数。在Command1_Click事件过程中,通过调用函数判断是否为素数,只要出现一组数据满足条件,就停止For循环,这样可以保证是最小的素数。 在进行数字运算前,一定要将参加运算的数字字符串转换为数值,因为计算机认为字符串是不能进行数学运算的。