题库 高中信息

题干

n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Commaiid1,在列表框List2 中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如下图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim a(1 To 8) As Integer
Dim n As Integer
Private Sub Form_Load()
'n=8,排序前数据存储在数组a中,并在列表框Listl中显示
'代码略
End Sub
Private Sub Command1_Click()
Dim flag As Boolean 'flag值为True表示一遍加工中发生过交换
i = 1
flag = True
Do While '(1)  

i <=" n" - 1 Or flag = True

 

flag = False
For j =" n" To i + 1 Step -1
If a(j) < a(j - 1) Then
k =" a(j):" a(j) =" a(j" - 1): a(j - 1) = k
flag = True
End If
Next j
i =" i" + 1
Loop

Str(i)

 
Label3.Caption = "排序过程的加工遍数为" +    '(2)

For i =" 1" To n
List2.AddItem Str(a(i))
Next i
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2016-12-14 11:10:21

答案(点此获取答案解析)

同类题2

某班级学生为毕业晚会的一个节目设计一个仿“V”字造型,先筛选出班级里所有男生,然后将参演的n名男生按照身高,摆出中间低两边高(先右后左)的造型,如图1 所示。王林同学用VB编写模拟“节目造型”程序,功能如下:从数据库中导出所有学生编号、性别和身高数据;单击“筛选排序”按钮Command2,根据身高仿“V”字和造型进行有序排列,并将结果显示在文本框Text2 中。程序运行界面如图2
所示。举例说明如下:
原1-7号男生身高
171 172 180 174 176 179 178
筛选排序后序列
171 172 174 176 178 179 180
“造型设计”后序列
180 178 174 171 172 176 179
 

图1
身高顺序:男3号〉男6号〉男7号〉男5号〉男4号〉男2号〉男1号

图2
Const n = 7
Dim h2(1 To n) As Integer
Dim height1(1 To n) As Integer
Dim height2(1 To n) As Integer
Dim i As Integer, j As Integer, temp As Integer
Dim sex(1 To n) As Boolean '男生sex=true
Private Sub Form_Load()
'n名学生的身高和性别由数据库导出,分别存储在数组height1 和sex中,代码略!
End Sub
Private Sub Command1_Click()
For i =" 1" To n - 1
For j =" n" To i + 1 Step -1
If ①  Then
temp =" height1(j):" height1(j) =" height1(j" - 1): height1(j - 1) = temp:学#科#网
End If
Next j
Next i
For i =" 1" To n
Text1.Text =" Text1.Text" + " " + Str(height1(i))
Next i
End Sub
Private Sub Command2_Click()
Dim left, right As Integer, i As Integer, mid As Integer
mid =" Int((1" + n) / 2)
left =" 0:" right = 0
②
For i =" 2" To n Step 2
right =" right" + 1
height2(mid + right) = height1(i)
left =" left" + 1
③
Next iZXXK
For i =" 1" To n
Text2.Text =" Text2.Text" + " " + Str(height2(i))
Next i
End Sub