VB-复合数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Next i
5
再如:
For i=0 To 10 a(i)=i
Next i
(2)一维数组元素的输出
在控制台应用程序中,输出一维数组元素的值可以使用 Console 类的 Write
方法和 WriteLine 方法。
例如:
Console.WriteLine(a(3))
输出数组元素 a(3)的值。
又如,语句:
2
合法的基本类型和复合类型; <数据类型符>可以是%(整型)、&(长整型)、!(单精度浮点型)、# (双精度浮
点型)和$(字符串型)等。 语句的功能是:说明一个一维数组、确定数组元素的个数和数组元素的值
的类型,并为该数组分配所需要的存储空间。 例如:
Dim h(29) As Single Dim s(49) As Double Dim a%(10)
Next i
从 a(i)到 a(n)找最小元素 a(t)可以细化为:
For j=i+1 To n If a(j)<a(t) Then t=j Next j
把 a(t)与 a(i)交换可以细化为:
9
min=a(i) a(i)=a(t) a(t)=min
程序:
Imports System.Console
Next i For i = 1 To n - 1
' 对数组排序
t=i For j = i + 1 To n
' 寻找最小元素
If a(j) < a(t) Then t = j
Next j
If t <> i Then
' 交换数组元素
min = a(i)
a(i) = a(t)
a(t) = min
End If
其中,<下标>可以是数值型常数或常量或变量,更一般为数值表达式,它表示 该数组元素在该一维数组中的位置。
例如: 数组 h 的 30 个元素分别用 h(0),h(1), …,h(29)引用; 数组 s 的 50 个元素分别用 s(0),s(1), …,s(49)引用; 数组 a 的 11 个元素分别用 a(0),a(1), …,a(10)引用。 又如: h(i)可以引用数组 h 的第 i 个元素,当 i 的值在 0 到 29 之间变化时可以引 用数组 h 的每一个元素; s(i-1) 可以引用数组 s 第 i-1 个元素,但 i-1 的值必须在 0 到 49 之间变 化; a(i+1) 可以引用数组 a 第 i+1 个元素,但 i+1 的值必须在 0 到 11 之间变
Next i
max = a(0) For i = 1 To 9
' 使用循环过程求最大值
If a(i) > max Then max = a(i)
Next i
WriteLine("max = {0}", max)
End Sub
End Module
【例4-3】用随机函数产生n个两位正整数,并用排序法把这组数据从小到大
第 n-1 步:在 a(n-1)和 a(n)中找出最小值, 并记下它的下标为 t,即 a(t)是
最小值,把 a(t)与 a(n-1)的值交换,这时 a(n-1)为第 n-1 小值,而 a(n)为最大值。
上述算法也可以描述为:
For i=1 To n-1 从 a(i)到 a(n)找最小元素 a(t) 把 a(t)与 a(i)交换
' 用随机数初始化数组
a(i) = Int(90 * Rnd()) + 10
Next i
WriteLine("源自文库序前数组:") For i = 1 To n
' 输出排序前数据,每行输出5个数据
Write("a({0})={1} ", i, a(i))
If Int(i / 5) = i / 5 Then WriteLine()
为:
第 1 步:在 a(1),a(2), …,a(n)中找出最小值, 并记下它的下标为 t,即 a(t)是
最小值,把 a(t)与 a(1)的值交换,这时 a(1)为最小值;
第 2 步:在 a(2),a(3), …,a(n)中找出最小值,并记下它的下标为 t,即 a(t)是最
小值,把 a(t)与 a(2)的值交换,这时 a(2)为次小值; …
程序:
Imports System.Console
Module Module1
Sub Main()
Dim a(9) As Integer, max As Integer, i As Integer
For i = 0 To 9
Write("a({0})=", i) a(i) = Val(ReadLine()) ' 使用ReadLine方法输入数组a的元素
初值分别为:1、2 和 3,即 b(0)=1、b(1)=2 和 b(2)=3。
VB.NET 不允许对指定了上界的数组进行初始化。
例如,语句:
Dim b(2) As Integer ={1,2,3}
是错误的。
' 初始化数组不应定义数组长度
因此,若说明数组同时初始化,数组名后的圆括号内必须为空,VB.NET
或 Dim <数组名>[<数据类型符>]( ) ={<常量 1>,<常量 2>,…,<常量 n>}
功能: 在定义数组的同时,为数组元素赋初值。初始值的个数决定了数组
的长度。
例如,语句:
6
Dim b( ) As Integer={1,2,3}
或 Dim b%( )={1,2,3}
都说明了一维数组 b 并初始化。数组 b 共有 3 个元素 b(0)、b(1)和 b(2),它们的
将根据初始值的个数确定数组的下标上界。
【例 4-1】某班有 10 个学生参加计算机等级考试,求这些学生的平均成绩。
算法分析:
① 把 10 个学生的成绩存放到一维数组 S 中;
② 设置循环过程把每个学生的成绩累加到变量 sum 中;
③ 计算并输出平均成绩。
程序:
Module Module1
Sub Main() Dim S() As Single = {90, 76, 80, 75, 82, 93, 57, 75, 85, 68} ' 初始化数组S
Dim Sum As Single, i As Integer
Sum = 0
For i = 0 To 9 Sum = Sum + S(i)
' 对数组S的每个元素S(i)求累和
7
Next i Console.WriteLine("平均成绩 = {0:f}", Sum / 10) End Sub End Module
【例 4-2】编写程序:求 10 个数中的最大值。
算法分析:
先把 10 个数存放到一维数组 a 中,然后把 a(1)赋给 max,并设置一个循环过
程将 max 与 a(2),a(3),┅,a(9)逐个进行比较。若 a(i)>max(i=2,3, …,9),则把 a(i)赋
给 max, 这样处理后的 max 就是这 10 个数中的最大值。
Dim x(2) As Object
3
② 在一个 Dim 语句中可以说明多个数组。 例如:
Dim h(29) As Single,s(49) As Double, a%(10)
3. 一维数组元素的引用 在程序中,一维数组定义之后,通常要引用它的元素。引用一维数组元素 的一般形式:
<数组名>(<下标>)
4. 一维数组的输入与输出
(1)一维数组元素的输入 在控制台应用程序中,输入一维数组元素的值可以使用赋值语句,也可以
使用 Console 类的输入方法 Read 和 ReadLine 从键盘输入数据。 例如:
h(0)=1.78 h(1)=1.65
… h(29)=1.80
又如:
For i=0 To 29 h(i)= Val(Console.ReadLine())
4
化。
再如:
h(1)=1.65 sum=sum+s(i) a(i)=a(i-1)+a(i+1)
需注意:
① 引用一维数组的元素时,其下标不能越界,否则,将出现运行错误。
② 若下标为实数,则 VB.NET 系统自动对其四舍五入取整。例如:
h(2+0.5) 表示 h(3);
h(2+0.4) 表示 h(2)。
一维数组说明语句的一般格式:
Dim <数组名> (<下标上界>) [As <数据类型>]
或 Dim <数组名>[<数据类型符>](<下标上界>) 其中:Dim 为定义数组的关键字;
<数组名>是用户定义标识符; 圆括号“( )”用于说明数组的维数和数组长度(即数组元素个数)。说明 语句中只有一对圆括号,表示该数组是一个一维数组; <下标上界>的数据类型可以是各种简单数据类型,一般为整型表达式。若 为实数,则 VB.NET 自动对其四舍五入取整。下标下界规定为 0,即数组元素的 个数为: <下标上界>+1; [As <数据类型>]为可选项,用来指定数组元素的类型。<数据类型>为 VB.NE
Module Module1
Sub Main()
Dim n As Integer = 10
Dim a(n) As Integer
Dim i As Integer, j As Integer, t As Integer, min As Integer
Randomize() For i = 1 To n
VB.NET 提供了数组、结构、集合和枚举等复合数据类型,可以方便地组 织实际问题中复杂的关联数据对象。本章主要介绍数组、结构、集合和枚举等 复合数据类型的一些基本知识及其应用。
4.1 数组
在实际应用中,常常要处理成批类型相同而且互相有关联的数据的情况。 例如,求某个班 50 个学生某门课程的平均成绩,若在程序中定义 50 个简单数 据类型变量表示这批数据,则编写程序时会感觉到很烦琐。这显然是一个十分 笨拙的数据表示方法。
For i=0 To 10 Console.WriteLine(a(i))
Next i
按顺序输出一维数组 a 全部元素的值。
5. 一维数组的初始化
VB.NET 提供了对数组初始化的功能,即在定义数组的同时,可以为数组
元素赋初值。一维数组初始化语句的一般格式:
Dim <数组名>( ) As <数据类型>={<常量 1>,<常量 2>,…,<常量 n>}
第 4 章 复合数据类型
在第 2 章中,已经介绍了 VB.NET 的简单数据类型,例如 Integer、Single、 Double、String、Boolean 和 Date 等,使用这些简单数据类型可以表示和存储一 个数据。在实际问题中,有些数据对象是由若干个有关联的数据项构成,这种 复合型的数据难以用简单数据类型来表示和操作。
排列。
排序是计算机程序设计中的一种重要算法,按关键值从小到大的顺序排列
8
称为升序,按关键值从大到小的顺序排列称为降序。排序方法有很多,在这里 仅介绍最容易理解的选择排序法。
算法分析:
先使用随机函数产生 n 个两位正整数,并把这 n 个数存放到一维数组 a 中,
也就是说,用 a(1),a(2), …,a(n)来表示和存储这组数据。选择排序法的操作步骤
数组的命名规则与变量的命名规则相同,即可以用标识符给一维数组命名。 例如,某个班所有学生的身高数据可以定义一维数组 h。 又如,某个班所
有学生某门课程的成绩可以定义名一维数组为 S。 2. 一维数组说明 数组必须先说明后使用。数组说明包括说明数组的名字、数组的维数、每
一维的元素个数和数组元素的类型。在计算机存储器中,数组占据一块连续的 内存区域。说明数组的主要目的是通知计算机为其留出所需要的存储空间。
Next i WriteLine("排序后数组:")
For i = 1 To n
一维数组一经定义之后,该数组的元素个数和类型都被确定: h 数组有 30 个元素,每个元素的值都是单精度实型数据; s 数组有 50 个元素,每个元素的值都是双精度实型数据; a 数组有 11 个元素,每个元素的值都是整型数据。
需说明如下: ①一维数组说明语句中若省略元素类型,即省略 As <数据类型>或<数据类 型符>时,数组元素的类型为 Object 类型,这种数组称为可变类型数组,在该 数组中可以存放各种不同类型数据; 例如:Dim x(2) 等价于
为了方便组织和处理这类相关联的数据,可以使用数组。数组有一维数组、 二维数组和多维数组。
4.1.1 一维数组及其使用 1. 一维数组的概念
一维数组是由一组类型相同互相有关联的数据构成。 例如,某个班所有学生的身高就构成一个一维数组。又如,某个班所有学
1
生某门课程的成绩也构成一个一维数组。 在程序中使用的每个一维数组都要命名,这个名字称为一维数组名。一维
5
再如:
For i=0 To 10 a(i)=i
Next i
(2)一维数组元素的输出
在控制台应用程序中,输出一维数组元素的值可以使用 Console 类的 Write
方法和 WriteLine 方法。
例如:
Console.WriteLine(a(3))
输出数组元素 a(3)的值。
又如,语句:
2
合法的基本类型和复合类型; <数据类型符>可以是%(整型)、&(长整型)、!(单精度浮点型)、# (双精度浮
点型)和$(字符串型)等。 语句的功能是:说明一个一维数组、确定数组元素的个数和数组元素的值
的类型,并为该数组分配所需要的存储空间。 例如:
Dim h(29) As Single Dim s(49) As Double Dim a%(10)
Next i
从 a(i)到 a(n)找最小元素 a(t)可以细化为:
For j=i+1 To n If a(j)<a(t) Then t=j Next j
把 a(t)与 a(i)交换可以细化为:
9
min=a(i) a(i)=a(t) a(t)=min
程序:
Imports System.Console
Next i For i = 1 To n - 1
' 对数组排序
t=i For j = i + 1 To n
' 寻找最小元素
If a(j) < a(t) Then t = j
Next j
If t <> i Then
' 交换数组元素
min = a(i)
a(i) = a(t)
a(t) = min
End If
其中,<下标>可以是数值型常数或常量或变量,更一般为数值表达式,它表示 该数组元素在该一维数组中的位置。
例如: 数组 h 的 30 个元素分别用 h(0),h(1), …,h(29)引用; 数组 s 的 50 个元素分别用 s(0),s(1), …,s(49)引用; 数组 a 的 11 个元素分别用 a(0),a(1), …,a(10)引用。 又如: h(i)可以引用数组 h 的第 i 个元素,当 i 的值在 0 到 29 之间变化时可以引 用数组 h 的每一个元素; s(i-1) 可以引用数组 s 第 i-1 个元素,但 i-1 的值必须在 0 到 49 之间变 化; a(i+1) 可以引用数组 a 第 i+1 个元素,但 i+1 的值必须在 0 到 11 之间变
Next i
max = a(0) For i = 1 To 9
' 使用循环过程求最大值
If a(i) > max Then max = a(i)
Next i
WriteLine("max = {0}", max)
End Sub
End Module
【例4-3】用随机函数产生n个两位正整数,并用排序法把这组数据从小到大
第 n-1 步:在 a(n-1)和 a(n)中找出最小值, 并记下它的下标为 t,即 a(t)是
最小值,把 a(t)与 a(n-1)的值交换,这时 a(n-1)为第 n-1 小值,而 a(n)为最大值。
上述算法也可以描述为:
For i=1 To n-1 从 a(i)到 a(n)找最小元素 a(t) 把 a(t)与 a(i)交换
' 用随机数初始化数组
a(i) = Int(90 * Rnd()) + 10
Next i
WriteLine("源自文库序前数组:") For i = 1 To n
' 输出排序前数据,每行输出5个数据
Write("a({0})={1} ", i, a(i))
If Int(i / 5) = i / 5 Then WriteLine()
为:
第 1 步:在 a(1),a(2), …,a(n)中找出最小值, 并记下它的下标为 t,即 a(t)是
最小值,把 a(t)与 a(1)的值交换,这时 a(1)为最小值;
第 2 步:在 a(2),a(3), …,a(n)中找出最小值,并记下它的下标为 t,即 a(t)是最
小值,把 a(t)与 a(2)的值交换,这时 a(2)为次小值; …
程序:
Imports System.Console
Module Module1
Sub Main()
Dim a(9) As Integer, max As Integer, i As Integer
For i = 0 To 9
Write("a({0})=", i) a(i) = Val(ReadLine()) ' 使用ReadLine方法输入数组a的元素
初值分别为:1、2 和 3,即 b(0)=1、b(1)=2 和 b(2)=3。
VB.NET 不允许对指定了上界的数组进行初始化。
例如,语句:
Dim b(2) As Integer ={1,2,3}
是错误的。
' 初始化数组不应定义数组长度
因此,若说明数组同时初始化,数组名后的圆括号内必须为空,VB.NET
或 Dim <数组名>[<数据类型符>]( ) ={<常量 1>,<常量 2>,…,<常量 n>}
功能: 在定义数组的同时,为数组元素赋初值。初始值的个数决定了数组
的长度。
例如,语句:
6
Dim b( ) As Integer={1,2,3}
或 Dim b%( )={1,2,3}
都说明了一维数组 b 并初始化。数组 b 共有 3 个元素 b(0)、b(1)和 b(2),它们的
将根据初始值的个数确定数组的下标上界。
【例 4-1】某班有 10 个学生参加计算机等级考试,求这些学生的平均成绩。
算法分析:
① 把 10 个学生的成绩存放到一维数组 S 中;
② 设置循环过程把每个学生的成绩累加到变量 sum 中;
③ 计算并输出平均成绩。
程序:
Module Module1
Sub Main() Dim S() As Single = {90, 76, 80, 75, 82, 93, 57, 75, 85, 68} ' 初始化数组S
Dim Sum As Single, i As Integer
Sum = 0
For i = 0 To 9 Sum = Sum + S(i)
' 对数组S的每个元素S(i)求累和
7
Next i Console.WriteLine("平均成绩 = {0:f}", Sum / 10) End Sub End Module
【例 4-2】编写程序:求 10 个数中的最大值。
算法分析:
先把 10 个数存放到一维数组 a 中,然后把 a(1)赋给 max,并设置一个循环过
程将 max 与 a(2),a(3),┅,a(9)逐个进行比较。若 a(i)>max(i=2,3, …,9),则把 a(i)赋
给 max, 这样处理后的 max 就是这 10 个数中的最大值。
Dim x(2) As Object
3
② 在一个 Dim 语句中可以说明多个数组。 例如:
Dim h(29) As Single,s(49) As Double, a%(10)
3. 一维数组元素的引用 在程序中,一维数组定义之后,通常要引用它的元素。引用一维数组元素 的一般形式:
<数组名>(<下标>)
4. 一维数组的输入与输出
(1)一维数组元素的输入 在控制台应用程序中,输入一维数组元素的值可以使用赋值语句,也可以
使用 Console 类的输入方法 Read 和 ReadLine 从键盘输入数据。 例如:
h(0)=1.78 h(1)=1.65
… h(29)=1.80
又如:
For i=0 To 29 h(i)= Val(Console.ReadLine())
4
化。
再如:
h(1)=1.65 sum=sum+s(i) a(i)=a(i-1)+a(i+1)
需注意:
① 引用一维数组的元素时,其下标不能越界,否则,将出现运行错误。
② 若下标为实数,则 VB.NET 系统自动对其四舍五入取整。例如:
h(2+0.5) 表示 h(3);
h(2+0.4) 表示 h(2)。
一维数组说明语句的一般格式:
Dim <数组名> (<下标上界>) [As <数据类型>]
或 Dim <数组名>[<数据类型符>](<下标上界>) 其中:Dim 为定义数组的关键字;
<数组名>是用户定义标识符; 圆括号“( )”用于说明数组的维数和数组长度(即数组元素个数)。说明 语句中只有一对圆括号,表示该数组是一个一维数组; <下标上界>的数据类型可以是各种简单数据类型,一般为整型表达式。若 为实数,则 VB.NET 自动对其四舍五入取整。下标下界规定为 0,即数组元素的 个数为: <下标上界>+1; [As <数据类型>]为可选项,用来指定数组元素的类型。<数据类型>为 VB.NE
Module Module1
Sub Main()
Dim n As Integer = 10
Dim a(n) As Integer
Dim i As Integer, j As Integer, t As Integer, min As Integer
Randomize() For i = 1 To n
VB.NET 提供了数组、结构、集合和枚举等复合数据类型,可以方便地组 织实际问题中复杂的关联数据对象。本章主要介绍数组、结构、集合和枚举等 复合数据类型的一些基本知识及其应用。
4.1 数组
在实际应用中,常常要处理成批类型相同而且互相有关联的数据的情况。 例如,求某个班 50 个学生某门课程的平均成绩,若在程序中定义 50 个简单数 据类型变量表示这批数据,则编写程序时会感觉到很烦琐。这显然是一个十分 笨拙的数据表示方法。
For i=0 To 10 Console.WriteLine(a(i))
Next i
按顺序输出一维数组 a 全部元素的值。
5. 一维数组的初始化
VB.NET 提供了对数组初始化的功能,即在定义数组的同时,可以为数组
元素赋初值。一维数组初始化语句的一般格式:
Dim <数组名>( ) As <数据类型>={<常量 1>,<常量 2>,…,<常量 n>}
第 4 章 复合数据类型
在第 2 章中,已经介绍了 VB.NET 的简单数据类型,例如 Integer、Single、 Double、String、Boolean 和 Date 等,使用这些简单数据类型可以表示和存储一 个数据。在实际问题中,有些数据对象是由若干个有关联的数据项构成,这种 复合型的数据难以用简单数据类型来表示和操作。
排列。
排序是计算机程序设计中的一种重要算法,按关键值从小到大的顺序排列
8
称为升序,按关键值从大到小的顺序排列称为降序。排序方法有很多,在这里 仅介绍最容易理解的选择排序法。
算法分析:
先使用随机函数产生 n 个两位正整数,并把这 n 个数存放到一维数组 a 中,
也就是说,用 a(1),a(2), …,a(n)来表示和存储这组数据。选择排序法的操作步骤
数组的命名规则与变量的命名规则相同,即可以用标识符给一维数组命名。 例如,某个班所有学生的身高数据可以定义一维数组 h。 又如,某个班所
有学生某门课程的成绩可以定义名一维数组为 S。 2. 一维数组说明 数组必须先说明后使用。数组说明包括说明数组的名字、数组的维数、每
一维的元素个数和数组元素的类型。在计算机存储器中,数组占据一块连续的 内存区域。说明数组的主要目的是通知计算机为其留出所需要的存储空间。
Next i WriteLine("排序后数组:")
For i = 1 To n
一维数组一经定义之后,该数组的元素个数和类型都被确定: h 数组有 30 个元素,每个元素的值都是单精度实型数据; s 数组有 50 个元素,每个元素的值都是双精度实型数据; a 数组有 11 个元素,每个元素的值都是整型数据。
需说明如下: ①一维数组说明语句中若省略元素类型,即省略 As <数据类型>或<数据类 型符>时,数组元素的类型为 Object 类型,这种数组称为可变类型数组,在该 数组中可以存放各种不同类型数据; 例如:Dim x(2) 等价于
为了方便组织和处理这类相关联的数据,可以使用数组。数组有一维数组、 二维数组和多维数组。
4.1.1 一维数组及其使用 1. 一维数组的概念
一维数组是由一组类型相同互相有关联的数据构成。 例如,某个班所有学生的身高就构成一个一维数组。又如,某个班所有学
1
生某门课程的成绩也构成一个一维数组。 在程序中使用的每个一维数组都要命名,这个名字称为一维数组名。一维