欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    维数组应用实例.ppt

    • 资源ID:6373926       资源大小:4.87MB        全文页数:53页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    维数组应用实例.ppt

    ,数组及应用,Visual Basic 程序设计,Visual Basic 程序设计,01,掌握数组的定义,02,重点掌握一维数组的定义、引用和应用,03,掌握控件数组的定义和应用,学习目标,Visual Basic 程序设计,实例概述,在实际应用中,常常需要处理类型相同的一批数据。例如,为了处理100个员工的工资,可以用S(1),S(2),S(3),S(100)来分别代表每个员工的工资,其中S(1)代表第一个员工的工资,S(2)代表第二个员工的工资,以此类推,Visual Basic 程序设计,由生活中的实例,我们不难得出,像员工和员工工资一样的类似的很多数据,都具有相互密切关系。在VB中,把一组相互关系密切的数据放在一起并用一个同意的名字作为标志,这就是数组。,实例概述,Visual Basic 程序设计,在VB中,把一组具有同一名字、不同下标的下标变量称为数组。一个数组可遗憾又若干个下标变量。下标用来指出某个数组元素在数组中的位置。如S(1 to 100)中S是数组名,可以表示逻辑上相关的一组数,其中,“1 to 100”称为下标,可以表示该数组中的各个元素。数组并不是一种数据类型,而是一组有序的同类型数据的集合。利用数组,可以方便的组织和使用数据。,Visual Basic 程序设计,数组概念,数组元素,下标,数组维数,数组类型,数组中的每一个数据称为数组元素。用数组名和该数据在数组中的序号来标识。,下标表示顺序号(即序号),每个数组有唯一的顺序号,下标不能超过数组声明的上、下界范围。,由数组元素中下标的个数决定,一个下标表示一维数组(下面将会重点学习),两个下标表示二维数组。VB中有一维数组,二维组最多60维数组。,按数组占用存储空间的方式不同,分为两种数组:静态数组和动态数组。两种数组的定义方法不同,使用方法也略有不同。,有关基本概念,Visual Basic 程序设计,注意,下标可以是整形的常数、变量、表达式。如:G(8)B(I)C(3+K)下标还可以是下标变量 如:A(A(5)令A(5)=4 则 A(A(5)=A(4)下标的取值范围是:下界To上界,缺省下界时,系统默认取 0。,Visual Basic 程序设计,只用一个下标就能确定某个数组元素在数组中的位置,这样的数组称为一维数组。,一维数组,用两个(多个)下标才能确定某个数组元素在数组中的位置,则数组称为二维(多维)数组。,二维数组,数组分类,Visual Basic 程序设计,数组声明,数组必须先声明后使用。声明数组的目的是通知计算机为其留出所需要的空间,用来存储数组元素。在计算机中,数组占据一块连续的内存区域,数组名是这个区域的名称,区域的每个单元都有自己的地址,该地址用下标表示。可声明的内容包括数组名、类型、维数、数组大小。,Visual Basic 程序设计,1)、数组是一组相同类型的元素的集合;,数组特点,2)、数组中各元素有先后顺序,它们在内存中按排列顺序连续存储在一起;,3)、所有的数组元素是用一个变量名命名的一个集合体,而且每一个数组元素在内存中独占一个内存单元,可视为同一个内存变量。为了区分不同的数组元素,每一个数组元素都是通过数组名和下标来访问的,如A(1,2),B(5)。,4)、使用数组时必须对数组进行“声明”,即先声明后使用。所谓声明,就是对数组名、数组元素的数据类型、数据元素的个数进行定义。,Visual Basic 程序设计,1.格式 Public|Private|Dim 数组名(维数定义)As 类型,2.功能 声明数组名称、维数、维大小、类型。为数组分配存储空间。例:定义数组G保存全班40名同学的英语成绩 Dim G(1 To 40)As Integer,一维数组的定义,Visual Basic 程序设计,3.说明1)Public|Private|Dim:在标准模块的通用声明段使用Public语句建立一个全局级数组;在模块的通用声明段使用Private语句或Dim语句建立一个模块级数组;在过程中用Dim语句建立一个过程级数组。2)数组名:需遵循变量命名约定。3)“维数定义”:下界1 To 上界1,下界2 To 上界2,Visual Basic 程序设计,如果下界省略,则使用默认下界定义默认下界:Option Base 0|1不加任何定义时,默认下界为0数组元素个数:(上界1-下界1+1)*(上界2-下界2+1)*4):Integer Long Single Double Boolean String String*n Curency Byte Date Variant Object 用户定义类型,Visual Basic 程序设计,5)数组在定义后自动被初始化 例如:将数值型数组元素值置为0;将字符串类型数组元素值置为零长度字符串6)静态数组被定义后,VB为其分配固定大小的存储空间,在运行期大小不能改变。,Visual Basic 程序设计,数组概念释义,dim mark(1 to 100)as integer 声明了一个一维定长数组,数组的名字为mark,类型为整型;共有100个元素,下标的取值范围:1100。mark的数组元素依次为mark(1)、mark(2)、mark(100);mark数组内存分配示意图:,Visual Basic 程序设计,mark(1),mark(2),mark(i),mark(99),mark(100),每组数组元素有一个唯一的顺序号,下标不能超出数组声明时的上、下界范围。一个下标表示一维数组;多个下标,表示多维数组。下标可以是整型的常数、变量、表达式;一般情况下,数组中的各元素类型必须相同;但若数组类型为Variant时,可包含不同类型的数据。,Visual Basic 程序设计,数组的定义方式:Dim:用在窗体模块或标准模块及过程中,定义窗体或标准模块级数组;ReDim:用来重新定义动态数组;Static:用来说明该数组为静态数组;Global(Public):用在全局模块中(标准模块)中,说明数组为全局的;,Visual Basic 程序设计,1、一维数组:一个数组若只有一个下标就能确定一个数组元素的数组中的位置 定义形式:Dim 数组名(下标下界 To 下标上界)As 类型名称 如:Dim a(1 to10)as integer Dim b(10)as integer,Visual Basic 程序设计,例:Dim C(9)As Integer 一维整型数组;下界0,上界为9 元素:C(0)C(1)C(2)C(9)例:Dim A(-4 TO 10)As Integer 一维整型数组;下界-4,上界 10 元素 A(-4)A(-3).A(0)A(1).A(10)例:DIM M(-3 TO 10)一维可变类型数组 例:CONST Y1=10 CONST Y2=50 DIM ABC(Y1 TO Y2)AS INTEGER,Visual Basic 程序设计,一维数组应用实例,Visual Basic 程序设计,例【7-1】利用一维数组统计一个班学生的成绩在09、1019、2029、9099以及100各分数段的人数分布 解题思路:定义一个有11个元素的一维数组a(0 to 10),a(0):09分的学生人数;a(1):1019分的学生人数;a(2):2029分的学生人数;a(9):9099分的学生人数;a(10):100分的学生人数;根据学生成绩score,计算int(score/10),将其分类到相应的数组元素中。,Visual Basic 程序设计,实例一 分类统计,例【7-2】输入若干个学生的成绩,统计不及格人数和优秀人数。设计界面:,Visual Basic 程序设计,Text 1,Command 1,Picture 1,Visual Basic 程序设计,设运行时学生成绩直接输入到文本框Text1中,各成绩之间用逗号分隔。代码首先使用Split函数将文本框Text1中输入的成绩分离开,保存到数组A中。引入计数变量设两个计数变量num1和num2,分别用来保存不及格学生人数和优秀学生人数。将计数变量初始化为0,统计过程逐一取数组元素进行判断,如果数组元素的值小于60,则让num1累加1,如果数组元素的值大于或等于90,则让num2累加1。,分析:,Private Sub Command1_Click()Dim A,N As Integer Dim num1 As Integer,num2 As Integer A=Split(Text1.Text,)N=UBound(A)num1=0:num2=0 For i=0 To N Select Case Val(A(i)Case Is=90 num2=num2+1 End Select Next i,Visual Basic 程序设计,代码设计,显示统计结果 Picture1.Cls 定义打印位置 Picture1.CurrentX=100 运行界面:Picture1.CurrentY=100 Picture1.Print 不及格人数:;num1;_ Tab(18);优秀人数:;num2End Sub,Visual Basic 程序设计,例【7-3】输入若干名学生的成绩,求平均分、最高分、最低分。设计界面:,Visual Basic 程序设计,Text 1,Text 2,Text 3,Text 4,实例二 求平均分,最高分,最低分,分析:,假设运行时输入到文本框Text1中的各成绩之间用逗号分隔。代码首先使用Split函数将文本框Text1中输入的成绩分离开,保存到数组A中,然后进行求值。求平均分时只需先求数组所有元素之和,再除以数组元素的个数即可。求最高分、最低分的问题实际上就是求一组数据的最大值、最小值问题。,Visual Basic 程序设计,Visual Basic 程序设计,求最大值的方法:1)设一个存放最大值的变量MaxNum,其初值为数组的第一个元素,即MaxNum=A(0);2)依次将MaxNum与A(1)到A(N)的所有数据进行比较,如果数组中的某个数A(I)大于MaxNum,则用该数替换MaxNum,即MaxNumx=A(I),所有数据比较完后,MaxNum中存放的数即为整个数组的最大数。求最小值的方法与求最大值的方法类似。,Private Sub Command1_Click()Dim A,N As Integer Dim MaxNum As Integer,MinNum As _ Integer,Average As Single A=Split(Text1.Text,“,”)N=UBound(A)Total=0 MaxNum=Val(A(0)MinNum=Val(A(0),Visual Basic 程序设计,“求值”按钮Command1的Click事件过程:,通过循环依次比较,求最大值、最小值、总和 For i=0 To N If Val(A(i)MaxNum Then _ MaxNum=Val(A(i)If Val(A(i)MinNum Then _ MinNum=Val(A(i)Total=Total+Val(A(i)Next i,Average=Total/(N+1)求平均值 Text2.Text=Format(Average,0.00)Text3.Text=MaxNum Text4.Text=MinNum End Sub,Visual Basic 程序设计,运行界面:,Visual Basic 程序设计,实例三 数组排序排序就是将一组数按递增或递减的次序重新排列。排序的方法:选择法、冒泡法、插入法和合并排序。7.3.1、选择法排序 算法描述:设有n个数的数组a(1),a(2),a(n),要求按递增的次序排列:首先设变量k用于存放当前最小数的下标,然后按下列步骤进行:,Visual Basic 程序设计,C,B,A,从n个数中选出最小元素的下标,然后将最小数与第一个数交换位置,即a(k)与a(1)互换;先将a(1)与a(2)进行比较,k的初值为1;若a(2)a(k),则将变量k指向2(k总是为较小元素的下标值);再将a(k)与a(3)、a(n-1)、a(n)比较,并依次作出同样的处理,最终k为n个数中最小元素的下标,a(k)为最小的元素;此时将a(k)与a(1)互换;,从除第一个数外,其余n1个数按步骤的方法选出次小的数,使a(k)与a(2)交换位置;先将k置为2,将a(k)与a(3)、a(4)、a(n-1)、a(n)比较,每当a(i)a(k)时,置k为i,最后,k为第一轮余下的n1个数中的最小数 将a(k)与a(2)互换;,继续进行第三轮、第四轮、.、直到第n1轮,余下的a(n)就是n个数中的最大值;至此,n个数已从小到大顺序存放到数组a中。,直接选择排序,Visual Basic 程序设计,直接选择法排序,8,1,9,7,6,1,A(1)A(2)A(3)A(4)A(5)A(6),原始值,8,1,9,7,6,1,8,第一轮(1),k=1,a(1)和a(2)相比较,8,1,9,7,6,1,1,第一轮(2),a(2)a(1),k=2,用a(2)和其他元素相比,Visual Basic 程序设计,直接选择法排序,A(1)A(2)A(3)A(4)A(5)A(6),8,1,9,7,6,1,1,第一轮(3),k=2,a(2)与a(1)交换,8,1,9,7,6,1,第一轮排序结果,Visual Basic 程序设计,A(1)A(2)A(3)A(4)A(5)A(6),Visual Basic 程序设计,直接选择法排序,8,1,9,7,6,1,第二轮(1),8,k=2,a(2)和a(3)相比较,8,1,9,7,6,1,8,第二轮(2),a(4)a(2),k=4,用a(4)和a(5)比较,8,1,9,7,6,1,7,第二轮(3),A(5)a(4),k=5,a(5)和a(6)比较,直接选择法排序,A(1)A(2)A(3)A(4)A(5)A(6),Visual Basic 程序设计,8,1,9,7,6,1,6,第二轮(4),a(6)a(5),k=6,a(6)和a(2)交换,8,1,9,7,6,1,第二轮排序结果,直接选择法排序,A(1)A(2)A(3)A(4)A(5)A(6),Visual Basic 程序设计,8,1,9,7,6,1,9,8,1,9,7,6,1,8,1,9,7,6,1,7,k=3,a(3)和a(4)比较,a(4)a(3),k=4,用a(4)和a(5)比较,第三轮(1),a(5)a(4),k=5,用a(5)和a(6)比较,a(5)和a(3)交换,第三轮(2),第三轮排序结果,直接选择法排序,A(1)A(2)A(3)A(4)A(5)A(6),Visual Basic 程序设计,8,1,9,7,6,1,7,8,1,9,7,6,1,K=4,a(4)和a(5)比较本轮无交换,第四轮(1),第四轮排序结果,直接选择法排序,A(1)A(2)A(3)A(4)A(5)A(6),Visual Basic 程序设计,8,1,9,7,6,1,8,1,9,7,6,1,9,K=5,a(5)和a(6)比较,交换a(6)和a(5),第五轮(1),第五轮排序结果,直接选择法排序flash,Visual Basic 程序设计,直接选择法排序,例【7-4】将数组中的6个数,用选择法递增顺序排列。,Visual Basic 程序设计,Dim a(6)As Integer Dim k,n,i,j,t As Integer Randomize n=6 给数组6个元素赋值,09中的随机整数 For i=1 To n a(i)=Int(Rnd*9)+1 Label2.Caption=Label2.Caption+Str(a(i)Next 选择排序法 For i=1 To n-1 k=i For j=i+1 To n If a(k)a(j)Then k=j 找出最小值的下标 Next,交换数组元素,使最小的元素排在第一位 t=a(k):a(k)=a(i):a(i)=t 将排序结果显示在Label上 Label4.Caption=Label4.Caption+Str(a(i)Next Label4.Caption=Label4.Caption+Str(a(i),实例四 数组中元素的插入和删除操作,数组元素的插入、删除操作一般是在已排序好的数组中插入或删除一个元素,使得插入或删除以后的数组还是有序的;这涉及到查找问题,在数组中先找到插入的位置或删除的元素,然后进行相应的操作。,Visual Basic 程序设计,例【7-5】设有一按升序排列的有n个元素的数组a(数组元素为整型),现 将一个数“11”插入后,仍保持其有序。解题思路:查找插入位置k(1k n-1);从n1到k逐一往后移动一个位置,将第k个元素的位置腾出;将数据插入;,2,4,6,8,10,12,14,16,18,实例四 数组中元素的插入和删除操作,1、插入例【7-6】将数Num插在数组A中指定的Pos位置。如果Pos0,则将Num插在第1个位置 如果PosN,则将Num插在最后一个位置,设计界面:,Command 1,Text 2,Text 3,Visual Basic 程序设计,分析:,Num,1)对数组中原Pos位置的元素到最后一个元素全部向后移动一个位置:,A(N+1)=A(N)A(N)=A(N-1)A(Pos+1)=A(Pos),For I=N+1 To Pos+1 Step-1 A(I)=A(I-1)Next I,2)插入:A(Pos)=Num,Visual Basic 程序设计,1)在“通用”位置声明:Option Base 1 Dim N As Integer,A()As Integer2)在窗体的Load事件过程中生成20个0,100之间的随机整数,显示于文本框Text1中:Private Sub Form_Load()Text1.Text=N=20:ReDim A(N)For I=1 To N A(I)=Int(Rnd*101)Text1.Text=Text1.Text&Str(A(I)Next I End Sub,Visual Basic 程序设计,3)“插入”按钮的Click事件过程:Private Sub Command1_Click()插入 Text4.Text=Num=Val(Text2.Text)Pos=Val(Text3.Text)N=N+1 ReDim Preserve A(N)Select Case Pos Case Is=0 插在第一个位置,即pos=1 For I=N To 2 Step-1 A(I)=A(I-1)Next I A(1)=Num,Visual Basic 程序设计,Case Is=N 插在第N个位置,即pos=N A(N)=Num Case Else For I=N To Pos+1 Step-1 A(I)=A(I-1)Next I A(Pos)=Num End Select 显示插入后的结果 For I=1 To N Text4.Text=Text4.Text&Str(A(I)Next I End Sub,Visual Basic 程序设计,实例四 数组中元素的插入和删除操作,2、删除 一般算法:查找欲删除的元素所在的位置k;从k1到n个位置逐个往前移动;将数组个数减1;,Visual Basic 程序设计,2,4,6,8,10,11,12,14,16,实例四 数组中元素的插入和删除操作,2、删除,Visual Basic 程序设计,例【7-6】删除数组一个元素。设数组的元素为(2,4,6,8,10,11,12,14,16),删除其中的元素“11”。,Dim a(),i,k As Integer Print 插入前:;ReDim a(1 To 9)给数组元素赋值 a=Array(2,4,6,8,10,11,12,14,16)For i=1 To 9 Print a(i);Next 查找插入的位置 For k=1 To 9 If 11=a(k)Then Exit For Next,从k+1元素开始往前移动 For i=k+1 To 9 a(i-1)=a(i)Next,利用数组重新声明减少一个元素,但保持数组原来的值 ReDim Preserve a(1 To 8)显示插入后的数组元素 Print:Print Print 插入后:;For i=1 To 8 Print a(i);Next,实例五 交换数组中各元素,例【7-7】将数组的第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换,依次类推。(逆序输出),Visual Basic 程序设计,Option Base 1 Dim a()Dim i As Integer,t As String a=Array(a,b,c,d,e,f,g,h,i,j)Print 交换前:;For i=1 To 10 Print a(i);Next For i=1 To 10 2 t=a(i)a(i)=a(10-i+1)a(10-i+1)=t Next,Print:Print Print 交换后:;For i=1 To 10 Print a(i);Next,小结,1.数组的基本概念 数组名、数组元素、下标、数组的维数2.一维数组的定义3.一维数组的实例应用:(1)分类统计(2)求平均分,最高分,最低分(3)选择法排序(4)数组中元素的插入和删除(5)交换数组中各元素,Visual Basic 程序设计,观,谢,看,谢,Visual Basic 程序设计,

    注意事项

    本文(维数组应用实例.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开