程序基础25858

上传人:沈*** 文档编号:248475165 上传时间:2024-10-24 格式:PPT 页数:39 大小:999KB
返回 下载 相关 举报
程序基础25858_第1页
第1页 / 共39页
程序基础25858_第2页
第2页 / 共39页
程序基础25858_第3页
第3页 / 共39页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,上机总结,内容:,双重求和,:,(1)+(1+2)+(1+2+3)+(1+2+50),课后题,7.2,、,7.5,、,7.12,等,问题:,1,对三种循环语句结构不熟练,2,细节容易被忽略,3,做题思路不清晰,4,对自己没自信,做题太少,应加强题量,进而解决问题,第,8,章,数组与记录,0.,本章内容,数组的概念,动态数组,数组的基本操作,数组的初始化,控件数组,记录,记录数组,3,1.,数组的概念,数组的定义,第一种格式,说明符 数组名,(,下标上界,)As,类型,例如:,Dim y(5)As Integer,定义了一个一维数组,名字为,y,,类型为,Integer,,占据,6,个(,0,5,)整型变量的空间,说明符 数组名,(,下标上界,1,下标上界,2)As,类型,例如:,Dim Test(2,,,3)As Integer,定义了一个二维数组,名字为,Test,,类型为,Integer,,该数组有,3,行(,0,2,),4,列(,0,3,),占据,12,(,34,)个整型变量的空间,4,1.,数组的概念,5,1.,数组的概念,说明:,“说明符”为保留字,可以为,Dim,,,Public,,,Private,,,Static,中的任意一个。,数组名的命名规则与变量的命名相同。“,As,类型”用来说明“数组元素”的类型,可以是,Integer,,,Long,,,Single,,,Double,,,Currency,,,String,等基本类型或用户定义的类型,也可以是,Variant,类型。如果省略“,As,类型”,则数组为,Variant,类型。,数组必须先定义,后使用。,缺省,为,0,,若希望下标从,1,开始,可在模块的通用部分使用,Option Base,语句将设为,1,。其使用格式是:,Option Base 0|1 ,后面的参数只能取,0,或,1,如:,Option Base 1 ,将数组声明中缺省,下标设为,1,要注意区分“可以使用的最大下标值”和“元素个数”。,6,1.,数组的概念,第二种格式,说明符 数组名,(,下界,To,上界,下界,To,上界,),例如:,Dim Arr(-2 to 3),定义了一个一维数组,Arr,,数组元素,Arr(-2),,,Arr(-1),,,Arr(0),,,Arr(1),,,Arr(2),,,Arr(3),共,6,个元素。,注意:,数组命名应“见名知义”。,在同一过程中,数组与简单变量不能同名。,数组每一维元素的个数必须是常数,不能是变量或表达式。,7,1.,数组的概念,在实际使用时,可能需要数组的上界值和下界值,这可以通过,LBound,函数和,UBound,函数来求得。其格式为:,LBound,(数组名,,维,),UBound,(数组名,,维,),两个函数分别返回数组中指定维的下界和上界。,默认数组,省略,As,子句,则数组为变体类型,(Variant),即同一个数组中可以存放各种不同类型的数据,不包括记录类型。,8,2.,动态数组,动态数组的定义,建立动态数组包括声明和大小说明两步:,声明一个没有下标,(,或称空维数,),的数组,Public|Dim,数组名,()As,类型,在过程中用,ReDim,语句指明该数组的大小,ReDim,Preserve,数组名,(,下标,1,,下标,2)As,类型,重新定义动态数组,按定义的上下界重新分配存储单元,9,静态数组:,用数值常数或符号常量作下标定维,,数组元素的个数固定不变,动态数组:,用变量作下标定维,元素的个数在,程序运行时可以改变,不占内存,2.,动态数组,声明,F,为动态数组的示例:,Private Sub Command1_Click(),Dim F()As Integer ,声明一个整型动态数组,Size=20,ReDim,F(Size,),End Sub,说明:,ReDim,语句是一个可执行语句,只能出现在过程中,并且可以多次使用,改变数组的维数和大小。但是,不能用,ReDim,语句改变数组类型。,如:,ReDim,x(10),ReDim,x(20),x(20)=30,Print x(20),ReDim,x(20,5),x(20,5)=10,Print x(20,5),10,2.,动态数组,每次使用,ReDim,语句都会使原来数组中值丢失,可以在,ReDim,后加,Preserve,参数来保留数组中的数据。但此时只能改变最后一维的大小,而不能改变维数的数目。,例如:,ReDim,a(2,4),.,ReDim,Preserve a(2,6),11,2.,动态数组,数组的清除和重定义,数组刷新语句,(Erase),格式:,Erase,数组名,,数组名,功能:该语句用来清除静态数组的内容,或者释放动态数组占用的内存空间,例如,:,Dim Array1(20)As Integer,Dim Array2()As Single,ReDim,Array2(9,10),Erase Array1,Array2,对静态数组,,Erase,语句将数组重新初始化,;,对动态数组,,Erase,语句将释放动态数组所使用的内存。,12,3.,数组的基本操作,数组元素的输入、输出和复制,数组的引用,数组是用一个统一的名称表示的、顺序排列的一组变量。数组中的变量称为下标变量,或数组元素,数组主要特点是通过下标来引用数组元素,注意区分数组定义和数组元素,Dim x(8),t=x(8),说明,:,数组名、数组类型和维数必须与数组声明时一致,如果建立的是多维数组,则引用时必须给出多个下标,下标值应在数组声明时所指定的范围之内。,13,定义,x,数组的最大可用下标值是,8,数组,x,中序号为,8,的元素,3.,数组的基本操作,数组元素的输入,通过,For,循环语句及,InputBox,函数输入,说明:程序运行后,在对话框中输入,Zhang,,,Wang,,,Li,,,Zhao,,被存入字符串数组,stuname,中。,InputBox,函数输入的是字符串类型,输入数组元素时应注意转换为相应数值。,14,3.,数组的基本操作,多维数组元素的输入通过多重循环实现,15,3.,数组的基本操作,数组元素的输出,通过,Print,方法实现,16,3.,数组的基本操作,数组元素的复制,单个数组元素可以象简单变量一样复制,复制整个数组用,For,循环语句,17,3.,数组的基本操作,18,【,例,1】,编写程序,把输入的,10,个整数按逆序输出。,本例利用,InputBox,函数来输入,10,个整数,输入完毕后再通过,For,循环,采用,Print,直接在窗体上输出结果。,Private Sub Command1_Click(),Dim a(10)As Integer,i%,Print,输入的数据为,For i=1 To 10,a(i,)=,InputBox,(,请输入一个整型数,),Print,a(i,);,Next i,Print,Print,逆序输出为,For i=10 To 1 Step-1,Print,a(i,);,Next i,End Sub,(1),创建用户界面,(2),设置对象属性,(3),编写程序代码,3.,数组的基本操作,19,本例程序中,先通过,Dim,语句为数组,a,定义维数及下标范围,也即为数组安排一块连续的内存存储区,但这并不意味着内存里该数组已建立了应有的内容,本例中输入数组中的数据是由,InputBox,函数来实现的,共循环了,10,次,输入的,10,个数依次赋值给下标变量,a(1),a(10),建立了数组中的数据后,就可以按要求进行处理,3.,数组的基本操作,20,【,例,2】,从键盘输入,10,个数,用冒泡排序从小到大排序。,排序过程:,(,相邻元素两两比较),(,1,)比较第一个数与第二个数,若为逆序,a1a2,,,则交换;然后比较第二个数与第三个数;依次类推,直至第,n-1,个数和第,n,个数比较为止第一趟冒泡排序,结果最大的数被,放,在最后一个元素位置上,(2)对前,n-1,个数进行第二趟冒泡排序,结果使次大的数被安置在第,n-1,个元素位置,(3)重复上述过程,共经过,n-1,趟冒泡排序后,排序结束,3.,数组的基本操作,21,Dim t%,i%,j%,a(10)As Integer,For i=1 To 10,a(i,)=,InputBox,(,输入一个整数,),Next i,Print,输入的,10,个整数为,For i=1 To 10,Print,a(i,);,Next i,Print,For i=1 To 9,For j=1 To 10-i,If,a(j,)a(j+1)Then t=,a(j):a(j,)=a(j+1):a(j+1)=t,Next j,Next i,Print,排序后的结果为,For i=1 To 10,Print,a(i,);,Next i,(1),创建用户界面,设置对象属性,(2),编写程序代码,3.,数组的基本操作,For Each.Next,语句,与前面的循环语句,For.Next,类似,都是用来执行指定重复次数的循环。但,For Each.Next,语句专门作用于数组。,格式:,For Each,成员,In,数组名,循环体,Exit For Next,成员,“成员”是一个,Variant,变量,它实际上代表数组中每一个元素,本语句可以对数组元素进行读取、查询或显示,它所重复执行的次数由数组中元素的个数确定,在不知道数组中元素的数目时非常有用,22,3.,数组的基本操作,23,【,例,3】,求,1!+2!+10!,的值。,(1),创建用户界面设置对象属性,(2),编写程序代码,Private Sub,Form_Click,(),Dim a&(1 To 10),sum&,t&,Dim n As Integer,t=1,For n=1 To 10,t=t*n,a(n,)=t,Next n,sum=0,For Each x In a,sum=,sum,+x,Next x,Print 1!+2!+3!+10!=;sum,End Sub,4.,数组的初始化,用赋值语句或,InputBox,函数赋值,使用,Array,函数为数组元素赋值,格式:,数组变量名,=Array(,数组元素值,),例:,Dim D As Variant ,定义数组名,(,变体类型,),D=Array(1,2,3,4),执行结果:,1D(0),,,2D(1),3D(2),4D(3),加上语句,Option Base 1 ,设定下界为,1,执行结果:,1D(1),,,2D(2),3D(3),4D(4),Array,函数只适用于一维数组初始化,24,4.,数组的初始化,25,【,例,4】,输入,10,名学生的成绩,求出最高分和最低分。,功能要求:,通过,Array,函数输入,10,个分数;单击“查找”按钮,(Command1),后,开始查找最高分和最低分,找到后显示在标签,Label1,上,(1),创建用户界面设置对象属性,(2),编写程序代码,4.,数组的初始化,26,Option Base 1,Dim score As Variant,Private Sub,Form_Load,(),Label1.Caption=,单击“查找”按钮开始查找最高分和最低分,score=Array(89,96,81,67,79,90,63,85,95,83),End Sub,Private Sub,Form_Load,(),Dim max As Integer,min As Integer,max=score(1),设定初值,min=score(1),For i=2 To 10,If max,score(i,)Then ,找最低分,min=,score(i,),End If,Next i,Label1.Caption=,最高分:,+,Str(max
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!