VB第七章数组教学
visualbasic程序设计教案:数组

§3.6 数组数组是按一定顺序排列,具有相同类型的变量的集合。
VB中将数组分为静态数组和动态数组,静态数组在声明时必须指明数组的维数和变量的个数;动态数组在声明时仅定义数组的名称和类型,然后在执行程序的过程中,根据实际需要再用ReDim语句定义数组的维数及变量的个数,而且允许使用简单变量来进行数组中变量个数的定义。
数组的使用在管理信息系统软件的程序设计中有着不可替代的作用,离开数组的使用,某些程序的编制将会变得非常麻烦,甚至导致程序编制的失败,因此数组是程序设计人员必须熟悉和掌握的必备知识。
【教学要求】了解:数组的概念。
理解:静态数组和动态数组的区别;控件数组的作用。
掌握:数组的定义及使用方法;控件数组的应用。
【本节重点】动态数组的应用。
控件数组的应用。
【本节难点】动态数组的应用。
一、静态数组及声明1、一维数组一维数组的定义如下:Dim <数组名> ([下界To]上界) [As 类型]若缺省下界,系统默认为0。
例:Dim num(1 To 50)As Integer2、多维数组VB中数组的维数允许最多可达60维。
多维数组的定义格式如下:Dim <数组名>([下界1 To]上界1,[下界2 To]上界2……)[As 类型] 例:Dim A(12,50),C(10)As Double二、动态数组动态数组在声明时只定义数组名或数组名及类型,不指定大小,在执行程序的过程中,再根据需要用Redim语句重新定义数组的大小。
重新定义动态数组的语句格式如下:Redim <数组名>(下标1[,下标2……])注意:(1)Redim语句中的下标可以是已被赋值的变量。
(2)在过程中可多次使用Redim来改变数组的大小和维数。
(3)每次使用Redim语句都会使原数组中的数据丢失,如需要保留原数组数据,可用Preserve参数来保留,使用该参数只能改变最后一维的大小。
例:在程序运行时由操作者指定一个一维数组的变量个数,然后由计算机自动产生一组随机数存放到一维数组中,并将此组随机数在窗体上打印出来。
VB课件第7章Visual Basic 数组

7.3动态数组
例:Dim s ( ) As Single Private Sub Form_Click( ) … ReDim s(4,8) … End Sub
32
关于动态数组的几点说明
(1)ReDim语句不能改变数组的数据类型。 (2)ReDim语句只能在过程内使用。
Dim 是说明语句,可出现在程序的任何地方, ReDim 是执行语句,只能在过程中使用 在过程中可多次使用ReDim语句来改变数组的 大小,但不能改变维数和类型 (3)Preserve关键词可以保留动态数组中原有 的数据。
本章目录
Private Sub Form_Click() Randomize Form1.Cls av = 0 For i = 1 To 40
x = Int(Rnd * 90 + 10) Print x; If i Mod 8 = 0 Then Print av = av + x Next i av = av / 40 Print Print "平均值为"; Round(av, 3) End Sub
间及相应的数据类型,声明语句的语法形 式如下: Dim 数组名(下标) As 数据类型 Public 数组名(下标) As 数据类型 Private 数组名(下标) As 数据类型
几点说明:
数组名:命名规则与普通变量相同 (1)Dim、Public、Private是声明语句
的关键词,三者的不同点在于创造的数组 有不同的作用域。 Dim:在模块的声明部分,则数组可用于 该模块内的任何一个过程;如果Dim语句 出现在过程内,则数组只能作用在该过程 内。
a(p) 29 >a(4) 37 False
a(p) 29 >a(5) 15 Ture x=5 i<>p True 交换 m=a(i): a(i)=a(p): a(p)=m
第7章 VB数组

只要组中有一元素,就会进入For Each块执行。一旦进入循
环,便先针对组中第一个元素执行循环中的所有语句。若组 中还有其它的元素,则会针对它们执行循环中的语句,当组 中的所有元素都执行完了,则会退出循环,然后从Next语句 之后的语句开始继续执行。 可以将一个For Each…Next循环放在另一个之中来组成嵌套。 但每个循环的元素必须是唯一的。若省略Next语句中的元素, 就像元素存在时一样执行。若Next语句在它相对应的For语 句之前出现,则会产生错误。
3. 对上述过程重复,直至剩下一个元素。
因此,要用到双重循环,外循环控制比较轮数,内循环控 制每轮的比较次数。
如: 8, 4, 20, 100, 28, 1, 第1轮: 8, 4, 20, 100, 28, 1 4, 8, 20, 100, 28, 1
用选择法程序
两次 交换 1, 8, 20, 100, 28, 4
flag,在进行每趟比较前将flag置成0,如果在比较中发生了数
据交换,则将flag置为1,在每一趟结束后,再判断flag,如果 它仍为0,则表示在该趟比较中未发生一次数据交换,排序结 束;否则进行下一趟比较。 用冒泡法程序(优化) P87例7-2示例程序
用比较排序法程序
7.3.2 选择法排序(从大到小排列)
算法介绍:排序的较多算法中,一种最简单的算法–––选择排序
法用得较多。基本思路: 设有n个数,需将它们从小到大顺序排列。
则: 1. 从n个元素中,通过比较,找出最小元素,放在第一个位置上。 2. 在剩下的n –1个元素中,找出第二小的元素并把它放在第二 个位置上。
P89例7-3示例程序
7.3.3 冒泡法排序(从大到小排列)
算法介绍:两两比较待排序序列中的元素,并交换不满足顺序
VB程序设计教案,数组1,了解数组基本概念

批互相联系的、有一定顺序的数据组成的集合。
与数学中的数组不同的是,Visual Basic中的数组必须先声明,然后才能在程序中使用。
一个数组中的所有数据,称为该数组的数组元素。
)2. 数组名的命名规则数组名的命名规则与简单变量的命名规则一样,即由1~40个字符组成,组成的字符可以是字母、数字或小数点,并且必须以字母开头,如果有类型申明符时,必须放在尾部。
例如:a,x,xscj%等。
3. 什么是数组的维数数组中下标的个数称为数组的维数。
•一维数组:数组中的所有元素,能按行、列顺序排成一行,即用一个下标确定它们各自所处的位置。
•二维数组:数组中的所有元素,能按行、列顺序排成一个矩阵,用两个下标才能确定它们所处的位置。
•三维数组:由三个下标才能确定所处位置。
依此类推,有多少个下标的数组,就构成多少维的数组,如四维数组、五维数组等。
通常又把二维以上的数组称为多维数组。
例如:a(10) 一维数组x(2 , 3) 二维数组b(4 , 5 , 6) 三维数组4. 什么是数组元素在同一数组中,构成该数组的元素称为数组元素。
组成数组的各个元素一般为在事件程序下拉列表框中选“(声明)”,输入下面代码:Option Base 1Dim a(1 To 10) As SinglePrivate Sub Command1_Click()Dim i As Integer, total As Single, average As SingleFor i = 1 To 10a(i) = Val(InputBox("请输入第" & Str(i) & "个学生的成绩", "输入成绩")) total = total + a(i)Next iaverage = total / 10Label1.Caption = Label1.Caption + Format(total)Label2.Caption = Label2.Caption + Format(average)End Sub三、课堂总结。
VB教案之数组

VB教案之数组VB 教案之数组授课对象:初一兴趣班学生) 教学过程: 一、引入:在学习if语句时,我们曾做过一个题,在文本框内输入正整数,判断这3个数的大小然后将他们按从小到大的顺序输出。
if a>b then temp =a:a=b : b =temp end if if a >c then temp =a : a=c :c= temp end if if b>c then temp = b : b=c : c=temp end if print 这三个数从小到大的顺序是; a;b;c; 这是3个数的大小排序,假如多于三个数的排序呢? 当然我们还可以用IF语句予以解决,但大家可以想象到它的麻烦程度,其实,我们可以用数组来解决这个问题。
那么何谓数组呢?二、1)新课讲授:所谓数组是一群数据类型相同的变量,在内存里能拥有连续存放空间的集合。
数组在使用之前必须先声明,声明的目的是确定内存中应保留多少连续空间给此数组使用,并定出数组中每一个元素的数据类型。
语法:dim 数组名称(下标1,[下标2[……]])[as 数据类型] 功能:声明所指定数据类型为一维(二维……)数据 eg : dim a(6) as integer 声明一个a(6)的数组,其包含了a(0)---a(6)7个整型变量。
数组的默认下标值从0开始,假如你觉得不习惯的话,可以用用这个方式声明: dim 数组名称(下界to上界[下界to上界][……])[as 数据类型] 假若要定义a(1)----a(6)的整型数组,则可以这样写: dim a(1to 6) as integer 请学生判断以下下列数组说明语句是否正确,说明原因:(1) Dim a(10) as integer (2) Dim b(-10) as integer /错误没有用关键之to显示知名下标范围。
(3)Dim c(5,3)as byte (4)Dim y() /错误,只有重定义语句才可以不带下标2)回到我们刚上课讲的内容,如何利用数组解决数字的排序问题呢?这里我们先介绍两个函数:随机函数Rnd 产生介于0到1之间的函数随机数种子函数Randomize 在Rnd函数之前使用,以当做随机数产生器的种子。
计算机程序设计VB课件 第7章 数组及其使用

控件数组举例
数组的清除 经过定义的数组将为其分配相应的存储空间,其大小不能改 变。为了重新初始化静态数组的元素,或者释放动态数组的存 储空间,可以使用Erase 语句。 格式:Erase 数组名[,数组名…]
功能:重新初始化静态数组的元素(各数组元素清空,即赋默认 值); 或者释放动态数组的存储空间(释放动态数组所占用的内存 并删除整个动态数组结构)。
'产生10个随机数
'交换位置
选择法排序(升序)的改进: For i = 1 To N - 1 p=i For j = i + 1 To N If a(p) > a(j) Then p = j Next j t = a(i): a(i) = a(p): a(p) = t Next i
Next i
7.4 控件数组
控件数组的建立:
复制已有的控件并将其粘贴到窗体上。 将窗体上已有的类型相同的多个控件的Name属性设置为同一值。
控件数组的使用
访问控件数组元素:控件数组名(index值) 如:Command1(0).Caption = " 确定" Command1(1).Caption = " 取消" 控件数组的属性 LBound 控件数组下标的下界,如:command1.Lbound UBound 控件数组下标的上界 Count 控件数组的个数 控件数组的事件过程 建立了控件数组之后,控件数组中所有控件共享同一事件过程。例如, 假定某个控件数组含有5个命令按钮,则不管单击哪个标签,系统都会调 用同一个Click过程。由于每个按钮在程序中的作用不同,系统会将被单 击的按钮的Index属性值传递给过程,由事件过程根据不同的Index值执 行不同的操作。 Private Sub Command1_Click( Index As Integer ) Form1.BackColor = QBColor(Index) End Sub
VB课件讲数组

第5讲数组5.1 数组5.1.1数组的概念数组不是一种数据类型,而是一组相同类型的变量的集合。
数组必须先声明后使用,用声明语句声明数组时要声明:5.1.2 定长数组及声明1. 一维数组Dim 数组名(下标上界) [As 类型]Dim 数组名(下标下界 To 上界) [As 类型]下标必须为常数,不能是表达式或变量;下标下界默认为0;一维数组的大小为:“上界-下界+1”Dim mark(99) As IntegerConst N=10 ‘声明一个符号常量N;Dim s!( N ) ‘用符号常量代表下标2.多维数组Dim 数组名(下标1,下标2…) [As 类型]下标个数决定了数组的维数;每一维的大小=上界-下界+1;其大小为各维大小的乘积。
5.1.3 动态数组及声明建立动态数组分两步:(1)用Dim 语句声明数组,但不能指定数组大小Dim 数组名( ) As 数据类型(2)在过程中用ReDim语句动态地分配元素个数ReDim 数组名 (下标[,下标2…])定义动态数组大小注意:Dim说明语句,可出现在程序的任何地方。
而ReDim 是执行语句,只能出现在过程代码中。
Redim语句中的下标可以是常量,也可以是已赋值的变量。
过程中可多次使用ReDim语句来改变数组的大小,但每次使用都会使数组中原有数据丢失。
可在ReDim 后加Preserve参数用来保留数组中的数据,若使用Preserve参数后,只能改变最后一维的大小。
5.2 数组的基本操作1.与数组相关的函数和设置(1)Array函数<变量名>=Array(<常量数据列表>)Aarry函数将常量列表的各项值分别赋给一个一维数组。
变量名必须声明为Variant的变体类型,可以是变体变量名和变体动态数组名。
数组大小由数据列表中的常数个数确定。
Array 函数作用返回一个Variant型的数组。
Dim a As Variant, b( )(2) UBound()、下界LBound()函数UBound( )函数和LBound( )函数分别用来确定数组某一维的上界和下界值。
最新VB教程 07 第七章

授课教师:赵海燕 2010年10--12月
第7章 数组与自定义数据类型
2
数组 7.1 数组概述
数组是变量的扩展,一个数组可以存储多个值,通过数组名和下
标对这些值进行存取。 1.数组的优点
与变量相比,数组有以下优点:
(1)数组能够保存多个值; (2)数组可与循环语句配合实现复杂算法; (3)数组可作通用过程的参数,传递大量的值; (4)数组可作函数过程的返回值,可返回大量的值; (5)数组常用来表示与一维、二维、三维空间分布相关的数据,非常 直观; (5)动态数组可根据需要开辟内存空间,优化程序、提高效率。
打开【例7.2】
14
7.3 动态数组
当在编程时不能预料应该为数组定义多少个元素时,可以使用Visual Basic提供的动态数组。动态数组的维数和下标上下界可以在程序运行
过程中改变。
1, 定义动态数组
定义动态数组的的语法结构与定义常规数组相似,只是括号是空
的: Public|Private|Dim|Static动态数组名( )[As数据类型名] 定义语句确定了动态数组的名称、作用域和数据类型。在使用
10
多维数组
多维数组是指三维或三维以上的数组,是在一维和二维概念上的扩展。多维数 组的定义、元素的访问方式与一维和二维数组类似。 【例】下面定义的是2个多维数组。 Dim a(3,3,4) As Integer ' 3维数组 Dim b(1 To 10,-4 To 5, 10,20) As Single ' 4维数组
m为下标下界,n为下标上界。m和n必须为整型常量,可以
是负值,并要求m≤n。
5
(2)只指定下标上界,由Option Base语句指定下标下界: Dima(n)As... 在模块“代码”窗口顶部的声明段中使用以下语句定义下标下界是0或 1: Option Base0|1 使用“0”时,上界n必须是非负整数常量,使用“1”时,上界n必须是 正整数常量。如果没使用Option Base语句,默认为0。
VB6教程第7章 数组

浙江蜗牛网络-VB论坛:/cto.asp 说明: 说明: (1)"说明符"为保留字,可以为Dim,Public, 说明符"为保留字,可以为Dim,Public, Private,Static中的任意一个. Private,Static中的任意一个.在使用过程中可以根据 中的任意一个 实际情况进行选用.本章主要讲述用Dim声明数组 声明数组, 实际情况进行选用.本章主要讲述用Dim声明数组, 其它参数的意义在8.4节介绍 定义数组后, 节介绍. 其它参数的意义在8.4节介绍.定义数组后,数值数组 中的全部元素都初始化为0 中的全部元素都初始化为0,字符串数组中的全部元素 都初始化为空字符串. 都初始化为空字符串. (2)"数组名"的命名遵守标识符规则. 数组名"的命名遵守标识符规则. (3)"下标"的一般形式为"[下界 to] 上界". 下标"的一般形式为" 上界" 下标的上界,下界为整数,不得超过Long数据类型的 下标的上界,下界为整数,不得超过Long数据类型的 范围,并且下界应该小于上界.如果不指定下界, 范围,并且下界应该小于上界.如果不指定下界,下 界默认为0 界默认为0.
浙江蜗牛网络-VB论坛:/cto.asp
第7章 数组
从存储角度看,前面使用的变量都是相互独立的, 从存储角度看 , 前面使用的变量都是相互独立的 , 无关的,通常称它们为简单变量.但如果处理将200个 无关的,通常称它们为简单变量.但如果处理将200个 学生的成绩按大小顺序排序这类问题, 学生的成绩按大小顺序排序这类问题 , 只使用简单变 量将会非常麻烦,而利用数组却很容易实现. 量将会非常麻烦 , 而利用数组却很容易实现 . 本章讲 述VB数组的基本概念和使用方法,主要内容有:数组 VB数组的基本概念和使用方法 主要内容有: 数组的基本概念和使用方法, 的概念,数组的定义及应用,可调数组的概念及应用, 的概念 ,数组的定义及应用 , 可调数组的概念及应用 , 控件数组的概念及应用. 控件数组的概念及应用.
VB第7章数组[1]
![VB第7章数组[1]](https://img.taocdn.com/s3/m/ee8bff17cc7931b765ce15fc.png)
4
解: 程序中,先通过Dim语句为数组d定义维数及下
标范围,也即为数组安排一块连续的内存存储区, 但这并不意味着内存里该数组已建立了应有的内容 本例中输入数组中的数据是由InputBox函数来 实现的,共循环了五次,输入的五个数依次赋值给 下标变量d(1)~d(5)
第七章 数 组
利用数组可以有效地存储和处理成批数据
本章主要内容
7.1 7.2 7.3 7.4 7.5 使用数组 使用列表框和组合框控件 使用一维控件数组 动态数组 程序举例
2013年8月4日
Dim Rain
2
例 数组的应用
例7.1 输入某小组5个同学的成绩,计算总分和平均 分(取小数后一位) 本例利用InputBox函数来输入成绩,输入完毕后 经过计算,再采用Print直接在窗体上输出结果
2013年8月4日 Dim Rain
14
例7.5 分别计算5个学生和3门课的平均分
某学习小组有5名学生,成绩如下表所示 分析:用一个二维数组a(5, 3)来描述。程序中设置 两重循环,用以实现每行和每列上的累加。本例采 用赋值语句来输入学生成绩,并采用Print直接在窗 求5个学生的平均分 体上输出结果
'累加同一列数据
s = s + a(r, c) '累加同一行数据 Next r s = s + a(r, c) Print k(c), Format(s / 5, "##.0") Next c Next c Print r, Format(s / 3, "##.0") End Sub Next r Print
Dim Rain
19
(3)编写程序代码 编写的“显示”按钮Click事件过程代码: Private Sub Command1_Click() List1.Clear For n = 100 To 800 If (n Mod 3 = 0) And (n Mod 8 = 0) Then List1.AddItem n End If Next n End Sub
VB程序设计教案,数组4,动态数组

【第二种方法】复制现有控件。
用复制、粘贴的方法建立控件数组,具体步骤如下:
(1) 画出控件数组中的第一个控件。
(2) 当控件获得焦点时,单击“复制”按钮。
(3) 单击“粘贴”按钮。
VB将显示一个对话框询问是否确认创建控件数组。
选择“是”,确认操作,将得到控件数组中的第二个控件。
(4) 继续单击“粘贴”按钮,可得到控件数组中的其他控件。
【第三种方法】指定控件的索引值。
可以直接指定控件数组的索引值,来建立控件数组。
其具体步骤如下:
(1) 绘制控件数组中的第一个控件。
(2) 将其Index属性索引值改为0。
(3) 复制控件数组中的其他控件。
三、课堂总结。
VB数组课件

数组的定义及引用
例1 统计某班(假设有30人)程序设计课程考试的平均 成绩,并输出高于平均分的成绩。(统计问题)
分析: 1.先声明数组后输入30人的成绩,再进行累加; 在循环体外打印平均成绩 2. 判断是否有>平均成绩的,有则一行输出5个
Private Sub Form_Click() Const NUM = 30
下列程序运行时单击Command1,输出的结果是( ) Private Sub Command1_Click() Dim a(10) For k = 1 To 10 a(k) = 11 - k Next
Print a(3 + a(6))
End Sub
A)2
B)3
C)4
D)5
下列程序运行时单击窗体,输出的结果是( ) Private Sub Form_Click() ‗数组声明的语句能对数组进行初始化,使得数值型数组的元素值初 始化为0,字符型数组的元素值初始化为空。 Dim a(4) a(4) = 4 For i = 1 To 3 a(i) = a(i + 1) - 1 Next Print a(1) End Sub
Max = Test(1): L = 1 '设数组第一个元素为最大值 For i = 2 To Length If Max < Test(i) Then '找到新的最大值,记录其值 和位置 Max = Test(i) L=i End If Next i MsgBox "最大值x=" & Max & ",位置是" & L End Sub
13
知识点回眸
工程编程软件VB课件教程-数组

用 For 循环和 Print 语句实现 用 For 循环和 Print 语句实现
例7.1:设计一个程序,为数组赋值。声明一个包含6个元素的 整型数组,分别赋值为1,2,3,4,5,6,然后在窗体上输出各元素的 值、它们的总和及平均值。 例7.1程序 储了100个学生的成绩。 例7.3:编一程序,计算某班6个学生的平均成绩及优生率。 例7.3程序 P84例7-1示例程序 例7.2程序
数组属于Visual Basic中的构造数据类型,它是以基本类 型为基础,按层次方式构造起来的。VB中的构造类型有数 组、枚举、自定义类型等。 Visual Basic中的数组有两种类型:变量数组和控件数 组,其中变量数组又按声明时数组的大小确定与否分为静态 (定长)和动态(不定长)数组。
7.1.1 一维静态数组的定义
使用数组中的元素,即称为数组的引用。 使用数组中的元素,即称为数组的引用。
数组名(下标1[,下标2,…]
特别注意区分:数组声明时的下标和数组引用时的下标。 2. 数组元素的初始化
给数组的各个元素赋予初值,经常采 给数组的各个元素赋予初值,经常采 用循环语句为数组元素赋初值。 用循环语句为数组元素赋初值。
例如: Dim Sc(3 To 6) As Integer ‘声明了一个名称为Sc,大小为4的
一维数组,该数组包含四个元素, 分别为Sc(3),Sc(4),Sc(5),Sc(6),且每 个元素都是整型的。
Dim Sn(5)
‘声明了一个名称为Sn,大小为6的一维数
组,该数组包含六个元素,分别为 Sn(0),Sn(1), Sn(2),Sn(3),Sn(4),Sn(5),且 每个元素都是变体型的。
Dim语句声明的数组,为系统编译程序提供了数组名、数 组类型、数组的维数和各维的大小。且VB会自动为其中的 每个数组元素赋初值:将数值型数组中的全部数组元素都 初始化为0,把字符串数组中的全部数组元素都初始化为 空字符串“”。 对数组的操作,是针对某个具体的元素进行的,一个数组 元素可以看成一个独立的变量。一个数组被声明后,VB对 数组中的每个元素都分配存储空间。
VB第7课时:VB-一维数组教学文案

程序运行时,能触发该事件过程的是( ) A. 单击文本框 Text1 B. 单击文本框 Text2 C. 文本框 Text1被激活后,用户在键盘上按下某一个键 D. 文本框 Text2被激活后,用户在键盘上按下某一个键
② 定义数组的语句格式:p70
Dim 数组名 (下界To上界) AS 类型
※ 下界、上界:数组下标范围的最小值、最大值
例如: Dim b (8) AS Integer
For i= 0 to9 step 2 b(i)=i+1
Next i (1) 求b(6)的值
(2) 求程序运行后最终求b(i)的值
当i=0时 b(0)=0+1=1 当i=2时 b(2)=2+1=3 当i=4时 b(4)= 4+1=5 当i=6时 b(6)= 6+1=7 当i=8时 b(8)= 8+1=9
例如:
(1) 定义需要一个数组b来存储6位学生的学号; Dim b(1 to 6) AS Long
(2)根据以下数组元素储存的内容定义该数组:
SHE (0) = 田馥甄(Hebe) SHE (1) = 任家萱(Selina) SHE (2) = 陈嘉桦(Ella)
Dim SHE(0 to 2) AS String 或 Dim SHE(2) AS String
Visual Basic 算法(3)程序设计之 一维数组语句 第8课时
学习重点: 1、 一维数组概念 2、一维数组定义语句 3 、一维数组的使用
1、 一维数组概念
① 数组(变量数组): 是一组有序具有相同数据类型的变量的集合。 数组名是这个集合的名称;这些变量称为数组的元素(存放的位置)。
SHE是中国台湾的女子流行演唱组合, 由田馥甄(Hebe) 、任家萱(Selina)、 陈嘉桦(Ella)组成。 为区分就用以下序号表示: SHE (1): 代表 田馥甄(Hebe) SHE (2): 代表 任家萱(Selina) SHE (3): 代表 陈嘉桦(Ella)
vb第7章过程

……
Call fact End Sub
Private Sub Command1_Click(Index As Integer) Dim a As Integer, b As Integer, c As Integer, tot As Long n = Index Select Case n Sub fact(m As Integer, Case 0 a=5 total As Long) Call fact(a, tot) Dim i As Integer Label1.Caption = a & "!=" & tot total = 1 Case 1 For i = 1 To m a=6 total = total * i Call fact(a, tot) Next I Label1.Caption = a & "!=" & tot End Sub Case 2 a=8 Call fact(a, tot) Label1.Caption = a & "!=" & tot Case 3 a = 5: b = 6: c = 8 Call fact(a, tot) s = tot Call fact(b, tot) s = s + tot Call fact(c, tot) s = s + tot Label1.Caption = a & "!+" & b & "!+" & c & "!=" & s End Select
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Array函数只能初始化 一维数组
数组的下界默认为0, 也可通过option base
Dim a as variant
a=array(1,2,3,4,5,6,7)
语句决定。(举例说明)
第七章 数组
Option Base 1
Private Sub Form_Click()
Dim a as variant a = Array(1, 2, 3, 4, 5) For i = 0 To 4 Print a(i) (若改为1 to 5,需将下界置为1)
a(i) = a(i) + 1
Next j For i = 0 To 10 Print "成绩为" & (i * 10) & "-" & (i * 10 + 9) & "的人数为:" & a(i) Next i End Sub
第七章 数组
第五节 控件数组
一、基本概念
控件数组是由一组相同类型的控件组成,这些控件 共用一个相同的控件名称,具有相同的事件过程。数组
第七章 数组
Type StudType No As Integer Name As String * 20 Sex As String * 1 Mark(1 To 4) As Single „ 学号 ‟ 姓名 „ 性别 ‟ 4门课程成绩
Total As Single
End Type 注意:
‘ 总分
◆自定义类型一般在标准模块(.bas)中定义,默认是Public。
◆自定义类型中的元素类型可以是字符串,但应是定长字符串。
第七章 数组
2、自定义类型变量的声明和使用形式:
Dim 变量名 As 自定义类型名
例如,
Dim Student As StudType ,MyStud As StudType
声明了两个同种类型的变量。
第七章 数组
讲解演示以上过程,编写事件代码 Private Sub Form_Load() Load Command1(1) Command1(1).Visible = True Command1(1).Left = Command1(0).Left + Command1(0).Width End Sub 添加多个控件数组元素(见控件数组例题2)
Next i
End Sub
第七章 数组
2、求数组的上界Ubound( )函数、 下界 Lbound( )函数
形式:ubound(数组名,维)
lbound(数组名,维) 作用:获得数组中指定维的上界和下界
例如:Dim a(1 to 100,-3 to 4) As Integer
Print UBound(a, 1); UBound(a, 2)
第七章 数组
用With语句:
With student .No = 2001 .Name = “张华” .Sex = “男” .Total = 0 For i = 1 To 4 .Mark(i) = inputbox(“请输入第” & I &“门课成绩”) .Total = .Total + .Mark(i)
第七章 数组
3、一维数组元素的输入输出
(使用单层循环,通过inputbox()函数输入,通过print输出)。
例题7-2 输入任意10个数,逆序输出。
Dim a(1 to 10) as integer For i=1 to 10 a(i)=inputbox(“请输入第” & I &”个数”) Next I For i=10 to 1 step -1 Print a(i); Next i
第七章 数组
一维数组应用:分类统计
统计一个班学生的成绩在0-9、10-19、20-29、…90-99以及100各分数段的人数。
Private Sub Command1_Click() Dim a(10) As Integer For j = 1 To 12 x = Val(InputBox("请输入第" & j & "个学生的成绩")) i = Int(x / 10)
例题7-1 输出斐波那契数的前20项 Dim f(1 to 20) As Integer,i As Integer f(1) = 0 : f(2) = 1 for i = 3 To 20 '第三项起每项为前二项之和
f(i) = f(i - 2) + f(i - 1)
next i for i=1 to 20 print f(i) Next i
第七章 数组
第四节 与数组有关的函数
1、Array()函数
Array函数可方便地对数组整体赋值,但声明的数组是动态数组 或连圆括号都可省略的数组,并且其类型只能是variant。赋值后的
数组大小由赋值的个数决定。
例如,要将1,2,3,4,5,6,7 这些值赋值给数组a,可使用下面的 方法赋值。 Dim a() as variant a=array(1,2,3,4,5,6,7)
中的每一个控件用唯一的索引号index即下标,来标识它 们。
二、创建控件数组 在程序设计过程中,有两种方法可以创建控件数组: ①、给多个不同的控件赋以相同的名字。 ②、复制现有的控件并将其粘贴到窗体上。
第七章 数组
例题:使用控件数组创建一个简单的电话拨号程序。
第七章 数组
运行时添加控件数组
步骤如下:
动态数组的大小(其元素的个数)在运行时可以改
变。
第七章 数组
创建动态数组的步骤如下: (1) 声明一个未指明大小及维数的数组。 格式: Dim 数组名( ) 小括号内是空的。 如:Dim a() as integer As 类型
(2) 用ReDim语句分配实际的元素个数。
格式: ReDim 数组名(下标) [ As类型]
第七章 数组
2、二维数组的输入输出 (例题7-3) Option base 1 25 63 89 36 14 58 31 45 27 56 12 65
Dim a(4,4) as integer
For i=1 to 4 for j=1 to 4
90
72 34 70
a(i,j)=val(inputbox(“请输入”))
第七章 数组
例题:利用控件数组制作简易计算器
第七章 数组
第六节 自定义数据类型及其数组 1、自定义类型的定义形式:
Type 自定义类型名 元素名[ As 类型名] … [元素名[(下标)] As 类型名] End Type 其中: ◆元素名:表示自定义类型中的一个成员。 ◆下标:表示是数组。 ◆类型名:为标准类型。 例如,以下定义了一个有关学生信息的自定义类型:
next j Next I For i=1 to 4 for j=1 to 4 print a(i,j); next j Print Next i
第七章 数组
第三节 动态数组 在VB中有两种形式的数组:静态数组和动态数组。 静态数组是指数组元素的个数固定不变。如前面所 述的数组,一经定义,元素的个数不能改变。
要表示自定义类型变量中的某个元素,形式: 变量名.元ห้องสมุดไป่ตู้名
例如:
要表示Student变量中的姓名,第3门课程的成绩,则表示如 下: ,Student.Mark(3)
第七章 数组
给自定义类型变量赋值 student.No = 2001 = “张华” student.Sex = “男” student.Total = 0 For i = 1 To 4 student.Mark(i) = inputbox(“请输入第” & I &“门课成 绩”) student.Total = student.Total +student .Mark(i) Next i Print student.No, student.Total MyStud= student
第七章 数组
下界最小为-32768,上界最大为32767; 省略下界,其默认值为为0; Dim a(10) As Integer
一维数组的大小为:上界-下界+1
又如:Dim B(-3 To 5) As long
As 数据类型,如果省略,则默认为是变体数组
第七章 数组
2、一维数组元素引用 使用形式: 数组名 (下标)
功能:重新定义数组元素的个数。(可以多次使用)
第七章 数组
例7-4 统计输入的任意个数之和。
Dim N As Integer,A( )As Single, i As Integer, s As Single N = InputBox("输入几个数?") ReDim A(1 To N) For i = 1 To N A(i) = InputBox("输入第" & i & "个数") s = s + A(i) Next i Print N; "个数之和为"; s
第七章 数组
说明: 静态数组声明中的下标只能是常量,而动态数组 ReDim 语句中的下标可以是常量,也可以是有了确定 值的变量。
在过程中可以多次使用ReDim来改变数组的大小, 也可 改变数组的维数。
见例题动态数组
每次使用ReDim语句都会使原来数组中值丢失,可 以在ReDim后加Preserve 参数来保留数组中的数据。
1)在窗体上画出某控件,设置该控件的Index值为0,表
示该控件为数组。 2)在编程时通过Load方法添加其余若干个元素,也可以
通过Unload删除某个添加的元素。
语法: Load 对象名称(Index) UnLoad 对象名称(Index)