1 | 0 | 0 |
1 | 1 | 0 |
0 | 0 | 0 |
|
|
|
| ||||||||||||||||||||||||||||||||||||
第一天 | 第二天 | 第三天 | 第四天 |
图b
zudui(k) = bh(i)
flag(Val(bh(i))) = True
k = k + 1
If
If flag(j) = False Then
If Then k = j
End If
t1 = bh(k): bh(k) = bh(i): bh(i) = t1
t1 = xm(k): xm(k) = xm(i): xm(i) = t1
t1 = xb(k): xb(k) = xb(i): xb(i) = t1
t2 = age(k): age(k) = age(i): age(i) = t2
运动记录 | 1,1,2,3,2,3,2,3,3,1,1,4,3 | ||||
序号 | ① | ② | ③ | ④ | ⑤ |
两项运动 | 1,1,2 | 2,3,2,3,2,3,3 | 3,3,1,1 | 1,1,4 | 4,3 |
问题描述:山顶上共有10个洞,一只兔子和一只狐狸相遇了,狐狸要吃兔子。兔子对狐狸说:“你可以吃掉我,但必须先找到我。我就藏在这10个洞的其中一个洞中(注:第1~10个洞的编号分别为:1、2、3、4、5、6、7、8、9、0)。你先到1号洞找我,若没找到,则第二次隔一个洞找我,即3号洞;第三次隔两个洞找我,即6号洞;以后以此类推,找到就可以吃掉我。”狐狸答应了,但是狐狸进进出出100次后,也没找到兔子,请问兔子躲藏在哪个洞?
根据规则,前面5次进洞的情况如下表所示。
第i次进洞 | 洞的实际编号 |
1 | 1 |
2 | 3 |
3 | 6 |
4 | 0 |
5 | 5 |
…… | …… |
解决此问题的VB程序界面如右图所示,单击“运行”按钮,在列表框List1中显示兔子可能躲藏的山洞编号。
For i = 0 To 9 If ② Then List1.AddItem Str(i) '输出兔子可能躲藏的洞(编号) Next i |
小陈按上述要求编写了一个VB程序,功能如下:程序运行时,在列表框List1中显示排序前数据,单击“排序”按钮Command1,在列表框List2中显示排序结果。程序运行界面如图所示。请回答下列问题:
A.4×4×3/2 次 / B.4×50×49/2 次 / C.200×199/2 次
Const n = 200 ’学生数
Const m = 4 ’班级数
Dim xh(1 To n) As String, tmp1(1 To n) As String
Dim score(1 To n) As Integer, tmp2(1 To n) As Integer
Dim class(1 To n) As Integer, tmp3(1 To n) As Integer
Private Sub Form_Load()
’读取学生的学号、班级和成绩数据分别存储在数组xh,class和score中并在List1中显示
’代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim t3 As Integer, t2 As Integer, t1 As String
For i = 1 To n
For i = 1 To m
For k = 1 To m ’对每一个班的学生成绩进行排序
For i = c(k) + 1 To c(k + 1) - 1
For j = c(k + 1) To i + 1 Step -1
If
t1 = tmp1(j): tmp1(j) = tmp1(j-1): tmp1(j-1) = t1
t2 = tmp2(j): tmp2(j) = tmp2(j-1): tmp2(j-1) = t2
t3 = tmp3(j): tmp3(j) = tmp3(j-1): tmp3(j-1) = t3
End If
Next j
Next i
Next k
’在List2中按统一格式输出排序后数据,代码略
End Sub
编写vb程序,寻找词典中所有复合单词并输出显示。运行程序,在列表框list1中显示从词典数据库中导入的单词,单击“统计”按钮command1,在列表框list2中按降序显示该词典中所有复合单词。程序运行界面如图所示。
等级 | A | B+ | B | C+ | C | D+ | D | E |
比例 | 3% | 7% | 16% | 24% | 24% | 16% | 7% | 3% |
转换公式如下:t=t2+(s-s2)*(t1-t2)/(s1-s2),其中t表示转化后的赋分成绩,t1表示该档最高转化分,t2表示该档最低转化分,s表示原始分,s1表示该档最高原始分,s2表示该档最低原始分。
比如选择物理的学生有20000人,小明物理卷面分90分,排名为1800名,则他在物理学科中的比例是9%。按照赋分等级表可知他所处等级为B+。若原始分4%-10%区间的最高分为94,最低分为88,B+区间分数为81-90分。小明转化后的赋分成绩为81+(90-88)*(90-81)/(94-88)=84分。
编写一个VB程序计算某校学生某科目成绩的赋分,功能如下:从数据库中读入学生学号、姓名、班级和原始成绩,并在列表框List 1中显示,单击“赋分”按钮Comnand1,在列表框List2中按原始成绩从高到低显示赋分等级和赋分成绩。赋分时,先按原始成绩从高到低排序,再根据人数比例计算切分位置,最后对落入同一等级的学生进行赋分。若切分位置有相同分数学生,则归为同一个等级。例如,某等级切分位置是第100位,但第101位学生的原始成绩和第100位相同,则这两名学生的赋分等级相同。程序运行界面如图b所示。
Dim i As Integer, km As String
Dim conn As New ADODB. Connection
Dim rs As New ADODB. Recordset
conn. ConnectionString = "provider=microsoft. ace. oledb. 12. 0; data source=" + App. Path + "\student. accdb"
conn. Open
Set rs. ActiveConnection = conn
rs. Open "select * from stu_info"
Loop
Dim q(1 To max) As Integer, p(1 To 8) As Single, dj(1 To 8) As String
Dim i As Integer, j As Integer, t As Integer, pos As Integer, last As Integer
Dim t1 As Integer, t2 As Integer, s1 As Single, s2 As Single
p(1) = 0.03:p(2) = 0.07:p(3) = 0.16:p(4) = 0.24
p(5) = 0.24:p(6) = 0.16:p(7) = 0.07:p(8) = 0.03
dj(1) = "A":dj(2) = "B+":dj(3) = "B":dj(4) = "C+"
dj(5) = "C":dj(6) = "D+":dj(7) ="D":dj(8) ="E"
For i = 2 To 8
p(i) =
Next i
Fori=1Ton
q(i) = i
For j = n To i + 1 Step - 1
If fs(q(j)) > fs(q(j - 1)) Then
t = q(j):q(j)=q(j - 1):q(j - 1) = t
End If
Next j
Next i
pos = 1
t1 = 100:t2 = 91
For i = 1 To 8
last = Int(n * p(i) + 0.5)
Do While
last = last + 1’处理切分位置的同分数学生
Loop
s1 = fs(q(pos)):s2 = fs(q(last))
Do While pos <= last
ffcj(q(pos)) = t2 + (fs(q(pos)) - s2) / (s1 - s2) * (t1 - t2)
pos = pos + 1
Loop
t1 = t1-10:t2 = t2 - 10
Next i
For i = 1 Ton
List2. AddItem xh(q(i)) + xm(q(i)) + Str(bj(q(i))) + dj(ffdj(q(i))) + Str(ffcj(q(i)))
Next i