收藏 分销(赏)

visual basic程序设计_等级考试版.pdf

上传人:曲**** 文档编号:228655 上传时间:2023-03-16 格式:PDF 页数:193 大小:5.28MB
下载 相关 举报
visual basic程序设计_等级考试版.pdf_第1页
第1页 / 共193页
visual basic程序设计_等级考试版.pdf_第2页
第2页 / 共193页
visual basic程序设计_等级考试版.pdf_第3页
第3页 / 共193页
visual basic程序设计_等级考试版.pdf_第4页
第4页 / 共193页
visual basic程序设计_等级考试版.pdf_第5页
第5页 / 共193页
点击查看更多>>
资源描述

1、Visual Basic程序设计(等级考试版)第1章Vi sual Basi c程序开发环境第2章对象及其操作第3章 简单程序设计第4章 Vi sual Basi c程序设计根底第5章数据的输入输出第6章控制构造第7章数组第8章常用规范控件第9章过程第10章键盘与鼠标事件过程第11章菜单程序设计第12章Vi sual Basi c程序开发环境第13章 多重窗体程序设计环境运用第14章文件处置第15章多媒体运用开发第16章 数据库编程初步第6章控制构造 程序的构造与流程图 选择控制构造 循环控制构造 Goto型控制 小型案例-文本统计6.1程序的构造与流程图构造化程序设计的根本控制构造有3种:即

2、顺序构造、选 择构造和循环构造。在Vi sual Basi c中要处理较复杂的 问题,就要运用到分支构造、循环构造和跳转构造了。而 程序也正是由于有了这些构造才使得计算机能顺利完成各 种各样的义务。一切的这些构造方式都是经过相应的语句 实现的,它们是:条件构造 If语句;选择构造 Sel ect Case语句;循环构造 Do.L oop语句、For.Next语句和Whi l e.Wend语句;跳转构造GoTo语句和GoSub语句。6.1程序的构造与流程图在研讨算法时,人们习惯运用流程图来描画算法的构 造。这种方法是用一些图框表示各类型的操作,用带 箭头的线表示这些操作的执行顺序顺序构造循环构造

3、多分支构造6.2选择控制构造在许多情况下,人们希望程序语句执行的 顺序依赖于输入数据或中间运算的结果。这时需求对某个变量或表达式的值进展断 定,以决议执行哪些语句和跳过哪些语句 不执行,我们称这种程序构造为选择构造 1或分支构造)。6.2.1单行构造条件语句 1.单行方式的IfThen 用途:经过对条件的判别有选择的执行一 条语句 语法:If条件Then语句 条件:是供判别的关系表达式或逻辑表达 式 语句:是条件成立的时候要执行的语句6.2.1单行构造条件语句 例6.2:找出用户输入的两个数的大数 Pri vate Sub Com m and1_C1i ck()Di m A A s Integ

4、 er,B A s Integ er Di m Max A s Integ er A=Int(InputBox(请输入第一个整数,输入,3)B=Int(InputBox(第输入第二个整数,输入,6)Max=A If Max B Then Max=B Msg Box Str(A)+与+Str(B)+之中的大数为+vb CrL f+Str(Max)E nd Sub6.2.1单行构造条件语句 2.单行方式的If.Then.Else 用途:根据条件能否成立从两条语句中 选择一条执行 语法:If条件Then语句1日se语句2 阐明:Visual Basic在遇到If.Then.Else语句时音先计算出条

5、件的逻辑值假设为True即条件成立,那么执行语句1/n-1、厂一 ,口 Lt/1.l.、Fr/_Li.z一,、6.2.1单行构造条件语句 例6.3:验证用户输入的整数的奇偶性 Private Sub cmdl_Click()Dim inti A s Integer,int2 A s Integer inti=CInt(txtinput.Text)int2=inti Mod 2 If int2=0 Then MsgBox 是一个 偶数 _ Else MsgBox 是一个奇数 End Sub6.2.2块构造条件语句 1.多行方式的IfThenE nd IF 用途:多行方式的IfThenE nd I

6、F可用来判 别单一条件来执行一组语句语法:If条件Then语句组E nd IF 阐明:这是If.Then语句的多行方式,运用这 种方式的选择构造,在条件成立时要执行的语 句不再直接跟在Then后面,而是另外自成一个 汪右1执 日在层直一池十门卜匚C人IC6.2.2块构造条件语句 例6.4:三数排序,构造如图 的界面,用户在3个文本框中入1例8.2_ 3个数,单市料钮完成从 天置小的排序,把构造显示输在,第4个文本框中。历解析啊这是可简单的排序程序曷排序算法中选择 排序曲躯。经过两次判别,施最人的数放在第 经过一次判别把第位,再 大的数放在第二位,这样对于3个数,就完成了从大到小的排序。6.2.

7、2块构造条件语句例6.4代码Pri vate Sub Com m andl _Cl i ck()Di m A A s Si ng l e,B A s Si ng l e,C A s Si ng l eDi m D A s Si ng l e 中间变量A=Vai(Text 1.Text):B=Vai(Text2.Text):C=Vai(Text3.Text)If A B ThenD=A:A=B:B=DE nd IfIf A C ThenD=A:A=C:C=DE nd IfIf B C ThenD=B:B=C:C=DE nd IfText4.Text=Str(A)+Str(B)+Str(C)E n

8、d Sub6.2.2块构造条件语句 2.多行方式的If.Then.E l se 用途:根据条件能否成立,选择执行不同的语句组语法:If条件Then语句组1E l se语句组2E nd IF 阐明:是单行IfThenE l se构造的多行方式,不同 之处是条件成立时执行的语句组1不能直接跟在Then后 面而条件不成立时要执行的语句组2也不能直接跟在 E l se后面,两个语句组独立成行,可以是一条语句也可 以是多条语句,而且多行方式的IfThenE l se语句 最后一定要有E nd If。两者的程序流程是类似的。6.2.2块构造条件语句 例6.5:分段函数求值,对于下面的函数,由用户输入一个X

9、值,求Y值。_ rX2 X 三 0,2%x=0 Then Y=X X*E l se Y 二 2 X*E nd If Msg Box Y=+Str(Y)E nd Sub6.2.2块构造条件语句3.多分支的If.Then.ElselF用途:可到别多惠条件,秋行多行语句。假以情况复杂,要判别的条 徉求止一个时,就需用到IfThen日se商造语法:If 条件 1 Then语句组1ElselF 条件2 Then语句组2 ElselF 条件n-1 Then 语句组n-1 Else语句组n End If6.2.2块构造条件语句 3.多分支的If.Then ElselF阐明:l)Visual Basic首先测

10、试条件1能否成立,假 设成立(值为True),执行语句组1 2)否那么,继续判别条件2能否成立,假设 成立(值为True),就执行语句组2 3)以此类推(条件3至条件n-1)4)假设一切条件都不成立,就执行日se之后 的语句组n。6.2.2块构造条件语句例6.7:判别输入成果的等级显不9010。分优秀8口一39 分良好7079 分中等60-69 分及格3059 分补考0 29 分重考6.2.2块构造条件语句例6.7解法2:Pri vate Sub Com m andl _Cl i ck()Di m sng Fen A s Si ng l esng Fen=Vai(InputBox(“请输入成果

11、:)If sng Fen=90Msg Box 优秀E l sel f sng Fen=Msg Box 良好E l sel f sng Fen 二Msg Box 中等E l sel f sng Fen=Msg Box 及格E l sel f sng Fen 二Msg Box 补考E l seMsg Box 重修Then80 Then70 Then60 Then30 ThenE nd If只 Qi6.2.3多分支选择控制构造(Select Case)用途:虽然IfThenE l sel F可以用来判别多重条件的情况,但有 时条件太多,才呈序会变得不易阅读,为此Vi sual Basi c提供了Se

12、l ect Case语句,运用Sel ect Case语句可以使程序写起来较为简约,不但容 易阅读,预行起莱也较有效窣。语法:Sel ect Case测试表达式 Case测试结果1 语句组1 Case测试结果2 语句组2Case测试结果nT 语句组nTCase E l se 语句组n E nd Sel ect6.2.3多分支选择控制构造(SelectCase)阐明:1)Vi sual Basi c遇到Sel ect Case时,首先计算 出测试表达式的值,假设该测试表达式值满足 Case后任何一个测试结果,那么对应的语句组会 被执行,假设都不满足,那么执行Case E l se后的 语句组。2

13、)测试结果可以是以下三者之一:普通表达式或常量、变量 范围表达式:expressi on To expressi on 比较表达式:Is比较运算符 表达式6.2.3多分支选择控制构造(Select Case)例6.8:判别用户输入的整数除以3以后的结果:Pri vate Sub Com m andl _Cl i ck()Di m x A s Integ erx=Vai(InputBox(请输入一个正整数,输入,32)Sel ect Case x Mod 3Case 0Msg Box Str(x)+整除3Case 1Msg Box Str(x)+除以3余 1Case 2Msg Box Str(x

14、)+除以3余2E nd Sel ectE nd Sub6.2.4 Ilf函数 用途:作为函数,根据测试表达式得到的逻辑值,从两个表达式选择一个作为前往值,其用途类似 于If.Then.E l se语句,只不过Il f函数是一*个用来前往值的选择构造。语法:Il f(测试表达式,True部分,Fal se部分)阐明:测试表达式是一个逻辑表达式,True部分与Fal se 部分可以是一个表达式或变量与常量。6.3循环控缶I构造在实践运用中,经常遇到一些操作并不复杂,但需求反复多次处置的问题,比如要计篁 1+2+3+10000,直接把这个求和的去达式 用手工输入显示是不现实的。循环构造可以协 助我们

15、有效的处理这一类问题,利用循环构造,只需求编写少量的语句就可以让计算机反复执 行许多次,从而完成大量类同计算的需求。Vi sual Basi c提供了3种循环控制方式:For.Next Do.L oop Whi l e.Wend6.3.1 ForNext循环用途:For循环通常用于将某一程序段反复执行、且反复 次数是固定的场所。For循环的反复次数可以由一 个计数变量的上、下限来决议。语法:For计数器二初值To终值Step增量 循环体 Next计数器6.3.1 ForNext循环 阐明:For循环执行步骤如下:1.将计数器设定为初值。2.假设增量为正、那么判别计数器的值能否小于 终值;假设增

16、量为负,那么判别计数器的值能否 大于终彳直。3.假设上述判别值为True,那么执行循环体中的 语句,否那么跳出循环。4.到Next语句,将计数器加上增量 5.反复步骤2至46.3.1 ForNext循环 例6.9:求S=l+2+3+N,其中,N由用户输入 Pri vate Sub Com m andl _Cl i ck()Di m N A s Integ er,I A s Integ er,S A s L ong N=Int(InputBox(“N=”)For I=1 To N S=S+I Next I Pri nt S二;S E nd Sub6.3.1 ForNext循环可以留意SJ,对于需

17、求将某些语句执行固定次数 的循环,运用For.Next循环非常方便。而For循环的次数是由循环的初值、终值和步长3个要素 确定,计算公式为:循环次数二Int(终值-初值)/步长)+1普通情况下,ForNext循环需求正常终了,即 循环变量到达终值。但在某些情况下,能够在循 环变量到达终值前需求退出循环,这可经过E xi t For语句来实现。6.3.1 ForNext循环 W.n:判别用户输入的自然数能否为质数。解析:1.假设自然数除了 1和本身外没有其他因数那 么该数为质数,否那么为合数 2.以程序判别自然数N能否为质数,可以用自2 至N-1循环查找N的因数,假设没有N的因数,那么N为质数;

18、假设找到一个因数,可以退出 循环得到N是合数的结论。3.根据自然数的性质:假设N有因数qN%那么必有因数pN%,即对于合数N必定有小于N 的平方根的因数。由此可精简算法,使循环的 2攵/古 rhNTd)召l l Qcs O6.3.1 ForNext循环 例6.11代码 Pri vate Sub Com m andl _Cl i ck()Di m N A s L ong,I A s Integ er N二Val(InputBox(“请输入大于2的自然数:)If N Sqr(N)Then Msg Box Str(N)+是质数 E l se Msg Box Str(N)+是合数 E nd If E

19、nd Sub6.3.1 ForNext循环 ForNext循环可以嵌套运用,嵌套层数没有详细限制,其根本 要求是:每个循环必需有一个独二电循环变量;内层循环吧Next 语句必需在外层彳底环的Next语句之而,内外循环不得相近交文。例如,下面的循环嵌套是正确的:For 1=a To b For J=c to dNext JNext I下面的循环嵌套是错误的For 1=a To bFor J=c To dNext INext J6.3.1 ForNext循环例6.12:求 S=3!+6!+9!+12!Pri vate Sub Com m andl _Cl i ck()Di m I A s Inte

20、g er,J A s L ongDi m K A s L ongDi m S A s L ongFor I=3 To 12 Step 3K=1For J=1 To IK=K*JNext JS=S+KNext IPri nt S=;SE nd Sub6.3.2 DoLoop循环有些时候,我们希望循环能不限次数地反复执行,直到某个条件被满足为止,DoL oop循环就可以 根据循环条件是True或Fal se决议能否终了循环。DoL oop循环在语法上有以下3种方式。条件前置的 条件后置的 无条件式的6.3.2 DoLoop循环 1.条件前置的Do.Loop循环 用途:当需求先判别条件、再执行循环体

21、 时运用 语法:DoWhile|Until 条件循环体Loop6.3.2 DoLoop循环 1.条件前置的Do.L oop循环阐明:1.先判别条件能否符合,决议能否要执行循环体 2.判别条件的方式有Whi l e或Unti l两种,两者为互 补关系 3.运用Whi l e判别时,假设条件为True,那么反复 执行循环体,直到条件为Fal se时为止 4.运用Unti l判别时,假设条件为Fal se,那么反复 执行循环体,直到条件为True时为止6.3.2 DoLoop循环例6.1 3:计算调和级数的和,要求准确到 小数点后6位(数列的最后一项小于 0.000001时停顿计算,调和级数为1+I

22、+4+6.3.2 DoLoop循环例6.13解法LPri vate Sub Com m andl _Cl i ck()Di m S A s Si ng l eDi m A A s Si ng l eDi m T A s L ongT 二 1A=1S 二 1Do Whi l e A=0.00001T=T+1A=1/TS=S+AL oopMsg Box S=&Form at(S)E nd Sub6.3.2 DoLoop循环例6.13解法2:Pri vate Sub Com m andl _Cl i ck()Di m S A s Si ng l e Di m A A s Si ng l e Di m

23、 T A s L ongT=1A=1S=1Do Unti l A=0.000001Pi=4*SMsg Box UTT=&Form at(Pi)E nd Sub3.无条件的DoLoop循环 用途:当程序中能够需求无穷循环时,可运用无条件 的Do.l oop循环 语法:Do 循环体 L oop 阐明:运用此种循环能够使程序产生无穷循环,为了 防止这种情况的发生,通常在循环体中要有条 伸语句,以叁出当的6寸很运用E xi t Do语句迫1 r r Zr-T.-r-r-6.3.3 WhileWend 循环用途:Whi l e.Wend循环与条件前置的Do Whi l e.L oop循环类似,要先判别条

24、件以决议能否执行循环体。语法:Whi l e条件 循环体 Wend 阐明:先判别条件能否成立,当条件为True时执行反复执行 循环体,直到条件为Fal se时为止。Whi l e.Wend语句是早期Basi c言语的循环语句,如今它的功能已完全 被Do.L oop语句所包括,所以不常运用了。6.3.4多重循环通常把循环体内不含有循环语句的循环叫 做单层循环,而把循环体内含有循环语句 的循环称为多重循环。例如在循环体内含 有一个循环语句的循环称为二重循环。多 重循环又称作多层循环或循环嵌套。6.3.4多重循环例6.15打印“九九乘法表,输出构造如 下图 Foral-1!x|1X1=1,2X1=2

25、,2X2=4,3X1=3,3X2=6,3X3=9,4X1=4,4X2=8r4X3=4X4=16,5X1=5,5X2=10 5X3=15,5X4=20 5X5=25,6X1=6,6X2=12,6X3=18,6X4=24,6X5=30,6X6=36.7X1=7,7X2=14 7X3=21 7X4=28,7X5=35,7X6=42/7X7=49,8X1=8,8X2=16/8X3=24.8X4=32,8X5=40,8X6=48/8X7=56,8X8=64,9X1=9,9X2=18/9X3=27,9X4=36,9X5=45,9X6=54,9X7=63,9X8=72,9X9=816.3.4多重循环 解析:

26、九九乘法表是一个9行9列的二维表,行和列都要变化且行列相 互约束(第I行需求有I列),是一个典型的二重循环问题 Pri vate Sub Form _L oad()Show Di m I A s Integ er,J A s Integ er For I=1 To 9 For J=1 To I Pri nt Form at(I)&X&Form at(J)&=&Form at(I*J);Tab;Next J Pri nt:Pri nt Next I E nd Sub6.4 Goto型控制 6.4.1 GoTo 语句 用途:在一个过程中改动语句的执行顺序,跳过部分代码 去执行另一部分或前往曾经执行

27、过的某语句使之反复执行。语法:GoTo 标号|行号 阐明:1GoTo语句改动程序执行的顺序,无条件的把控制转移 至旷标号或行号所在的程序行,并从该行开场向下执 行。2标号的命名与变量类似,但是必需以冒号终了;行号 那么是由数字指定,后面不跟冒号。3)GoTo语句的功能被限定在一个过程中,不能将控制跳 转到另一个过程中6.4 Goto型控制 6.4.2 OnGoTo语句 用途:在运用GoTo型控制时要实现类似于Sel ect Case的功 能,实现多分支选择控制,就要用到OnGoTo型控制 语法:On数值表达式GoTo行号列表|标号列表 阐明:Vi sual Basi c在遇到OnGoTo语句时

28、,先计算数值表达式 的倬,态将其理舍互入得到二个整数,根据这个整数值决 议跳到半几个行号或标处执行:1假设该整数值为1那么转向第一个行号或标号处执行语 句,假设值为2那么转向第二个行号或标呈处执行语句 笄依任类推 2)假设该整数值为0或大于行号列表或标号列表中 而项数,程序自动跳转到OnGoTo语句后面的一个可执 行语句 3)假设该整数值为负数,会产生一个运转期错误。6.5小型案例-文本统计在一文本框中输入一段文字,可以对其中的单 词数、字母数、数字字符及其他字符数进展统 计,经过对两个“统计按钮的单击,分别对 单词个数和字符个数进展统计,运转界面如图文本统计)H e i s a Studen

29、t If l ab el 2.capti on 3 then单词统计统计 单词个数:8字符统计冢不”|字母数:3。数字字符数:2 其它字符数:10652设计思绪 假设要统计出单词的个数,需求明白单词间是用空格符分 隔的。循环读取字符时,需用一个逻辑变量来阐明能否有 新单词开场,详细方法如下。门)设一逻辑变量初始值为真,当读到第一个非空字符 时,计数变量增1,同时将该逻辑变量设为假。(2)遇到空格时将改逻辑变量设为真,再次遇到非空字符时,再次将该逻辑变量设为假,同时计数。(3)循环往复,最后得到单词总数。(4)对于字符的统计只需求在读取每个字符时判别是什么类型的字符,并进展统计即可。653操作步

30、骤 L创建窗体(1)启动Mi crosof t Vi sual Basi c 6.0。(2)翻开新的规范E XE 工程,建立工程工程1,窗体名为 Form l o 在窗体上放置一个文本框,两个框架和两个按钮,界面如 运转界面所示。伍)丰弊榨住的屋桂铅詈加王走斫六一2.添加代任控件属性值FormlCapt ion“文本统计”FramelCapt ion“单词统计”Frame2Capt ion“字符统计”Label1Capt ionLabel2Capt ionCommand 1Capt ion“统计”Command2Capt ion“统计”Text lText“He is a st udent”第

31、7章数组数组的概念 数组的根本操作 动态数组 控件数组7.1数组的概念在Vi sual Basi c中数组(A rray)用来保管多个一 样类型的相关联的数据。数组有数组名,一个数 组由多个数组元素组成,每一个数组元素中保管 了一个数据。要对某一元素中的数据进展存取,必需指定这个元素在数组中的序号(又称为索引 或下标)。每一个数组元素,都可以运用数组名 与下标来独一确实定。下标是延续的整数,下标 的最小值称为下标下界,最大值称为下标上界。由下标的上下界可以确定数组中元素的个数7.1.1常规数组的声明 常规数组也称为“固定大小的数组,是指声明之后元素个数不 能改动的数组,这与动态数组是不同的。常

32、规数组的称号、维数、类型与元素个数都要在声明时确定。和普通变量类似,数组应该先声明后运用,在Vi sual Basi c中可 以运用Di m、Redi m Stati c、Pub l i c等关键字来声明数组。语法:Pub l i c|Pri vate|Stati c|Di m|ReDi m Preserve 数 组名(维数阐明)A s数据类型 阐明:在定义常规数组时,需求阐明数组的维数与下标的上、下 鼻,也可以运用Pub l i c、Pri vate、Di m等关键字定义只带圆括号 而无维数阐明的动态数组。而ReDi m通常用来重新定义动态数组的 大小,茬被动原有数组最末维的大力、日寸,运甬

33、Preserve关键字可 以坚持数组中原来的数据。7.1.1常规数组的声明 下面用Dim语句为例阐明常规数组的声明:1.只给出下标的上界 1对于一维数组,运用如下语句Dim 数组名(下标上界)A s 数据类型 2对于二维数组,运用如下语句Dim数组名(第一维上界,第二维上界)A s数据类型7.1.1常规数组的声明 默许情况下,数组下标从0开场。假设希望从I开场,可运 用Opti on Base语句迸底设置,语法:Opti on Base n 阐明:其中n为一个整数,其值只能是0或1,当n为1时,默许的下标下界从1开场。留意:”下标上界与数组“元素个数是不同的概念,下标上界是可以运用的最大下标值

34、,是在定义数组时给定 的,元素个数在给定数组的下标后可以计算得出,一维数组的元素个数为:下标上界-下标下界+1;二维数组元素个数为:(第一维下标上界第一维下标下界+1)*(第二维下标 上界-第二维下标下界+1)7.1.1常规数组的声明 2.指定下标下界 运用第1种方法定义的数组,其下标的下 界只能是0或1,假设要让下标根据需求 从其它值开场,就得指定数组下标的下 界,格式如下:1)对于一维数组,运用如下语句 Dim数组名(下界To上界)A s数据类型 2)对于二维数组,运用如下语句Dim数组名(下界To上界,下界To上界)v t .b、_ _ r7.1.1常规数组的声明 无论用什么方式定义数组

35、,都应留意声明数组的 规那么:数组名的命名规那么与变量名一样。在同一个过程中,数组名不能与变量名同名,否 那么会出错,例如:Di m strNam e A s Stri ngDi m strNam e(30)A s Stri ng 这样的代码在程序运转时,由于同一范围内有同 名的声明,将产生编译错误。定义数组时,每一维下标上下界的值都必需是常 量,不能是变量或含变量的表达7.1.2数组元素的运用在定义好数组之后,要运用数组的值是经 过访问数组元素实现的,即数组元素可以 像变量一样参与赋值与表达式的运算,而 对数组元素的援用是经过指定数组的下标 完成的,即在数组名后的括号中指定下标 可运用相应的

36、数组元素。7.1.2数组元素的运用 1)假设建立的是多维数组,在援用数组元 素时必需组出一切维的下标例如:Dim A(3,2,3)A s StringDim B(2,2)A s IntegerA(2,l,0)二 abc 三维的下标都需求给出B(2)=1 0 维数不符,运转时会引发错误7.1.2数组元素的运用 2)援用数组元素时,其下标值应在建立数 组时所指定的范围内,否那么会产生下标 越界错误。例如:Dim A rr(lO)A s SingleA(0)=7.95,正确A(-l)=21.3,出错A(ll)=0.321 5,出错7.2数组的根本操作7.2.1数组元素的输入、输出与复制 1)通常经过

37、循环利用赋值语句给数组元素赋值。例如:Dim A(-3 To 5)A s String Dim I A s Integer For I=-3 To 5 A(l)=lnt(InputBoxf ZZA(ZZ+Format(l)+)=)Next I在循环中利用输入框给数组A的每个元素赋值7.2.1数组元素的输入、输出与复制 2)为了显示数组中的值,也可以经过循环 输出数组元素的值 例如对于数组A,在输出时利用循环向窗体 打印数组元素:For I=-3 To 5 Print A Next I7.2.1数组元素的输入、输出与复制 例7.L将菲波数列的前50项存入数组 菲波数列的前几项为:1,1,2,3,

38、5,8,13,21,34,.解析:菲波数列的通项为:A k=A k-l+A k-2,在给一维数组赋值时,应留 意菲波数列的值很大,运用Doub l e数据类型 在窗体上放置文本框Text 1,并设置Mul ti L i ne属 性为True,Scrol l Bars属性为27.2.1数组元素的输入、输出与复制 例7.1代码 Pri vate Sub Form _L oad()Di m A(1 To 5 0)A s Doub l e Di m I A s Integ er A(l)=1:A(2)=1 Textl.Text=1+vb CrL f+1 For I=3 To 5 0 A(I)=A(I-

39、1)+A(I-2)Textl.Text=Textl.Text+CStr(A(I)+vb CrL f Next I E nd Sub7.2.2数组初始化与去除 用途:对于一维数组,可以运用A rray函数 给数组赋值。语法:一A rray(元素列表)阐明:前往一个包含数组的变体类型,即没有作为 数组声明的变体类型变量也可以表示数组,可以运用A rray()函数给将变体类型的变量 赋值为一个一维数组7.2.2数组初始化与去除 用途:重新初始化大小固定的数组的元素,以及释放 动态数组的存储空间。语法:E rase数组名 阐明:1对于固定大小的数组,E rase语句将重新初始化数 组元素 数值数组,将

40、每个元素设为0;变长字符串数组,将每个元素设为空串();定长字符串数组(长度固定),将每个元素设为定长 的空格串;逻辑数组,将每个元素置为Fal se.zfc 后卜开“米 4口、10 二与F 4Z1 Ut 房M/古.*7.2.3 For Each.Next 语句数组是一个特殊的集合,Vi sual Basi c提供了For E ach语句可以遍历集合的元素,用途:针对一个数组或集合对象中的一切元素反复执行一段 程序语法:For E ach 元素 In集合 循环体 Next 元素 阐明:1)此处,元素是一个变体变量,用来对应集合中的各 个成员 0)住八旦rh夕人士1so口田的粉0口 注裕的住人7

41、.2.3 For Each.Next 语句 For Each的运转方式:首先,将集合中的第1个成员指定给元素变 量,然后执行循环体 执行到Next语句时,前往For Each处 将集合中的下一个成员指定给元素变量,再次执行循环体 反复执行步骤2,3,直到集合中的成员依序 执行终了为止7.2.3 For Each.Next 语句 例7.5:利用For E ach循环对一维数组一切元素求和 Pri vate Sub Com m andl _Cl i ck()Di m A(1 To 40)A s Si ng l e Di m I A s Integ er Di m K,S A s Si ng l e

42、 Random i ze For I=1 To 4 A(I)=Rnd Next I For E ach K In A S=S+K Next K Pri nt S E nd Sub7.3动态数组当事先不能预料应该为数组声明多少个元 素时,可以运用Visual Basic提供的动态 数组。动态数组是指声明之后维数与下标 上下界可以改动的数组。7.3.1动态数组的定义 声明动态数组的方法与声明常规数组类似,在声明时 要指定数组的称号和数据类型,不过数据名后的括号 是空的。语法:Pub l i c|Pri vate|Di m|Stati c动态数组名()A s类型名 声明之后,动态数组还没有任何元素,

43、要运用它,必 需运用ReDi m语句来重新定义动态数组的维数、元素个 数与下标上下界。语法为:Redi m动态数组名(m l To nl ,m 2 To n2,.)ReDi m语句与运用Di m语句声明数组时的语法类似,只 是不能再改动数据类型。在程序中可以根据需求随时 运用ReDi m来重新定义动态数组。默许情况下,运用 ReDi m会去除重新定义之前动态数组一切元素中的数据,运用默许值来填充。假设希望在重新定义后保管以前 数组兀素的值,那么要在ReDi m语句中运用Preserve关 上7*7.3.2动态数组的运用例7.6:下面的程序演示动态数组的运用Opti on Base 1Pri v

44、ate Sub Form L oad()Di m MyA rray()A s Integ er 声明动态数组。ReDi m MyA rray(5)分配 5 个元素。Deb ug.Pri nt”第一次运用动态数组”For I=1 To 5MyA rray(I)=I 初始化数组。deub g.Pri nt MyA rray(I)Next I重定义该数组的大小,并清空其中一切元素。ReDi m MyA rray(10)大小重定为10个元素。此时,数组元素的值都为0Deb ug.Pri nt”第二次运用动态数组”For I=1 To 10MyA rray(I)=I 再次初始化数组。deub g.Pri

45、 nt MyA rray(I)Next I重定义该数组的大小,但没有去除其中的元素。ReDi m Preserve MyA rray(15)大小重定为 15 个元素 此时数组的前10个元素仍保管着它的值Deb ug.Pri nt”第三次运用动态数组”For I=1 To 10deub g.Pri nt MyA rray(I)Next IE nd Sub7.4控件数组7.4.1控件数组概念控件数组是指具有一样称号、类型以及事 件过程的一组控件。每一个控件具有一个 独一的索引(Index)。当数组中的一个控件 识别某一事件时,它将调用此控件组的相 应事件过程,并把相应索引作为参数传送,允许用代码决

46、议是哪一个控件识别此事件7.4.1控件数组概念控件数组的每个元素都有一个与之关联的索引(Index)值,该值由控件的Index属性指定。由于 控件数组中的各个元素具有一样的Nam e属性,所 以Index属性与控件数组中的某个元素有关。即,控件数组的名字由Nam e属性指定,而数组中的每 个元素那么由Index属性指定,这一点和数组类似,运用控件数组元素时其Index值也是在圆括号中标 出,如:有控件数组Opt,其Index值为1的元素为 Opt(1)07.4.1控件数组概念为区分控件数组中的各个元素所触发的事 件,Visual Basic会把控件数组元素的索 引值传送给事件过程,如:窗体上有

47、三个 名为cmd的按钮控件,那么cmd的Click事件 过程方式为:Private cmd_Click(Index A s Integer)End Sub7.4.2控件数组的运用 1.在设计期,可以经过三种方法来建立控 件数组 1)复制粘贴 2控件改名 3)设置Index属性的值7.4.2控件数组的运用 2.在设计期,删除控件数组的元素 在控件数组建立后,只需改动一个控件的 称号属性,同时将该控件的Index属 性值清空(将属性变量的值删除,而不是设 为0,由于。是数组元素的下标),就能把该 控件从控件数组中删除。7.4.2控件数组的运用 3.在程序的运转期,动态的添加与删除控件数组的元 在程

48、序运转时,运用L oad和Unl oad语句可添加和删 除控件数组中的元素,然而,添加的控件必需是现有 控件数组的元素。因此必需在委计期创段一个Index属性为0(非空)的控件,然后在运转时运用如下语法:语法:L oad对象名(下标)阐明:在运转期向控件数组添加新的元素,在加载新元素 时,大多数的属性值将由数组中具有最小下标的现有元 素复制,但Vi si b l e属性不会被复制,所以为了使新的控 彳牛可见,必需将其Vi si b l e属性设置为True,在必要时,还需求重新设置其L ef t与Top属性。另外要留意的是,烈鹑度翻牖鼾在的控件兀素下标反复否 一I_I g裕7.4.2控件数组的

49、运用例7.7:先在窗体上放置两个 按钮,Com m and 1为“加载控 彳牛”按钮,Com m and2为“卸 载控件按钮,每次单击 C om m an d 1动态加载一个控件,单击Com m and2卸载动态加载 的控件。再放置一个按钮更 名为cm d,并设置其Index属 性为0,其Capti on属性为 cm d(0)o放置一个文本框 Text 1,用来捕捉单击cm d控 件数组元素的下标,每次单 击cm d按钮时,将相应的元素 下标显示在T ext 1中动态加羲控1cmd(0)-口 X加载控件卸载控件7.4.2控件数组的运用例7.7代码Di m num A s Integ erPri

50、 vate Sub Com m andl Cl i ck()num=num+1L oad cm d(num)cm d(num).Capti on 二 cm d(+Form at(num)+)cm d(num).Top=cm d(num-1).Top+cm d(num-1).H ei g ht cm d(num).Vi si b l e=True E nd SubPri vate Sub Com m and2_Cl i ck()If num=0 Then E xi t SubUnl oad cm d(num)num=num-1 E nd SubPri vate Sub cm dCl i ck(I

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服