大数据是当今最热门的领域之一,小王同学利用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表示未购买。
b(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(1To200) As Integer '各个用户原始的购买记录 Dim dsj (1To45) As Integer '统计商品之间的关联次数 Dim i As Integer, t As Integer, nc 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
t=t+1|dsj(i)>max|maxi=maxi–t