在考生文件夹下有一个工程文件sjt5.vbp,其功能是: ①单击“读数据”按钮,则将考生文件夹下in5.dat文件中的100个正整数读入数组a中,同时在Text1文本框中显示。 ②单击“分组”按钮,则将数组a中所有是3的倍数的元素存人数组b中,

admin2015-06-30  41

问题 在考生文件夹下有一个工程文件sjt5.vbp,其功能是:
  ①单击“读数据”按钮,则将考生文件夹下in5.dat文件中的100个正整数读入数组a中,同时在Text1文本框中显示。
    ②单击“分组”按钮,则将数组a中所有是3的倍数的元素存人数组b中,并对数组b中的元素按升序排序后显示在文本框Text2中。
    在给出的窗体文件中已经有了全部控件(如图所示),但程序不完整。
    要求:编写适当的程序部分使其实现上述功能。
    注意:考生不得修改窗体文件中已经存在的控件和程序,在结果程序运行之前,必须先执行“分组”操作,然后再用窗体右上角的关闭按钮结束程序,否则将没有成绩。最后,程序按原文件名进行存盘。

选项

答案【操作步骤】 步骤1:打开本题工程文件。 步骤2:分析并编写程序代码。 程序提供代码 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(1) Next k Close #1 End Sub Private Sub Command2_Click() Dim b(100) As Integer num = 0 If Len(Text1.Text) = 0 Then     MsgBox "请先执行"读数据"功能!" Else ’考生编写(功能:生成 b 数组,且按从小到大顺序排序) ’注意:请务必将数组 b 的元素个数存入变量 num 中 ’以下程序段将已排序的 b 数组显示在Text2中    For i = 1 To num     Text2.Text = Text2.Text + Str(b(i)) + Space(2)    Next i End If End Sub Private Sub Form_Unload(Cancel As Integer) Open App.Path & "\out5.dat" For Output As #1 Print #1, Text2.Text Close #1 End Sub 程序结束 参考答案 n = 0 For k = 1 To 100 If a(k) Mod 3 = 0 Then num = num + 1 b(num) = a(k) End If Next k For i = 1 To num f = True For j = 1 To num - 1 If b(j) > b(j + 1) Then t = b(j) b(j) = b(j + 1) b(j + 1) = t f = False End If Next j If f Then Exit For End If Next i 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析
转载请注明原文地址:https://jikaoti.com/ti/9D60FFFM
0

最新回复(0)