首页 vb第六章 数组

vb第六章 数组

举报
开通vip

vb第六章 数组null第六章 数组第六章 数组6.1 数组的概念6.1 数组的概念1、数组是相同类型的变量的集合,在内存中占据连续的存储单元。 2、数组用于需要处理很多数据的问题中,用来表示多个变量。 3、在数学中有X1、X2、X3、……,但在计算机中不能用,高级语言中用数组来表示:X(1)、X(2)、X(3)……。 4、使用数组就是用一个相同的名字引用这一组变量中的数据,这个名字被称为数组名。 一、数组三要素一、数组三要素1、数组名——与简单变量命名规则(P45)相同,代表一组变量 2、数据类型——数组元素的类型 3、...

vb第六章 数组
null第六章 数组第六章 数组6.1 数组的概念6.1 数组的概念1、数组是相同类型的变量的集合,在内存中占据连续的存储单元。 2、数组用于需要处理很多数据的问题中,用来表示多个变量。 3、在数学中有X1、X2、X3、……,但在计算机中不能用,高级语言中用数组来表示:X(1)、X(2)、X(3)……。 4、使用数组就是用一个相同的名字引用这一组变量中的数据,这个名字被称为数组名。 一、数组三要素一、数组三要素1、数组名——与简单变量命名规则(P45)相同,代表一组变量 2、数据类型——数组元素的类型 3、大小——数组元素的个数 二、数组定义二、数组定义使用数组之前必须对数组进行定义,确定数组的名称和它的数据类型、指明数组的维数和每一维的上、下界的取值范围。 VB中有两种类型的数组:固定大小数组和动态数组。 在程序中通过数组说明语句来定义数组。null 该语句声明了数组的名、维数、大小、类型 维数:几个下标为几维数组,最多60维。 下标: [下界 To ] 上界 省略下界为0 ,必须为常数表达式。 每一维大小: 上界-下界+1 数组大小: 每一维大小的乘积Public∣Private∣Static∣Dim <数组名> (下标1[,下标2…]) [As <数据类型>] [<下界1> To]上界1[[,<下界2> To] 上界2……] 数组说明语句的形式是:<下标定义>的格式是:null注意 :不可以在窗体模块的通用、声明处,定义符号常数、固定长度的字符串、数组等为Public成员。这些只能在 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 模块中定义为Public成员。null一维数组定义: Dim A(5) As Integer 表示A(0)、A(1)、A(2)、A(3)、A(4)、A(5) 共6个元素,都是整型变量 Dim B(11 To 15) As Single 表示B(11)、B(12)、B(13)、B(14)、B(15)共5个元素,都是单精度型变量。二维数组定义:二维数组定义:Dim A(2, 3) As Integer 定义了3行4列的二维数组,共12个元素,整型 第一列 第二列 第三列 第四列 第一行 A(0, 0) A(0, 1) A(0, 2) A(0, 3) 第二行 A(1, 0) A(1, 1) A(1, 2) A(1, 3) 第三行 A(2, 0) A(2, 1) A(2, 2) A(2, 3) Dim B(-1 To 1, 1 To 3) As String 定义了3行3列的二维数组,共9个元素,字符型 注意:注意:1、数组下标的下界默认为0,可用语句 Option Base 1 来规定下标的下界为1。该语句应在通用部分 2、数组下标上、下界的取值范围不得超过长整数的范围( - 2,147,483,648 到 2147483647),否则出错,且:下界≤上界。 3、下标的上、下界只能是常数表达式,当为非整数时,会自动进行四舍五入处理,不能出现变量。null4、数组内的每个成员称为数组元素,数组元素又称为下标变量,数组元素的类型也就是数组的类型,数组的类型可以是除字节类型以外的所有类型。若缺省As短语,则表示该数组是变体(Variant)类型。 5、数组元素名的一般形式是: 其中:下标可以是常量、变量或算术表达式。数组名(下标1[,下标2……])数组维数说明示例数组维数说明示例Dim M As integer Const N As Integer = 5 Dim A(N) As Integer Dim B(1 To 6.6) As Integer Dim C(1 To 2 + 3) As Integer Dim D(0 To M) As Integer√√√×null6、在数组声明中的下标说明了数组的整体,即每一维的大小,不允许使用变量;而在程序其他地方出现的下标表示数组中的一个元素,允许使用变量。两者写法形式相同,但意义不同。 例如: Dim x(10) As Integer ' 声明了x数组有11个元素 x(10)=100 ' 对x(10)这个数组元素赋值数组说明语句不仅定义了数组,分配存储空间,而且还将数组初始化数组说明语句不仅定义了数组,分配存储空间,而且还将数组初始化数值型的数组元素初始值为零 变长字符类型的数组元素初始值为空字符串 定长字符类型的数组元素初始值为指定长度个数的空格 布尔型的数组元素初始值为False 变体(Variant)类型的数组元素的初始值是Empty。 三、数组的结构三、数组的结构 数组是具有相同数据类型的多个值的集合,数组的所有元素按一定顺序存储在连续的存储单元中。一维数组的结构一维数组的结构一维数组只能表示线性顺序,相当于一个一维表,也可以用一维数组表示数学中的向量。 数组定义的例子 Dim StrA(8) As Integer 逻辑结构存储结构逻辑结构内存的存放次序二维数组的结构二维数组的结构二维数组的表示形式是由行和列组成的一个二维表。在内存中按列、行的顺序存放。 Option Base 1 Dim Table(3,4) As Integer 逻辑结构存储结构行列按列存放三维数组的结构三维数组的结构三维数组是由行、列和页组成的三维表。三维数组也可理解为几页的二维表,即每页由一张二维表组成。在内存中按页、列、行的顺序存放。 Option Base 1 Dim page(3,3,2) As Integer逻辑结构存储结构 练习题 用券下载整式乘法计算练习题幼小衔接专项练习题下载拼音练习题下载凑十法练习题下载幼升小练习题下载免费 练习题设有语句 option Base 1 Dim A(3,4)As Integer 则A(2,3)元素位于数组开始的第 个元素的位置。 A. 6 B. 7 C. 8 D. 9 C四、有关数组的函数和语句四、有关数组的函数和语句1、LBound函数 格式: Lbound(数组名[,d]) 功能:返回指定数组某维的下界值,如缺省“d”,则返回第一维的下界 例:Dim A(5) As Integer, B(3 To 8, 82 To 100) Print Lbound(A), Lbound(B,1), Lbound(B,2) 显示: 0 3 82 Lbound(B)2、UBound函数2、UBound函数格式: Ubound(数组名[,d]) 功能:返回指定数组某维的上界值,如缺省“d”,则返回第一维的上界 例:Dim A(5) As Integer, B(3 To 8, 82 To 100) Print Ubound(A), Ubound(B,1), Ubound(B,2) 显示: 5 8 100 Ubound(B)3、Erase语句3、Erase语句格式:Erase 数组名1,数组名2,…… 功能:重新初始化固定大小数组的元素,或释放动态数组的存储空间 例:Dim A(3) As Integer , B() As Integer A(1)=1: A(2)=2: A(3)=3 ReDim B(4) ’重定义动态数组或定义一个新数组,按指定的大小重新分配存储空间 Print A(1); A(2); A(3) ‘ 输出:1 2 3 Erase A , B Print A(1); A(2); A(3) ‘ 输出:0 0 0B数组又成为一个没有存储单元的空数组4、For Each-Next结构语句4、For Each-Next结构语句格式:For Each Element In 数组|对象集合 [语句组] [Exit for] Next Element 功能:为数组或集合对象中的每个元素重复执行指定的操作 其中:Element是一个Variant变量,代表数组或集合对象中的每个元素。For Each –Next举例(一维数组的使用) P90例For Each –Next举例(一维数组的使用) P90例Option base 1 Private Sub Form_Click() Dim A(12) As Integer, V As Variant Dim I%, Js% Js = 14 For I = 1 To 12 A(I) = Js Js = Js + 7 Next IJs = 0 For Each V In A Js = Js + 1 Print V; If Js Mod 6 = 0 Then Print Next V Print End Sub给A数组赋值输出每行6个元素运行结果: 14 21 28 35 42 49 56 63 70 77 84 91For Each –Next举例(二维数组的使用) P91例For Each –Next举例(二维数组的使用) P91例Option base 1 Private Sub Command1_Click() Dim Exam(2, 3) As Integer, V As Variant Dim I As Integer, J As Integer For I = 1 To 2 For J = 1 To 3 Exam(I, J) = I * 10 + J Print Exam(I, J); Next J Print Next I End Sub For Each V In Exam Print V; Next V Print End Sub给数组赋值输出数组运行结果: 11 12 13 21 22 23 11 21 12 22 13 23 6.2 数组的基本操作6.2 数组的基本操作VB不允许对数组整体操作,例如: Dim A(2,3) As Integer A=2 不允许! 只能对数组元素进行操作,例如: A(1,1)=1 A(1,3)=2 A(2,2)=A(1,1)*2+A(1,3)一、数组元素的赋值一、数组元素的赋值1、用赋值语句给数组元素赋值 例如:A(1,1)=1 A(1,2)=5 2、通过循环语句给数组元素赋值 例如: For I=1 To 10 A(I)=Int(100*Rnd)+1 Next I 该循环语句产生10个100以内的随机整数,存入数组A中。二维数组应当用双重循环来赋值:二维数组应当用双重循环来赋值:例如: For I=1 to 2 For j=1 to 3 A(I, j)=(I-1)*3+j Next j Next I产生的二维数组为: 1 2 3 4 5 63、用InputBox函数给数组元素赋值3、用InputBox函数给数组元素赋值在程序中,可以使用InputBox函数让用户从键盘输入值赋给数组元素。InputBox函数只适合输入个别数据。Private Sub Form_Click() Dim A(6) As Integer, I As Integer For I = 0 To 6 A(I) = InputBox("给数组元素赋值", "数组 A 赋值") Print A(I); Next I Print End Sub 4、用Array函数给数组赋值4、用Array函数给数组赋值格式:变体变量名=Array(数据列表) 功能:给变体类型的变量赋值,同时将该变体型变量创建为数组,数组大小与数据列表中的数据个数相同。 注意:Array函数只能给Variant类型的变量赋值。<数据列表>是用逗号分隔的赋给数组各元素的值。 函数创建的数组的长度与列表中的数据的个数相同。若缺省<数据列表>,则创建一个长度为0的数组。 例:Dim B as variant : B=Array() 切记:不可以用Array函数给非Variant类型的变量赋值。nullOption Base 1 Private Sub Form_Click() Dim A As Variant, I As Integer Dim B(4) As Variant A = Array(5, 4, 3, 2, 1) Print A(1); A(2); A(3); A(4); A(5) A = Array(1.5!, 2.3!, 3.6!, 4.1!) Print A(1); A(2); A(3); A(4) A = "NO Array" Print A B = Array(1, 2, 3, 4, 5 , 6) '该语句是一条错误语句 End Sub 二、数组元素的输出二、数组元素的输出数组元素的输出与普通变量的输出完全相同。可以使用Print 方法将数组元素显示在窗体上或者显示在PictureBox中,或将数组元素显示到文本框(TextBox)中。程序调试时也可以用Debug.Print 将数组元素显示在立即(Immediate)窗口。 与输入类似,可以利用循环控制数组元素的输出。一维数组元素的输出一维数组元素的输出关键在如何控制分几行输出: 例: Dim a(1 to 10 ) as Integer,I as Integer for I=1 to 10 a(I)=int(10*rnd+1) print a(I); if I mod 5=0 then print next I 每行输出5个元素,分两行输出null重点在二维数组的输出: 二维数组应该按矩阵的格式输出! 例如:Option Base 1 Dim A(4, 4) As Integer For i=1 To 4 For j=1 To 4 A(i, j)=(i-1)*4+j Next j Next iA数组赋值按矩阵的格式输出,则输出语句为:按矩阵的格式输出,则输出语句为: For i = 1 To 4 For j = 1 To 4 Print A(i, j); Next j Print ’换行 Next i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16思考:如何输出下三角矩阵? 如何在图片框输出?文本框输出?三、数组元素的引用三、数组元素的引用在程序中可以象使用普通变量一样引用数组元素,也就是说数组元素可以出现在表达式中的任何位置,可以出现在赋值号的左边。 在引用数组元素时,数组元素的下标表达式的值一定要在定义数组时规定的维界范围之内,否则就会产生“数组越界”的错误。 null例1、产生10个1~100之间的随机数,求出平均值、最大值、最小值。 思考算法nullOption Explicit Option Base 1 Private Sub Form_Click() Dim A(10) As Integer, I%, Sum! Dim Max As Integer, Min% Sum = 0.0 For I = 1 To 10 A(I) = Int(100 * Rnd) + 1 Sum = Sum + A(I) Print A(I); Next I Print Sum = Sum / 10 Max = A(1): Min = A(1) For I = 2 To 10 If Max < A(I) Then Max = A(I) If Min > A(I) Then Min = A(I) Next I Print Sum, Max, Min End Subnull例2、产生16个两位随机正整数,组成4×4的数组,求出最大数及其所在的行和列。思考算法nullOption Explicit Option Base 1 Private Sub Form_Click() Dim A(4, 4) As Integer, I%, J% Dim M%, N%, Max% For I = 1 To 4 For J = 1 To 4 A(I, J) = Int(90 * Rnd) + 10 Print A(I, J); Next J Print Next I M = 1: N = 1 Max = A(1, 1) For I = 1 To 4 For J = 1 To 4 If Max < A(I, J) Then Max = A(I, J) M = I: N = J End If Next J Next I Print "最大数是"; Max, "其所在行是"; M; "其所在列是"; N End Subnull例3(P94):生成一个如右形式的矩阵、并按矩阵元素的排列次序将矩阵输出。 矩阵可用一个二维数组表示,根据矩阵元素值的变化规律应对奇数行的元素与偶数行的元素分别处理。二维数组输出则通过二重FOR循环实现,用外循环控制行的变化,内循环控制列的变化。null习题:编写程序实现 以下功能: 1、单击“数组生成” 按钮,程序可用随机 函数生成二维数组 A(3,3),数组 元素为两位随机正整数,将A数组里的元素按矩阵形式显示在图片框1中,每写完一行后换行。 2、单击“数组处理”按钮,则将上述生成的矩阵中的最小元素与矩阵中心位置的元素交换,最后将结果显示在图片框2中。每写完一行后换行。6. 3、动态数组6. 3、动态数组 动态数组是指在程序运行过程中,可以重新定义大小的数组。定义动态数组分为两步: 首先使用下面语句定义不指明大小的数组: Public|Private|Dim|Static 数组名() [AS 类型]其次,再使用ReDim 语句来动态地定义数组的大小、分配存储空间。ReDim语句格式如下:ReDim [Preserve] 数组名( 维界定义 )[AS 类型] 注意:注意:1、 ReDim语句与Public、Private、Dim、Static语句不同, ReDim是可执行语句,只能出现在过程中; 2、重新定义动态数组时,不能改变类型,除非是Variant变量所包含的数组; 3、与固定大小数组说明不同,重新定义数组时,可以使用有确定值的变量来说明数组的大小; 4、当缺省Preserve语句时,可以重新定义动态数组的维数和各维的上下界,且原数组中的值全部丢失; 5、当使用Preserve语句时,可以保留原数组中的值,但只能改变最后一维的上界。(因为数组以列方式存放) 6、如果ReDim语句所使用的数组在模块或过程中不存在,则该语句相当于一个说明语句,系统动态创建一个新数组并给数组分配存储空间。例P98-P99null动态数组使用的模式一: Dim a() as integer Redim a(4)/Redim a(2,3) 或:n=inputbox(“n=”) Redim a(n) /Redim a(n, n )nullOption Base 1 Dim a() As Integer n = InputBox("输入n:") ReDim a(1) a(1) = 1 j = 1 For i = 2 To n - 1 If n Mod i = 0 Then j = j + 1 ReDim Preserve a(j) a(j) = i End If Next i动态数组使用的模式二(动态变化):求任意数N的因子Print n; "="; For i = 1 To UBound(a) - 1 Print a(i); "+"; Next i Print a(i)求任意数的因子的打印格式: j = j + 1 ReDim Preserve a(j) a(j) = inull习题1:下面有关数组的叙述中,不正确的是___ ①在过程中用Redim语句定义的动态数组,其下标的上下界可为赋了值的变量 ②在过程中,可以使用Dim、Private和Static语句定义数组 ③用Redim语句重新定义动态数组时,不得改变该数组的数据类型 ④可用 Public语句在窗体模块的通用说明处定义一个全局数组 A.①②③④ B.①③④ C.①②③ D.②④D.null习题2:下面有关数组的叙述中,错误的是___ A.根据数组说明的方式,可将数组分为动态数组和静态数组 B.在过程中,不可以用Private定义数组 C.用Redim语句重新定义动态数组时,不得改变该数组的数据类型 D. 数组重新定维后,原有的数组元素 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 将不予保留D.null习题3:设在定义Dim Arr( ) AS Single句之后,程序又执行了Redim Arr(3,4)语句,则以下可以正确执行的Rdeim语句是_____ A . Redim Arr(5,6) B. Redim Arr(5) AS integer C . Redim Preserve Arr(2,4) D. Redim preserve Arr(3,6)AS Integer A.6.4 控件数组6.4 控件数组一、基本概念 控件数组是由一组具有共同名称、相同类型的控件组成的,数组中的每个控件共享同样的事件过程 控件数组名—即控件的NAME属性 数组下标—由控件的Index属性指定,其值从0到32767 引用方式—控件数组名(下标) 例:Text1(0)、Text1(1)、Text1(2)、……方法1:创建同名控件方法1:创建同名控件首先在窗体上绘制作为控件数组元素的控件; 选定要包含在数组中的控件,选择Name属性,输入与控件数组中的第一个元素相同的名字; 此时VB将显示一个对话框(如下图),询问是否确实要建立控件数组。二、建立控件数组依次把每一个要加入到数组中的控件的名字改为与数组第一个元素相同的名称。新加入到控件数组中的控件的Index值是控件数组中上一个控件的Index值加1。方法2:复制现存控件方法2:复制现存控件先在窗体上绘制作为控件数组第一个元素的控件; 接着选定这个控件,将其复制到剪贴板; 再将剪贴板内容粘贴到窗体上,VB将显示一个对话框,询问是否确实要建立控件数组。此时选择“是”,则该控件被添加到数组中。指定该控件的索引值为1,而数组第一个元素的Index 值设置为0; 通过多次“粘贴”,增加控件数组中的元素。每个新数组元素的Index值与其添加到控件数组中的次序相同。 方法3:使用 Load 和 Unload 语句方法3:使用 Load 和 Unload 语句在运行时可以用 Load 和 Unload 语句添加和删除控件数组中的控件。添加的控件必须是现有控件数组的元素,所以在设计时必须创建一个Index属性为0的控件,运行时方可执行Load 和 Unload 语句。 Load语句Load语句格式:Load Object(Index) 功能:向控件数组添加控件 说明:object是指在控件数组中添加的控件名称 Index 是控件在数组中的索引值。 加载新元素到控件数组时,不会自动把Visible、Index、TabIndex属性设置值复制到控件数组的新元素,所以要在程序中将Visible属性设置成True 。Unload 语句Unload 语句格式:Unload Object (Index) 功能:删除用Load语句产生的对象数组元素 控件数组主要应用于具有多个同类型控件的应用程序。 例(P100)的程序代码用以在程序运行时,通过Load语句创建名为Text1的控件数组。 程序代码程序代码Option Explicit Dim TextNum as integer Private Sub Command1_Click() If TextNum < 3 Then TextNum = TextNum + 1 Load Text1(TextNum) Text1(TextNum).Visible = True Text1(TextNum).Top = Text1(TextNum - 1).Top + _ Text1(TextNum - 1).Height + 100 Text1(TextNum).Text = "文本框 " & Str(TextNum) End If End Sub 见F_load.frm三、使用控件数组三、使用控件数组利用For-Next循环结构,可非常简便的为控件数组的各个元素设置相同的属性。 Provate Sub Form_Load() Dim I as Integer For I=0 to 2 Text1(I).Font.Name = “隶书” Text1(I).Font.Size = 16 Next I … End Sub 当数组中的一个控件识别了一个事件时,VB将调用公共事件过程,并把该控件的Index属性值传递给过程,由它指明是哪个控件识别了事件。如: 当数组中的一个控件识别了一个事件时,VB将调用公共事件过程,并把该控件的Index属性值传递给过程,由它指明是哪个控件识别了事件。如:Private Sub Command1_Click(Index As Integer) ………… End Sub 调色板.vbp【例:】编写一个运算器的程序 【例:】编写一个运算器的程序 将控件数组Command1前10个元素的下标与0 ~ 9等10个数建立对应关系,按控件数组中的某个命令按钮时,就用该控件数组元素的下标值去组成数据。 本示例使用了以下控件数组及控件: Command1:前10个元素分别表示0~9这10个数字,第11个元素表示小数点。 Command2:有5个元素,各元素分别表示+、-、*、/ 和Mod 运算符。 Command3的Caption 属性值设为Cls; Command4的Caption 属性值是设为“=”; Command5的Caption 属性值设为 Exit。例见F6_2.frm6.5程序示例6.5程序示例【例6-3】用选择法对10个数进行排序 冒泡法排序 【例6-4】顺序查找程序 【例6-5】二分查找程序 【例6-6】A是3×2矩阵,B是2×3矩阵,求A·B 【例6-7】求出裴波拉契数列的前18项 【例6-8】统计字母在文本中出现的次数 【例6-9】找出100以内的所有素数 【例6-10】找出5000以内的亲密对数 【例6-11】将一个数列中的重复数去掉 【例6-12】 学生重新编号算法说明:算法说明:设在数组Sort中存放n个无序的数,要将这n个数按升序重新排列。 第一轮比较:用Sort(1)与Sort(i)进行比较,若Sort(1)> Sort(i),则交换这两个元素中的值,i=2,3,…,n。 Sort(1)中存放了n个数中最小的数。 第二轮比较:用Sort(2)依次与Sort(i),i=3,…,n …… 第n-1轮比较:用Sort(n-1)与Sort(n)比较,取小者放到Sort(n-1)中。经过n - 1轮的比较后,n个数已按从小到大的次序排列好了。用选择法对10个数进行排序【例6-3】null选择法排序方法比较简单,比较次数与数据原先的次序无关,总的比较次数是: (n - 1)次 对上面的算法稍加改进的算法-“直接排序法”直接排序法直接排序法设置一个指针Pointer,在每轮比较中,首先将数组元素的下标i赋给Pointer用Sort(Pointer)与其后的元素进行比较,在进行数据比较过程中需要交换两个元素的值时,仅仅将另一个数组元素的下标传递给指针Pointer,使得Pointer的值始终指向较小的元素。当这一轮比较结束后(即内循环结束后),若循环控制变量i 与Pointer相同,则说明这一轮比较中不需要进行数据交换,若不相等,就交换Sort(i)与Sort(Pointer)的值。修改后的算法减少了交换数据的次数,提高了运行的效率。这种算法称为“直接排序法”。 例见ex6-3.vbp冒泡法排序冒泡法排序与选择排序的区别在于:只对相邻两数进行比较,使之大数沉底,小数象气泡一样“冒”上来,所以称为“冒泡法”。 例如对8,3,5,2,1,9排序:第一轮的排序是 第1次比较:8,3,5,2,1,9 第2次比较:3,8,5,2,1,9 第3次比较:3,5,8,2,1,9 第4次比较:3,5,2,8,1,9 第5次比较:3,5,2,1,8,9 第6次比较:3,5,2,1,8,9 第一轮的排序结果:3,5,2,1,8,9 第一轮需排序5次,第二轮需排序4次, 第三轮需排序3次,第四轮需排序2次, 第五轮需排序1次。nullPrivate Sub sort(A() As Integer) ‘ 冒泡法排序过程 Dim i As Integer, j As Integer Dim temp As Integer For i = 1 To UBound(A) – 1 ’n-1 For j = 1 To UBound(A) – i ’n-i If A(j) > A(j + 1) Then temp = A(j) A(j) = A(j + 1) A(j + 1) = temp End If Next Next End Sub例见sy7-4.vbp顺序查找程序 顺序查找程序 算法说明 顺序查找就是从数组第一个元素项开始,每次用一个数组元素的值与要查找的数进行比较,如果找到了,就给出“找到”的信息;如果遍历整个数组都没有找到,就给出“找不到”的信息。【例6-4】二分查找程序 二分查找程序 算法说明 所谓“二分”查找,(对已经排序好的数组进行)就是每次操作都将查找范围一分为二,即将查找区间缩小一半,直到找到或查询了所有区间都没有找到要查找的数据为止。 二分查找图解说明【例6-5】null例见ex6-5.vbpA是3×2矩阵,B是2×3矩阵,求A·BA是3×2矩阵,B是2×3矩阵,求A·B算法说明 根据线形代数已知, 若A是一个m×k的矩阵, B是一个k×n的矩阵, 那么A·B得到一个m×n 的矩阵。设:C =A·B 则C矩阵的每一个元素可根据下面的公式计算: Cij =Ai1·B1j + Ai2·B2j …… + Aik·Bkj 【例6-6】nullPrivate Sub CmdMuli_Click() Dim I As Integer, J As Integer Dim K As Integer, T As Integer For I = 1 To 3 For J = 1 To 3 For K = 1 To 2 C(I, J) = C(I, J) + A(I, K) * B(K, J) Next K Text3(T) = C(I, J) T = T + 1 Next J Next I End SubPrivate Sub CmdMuli_Click() For I = 1 To 3 For J = 1 To 3 For K = 1 To 2 C(I, J) = C(I, J) + A(I, K) * B(K, J) Next K Text3(T) = C(I, J) T = T + 1 Next J Next I End SubA是3×2矩阵,B是2×3矩阵求C=A·B是3×3矩阵 例见ex6-6.vbp求出裴波拉契数列的前18项求出裴波拉契数列的前18项利用未知项与已知项之间存在的某种关系,从已知项出发能逐项求出未知项的方法叫递推法。已知项是递推的初始条件,上式中 F(1) = 1和F(2) = 1。未知项对已知项的某种依赖关系称为递推公式,如F(n) =F(n-1) + F(n-2)。裴波拉契数列的递推公式如下:【例6-7】null统计字母在文本中出现的次数【例6-8】算法说明算法说明B例见ex6-8.vbp算法说明算法说明找出100以内的所有素数【例6-9】例见ex6-9.vbp找出5000以内的亲密对数找出5000以内的亲密对数所谓“亲密对数“是指甲数的所有因子和等于乙数,乙数的所有的因子和等于甲数,那么甲、乙两数为亲密对数。例如:220的因子和:1+2+4+5+10+11+20+22+ 44+55+110=284 284的因子和:1+2+4+71+142=220 【例6-10】算法说明算法说明用两个动态数组F和S来分别存放甲数的因子与乙数的因子; 用两个变量F_Idx和S_Idx分别用于累计甲数与乙数的因子个数; 用sum1和sum2分别存放两个数的因子和; 程序采用对1-5000的数据逐个筛选的算法,先求数据I的因子及因子和sum1;再求sum1的因子及因子和sum2,如果甲数I等于乙数sum1的因子和数sum2,则I和sum1就是符合要求的亲密对数。例见ex6-10.vbpnull数组元素的插入与删除 (1) 插入 在有序数组a(1 to n)(原有n-1个元素)插入一个值Key元素, 算法: 查找要插入的位置k(1<=k<=n-1),腾出位置,把最后一个元素开始到第K个元素往后移动一个位置, 第k个元素的位置腾出,就可将数据Key插入 【补充例】nullPrivate sub command1__click Dim a( 1 to 10), I, k as integer For I= 1 to 9 a(I)=(I-1)*3+1 ’通过程序自动生成有规律的数组 Next I For k= 1 to 9 ‘查找欲插入数14在数组中的位置 if 14
本文档为【vb第六章 数组】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_527693
暂无简介~
格式:ppt
大小:837KB
软件:PowerPoint
页数:0
分类:其他高等教育
上传时间:2011-10-14
浏览量:269