高级语言VB程序设计 您所在的位置:网站首页 vb输出语句magbox 高级语言VB程序设计

高级语言VB程序设计

2023-04-06 21:31| 来源: 网络整理| 查看: 265

1、高级语言程序设计VB 第三章数组3.1 数组的概念3.2 数组声明及初始化3.3 重定义数组大小3.4 数组的基本操作和排序3.5 结构类型及其数组3.6 综合应用第一章总结变量:在程序运行中其存储的值可以改变值类型变量、引用类型变量变量声明Dim变量名As类型初始值 口运算符算术运算符、字符串运算符、关系运算符和逻辑运算符i名称空间导入Imports名称空间数学函数使用Imports System.Math Shell函数 调用各种应用程序3第二章总结 顺序结构 选择结构 循环结构 其它辅助控制语句 程序调试43.1数组的概念1.引例例3.1求100个学生的平均成绩,并统计高于平均分的 人数

2、。用简单变量和循环,求平均成绩程序段如下:aver=0Fori=1To100mark=lnputBox(输入学生成绩”)aver=aver+markNext iaver=aver 7100MsgBox(aver)5问题(1)mark只能放一个学生的成绩,无法 统计高于平均分的人数。(2)若用简单变量保存100个学生的成绩,则需定义100个变量和使用100句输入语句o 由此引入了数组。6用数组解决问题的程序如下:1.Dim mark(99)As Integer 1 声明数组mark2.Dim aver!,overn%,i%3.aver=04.For i=0 To 99 输入成绩,求分数和5.ma

3、rk(i)=lnputBox(输入学生的成绩”)6.aver=aver+mark(i)7.Next i8.aver=aver/100 1 求 100人的平均分9.overn=010.For i=0 To 99.统计高于平均分的人数11.If mark(i)aver Then overn=overn+112.Next i13.MsgBox(“平均分&aver&”高于平均分人数:“&overn)mark(0)mark(1)mark(2)mark(98)mark(9)数组的概念数组:不是一种数据类型,而是一组相同 类型的变量的集合。作用:用一个数组名代表逻辑上相关的一 批数据,用下标表示该数组中的各

4、个元素,和循环语句结合使用,使得程序书写简洁。使用:必须先声明后使用8D i m mark(99)As Integer声明了一个一维定长整型数组mark,共有100个元素,下标范围为0 To 99;mark数组的各元素是mark(0),mark(1),mark(99);mark表示由下标i的值决定是哪一个元素。mark数组内存分配如下:mark(0)mark(1)mark(2)mark(98)mark(99)每个数组元素有一个唯一的顺序号,下标不能超出数 组声明时的上、下界范围,否则会产生“索引超出了数 组界限”。数组元素的使用规则与同类型的简单变量相同。93.2 数组声明及初始化一维数组Di

5、m 数组名(下标上界)As类型下标上界为常数、已有值的表达式或变量。下标下界为0。一维数组的大小为:下标上界+1。例 Dim a(10)As Integer,Dim st(5)As String声明了一维整型数组a、有11个元素;下标的范围0 10o若在程序中使用a(ll),则系统会显示“索引超出 了数组界限”。st是一维字符串类型数组、有6个元素;下标的范围 0-5。10多维数组声明Dim 数组名(下标1,下标2)As类型 下标数决定了数组的维数,每一维的大小=上界+1;数组的大小为每一维大小的乘积。例 Dim x(2,4)As Long声明了一个长整型的二维数组x;共占据3X5个长整 型变

6、量的空间x(0,0)x(0,1)x(0,2)x(0,3)x(0,4)x(1,0)x(1,1)x(1,2)x(1,3)x(1,4)x(2,0)x(2,1)x(2,2)x(2,3)x(2,4)11数组的初始化VB.NET提供了对数组的初始化功能,也就是在定义数 组的同时,为数组元素赋初值。形式:Dim数组0 As类型=常数1,,常数n,一维Dim数组(,)As类型=行1常数,行m常数例 Dim x(,)As Integer=1,2,3,4,5,6,7,8数组X12345678123.3 重定义数组大小对已经存在的数组可用ReDim语句改变数组大小ReDim数组名(下标,下标2)例 Dim sArr

7、ay(2,3)As SingleSub Form1_Load()ReDim sArray(4,End Sub在过程外声明了二维数组sArray,在Form1_Load事件中重新指明二维数组的大小为5行9列。重定义数组大小注意:一.Dim是说明语句,可出现在程序的任何地 方,而ReDim是执行语句,只能出现在过程中在过程中可多次使用ReDim语句来改变数组 的大小,但不能改变维数和类型三.可在ReDim后加Preserve参数用来保留数 组中的数据,若使用Preserve参数后,只能 改变最后一维的大小。1.例5.2对例5.1改进,根据指定人数输入学生的成 绩,计算的平均分和高于平均分的人数。1

8、43.4数组的基本操作和排序5.4.1数组的输入通过TextBox控件或InputBox函数逐一输入例Dim sb(3,4)AS IntegerFor i=0 To 3Forj=0 To 4sb(l,j)=lnputBox(“输入”&i&“J&j&”元素”)Next jNext i15342数组的输出例3.3形成5X5的方险,分别输出方阵中各元素和下角方阵规僮:第一行的元素为04,以后每一行是前一行对应元素增加5上三角规律:每一行的起始列与行号相同,只要控制 内循环的初值用Space(4-Len(Tr im(sc(i,j)控制输出的空格,代码说明16343求数组和、最值、位置例3.4求一维数组

9、中各元素之和、最小数组元素,并将最小值数组元素与数组中第一个元素交换 求元素和通过循环将每个元素进行累加 求数组中最小元素 假设第一个元素为最小,然后将该数与其他元素逐一比较,若发现小于最 小值,就用新值替换最小值,同时记录下标值。求最大值的方法与求最小值相似17交换元素下标 初值012345678926436187331937597669下标 交换01234567891943618733263759766918数组的复习写出VB表达式:定义数组x,用于存放26个大写字母。定义数组y,用于存放5个学生的成绩,并初 始化。19344数组排序排序是将一组数按递增或递减的次序排列,例如按学生的成绩、

10、球赛积分等排序。排序的算法有许多,常用的有选择法、法、插入法、合并排序等。选择法排序基本思想:每次在若干个无序数中找最小(大)数,并放在相应的位置。20344数组排序个数的序列,用选择法按递增次序排序的步骤:D从个数中找出最小数的下标,出了内循环,最小数与第1个数交换位置;通过这一轮排序,第1个数已确定好。2)除已排序的数外,其余数再按步骤1)的方法 选出最小的数,与未排序数中的第1个数交换位3)重复步骤2),最后构成递增序列。选择法演示21选择法排序例3.5对已知存放在数组中的6个数,用选择 法按递增顺序排序。原始数据8 6 9 3 2 7a(0)a(l)a(2)a(3)a(4)a(5)第1

11、轮比较2 6 9 3 8 7aaa(3)a(4)a(5)第2轮比较2 3 9 6 8 7a(2)a(3)a(4)a(5)第3轮比较2 3 6 9 8 7a(3)a(4)a(5)第4轮比较2 3 6 7 8 9a(4)a(5)第5轮比较2 3 6 7 8 9选择法排序过程示意代码说明22选择法排序1.Dim iA()As Integer=8,6,9,3,2,72.Sub Form1_Click(.)Handles MyBase.Click3.Dim iMinn%,i%,j%,t%4.n=UBound(iA)1获得数组的下标上界5.For i=0 To n-1 1进行n-1轮比较6.iMin=i

12、对第i轮比较,初始假定第i个元素最小7.For j=i+1 To n 1选最小元素的下标8.If iAQ)iA(j+1)Then8.t=iAQ)9.iAQ)=iAQ+1)10.iAQ+1)=t11.End If12.Nextj13.Next time14.End Sub3.4.5插入数据插入数据基本思想是:数据插入演示D首先查找待插入数据在数组中的位置;2)然后从最后一个元素开始往前直到下标为A的元素依次往后移动一个位置;3)第个元素的位置腾出,将数据插入。1 nF7I 10 I 13 I 16 I 19 I 22 I 25 I27例例7在有序数数.a中插入数数x。插入数据要在有序数组a中插入

13、数值x为14的过程见图。代码说明28程序如下:Sub Button1_Click(.)Handles Buttonl.Click Dim a%()=1,4,7,9,12,23,56 Dim i%,k%,x%,n%n=UBound(a)1获得数组的上界 x=14 For k=0 To n 查找插入数x在数组中的位置 If x n Then MsgBox(“找不至U止匕数据“):Exit Sub10.For i=k+1 To n 1将x后的元素左移11.a(i-1)=a(i)12.Next i13.n=n-114.ReDim Preserve a(n)1 数组元素减少一个15.TextBoxI.T

14、ext=,M16.For i=0 To n 显示插入后的各数组元素17.TextBoxI.Text&=a(i)&18.Next i19.End Sub3.5结构类型及其数组数组存放性质相同的数据集合。若不同类型信息 作为一个整体来描述,例如姓名、性别、出生年 月等,通过“Structure”结构类型来解决。1.结构类型定义:Structure结构类型名成员名声明End Structure32结构类型例如,定义一个有关学生信息的结构类型:Structure studType studType为类型名Dim Name As String 姓名Dim Sex As Char 1 性别Dim Tele

15、phone As Long 1 电话Dim School As String 学校End Structure:结构类型不能在过程内部定义。必须显式声明结构的每一数据成员,用Dim语 句声明的成员默认为Publ ic,否则可用Private 声明。332.结构变量的声明定义了结构类型,就可在变量的声明时使用。Dim变量名As 结构类型名例如,如下语句:D i m Student,MyStud As StudType 声明Student、MyStud为两个同种类型的变量342.结构变量的声明注意:不要混淆StudType和Student,前者如同 Integer等的类型名,后者根据该类型分配所需

16、的内存空间,存储各成员数据。(2)类型变量和数组相同之处它们都是由若干个 成员(元素)组成;不同之处,前者的成员代表 不同性质、不同类型的数据,以各个不同的成员 名表示;而数组一般存放的是同种性质、同种类 型的数据,以下标表示不同的元素。35结构变量成员的引用引用结构类型变量中的某个成员,形式如下:结构类型变量名.成员名例如,Student.Name Student变量中的姓名Student.Sex性别 可利用With语句简化成员引用:With结构变量对象名语句块End WithWith student.Name=张华Sex=男”.Schoo仁“同济大学”End With364.结构数组及应用

17、例3.9利用结构类型,声明一个结构数组,输入不超过100个个学生的信息,显示全部信息和 查询某学校的学生情况。分析:自定义一个记录类型,由姓名、组成,声明一个存放最多100个记录的数组,在标准模块自定义类型如下3For*l 目叵|区姓名性别电话学校代码说明学校输入 显示|查找一枚明平一小 张李王男女男65981234同济大学62301987 复旦大学64231718 上海交大姓名张平一同济大学 丁方方同济大学37在窗体模块的声明的结构数组和n变量如下:Dim stud(99)As studType Dim n%存放当前已输人的学生人数 输入学生的各项信息 Sub Button1_Click(.

18、)Handles Buttonl.Click If n=100 Then 1最多可接受100个人数 MsgBox。1输入人数超过数组声明的个数”)Else With stud(n).Name=Trim(TextBoxl.Text).Sex=CChar(TextBox2,Text).Telephone=CLng(TextBox3,Text).School=TextBox4.Text End With TextBoxl.Text=1111:TextBox2.Text=1111:TextBox3.Text=1 111:TextBox4.Text=1111 n=n+1 End If End Sub显示

19、已输入学生的各项信息 Sub Button2_Click(.)Handles Button2.Click Dim i%一 Label5,Text=姓名 性别 电话 学校“&vbCrLf Label5.Text&=-&vbCrLf For i=1 To n With stud(i)Label5.Text&=.Name&.Sex&.Telephone&“&.School&vbCrLf End With Next i End Sub39查询某学校的学生 Sub Button3_Click(.)Handles Button3.Click Dim TSchool As String,i%TSchool=

20、InputBox。请输入欲查询的学生”)Label6.Text=姓名 学校&vbCrLf For i=1 To n If stud(i).School=TSchool Then Label6.Text&=stud(i).Name&stud(i).School&vbCrLf End If Next i End Sub403.6综合应用分类统计1.分类统计将一批数据按条件统计每一类中包含的个数。例如,统计学生成绩优、良、中、及 格、不及格人数。这类问题要掌握分类条 件表达式的书写和使用计数变量保存相应的计数。41综合应用分类统计例3.10输入一串字符,统计各字母出现的次数 统计26个字母出现的个数

21、,必须声明一个具有26个元 素的数组A(25),每个元素的下标表示对应的字母,元素的值表示对应字母出现的次数。从输入的字符串中逐一取出字符C,转换成大写字符(不区分大小写),再求得其在数组中的下标。关键表达式:j=Asc(UCase(c)-65A(j)=A()+1A(0)A(1)A(2)A(23)A(24)A(25)“A”“B”“C”“X”综合应用数据输入2.大量数据的输入和编辑在财务、工程计算中,经常需要对大量的数据进 行输入和编辑。可利用文本框通过编程来实现。例3.11输入一系列的数据,输入结束将它们按分 隔符分离后存放在数组中。对输入的数据允许修 改和自动识别非数字数据。利用文本框输入和

22、编辑数据;利用Rep lace函 数去除重复输入的分隔符。利用Spl it函数将输入的内容分离到数组中。432、综合应用数据输入应用:在财务、工程计算中,经常需要对大量的部 据进行输入和编辑。问题:InputBox一次输入一1s数据,而后不能修改 一个文本框也只能输入一项改进:可利用文本框、字符串函数通过编程实现。例5.11在文本框输入数据,并允许修改和自动识别非数上 数据;输入结束将它们按分隔符分离后存放在数组中。利用Keyasci i参数过滤非法数据,文本框本身具有编辑功能;:利用Rep lace函数去除重复输入的分隔符。:利用Spl it函数将输入的内容分离到数组中。44 Dim a%(3,0,5)数组声明语句中,A数组a包含元素的个数有 A.15 B.c24 D.1645 如下程序输出的结果是一 D-Dim a()as integer=1,2,3,4,5,6,7)For i=0 to Ubound(a)a(i)=a(i)*a(i)Next i MsgBox(a(i)A.49 B.0 C.不确定 D.程序出错46思考题1.怎样声明一维数组?2.怎样确定数组中每一维的上界?3.怎样引用数组中的一个元素?4.如何防止数组越界错误的发生?5.怎样定义一个结构类型?6.结构类型与数组的区别是什么?47Thank you!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有