(1)考生文件夹下有一个工程文件sjt3.vbp,其功能是: ①单击“读数据”按钮,则将考生文件夹卜in3.dat文件中的100个0~999的整数读入到数组a中; ②单击“计算”按钮,则找出这100个整数中的所有水仙花数,并将它们的最大值与

admin2019-06-20  27

问题 (1)考生文件夹下有一个工程文件sjt3.vbp,其功能是:
    ①单击“读数据”按钮,则将考生文件夹卜in3.dat文件中的100个0~999的整数读入到数组a中;
    ②单击“计算”按钮,则找出这100个整数中的所有水仙花数,并将它们的最大值与最小值分别显示在文本框Text1、Text2中(注:当一个数的值等于该数中的各位数字的立方和
时,此数被称为水仙花数。如:153=13+53+33,所以153就是一个水仙花数)。
    在窗体文件中已经给出了全部控件(如图所示)和“读
数据”命令按钮的事件过程以及判断一个数是否为水仙花数
的通用过程。要求编写“计算”命令按钮的事件过程。
    注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行前,必须进行“计算”,并且必须通过单击窗体右上角的“关闭”按钮结束程序,否则无成绩。最后,程序按原文件名存盘。

    (2)在考生文件夹下有一个工程文件sjt4.vbp。请在窗体上添加一个组合框,名称为cb1,并输入三个列表项:“3”、“7”、“11”(列表项的顺序不限,但必须是这三个数字);添加一个名为Text1的文本框;再添加一个标题为“计算”、名称为C1的命令按钮,如图所示。请编写适当的事件过程,使得在程序运行时,在组合框中选定一个数字后,单击“计算”按钮,则计算5000以内能够被该数整除的所有数之和,并放人Tex1中。最后,按原文件名存盘。
    提示:由于计算结果较大,应使用长整型变量。
    注意:考生不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须至少进行一次计算。并且必须用窗体右上角的关闭按钮结束程序,否则无成绩。

选项

答案步骤1:按照题目要求打开工程文件。 步骤2:打开代码编辑窗口,在指定位置编写如下代码。 Dim i As Integer Dim max As Integer,min As Integer max=-1 min=1000 For i=1 To 100 If isnarc(a(i))Then ’调用isnarc判断是否为水仙花数 If max<=a(i)Then max=a(i) If min>=a(i)Then min=a(i)’求水仙花数中的最大值与最小值 End If Next i Textl=max Text2=min 步骤3:按照题目要求调试并运行程序,如图3.18所示。 [*] 步骤4:关闭程序后,按题目要求存盘。 (2)步骤1:打开本题工程文件,按照题目要求建立控件并设置组合框控件属性,如图3.19所示。程序中用到的控件及属性见表3.11。 [*] 步骤2:打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。 Private Sub Cl Click() Dim sumAs Long Dim n As Integer Dim i As Inteqer n=val(cbl.Text)’读取选中的数字并通过函数Val转换为数值 For i=n To 5000’从本身开始循环查找 If i Mod n=O Then sum=sum+i’判断是否能被该数整除并求和 End If Next i Textl.Text=sum。在’Text1中显示 End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析 (1)循环遍历数组a,通过调用Function过程判断是否为水仙花数,并通过If语句对数值进行比较,如果max<=a(i),那么max=a(i),最小值同理。在设置变量初值时,max=-1,min=1000,目的是方便比较数的大小。因为数组中的数值最小的是0,最大的是999,所以,让max先等于-1,小于数组中的最小值,在程序执行过程中,只要有水仙花数,就一定会大于max,这样才会赋值给max,min=1000也是同样的道理。
    (2)本题主要考查组合框的属性及For循环语句的使用。
    Nod取模运算就是求余数,例如10 mod 3=1,因为10除以3等于3余1,结果就是余数。如果a mod b=0,则说明a能被b整除,反之如果a mod h<>0,则a不能被b整除。
    组合框(ComboBox)将文本框与列表框的特性组合在一起,既可以在组合框的文本框部分输入信息,也可在列表框部分选择项目;组合框的列表项可在设计阶段通过其List属性添加,每输入完一项后按键换行再输入下一项;其Text属性用于设置或返回其文本框部分当前的文本。
    根据题意,用For逐一循环5000内的整数,通过If语句的条件表达式:i Mod n=0,判断各个数是否能被n整除,把能被整除的数累加到变最sum。i为循环变量,n的值为Val(Cb1.Text)。
转载请注明原文地址:https://jikaoti.com/ti/1oN0FFFM
0

相关试题推荐
最新回复(0)