早教吧作业答案频道 -->其他-->
请问这个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代码如何理解?求具...的网友还看了以下:
逆相序与计量误差一台组式计量箱,采用华立DTSD545三相四线多功能表、电流回路接线正确,但电压出 2020-04-07 …
人体能量分解顺序是先肝糖原再脂肪吗?那脂肪供能顺序是先内脏脂肪再肌肉吗?血脂是什么呢? 2020-05-14 …
.Excel的数据排序,下列说法中正确的是().A.最多只能以3个关键字段进行排序B.只能对数据进 2020-05-23 …
高中物理变压器(理想)中,用多少给多少,能否从自感互感及磁场能量角度进行解释为什么用多少给多少解释 2020-06-08 …
求论语中有治国理念的句子越多越好呃,本人理解能力不强最好附上翻译每一部分都要分开标号序号好的加20 2020-06-23 …
课文填空:(1)是各种分子的有序组织形式.(2)通过ATP的合成和水解使放能反应所释放的能量用于吸 2020-07-01 …
操作系统题单道多道填空题详解一道单纯计算15分钟,另一道计算4分钟,打印12分钟.那么在单道程序系 2020-07-23 …
怎样跟幼儿解释“序数”在向幼儿解释"序数"时很不容易说清它的准确概念,而且还要让幼儿能明白.因此请求 2020-12-05 …
一道C语言题:下列叙述错误的是()A,一个C语言程序只能实现一种算法B,C程序可以由多个程序文件组成 2020-12-14 …
在()中,只有程序能驻留在内存中执行a.单道程序b.多道程序c.分区调度d.分页调度在()中,只有程 2020-12-19 …