《《VB的数组和结构》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VB的数组和结构》PPT课件.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Version 3.0第四章第四章 基本数据类型基本数据类型 变量和变量和常量常量 变量和常量的作用域变量和常量的作用域 操作符和表达式操作符和表达式 流程控制语句流程控制语句 在在 Visual Basic 中定义和使用数组中定义和使用数组 掌握控件数组的基本概念及掌握控件数组的基本概念及使用使用 在在 Visual Basic 中创建和使用自定义的数据中创建和使用自定义的数据类型类型 使用随机函数使用随机函数 单独的变量能够存储单个数据值单独的变量能够存储单个数据值 数组是可以集中存储一数组是可以集中存储一组具有相同数据类组具有相同数据类型的数据项的一种结构型的数据项的一种结构 使用数组的
2、优势:数组中的所有值都用单使用数组的优势:数组中的所有值都用单个名称来存储,并可以使用位置索引分别个名称来存储,并可以使用位置索引分别进行标识进行标识 声明数组:声明数组:例如,为存储例如,为存储 2 到到 20 之间的偶数声明一个数之间的偶数声明一个数组组,Dim even_arr(9) As Integer 给数组赋值:给数组赋值:例如,要给上面声明的数组赋值,例如,要给上面声明的数组赋值,even_arr (0) = 2even_arr (1) = 4even_arr (2) = 6 even_arr (9) = 20定义了一个共有10个元素的整型数组 Private Sub Form_
3、Click() Dim num(10) As Integer Dim i As Integer For i = 0 To 9 num(i) = i + 1 Print num(i) Next i End Sub(在(在VB环境中进行演示)环境中进行演示) 数组的下界可以不为数组的下界可以不为 0 在在 Dim 语句中,可以显式地指定所声明语句中,可以显式地指定所声明的数组的下界的数组的下界 示例示例Dim Mynames (1 to 5) as string可以按如下所示对该数组赋值:可以按如下所示对该数组赋值:Mynames(1) =“Tom”Mynames(2) =“Joe”Mynames
4、(3) =“Jack”Mynames(4) =“Lisa”Mynames(5) =“Jeff” 在在一些情形下可能希望存储多维数据组一些情形下可能希望存储多维数据组成的序列成的序列 声明多维数组声明多维数组例如,要声明一个能够存放例如,要声明一个能够存放5个学生的姓名和个学生的姓名和年龄的数组,年龄的数组,Dim stud_age(4,1)(0,0)(0,1)(1,0)(1,1)(2,0)(2,1)(3,0)(3,1)(4,0)(4,1)定义了一个5行2列的Variant类型的数组 可用下面的语句为二维数组可用下面的语句为二维数组赋值赋值Dim stud_age(4,1)stud_age(0,
5、0) = Tomstud_age(0,1) = 25stud_age(1,0) = Joestud_age(1,1) = 22stud_age(2,0) = Lucystud_age(2,1) = 24stud_age(3,0) = Tedstud_age(3,1) = 25stud_age(4,0) = Harrystud_age(4,1) = 23Tom25Joe22Lucy24Ted25Harry23 要显示上要显示上一张幻灯片创建的数组中所有一张幻灯片创建的数组中所有元素的值元素的值Dim i, j As IntegerFor i = 0 To 4 For j = 0 To 1 Pri
6、nt stud_age(i, j) Next jNext i010Tom251Joe222Lucy243Ted254Harry23 动态数组与普通数组在概念上相类似动态数组与普通数组在概念上相类似 动动态数组与普通数组的区别:态数组与普通数组的区别: 动态数组的大小在程序中是可变的动态数组的大小在程序中是可变的 声明动态数组不需要指定维数声明动态数组不需要指定维数 使用动态数组可以丢弃不需要的数据并释放使用动态数组可以丢弃不需要的数据并释放内存内存 动态数组的声明与正常数组的声明相似动态数组的声明与正常数组的声明相似 在声明时不需要指定任何维数在声明时不需要指定任何维数 例如,例如,声明数组时
7、声明数组时Dim num_arr() as Long运行时使用运行时使用ReDim语句指定数组的维数和实际大小语句指定数组的维数和实际大小ReDim num_arr(10) 在重定义动态数组时,应注意:在重定义动态数组时,应注意: ReDim 语句与语句与 Dim 语句不同,只能在语句不同,只能在函数和过函数和过程中出现程中出现,后者可以在过程外出现后者可以在过程外出现 ReDim 语句无法更改与数组关联的数据类型语句无法更改与数组关联的数据类型 连续的连续的 ReDim 语句可以更改数组的边界语句可以更改数组的边界,但但无无法更改数组的维数法更改数组的维数 每执行一次每执行一次ReDim语句
8、,当前数组中的值将会语句,当前数组中的值将会丢失丢失Private Sub Form_Click() Dim num_arr() As Integer Dim intNum, i As Integer intNum = InputBox(请输入动态数组中元素的个数请输入动态数组中元素的个数) 重定义动态数组重定义动态数组 ReDim num_arr(intNum) 给动态数组赋值给动态数组赋值 For i = 0 To intNum num_arr(i) = i + 10 Next i MsgBox 数组中第一个元素的值为:数组中第一个元素的值为: & num_arr(0) ReDim num
9、_arr(3) MsgBox 重定义后数组中第一个元素的值为:重定义后数组中第一个元素的值为: & num_arr(0)End Sub(在(在VB环境中进行演示)环境中进行演示) 可以将相关的可以将相关的并且是相同类型的控件组合并且是相同类型的控件组合到一种称为到一种称为“控件数组控件数组”的结构中的结构中 示例:在示例:在VB环境中创建名为环境中创建名为 cmdArray 的命的命令按钮的控件数组令按钮的控件数组 控件数组中的控件共享公用的属性、事件、控件数组中的控件共享公用的属性、事件、名称和类型名称和类型 控件数组中的每个控件称为控件数组的一控件数组中的每个控件称为控件数组的一个元素个元
10、素 控件数组中的控件可以在运行时创建控件数组中的控件可以在运行时创建 控件数组中的所有元素具控件数组中的所有元素具有相同的名称有相同的名称 通过使用称为通过使用称为 Index 属性的属性来分别属性的属性来分别标识每个元素标识每个元素 索引可以帮助将特定的值赋给与特定控索引可以帮助将特定的值赋给与特定控件关联的属性件关联的属性 改变在幻灯片改变在幻灯片15中创建的中创建的 cmdArray 命令命令按钮数组中第按钮数组中第0个和第个和第1个按钮的个按钮的caption属性属性cmdArray(0).caption = 退出退出cmdArray(1).caption = 确定确定 对于与控件数组
11、相关联的特定事件,该对于与控件数组相关联的特定事件,该控件数组中的所有元素共享相同的事件控件数组中的所有元素共享相同的事件代码代码 根据与根据与控件相关联的索引来触发控件的控件相关联的索引来触发控件的事件事件(在(在VB环境中进行演示)环境中进行演示) 可能会需要将与相同实体相关的不同数可能会需要将与相同实体相关的不同数据类型据类型的值存储在一起,这种结构称为的值存储在一起,这种结构称为记录。例如:要存储学生的相关信息记录。例如:要存储学生的相关信息Student_idStudent_nameStudent_marksStudent_address104Parker78NewYork-3510
12、5Stevens82Texas-50107George76Florida-56 使用使用 Type 语句创建的数据类型称为用户定义或自语句创建的数据类型称为用户定义或自定义的数据类型定义的数据类型 Type 语句的典型语法如下语句的典型语法如下: Type varType variable1 as varType variable2 as varType variable3 as varType . variablen as varType End Type 创建符合创建符合幻灯片幻灯片21示例中关于学生信息要示例中关于学生信息要求的,称为求的,称为 studTyp 的自定义数据类型的自定义数
13、据类型 Type studTypestud_id As Integerstud_name As Stringstud_marks As Integerstud_address As StringEnd Type 可以使用下列语句可以使用下列语句,创建在上一张幻灯,创建在上一张幻灯片中定义的自定义数据类型片中定义的自定义数据类型 studType 的的变量:变量: Dim student1 As studType Dim student2 As studType 要为这些变量赋值,必须显式地将值赋要为这些变量赋值,必须显式地将值赋给组成此数据类型的各个成员给组成此数据类型的各个成员 数据类型的每
14、个单独的成员称为字段数据类型的每个单独的成员称为字段 使用使用变量名变量名.字段名字段名,为变量赋值或访问,为变量赋值或访问变量的各字段的值变量的各字段的值 为自定义数据类型的变量赋值为自定义数据类型的变量赋值 studType是在第是在第23张幻灯片中创建的自定义数据类型张幻灯片中创建的自定义数据类型student1.stud_idstudent1.stud_namestudent1.stud_marksstudent1.stud_address 访问该类型变量的值访问该类型变量的值Dim student1 As studTypestudent1.stud_id = 104student1.
15、stud_name = Parkerstudent1.stud_marks = 78student1.stud_address = NewYork-35“1 RNDRND函数说明函数说明: :返回一个小于返回一个小于1 1但大于等于但大于等于0 0的单精度数。的单精度数。 可用来生成某个范围内的随机整数:可用来生成某个范围内的随机整数:Int(上限上限 下限下限 + 1) * Rnd + 下限下限) 示例:若要生成一个示例:若要生成一个10-20内的随机整数内的随机整数Int(20 10 + 1) * Rnd + 10)Dim intIndex As LongDim sngArray(1 To
16、 10) As SingleFor intIndex = 1 To 10 sngArray(intIndex) = 100 * Rnd + 1 msgBox(sngArray(intIndex)Next intIndex 将生成的一个将生成的一个1-1-100100之间的随机数之间的随机数赋值给数组赋值给数组(在(在VB环境中进行演示)环境中进行演示)在在VB环境中演示本章教材最后一部分环境中演示本章教材最后一部分的的“示例示例” 数组数组 使用一维数组使用一维数组 使用多维数组使用多维数组 使用动态数组使用动态数组 使用控件数组使用控件数组 自定义数据类型自定义数据类型 使用随机函数使用随机函数Rnd 算法:数组排序算法:数组排序