1、4.1数组和数组的操作11谢谢观赏2019-8-23数组的定义Dim result(3)as string表示定义了表示定义了:result(0)、result(1)、result(2)、result(3)Dim 数组变量名数组变量名(a1 to a2)as 元素的类型元素的类型2谢谢观赏2019-8-23复习:随机数Rnd:0,1),产生一个大于等于0且小于1的随机数。在用Rnd之前请添加这个语句:Randomize 产生n,m之间的随机数通式:int(Rnd*(m-n+1)+n3谢谢观赏2019-8-23产生-100到100之间的数定义全局(窗体)数组变量i,类型为整形。窗体载入即产生50
2、0个”-100到100”之间的数,在list1中输出。参考:For x=1 To 500 i(x)=Int(Rnd*201-100)List1.AddItem i(x)Next4谢谢观赏2019-8-23过程变量过程变量窗体变量窗体变量作用范围过程内整个窗体定义位置过程内部过程外部,窗体上方例子Sub command1_click()Dim a As integer a=a+1End SubSub command2_click()Dim a As integer a=a+2End SubDim a As integerSub command1_click()a=a+1End SubSub co
3、mmand2_click()a=a+2End Sub连续2次单击Command1A的值为1A的值为2单击一次Command1再单击一次Command2A的值为2A的值为35谢谢观赏2019-8-23求出平均值结果输出在label1中。6谢谢观赏2019-8-23求出最大值和最小值结果输出在label1中。7谢谢观赏2019-8-23求所有的正数和使用DO循环结果输出在label1中。s=0n=1Do While n 0 Then s=s+i(n)n=n+1LoopLabel1.Caption=所有正数和:&s8谢谢观赏2019-8-23统计正数的个数使用DO循环结果输出在label1中。s=0
4、n=1Do While n 0 Then s=s+1 n=n+1LoopLabel1.Caption=正数的个数:&s9谢谢观赏2019-8-23相邻元素的最大差值如“-10,0,20,-10,1”中,相邻元素的最大差值为20-(-10),即30。s=0For n=1 To 499 If Abs(i(n)-i(n+1)s Then s=Abs(i(n)-i(n+1)NextLabel1.Caption=相邻元素的最大差值:&s10谢谢观赏2019-8-23最长连续上升子序列个数把数组中的数据看成经济指数,可以求出哪几年是连续增长的,并且增长了几年。如“2,1,3,7,5,8”中,连续上升的是”
5、1,3,7”,一共3个。temp=1Max=1For n=1 To 499 If i(n)Max Then Max=tempNextLabel1.Caption=最长连续上升子序列个数:&Max11谢谢观赏2019-8-23寻找众数众数(Mode)是统计学名词,是一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。12谢谢观赏2019-8-23参考代码本代码不能区分有多个众数的情况Dim x(-100 To 100)As IntegerFor n=1 To 500 x(i(n)=x(i(n)+1NextMax=0For n=-100 To 100 If Max x(n)Then
6、Max=x(n)flag=n End IfNextLabel1.Caption=众数为:&flag&;一共出现次数为:&Max建一个新数组x,编号等于数组i的内容,内容为x(n)在数组i中的个数13谢谢观赏2019-8-23编号编号内容内容15253544546172数组数组i编号编号内容内容1121304253数组数组x分析14谢谢观赏2019-8-23编号编号内容内容11.7021.7031.7041.7551.7561.8071.85数组数组i编号编号内容内容1.7031.7521.8011.8511.900数组数组x分析思考:1.70不能做编号,怎么办?15谢谢观赏2019-8-23课
7、堂任务产生640个30-100的数字,完成基本任务:统计及格人数、众数。(选做)计算“方差”。第1次循环算平均值,第2次循环算“每个数和平均值”的平方,最后算方差的平均值。方差是各个数据与平均数之差的平方的平均数。在概率论和数理统计中,方差(英文Variance)用来度量随机变量和其数学期望(即均值)之间的偏离程度。在许多实际问题中,研究随机变量和均值之间的偏离程度有着很重要的意义。16谢谢观赏2019-8-23参考代码Dim s As Double,x As Doubles=0For n=1 To 640 s=s+i(n)Nextx=x/640s=0For n=1 To 640 s=s+(i(n)-x)2NextLabel1.Caption=方差为:&s/64017谢谢观赏2019-8-23课后作业刷题宝典48-50页18谢谢观赏2019-8-23