VBNET程序设计实用教程3.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《VBNET程序设计实用教程3.ppt》由会员分享,可在线阅读,更多相关《VBNET程序设计实用教程3.ppt(114页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、VB.NETVB.NET清华大学出版社清华大学出版社Visual Basic.NETVisual Basic.NET程序设计实用教程程序设计实用教程第3章 数 组SGD本章任务:本章任务:方阵转置方阵转置 求一维数组的最小值及其位置求一维数组的最小值及其位置 求矩阵的各行最小值及位置求矩阵的各行最小值及位置求每个学生的平均成绩并按平均成求每个学生的平均成绩并按平均成绩排序绩排序 一维数组排序算法演示一维数组排序算法演示本本章章任任务务SGD 本章要点:本章要点:本章要点:本章要点:数组的概念数组的概念 二维数组的定义、赋初值与数组元二维数组的定义、赋初值与数组元 素的引用素的引用与数组相关的语
2、句、函数的使用与数组相关的语句、函数的使用 控件(对象)数组的定义与使用控件(对象)数组的定义与使用本本章章要要点点一维数组的定义、赋初值与一维数组的定义、赋初值与数组元素的引用数组元素的引用SGD3.1 数组的概念数组的概念 u在前面的章节中,程序中要存放或处理一在前面的章节中,程序中要存放或处理一个数据,首先应声明一个变量,这在只处理少个数据,首先应声明一个变量,这在只处理少量数据的程序中是可以的,但若程序需处理很量数据的程序中是可以的,但若程序需处理很多个数据,特别是同类数据,使用变量实现将多个数据,特别是同类数据,使用变量实现将显得比较麻烦,甚至不可能完成需要的功能。显得比较麻烦,甚至
3、不可能完成需要的功能。如某次期中考试后,需要用计算机处理学生的如某次期中考试后,需要用计算机处理学生的信息学课程成绩,假设全年级为信息学课程成绩,假设全年级为200人,若用人,若用变量来记录学生的成绩,不但需要变量来记录学生的成绩,不但需要200个变量,个变量,而且在编程过程中程序员还需要记住每个变量而且在编程过程中程序员还需要记住每个变量与学生的对应关系,显然是极不方便的。与学生的对应关系,显然是极不方便的。SGD3.1 数组的概念数组的概念u为了解决该问题,在为了解决该问题,在VB.NET中提供了一种名中提供了一种名叫叫“数组数组”的数据结构,利用它可以方便地的数据结构,利用它可以方便地处
4、理像考试成绩这种具有多个相同类型的一处理像考试成绩这种具有多个相同类型的一批数据。可以把数组看成是很多个变量的集批数据。可以把数组看成是很多个变量的集合,这些变量具有相同的类型,它们在内存合,这些变量具有相同的类型,它们在内存中是连续存放的,这些变量均具有相同的名中是连续存放的,这些变量均具有相同的名称,并且可以通过下标相互区分,每一个这称,并且可以通过下标相互区分,每一个这样的变量我们把它称为数组元素。由于在程样的变量我们把它称为数组元素。由于在程序中数组元素是通过下标相互区分的,而下序中数组元素是通过下标相互区分的,而下标又可以用变量或表达式来表示,所以为程标又可以用变量或表达式来表示,所
5、以为程序员循环处理成批数据带来了方便。序员循环处理成批数据带来了方便。SGD3.1 数组的概念数组的概念 如假设存放如假设存放200个学生信息学成绩的数组名为个学生信息学成绩的数组名为InformationScore,要求出所有学生的信息学的平均分,可使用下列语句:要求出所有学生的信息学的平均分,可使用下列语句:u Dim AvgInformationScore As Singleu Dim InformationScore(199)As Integeru AvgInformationScore=0u For i=0 To 199 Step 1u AvgInformationScore=Avg
6、InformationScore+InformationScore(i)u Next Iu AvgInformationScore=AvgInformationScore/300 读者不妨试着使用变量来求信息学课程的平均分,会发现程序编起来非读者不妨试着使用变量来求信息学课程的平均分,会发现程序编起来非常麻烦。可见与变量相比,使用数组来处理同类的多个数据,优势十分常麻烦。可见与变量相比,使用数组来处理同类的多个数据,优势十分明显。明显。SGD3.2 任务3-1:求一维数组的最小值及其位置 一维数组 任务任务3-1描述:描述:编写一个程序,用来从随机产生编写一个程序,用来从随机产生10个两位数找
7、个两位数找出其中的最小数及最小数的位置。程序的设计界出其中的最小数及最小数的位置。程序的设计界面如图面如图3-1所示,程序运行时,单击所示,程序运行时,单击“产生数组产生数组”按钮,将产生按钮,将产生10个两位数并显示在第一个文本个两位数并显示在第一个文本框中,单击框中,单击“求最小数及位置求最小数及位置”按钮将从产生的按钮将从产生的10个两位数中找出最小数及其位置并显示在第二个两位数中找出最小数及其位置并显示在第二和第三个文本框中,如图和第三个文本框中,如图3-2所示所示:SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组u图图3-2 SGD可使用一个一维数组来存放一批随机产生的可
8、使用一个一维数组来存放一批随机产生的数,再设两个变量,一个用来记下数组中的最数,再设两个变量,一个用来记下数组中的最小数,一个用来记下最小数的下标。首先认为小数,一个用来记下最小数的下标。首先认为第一个数最小,记下它的值和下标;然后用记第一个数最小,记下它的值和下标;然后用记下的最小数和后面的数比较,如果后面的数小,下的最小数和后面的数比较,如果后面的数小,则用记最小数的变量记下该数,用记最小数下则用记最小数的变量记下该数,用记最小数下标的变量记下该数的下标;用记下的最小数再标的变量记下该数的下标;用记下的最小数再与后面的数比较与后面的数比较直到所有的数都比较完毕,直到所有的数都比较完毕,记最
9、小数变量中的值就是最小数,记最小数下记最小数变量中的值就是最小数,记最小数下标的变量中的值就是最小数的下标,最小数下标的变量中的值就是最小数的下标,最小数下标(从标(从0开始)加开始)加1就是最小数的位置。就是最小数的位置。任务分析:任务分析:3.2 任务3-1:求一维数组的最小值及其位置一维数组SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组任务实现:任务实现:1启动启动VB.NET,新建一个项目,项目类型为,新建一个项目,项目类型为“Windows应用程序应用程序”,项目的存放位置为,项目的存放位置为“D:VBTASKCH03”,项目名为,项目名为“Task3_2”。2把把Fo
10、rm1窗体的窗体的Text属性值设置为属性值设置为“方阵转置方阵转置”,把,把它的它的Name属性值设置为属性值设置为“frmTranspose”。单击。单击“解决解决方案资源管理器方案资源管理器”中的中的“Form1.VB”窗体,然后在属性窗体,然后在属性窗口中把它文件名属性设置为窗口中把它文件名属性设置为“frmTranspose.vb”。然。然后执行后执行【项目项目】【Task3_2属性属性】命令,在出现的命令,在出现的“Task3_2属性页属性页”对话框中把对话框中把“启动对象启动对象”设置为设置为“frmTranspose”。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数
11、组3对照程序设计界面,为窗体添加控件并设置控对照程序设计界面,为窗体添加控件并设置控件的属性。控件的属性设置如表件的属性。控件的属性设置如表3-2所示。所示。表表3-2 任务任务3-2控件属性设置及其功能控件属性设置及其功能控件名控件名属性名属性名属性值属性值说明说明Label1Label1BorderStyleBorderStyleFixedSingleFixedSingle显示生成的方阵显示生成的方阵Label2Label2BorderStyleBorderStyleFixedSingleFixedSingle显示转置后的方阵显示转置后的方阵Button1Button1TextText 生
12、成方阵生成方阵单击它将生成方阵并单击它将生成方阵并显示出来显示出来Button2Button2TextText 转置方阵转置方阵单击它将把方阵转置单击它将把方阵转置并显示出来并显示出来SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组4在在代代码码窗窗口口中中定定义义常常量量并并定定义义模模块块级级二二维维数数组,如下。组,如下。Const N=5 方阵的阶数方阵的阶数Dim Arr(N-1,N-1)As Integer 该数数组用用来来存放方存放方阵SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组说明:说明:(1)语句)语句“DimArr(N-1,N-1)AsInteg
13、er”的作用是定义了一个名为的作用是定义了一个名为Arr的的N行行N列的二维数组,用它来存放列的二维数组,用它来存放NN的方阵。的方阵。所谓二维数组,就是有两个下标的数组,适所谓二维数组,就是有两个下标的数组,适合处理如成绩报告表、矩阵等具有行列结构合处理如成绩报告表、矩阵等具有行列结构的数据。类似的可以定义三维数组(具有三的数据。类似的可以定义三维数组(具有三个下标)和多维数组(具有多个下标)。本个下标)和多维数组(具有多个下标)。本章只介绍二维数组。章只介绍二维数组。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组(2)使用二维数组之前也必须对二)使用二维数组之前也必须对二维数
14、组进行声明(或称定义)。定维数组进行声明(或称定义)。定义二维数组的语句格式及功能如下。义二维数组的语句格式及功能如下。格式格式:Declare数组名数组名(下标下标1上限上限,下标下标2上限上限)As数据类型符数据类型符功能功能:定义一个名为:定义一个名为“数组名数组名”的的二维数组,数组元素的数据类型由二维数组,数组元素的数据类型由“数据类型符数据类型符”确定。确定。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组“Declare”可以是可以是Dim、Static、Public、Protected、Friend、Protected和和Private等。数组的每维的下标下限等。数
15、组的每维的下标下限均为均为0,且不可以改变,且不可以改变,VB.NET不支不支持持OptionBase语句。如果不指定语句。如果不指定“数数据类型符据类型符”,则默认为,则默认为Object型的数组。型的数组。说明:说明:SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组 Dima(9)AsInteger;/定义了一个数组定义了一个数组a,该数组的数据类型是,该数组的数据类型是integer,具有,具有10个个元素。第一个元素为元素。第一个元素为a(0),最后一个元素,最后一个元素为为a(9)数组定义后,将占用连续的存储空数组定义后,将占用连续的存储空间,其占用存储空间大小为间,其占
16、用存储空间大小为“长度长度*数据数据类型所占用的字节数类型所占用的字节数”。例如对于上面定。例如对于上面定义的义的a数组,在程序运行时,系统将为该数组,在程序运行时,系统将为该数组分配一个连续的数组分配一个连续的40字节的存储单元,字节的存储单元,用来存放该数组的每一个元素,该数组占用来存放该数组的每一个元素,该数组占用存储空间的情况如图用存储空间的情况如图3-3所示。所示。例如,有下列语句:例如,有下列语句:SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组a(0)a(1)a(2)a(3)a(4)a(5)a(6)a(7)a(8)a(9)每个元素占每个元素占4 4个字节,整个数组占个
17、字节,整个数组占4040个字节个字节图图3-3数组在内存中的存储情况示意数组在内存中的存储情况示意SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组u5编写编写Button1按钮的按钮的Click事件过事件过程代码,如下。程代码,如下。Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click Dim i As Integer Randomize()随机数初始化随机数初始化 TextBox1.Text=清空显示数的文本框清空显示数的文
18、本框 For i=0 To N 该循环产生该循环产生10个数并显示在第一个文本框中个数并显示在第一个文本框中 Arr(i)=Int(90*Rnd()+10)产生一个两位随机数存放到数组产生一个两位随机数存放到数组元素元素Arr(i)中中 TextBox1.Text=TextBox1.Text+CStr(Arr(i)+,把产把产生的数显示出来生的数显示出来 Next i TextBox1.Text=Mid(TextBox1.Text,1,Len(TextBox1.Text)-1)去掉最后的逗号去掉最后的逗号 End SubSGD3.2 任务3-1:求一维数组的最小值及其位置一维数组u说明:说明:
19、(1)程序中的语句)程序中的语句“Arr(i)=Int(90*Rnd()+10)”是把产生的两位随机数赋值给数是把产生的两位随机数赋值给数组元素组元素Arr(i),Arr(i)是对数组元素的引用。是对数组元素的引用。(2)在)在VB.NET语言中通常并不把数组作为语言中通常并不把数组作为一个整体进行处理,参与运算和数据处理的一个整体进行处理,参与运算和数据处理的一般都是数组元素。定义了一个数组后就可一般都是数组元素。定义了一个数组后就可以引用它的数组元素了。引用一维数组元素以引用它的数组元素了。引用一维数组元素的一般形式如下:的一般形式如下:数组名(下标)数组名(下标)VB.NET语言规定,数
20、组元语言规定,数组元素的下标从素的下标从0开始,因此下标上限为开始,因此下标上限为N的数组,的数组,具有具有N+1个元素,下标范围为个元素,下标范围为0N-1。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组u例如,有定义语句:例如,有定义语句:DimA(5)AsInteger那么那么a数组具有元素数组具有元素a(0)、a(1)、a(2)、a(3)、a(4)和和a(5)。值得注意的是,在值得注意的是,在VB.NET语言中不允许下标越界,语言中不允许下标越界,也就是说也就是说VB.NET对下标越界进行检查,在上述的对下标越界进行检查,在上述的a数数组定义后,组定义后,a(6)和和a(
21、-1)均是不可用的。均是不可用的。VB.NET在编在编译时并不检查数组元素是否越界,而是在运行时检查。译时并不检查数组元素是否越界,而是在运行时检查。其实数组元素就是一种特殊的变量,在程序中也把其实数组元素就是一种特殊的变量,在程序中也把它作为变量来使用。凡是能够使用变量的地方均可以它作为变量来使用。凡是能够使用变量的地方均可以使用与变量数据类型相同的数组元素。一个数组元素使用与变量数据类型相同的数组元素。一个数组元素可以像同类型的普通变量一样参加赋值、运算、输入可以像同类型的普通变量一样参加赋值、运算、输入和输出等操作。和输出等操作。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数
22、组u6运行程序,单击运行程序,单击“产生数组产生数组”按钮按钮,会发现第一个文本框中会发现第一个文本框中出现了出现了10个用个用“,”分隔开的两分隔开的两位随机数。位随机数。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickDimiAsIntegerDimMin,Min_iAsInteger分别用来存放最小值和最小值的下标分别用来存放最小值和最小值的下标Min=Arr(0):Min_i=0首先认
23、为第一个元素值最小首先认为第一个元素值最小Fori=1ToN该循环找最大值及其下标该循环找最大值及其下标IfMinArr(i)Then如果后面的元素值小如果后面的元素值小Min=Arr(i)记下该元素记下该元素Min_i=i记下该元素的下标记下该元素的下标EndIfNextiTextBox2.Text=Str(Min)显示最小值显示最小值TextBox3.Text=Str(Min_i+1)显示最小值的位置(下标加显示最小值的位置(下标加1)EndSubu7编写编写Button2的的Click事件过程代码,如下。事件过程代码,如下。SGDu说明:说明:该程序段是求一维数组的最小值该程序段是求一维
24、数组的最小值及其位置的算法实现,请读者参照及其位置的算法实现,请读者参照语句的注释认真领会算法的思想。语句的注释认真领会算法的思想。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组u8编写编写“退出退出”按钮的按钮的Click事件事件过程代码,如下过程代码,如下:PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.ClickApplication.Exit()退出应用程序退出应用程序EndSubSGD3.2 任务3-1:求一维数组的最小值及其位置一维数组
25、u9运行程序,单击运行程序,单击“产生数组产生数组”按钮,按钮,产生产生10个随机数并显示出来。单击个随机数并显示出来。单击“求求最小数及位置最小数及位置”按钮将找出其中的最小按钮将找出其中的最小值及位置并在相应的文本框中显示出来。值及位置并在相应的文本框中显示出来。单击单击“退出退出”按钮,程序运行结束。按钮,程序运行结束。u10保存项目,至此本任务全部完成。保存项目,至此本任务全部完成。注意:在以后的任务中,注意:在以后的任务中,“退出退出”按钮的按钮的功能说明及代码编写不再叙述。功能说明及代码编写不再叙述。SGD3.2 任务3-1:求一维数组的最小值及其位置一维数组u归纳说明:归纳说明:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBNET 程序设计 实用教程
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内