理论教育 计算机程序设计语言VisualBasic-示例和代码设计

计算机程序设计语言VisualBasic-示例和代码设计

时间:2023-11-19 理论教育 版权反馈
【摘要】:分析:可用一个二维数组来描述5个学生的3门课。表9-1图9-7例9.2运行效果在使用二重循环输出一个二维数组时,通常内层循环用于控制列号的变化,外层循环用于控制行号的变化。此程序段使用For Each...Next语句打印一维数组X中的所有元素。以上程序完成求二维数组Y的所有元素之和。代码设计:图9-8例9.4运行效果3.Join函数格式:Join。将插入前、后的数组元素分别显示在两个文本框中。

计算机程序设计语言VisualBasic-示例和代码设计

一、二维数组的声明

Public|Private|Dim 数组名([下界1 To]上界1,[下界2 To]上界2)

[As数据类型]

说明:(1)二维数组在声明时必须指定两个下标;

(2)引用二维数组元素的格式为:数组名(下标1,下标2),下界1≤下标1≤上界1,下界2≤下标2≤上界2;

(3)其元素个数为:(上界1—下界1+1)*(上界2—下界2+1)。例如:

Dim a(0 To 2,0 To 3)as integer

看一个数组几维,主要是看该数组各元素需要几个下标来描述它。

【例9.2】某学习小组有5名学生,成绩如表所示,计算这5个学生的3门课的平均分。

分析:可用一个二维数组来描述5个学生的3门课。程序中设置两重循环,用以实现每行和每列上的累加。本例采用赋值语句来输入学生成绩,并采用Print直接在窗体上输出结果。

表9-1

图9-7 例9.2运行效果

在使用二重循环输出一个二维数组时,通常内层循环用于控制列号的变化,外层循环用于控制行号的变化。

【例9.3】编写一个程序,计算n个加数的和。

二、二维数组的应用

1.For Each...Next循环语句

For Each...Next语句类似于For...Next语句,两者都用来执行指定重复次数的一组操作,但For Each...Next语句专门用于“数组”或对象“集合”,其一般格式为:

For Each element In group

[statements]

[Exit For]

[statements]

Next[element]

element是必要参数,用来遍历集合或数组中所有元素的变量。对于集合来说,ele⁃ment可能是一个Variant变量、一个通用对象变量或任何特殊对象变量。对于数组而言,element只能是一个Variant变量,group必要参数,对象集合或数组的名称(用户定义类型的数组除外)。数组名后面没有括号statements可选参数,针对group中的每一项执行的一条或多条语句。

说明:

(1)如果集合中至少有一个元素,就会进入For...Each块执行。一旦进入循环,便先针对group中第一个元素执行循环中的所有语句。如果group中还有其他的元素,则会针对它们执行循环中的语句,当group中的所有元素都执行完了,便会退出循环,然后从Next语句之后的语句继续执行。

(2)在循环中可以在任何位置放置任意一个Exit For语句,随时退出循环。Exit For经常在条件判断之后使用,例如If...Then,并将控制权转移到紧接在Next之后的语句。

(3)可以将一个For...Each...Next循环放在另一个之中来组成嵌套式For...Each...Next循环。但是每个循环的element必须是唯一的。

注意:如果省略Next语句中的element,就像element存在时一样执行。如果Next语句在它相对应的For语句之前出现,则会产生错误。

(4)不能在For...Each...Next语句中使用用户自定义类型数组,因为Variant不能包含用户自定义类型。

本语句可以对数组元素进行读取、查询或显示,它所重复执行的次数由数组中元素的个数确定,在不知道数组中元素的数目时非常有用。

此程序段使用For Each...Next语句打印一维数组X中的所有元素。

以上程序完成求二维数组Y的所有元素之和。

2.Split函数

格式:Split(字符串表达式[,分隔符])。(www.daowen.com)

功能:以某个指定符号作为分隔符,将“字符串表达式”指定的字符串分离为若干个子字符串,以这些子字符串为元素构成一个下标从零开始的一维数组。

说明:“字符串表达式”用于指定要被分隔的字符串,“分隔符”是可选的,如果忽略,则使用空格作为分隔符。例如:

Dim A

A=Split("how are you","")

执行以上赋值之后:A(0)="how",A(1)="are",A(2)="you"。

也可以用Split函数给一个动态数组赋值。例如:

Dim A()As String

A=Split("how are you","")

【例9.4】输入若干个学生的成绩,统计不及格人数和优秀人数。

分析:设运行时学生成绩直接输入到文本框Text1中,各成绩之间用逗号分隔。代码首先使用Split函数将文本框Text1中输入的成绩分离开,保存到数组A中。

引入计数变量,设两个计数变量num1和num2,分别用来保存不及格学生人数和优秀学生人数。将计数变量初始化为0,统计过程—逐一取数组元素进行判断,如果数组元素的值小于60,则让num1累加1,如果数组元素的值大于或等于90,则让num2累加1。

代码设计:

图9-8 例9.4运行效果

3.Join函数

格式:Join(一维数组名[,分隔符])。

功能:将一维数组中的各元素连接成一个字符串,连接时各子字符串之间加上分隔符指定的字符。

说明:分隔符用于指定在返回的字符串中分隔各子字符串的字符。如果忽略该项,则使用空格来分隔子字符串。如果“分隔符”是零长度字符串,则将所有数组元素连接在一起,中间没有分隔符。例如:

Dim a

a=Array("吃葡萄","不吐","葡萄皮")

b=Join(a,"")

Print b

执行以上代码打印“吃葡萄不吐葡萄皮”。

【例9.5】插入数组元素。生成10个1~99的随机整数作为原始数据,存于数组d()中,然后向数组中的指定位置插入一个指定数。如果指定位置小于1,则将指定的数插在数组的第一个位置,如果指定位置大于现有数组元素的个数,则将指定的数插在数组的最后一个位置。将插入前、后的数组元素分别显示在两个文本框中。

分析:将某数x插在数组中的位置p,需要将数组中的原p位置的元素到最后一个元素全部向后移动一个位置,而插入的新数作为数组的p位置的元素。插入操作后数组元素的总个数增加1。例如,要将数37插入到数组第7位置(如图9-9)。

图9-9 在数组中插入一个数的方法

对数组中原p位置的元素到最后一个元素全部向后移动一个位置,需要从后面的元素开始逐个向后进行移动操作。即执行以下操作(n为数组元素的个数):

程序代码如下:

程序运行后,在第7位置插入数55,其显示结果如图9-10所示。

图9-10 例9.5运行效果

数组是程序设计中广泛使用的一种数据结构。数组应用的一个重要内容是查找和排序。

排序:将一组数按递增或递减的次序排列,选择法排序、冒泡法排序。

查找:从数组中查找所需的数据,顺序查找,折半查找。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈