大数据是当今最热门的领域之一,小王同学利用VB设计了一个模拟大数据应用的程序。有10种商品,数组a存储用户是否购买了各种商品;某个用户购买时,商品两两之间是否一起购买用另一个数组dsj来记录;各数组元素的解释如下表所示。
数组元素
数组元素的含义
a(i)
a(1)到a(
10)依次存储1号顾客购买商品1~商品10的记录:
a(11)至a(20)依次存储2号顾客购买商品1~商品10的记录;依次类推。
数组a的某个元素的值为1,则表示某位顾客购买了某种商品,若为0则表示没有购买
该种商品。如a(6)=1表示1号顾客购买了商品6,a(6)=0表示未购买。
dsj(i)
dsj(1)~dsj(9)依次存储商品1与商品2~商品10的关联次数;
dsj(10)~dsj(17)依次存储商品2与商品3~商品10的关联次数;依次类推。
如dsj(5)=2表示商品1与商品6被同时购买过2次;
如dsj(45)=4表示商品9与商品10被同时购买过4次。.
数组dsj中,若dsj(45)的值最大,则表示商品9和商品10 的关联次数最多。
小王按照上述算法设计了VB程序,统计了20个用户购买10种商品之间的关联性,VB程序如下,部分界面如题图所示。
Private Sub Cmd1_Click( ) Dim a(1 To 200) As Integer '各个用户原始的购买记录 Dim dsj(1 To 45) As Integer '统计商品之间的关联次数 Dim i As Integer, t As Integer, ne As Integer, j As Integer, max As Integer '数组a读入数据并在列表框分行输出,代码略 For i= 1 To 20 '20个用户 t= 1 For j= 1 To 9 '10个商品,共45种组合 For k=j+ 1 To 10 m=(i- 1)* 10 If Then dsj(t) = dsj(t)+ 1 ① Next k Next j Next i max=0 For i=1 To 45 If ② Then max=dsj(i) maxi=i End If Next i t=9:nc= 1 Do While maxi>t ③ t=t-1 nc=nc+1 Loop Text1.Text="关联最多的是商品"+Str(nc)+Str(maxi+nc)+":"+Str(max)+"次" End Sub
(1)
将按钮.上的文字“统计”修改为“计算”,可在Form_Load过程中使用 (单选,填字母)语句实现;
A . Cmd1.Caption= "计算”
B . Cmd1_Click="计算"
C . Command1.Text="计算"
(2)
加框处代码有错,请改正;
(3)
在程序划线处填入合适代码,使程序完整。
① ② ③
答案: A
a(j + m) * a(k + m) = 1
【1】t = t + 1【2】dsj(i) > max【3】maxi = maxi – t