早教吧作业答案频道 -->其他-->
请问这个VB代码如何理解?求具体每一步骤的解释.9.本程序的功能是查找一组数据中的众数.所谓众数,就是在这组数据中出现次数最多的数.注意:一组数据中的众数可能有多个.(即有多个数据的
题目详情
请问这个VB代码如何理解?求具体每一步骤的解释.
9.本程序的功能是查找一组数据中的众数.所谓众数,就是在这组数据中出现次数最多的数.注意:一组数据中的众数可能有多个.(即有多个数据的出现次数相同).事件过程Cmdfind主要功能是生成n个随机整数存入数组,再调用Freq过程,求出数组中每个不相同的数据出现的次数:再求出其中最大的出现次数值,最后,将求出相应的众数输出.请完善本
程序.
Option Explicit
Option Base 1
Private Sub Cmdfind_Click()
Dim a() As Integer,n As Integer,i As Integer
Dim Shu() As Integer,Cs() As Integer,Max As Integer
n=InputBox("输入数据个数:","查找众数",20)
ReDim a(n)
Randomize
For i=1 To n
a(i)=Int(Rnd*5)+5
Text1=Text1 & Str(a(i))
If i Mod 10=0 Then Text1=Text1 & vbCrLf
Next i
Call Freq(a,Shu,Cs)
Max=Cs(1)
For i=2 To UBound(Cs)
If Cs(i)>Max Then
___(26)___
End If
Next i
For i=1 To UBound(Cs)
If ___(27)___ Then Text2=Text2 & Shu(i) & " "
Next i
End Sub
Private Sub Freq(a() As Integer,Shu() As Integer,Cs() As Integer)
'shu数组用于存放A数组中不相同数据的值
'Cs数组用于存放对应不相同数据出现的次数
Dim i As Integer,j As Integer,js As Integer,n As Integer
For i=1 To UBound(a)
js=1
For j=1 To n '搜索数组a中不相同的数据
If Shu(j)=a(i) Then Exit For
Next j
If ___(28)___ Then
n=n+1
ReDim ___(29)___
Shu(n)=a(i)
For j=i+1 To UBound(a)
If a(j)=a(i) Then ___(30)___
Next j
Cs(n)=js
List1.AddItem a(i) & "---" & js
End If
Next i
End Sub
这个代码说在TEXT1框中随机输入20个 9之间的随机数形成一个数组,然后统计每个数字出现的个数并放在列表框中,最后找出出现个数最多的两个数字,放在TEXT2里面.
里面自定义过程中,又重新DIm n As Ingeter那么这个n就和之前过程的n不一样了吧?
9.本程序的功能是查找一组数据中的众数.所谓众数,就是在这组数据中出现次数最多的数.注意:一组数据中的众数可能有多个.(即有多个数据的出现次数相同).事件过程Cmdfind主要功能是生成n个随机整数存入数组,再调用Freq过程,求出数组中每个不相同的数据出现的次数:再求出其中最大的出现次数值,最后,将求出相应的众数输出.请完善本
程序.
Option Explicit
Option Base 1
Private Sub Cmdfind_Click()
Dim a() As Integer,n As Integer,i As Integer
Dim Shu() As Integer,Cs() As Integer,Max As Integer
n=InputBox("输入数据个数:","查找众数",20)
ReDim a(n)
Randomize
For i=1 To n
a(i)=Int(Rnd*5)+5
Text1=Text1 & Str(a(i))
If i Mod 10=0 Then Text1=Text1 & vbCrLf
Next i
Call Freq(a,Shu,Cs)
Max=Cs(1)
For i=2 To UBound(Cs)
If Cs(i)>Max Then
___(26)___
End If
Next i
For i=1 To UBound(Cs)
If ___(27)___ Then Text2=Text2 & Shu(i) & " "
Next i
End Sub
Private Sub Freq(a() As Integer,Shu() As Integer,Cs() As Integer)
'shu数组用于存放A数组中不相同数据的值
'Cs数组用于存放对应不相同数据出现的次数
Dim i As Integer,j As Integer,js As Integer,n As Integer
For i=1 To UBound(a)
js=1
For j=1 To n '搜索数组a中不相同的数据
If Shu(j)=a(i) Then Exit For
Next j
If ___(28)___ Then
n=n+1
ReDim ___(29)___
Shu(n)=a(i)
For j=i+1 To UBound(a)
If a(j)=a(i) Then ___(30)___
Next j
Cs(n)=js
List1.AddItem a(i) & "---" & js
End If
Next i
End Sub
这个代码说在TEXT1框中随机输入20个 9之间的随机数形成一个数组,然后统计每个数字出现的个数并放在列表框中,最后找出出现个数最多的两个数字,放在TEXT2里面.
里面自定义过程中,又重新DIm n As Ingeter那么这个n就和之前过程的n不一样了吧?
▼优质解答
答案和解析
你的要求 “最后找出出现个数最多的两个数字,放在TEXT2里面.” 我办不到.
实在尽力了,只能找出最大的,答案如下
26.Max = Cs(i)
27.Cs(i) = Max
28.j = n + 1
29.Preserve Shu(n), Cs(n)
30.js = js + 1
这里我给出大致的解析,有不懂的再问我吧,对了,顺便把你的答案公布下吧,希望看到答案的说
代码
Option Explicit
Option Base 1
Private Sub Cmdfind_Click()
Dim a() As Integer, n As Integer, i As Integer
Dim Shu() As Integer, Cs() As Integer, Max As Integer
n = InputBox("输入数据个数:", "查找众数", 20)
ReDim a(n)
Randomize
For i = 1 To n '为数组a赋值
a(i) = Int(Rnd * 5) + 5
Text1 = Text1 & Str(a(i))
If i Mod 10 = 0 Then Text1 = Text1 & vbCrLf
Next i
Call Freq(a, Shu, Cs) '调用过程,获取不同的数值(shu)和相应的个数(Cs)
Max = Cs(1)
For i = 2 To UBound(Cs)
If Cs(i) > Max Then '用if语句获取最大的数值的个数
Max = Cs(i)
End If
Next i
For i = 1 To UBound(Cs) '用于查找对应的众数,并传递给Text2
If Cs(i) = Max Then Text2 = Text2 & Shu(i) & " " '
Next i
End Sub
Private Sub Freq(a() As Integer, Shu() As Integer, Cs() As Integer)
'shu数组用于存放A数组中不相同数据的值
'Cs数组用于存放对应不相同数据出现的次数
Dim i As Integer, j As Integer, js As Integer, n As Integer
For i = 1 To UBound(a)
js = 1
For j = 1 To n '依次用数组shu中的元素与a(i)比较
If Shu(j) = a(i) Then Exit For
Next j
If j = n + 1 Then 'j=n+1,说明为a(i)为新的值,计入"shu"中,并接着统计次数,加入List1
n = n + 1
ReDim Preserve Shu(n), Cs(n) '重新定义数组大小
Shu(n) = a(i) '把a(i)的数据赋值给数组shu
For j = i + 1 To UBound(a) '用For语句获取新值shu(n)在数组a中出现的次数(频数)
If a(j) = a(i) Then js = js + 1
Next j
Cs(n) = js '把shu(n)频数赋值给相应的CS(n)
List1.AddItem a(i) & "---" & js
End If
Next i
End Sub
本人能力有限,希望对你有帮助~~
实在尽力了,只能找出最大的,答案如下
26.Max = Cs(i)
27.Cs(i) = Max
28.j = n + 1
29.Preserve Shu(n), Cs(n)
30.js = js + 1
这里我给出大致的解析,有不懂的再问我吧,对了,顺便把你的答案公布下吧,希望看到答案的说
代码
Option Explicit
Option Base 1
Private Sub Cmdfind_Click()
Dim a() As Integer, n As Integer, i As Integer
Dim Shu() As Integer, Cs() As Integer, Max As Integer
n = InputBox("输入数据个数:", "查找众数", 20)
ReDim a(n)
Randomize
For i = 1 To n '为数组a赋值
a(i) = Int(Rnd * 5) + 5
Text1 = Text1 & Str(a(i))
If i Mod 10 = 0 Then Text1 = Text1 & vbCrLf
Next i
Call Freq(a, Shu, Cs) '调用过程,获取不同的数值(shu)和相应的个数(Cs)
Max = Cs(1)
For i = 2 To UBound(Cs)
If Cs(i) > Max Then '用if语句获取最大的数值的个数
Max = Cs(i)
End If
Next i
For i = 1 To UBound(Cs) '用于查找对应的众数,并传递给Text2
If Cs(i) = Max Then Text2 = Text2 & Shu(i) & " " '
Next i
End Sub
Private Sub Freq(a() As Integer, Shu() As Integer, Cs() As Integer)
'shu数组用于存放A数组中不相同数据的值
'Cs数组用于存放对应不相同数据出现的次数
Dim i As Integer, j As Integer, js As Integer, n As Integer
For i = 1 To UBound(a)
js = 1
For j = 1 To n '依次用数组shu中的元素与a(i)比较
If Shu(j) = a(i) Then Exit For
Next j
If j = n + 1 Then 'j=n+1,说明为a(i)为新的值,计入"shu"中,并接着统计次数,加入List1
n = n + 1
ReDim Preserve Shu(n), Cs(n) '重新定义数组大小
Shu(n) = a(i) '把a(i)的数据赋值给数组shu
For j = i + 1 To UBound(a) '用For语句获取新值shu(n)在数组a中出现的次数(频数)
If a(j) = a(i) Then js = js + 1
Next j
Cs(n) = js '把shu(n)频数赋值给相应的CS(n)
List1.AddItem a(i) & "---" & js
End If
Next i
End Sub
本人能力有限,希望对你有帮助~~
看了请问这个VB代码如何理解?求具...的网友还看了以下:
有十箱零件,每箱100个,这十箱中有一箱是次品,外观和正品一样,只是次品每个零件比正品轻一克你能只 2020-04-27 …
题目是这样的:有十箱同样的仪器零件,其中9箱是合格的,每个零件重十克,一箱是次品,每个零件中9克. 2020-05-13 …
求救!数学世界名题有100个精密的零件分别装在10个盒子,每盒10个,其中有1盒是次品,每个次品比 2020-06-04 …
有5袋零件,每袋都是5个,其中4袋是合格的,1袋是次品.合格的零件每个重10克,次品每个重9.5可 2020-06-26 …
健身运动中的动作10次为一组,做2组.运动有好几个动作.每个都是10次为一组,做2组.是不是就每个 2020-07-05 …
箱包厂生产密码箱,按质量分10个档次,最低档次的每个获利24元,每高一个档次、每个多获利8元,最低 2020-07-19 …
用123456789表示最接近自然对数的数既用(1+1/X)^x形式表示X是几的几次方的几次方每个 2020-08-02 …
问全班同学42个人,都互相握手,一共要握多少次(每个同学都要握),我就是同学,要算式,谢谢假如我是1 2020-11-11 …
运用加,减,乘,除四种运算和括号,如何由三个5和一个1得到24?(每个数只能用一次)是每个数只用一次 2020-11-20 …
一条微博信息.每分钟有20个人转发一次,且每个人转发1次就可以带动粉丝里面3个人转发一条微博信息.每 2021-01-01 …