例1 升序数组a中插入数x数组元素保持升序解决该问题VB程序段①处应填入正确语句实现功
in 'n数组a中元素数
do while i>0 and a(i)>x
①
ii1
loop
a(i+1)x
例2插入排序基思想排序数值逐插入已排序序序列中直数插入完止新序序列例已知排序组数6071491124366
假设排序程中前3数已完成升序排列构成序序列496071
排序数中第4数(11)插入述序序列新含4数序序列首先应找11插入位置进行插入11放入数组第元素r(0)中元素称监视哨然71起右左查找117171右移位置116060右移位置114949右移位置时11r(0)值较11≥r(0)插入位置r(1)假设11第值r(1)插入位置应该r(1)r(2)间60已右移留出位置正留11面数样方法逐插入该序序列中数n须进行n1趟排序完成
VB程序执行数组元素a(1)值( )
a(1)10a(2)18a(3)12a(4)6a(5)9
for i2 to 5
a(0)a(i)
ji1
do while a(0)>a(j)
a(j+1)a(j)
jj1
loop
a(j+1)a(0)
next i
A10 B18 C6 D9
课作业
1n排成圆圈然n逆时针方分编号12…n编号1开始逆时针计数某计数m倍数时该出圈循环直圈中留
现VB6制作模拟报数出列程序程序界面图示文框Text1中输入数n文框Text2中输入出列号m单击钮模拟报数Command1列表框List1中显示出列序编号程序界面
实现述功VB 代码 请划线处填入合适代码
Private Sub Command1_Click()
Dim n As Integer m As Integer
Dim a(1 To 100) As Integer
n Val(Text1Text)
m Val(Text2Text)
For i 1 To n
①
Next
s 0
j 0
Do While s < n
t 0
Do While t
t t + a(j)
Loop
a(j) 0
List1AddItem Str(j)
s s + 1
Loop
Text3Text Str(j)
End Sub
2利VB程序两组成绩数合组成绩高低排列输出成绩相时第批学生优先输出实现述功VB代码加框处代码错请改正
Dim xm(1 to 1000) as string '存储学生姓名
Dim cj(1 to 1000) as integer '存储学生成绩
Private Sub Form_Load() '该处具体代码省略
'数库读取两批学生数第1批学生数rs1成绩高低序成绩存入cj(1)cj(2)…cj(rs1)中姓名存入xm(1)xm(2)…xm(rs1)中第2批数rs2成绩高低序成绩存入cj(rs1+1)cj(rs1+2)…cj(rs1+rs2)中姓名存入xm(rs1+1)
xm(rs1+2)…xm(rs1+rs2)中
End Sub
Private Sub Command1_Click()
i1
jrs1+1
'程序开始成绩高低逐输出次输出前两段中尚未处理学生中成绩高n1 '①
Do While i
If cj(i)>cj(j) Then
kiii+1
Else
kjjj+1
End If
List1AddItem(″第″+Str(n)+″名″+xm(k)+″成绩″+Str(cj(k)))
Loop
Do While i
List1AddItem(″第″+Str(n)+″名″+xm(i)+″成绩″+Str(cj(i)))
ii+1
Loop
Do While j
List1AddItem(″第″+Str(n)+″名″+xm(j)+″成绩″+Str(cj(j)))
jj+1
Loop
End Sub
3编写VB程序长度n序序列a(1)a(2)……a(n)整数t(1≤t≤n)该序序列划分两段序列a前t数nt数调保持两段(t数nt数)间相位置变(t数nt数序)例长度6序序列384259616978t2时重排结果596169783842程序运行时产生n整数存储数组a中文框Text1中输入t单击调钮Command1列表框List2输出t数nt数调数字序列实现述功请划线处填入合适代码
Const n10
Dim a(1 To 10) As Integer
Private Sub Form_Load()
'生成n序数显示List1中代码略
End Sub
Private Sub Command1_Click()
Dim t As Integeri As Integerj As Integertemp As Integer
①
For it+1 To n
tempa(i)
For ji To i+1t Step1
②
Next j
a(j) ③
Next i
For i1 To n
List2AddItem Str(a(i))
Next i
End Sub
4单循环赛制种较公合理赛制度赛程中参赛队伍均相遇次秩序编排采逆时针轮转方法数字1~n次作队伍编号编号U型走分成均等两边(n奇数末尾增加编号0总数偶数)第轮赛秩序例5队伍赛编排情况图a示第二轮固定编号1余编号均逆时针方移动位置该轮赛秩序轮赛秩序类推编号0阵表示轮轮空
现VB程序实现述功文框Text1中输入参赛队伍数n单击编排钮Command1列表框List1中输出轮赛秩序程序运行效果图b示
图a
图b
实现述功VB代码加框处代码错请改正
Private Sub Command1_Click()
Dim team(1 To 20) As String '存储队伍编号
Dim n As Integerc As Integerresult As String
Dim i As Integerj As Integertemp As String
nVal(Text1Text)
For i1 To n
team(i)Str(i)
Next i
cn+n Mod 2 '变量c存储赛编排队伍总数
If c<>n Then team(c)Str(0)
For i1 To c1
result″ ″
For j1 To c\2
resultresult & team(j) & ″″&team(cj) & ″″ '①
Next j
List1AddItem ″第″ & Str(i) & ″ 轮″ & result
'固定编号1余队伍逆时针移动位置
tempteam(c)
For jc To 2 Step 1
team(j+1)team(j) '②
Next j
team(2)temp
Next i
End Sub
4李学碰数学问题400学序进行编号围成圈12报数(1号位置开始)报2学出列直循环报数问剩位学编号号
例6学编号例12报数(1号位置开始)次出列编号次序246315剩编号5学解决问题李VB编写程序尝试解决中列表List1显示出列序编号文框Text1中显示留编号程序代码请划线处填入合适代码
Private Sub Command1_Click()
Dim sft As Integer
Dim a(1 To 400) As Boolean
For i1 To 400
a(i)False
Next i
s0f0i0
Do While f<399
ii+1
If i401 Then i ①
If a(i)False Then ss+1
If s2 Then
②
List1AddItem Str(i)
a(i)True
f ③
End If
Loop
For i1 To 400
If ④ Then Text1TextStr(i)
Next i
End Sub
5n互重复数字值范围[1n]分保存数组元素a(1)a(n)中果数字i保存a(i)认数字i正确位置干相互占位置数字称组正确位置数字单独组6数字231465分保存数组元素a(1)a(6)中231组4组65组该程序功输出组情况运行界面图
(1)数组元素a(1)a(5)值分253145元素总 组
(2)请划线处填入合适代码
Const n10
Dim a(1 To n) As Integer '保存原始数
Dim b(1 To n) As Boolean '数组b标记相应位置没找
Private Sub Command1_Click()
Dim i As Integersum As Integertotal As Integer
sum0total1 'total表示第组
i1
List2Addltem ″第″+Str(total)+″组″
Do While sum
List2Addltem a(i)
b(i)True
①
sumsum+1
Loop
If sum
List2Addltem ″第″+Str(total)+″组″
i1
Do While b(i) '该循环查找组开始位置
ii+1
Loop
End If
Loop
End Sub
Private Sub Form_Load()
Dim i As Integer
Randomize
For i1 To n '产生n样整数范围[1n]
a(i)Int(Rnd n)+1
Do While ③
a(i)Int(Rnd n)+1
Loop
Next i
For i1 To n
ListlAddltem a(i)
b(i)False
Next i
End Sub
Function f(x As Integery As Integer) As Boolean
'该函数功判断x数组a中前y数没重复
Dim j As Integer
fFalse
For j1 To y
If a(j)x Then fTrueExit For
Next i
End Function
6面N(3≤N≤100)房间围成圈时针方分编号12……N相邻两房间间均扇门第i房间居住数a(i)初始时选择房间聚集该房间接着时针方走相邻房间直走居住房间扇门花费1量请确定初始房间花费量例N5a(1)4a(2)7a(3)8a(4)6a(5)4
佳方案初始时聚集2号房间花费量7 0+8 1+6 2+4 3+4 448解决问题明编写VB程序窗体加载时数库中读取N值编号1N房间居住数数存储数组a中点击窗体钮Command1程序枚举种方案(初始房间)计算该方案量文框Text1中输出优方案初始房间编号文框Text2中输出量
实现述功VB代码请划线处填入合适代码
Dim a(1 To 100) As Integer '次存储编号1100房间居住数
Private Sub Form_Load()
'程数库中读取N值房间居住数存储数组a中
'代码略
End Sub
Private Sub Command1_Click()
Dim i As Integerj As Integerw As Integerk as Integer
Dim t As Longans As Long
k0ans32767 'ans 初始化Integer数
For i1 To n
t0
For j0 To n1
w ①
If w0 Then wn
t ②
Next j
If t
anst
End If
Next i
Text1TextStr(k) '起始房间编号
Text2Text ③
End Sub
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档