第7章使用数组整理幻灯片课件

上传人:youn****329 文档编号:136945409 上传时间:2020-07-04 格式:PPT 页数:101 大小:430.50KB
返回 下载 相关 举报
第7章使用数组整理幻灯片课件_第1页
第1页 / 共101页
第7章使用数组整理幻灯片课件_第2页
第2页 / 共101页
第7章使用数组整理幻灯片课件_第3页
第3页 / 共101页
第7章使用数组整理幻灯片课件_第4页
第4页 / 共101页
第7章使用数组整理幻灯片课件_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《第7章使用数组整理幻灯片课件》由会员分享,可在线阅读,更多相关《第7章使用数组整理幻灯片课件(101页珍藏版)》请在金锄头文库上搜索。

1、第7章使用数组,VisualBasic程序设计教程,VisualBasic程序设计教程,2,本章介绍:构造结构类型数组列表框组合框一些典型算法,VisualBasic程序设计教程,3,数组(Arrary)是构造的一种新的数据表达。数组是一组具有相同变量名和类型的数据(叫做数组元素)的连续存储单元。数组中包含了一个或多个元素下标给出了数组中元素的顺序数组和循环结构配合,使数据处理变得容易。,7.1概述,VisualBasic程序设计教程,4,【例7-1】设计程序,如图。对一批马拉松运动员按成绩(单位:小时)排名次。控件:2个标签2个列表框1个命令按钮,7.2给运动员排名次,VisualBasic

2、程序设计教程,6,排序又称分类。有多种方法:选择分类法、冒泡分类法等。对n个数a(1)a(n),采用选择分类法的算法是:先在n个数中选最小数,放在第1个数组元素中。取第1个数,与后面n-1(即2到n)个数逐个比较。若第1个数大,则a(1)与参与比较的元素中的值进行互换再将互换后的第1个数与剩下的数据比较,直到最后。,VisualBasic程序设计教程,7,再在第2至n个元素中,选最小数,放在第2个数组元素中。取第2个数,与后面n-2(即3到n)个数逐个比较。若第2个数大,则与数组元素中的值进行互换,直到最后。重复以上步骤,直至在最后两个数中选取最小数,放在第n-1个数组元素中。,VisualB

3、asic程序设计教程,8,最后第n个元素已是最大数了。在第i至n个元素中,选最小数并放入a(i)的程序是:Forj=i+1Ton将a(i)与a(i+1)a(n)逐一比较Ifa(i)a(j)ThenTemp=a(i):a(i)=a(j):a(j)=Temp互换Nextj然后再将i从1循环到n-1,就可构成分类(排序)程序段。,VisualBasic程序设计教程,9,PrivateSubCommand1_Click()DimName1()AsString,Score()AsSingle动态数组声明DimTempNameAsString,TempScoreAsSingleDimNAsInteger,

4、iAsInteger,jAsIntegerN=Val(InputBox(“请输入运动员人数”,“输入”)ReDimName1(N),Score(N)根据人数动态定义数组的大小List1.Clear:List2.Clear清除两个列表框中数据Fori=1ToN输入姓名和成绩,放入左列表框Name1(i)=InputBox(请输入第AverageCount=0开始计数,并输出高于平均分的数据Fori=1To30IfScore(i)AverageThenPrintID(i);Score(i),Count=Count+1:IfCountMod5=0ThenPrint每行显示5人EndIfNextiPr

5、int:Print人数=;Count输出人数EndSub,VisualBasic程序设计教程,25,7.3.2使用一维数组【例7-3】编程:按编号顺序输入10位同学的编号和姓名,现班上又增一位同学,要求他的编号ID1和姓名Name1仍按编号顺序插入到数组ID和Named中。该题主要解决两个问题:一个是如何找到合适的位置可以利用循环,与数组元素逐个比较若发现一个比ID1大的编号ID(i)就停止比较,则插入位置就在ID(i)之前。若没有一个编号比ID1大的,则插到数组最后。,VisualBasic程序设计教程,26,另一个是如何插入到数组中。移动ID(i)ID(10)及Named(i)Named(

6、10)的位置,空出i所在位置,插入ID1和Name1。移动位置时,可以采用这样的算法:把ID(10)移到ID(11),ID(9)移到ID(10),把ID(i)移到ID(i+1)。因为这样移动时,不会丢失原来的数据。,VisualBasic程序设计教程,27,7.3.2使用一维数组数组元素插入ConstN=10PrivateSubCommand1_Click()DimID(N+1)AsLong,Named(N+1)AsStringDimID1AsLong,Name1AsString,iAsInteger,jAsIntegerFori=1ToN输入ID(i)=Val(InputBox(请输入第:N

7、exti输出起始数据,VisualBasic程序设计教程,28,ID1=Val(InputBox(请输入要插入的编号,)Name1=InputBox(请输入要插入的姓名,)Fori=1ToN确定要插入的位置iIfID(i)ID1ThenExitForNextiForj=NToiStep-1将iN的数据后移ID(j+1)=ID(j):Named(j+1)=Named(j)NextjID(i)=ID1:Named(i)=Name1插入Print:Fori=1ToN+1:PrintID(i);Named(i);/;:Nexti输出插入后的数据EndSub,VisualBasic程序设计教程,29,7

8、.3.2使用一维数组-排序改进【例7-4】改写例7-1中有关排序的程序段,使其采用改进的选择分类法。例7-1中,每发现一个a(i)a(j)时,就要交换数据,事实上对第i趟,只要把a(i)a(n)中最小数与a(i)交换就可以了。改进的选择分类法采用:在第i至n个元素中,确定最小数所在的位置Position,即下标,再将a(i)与a(Position)交换数据。,VisualBasic程序设计教程,30,改进的选择分类法采用:在第i至n个元素中,确定最小数所在的位置Position,即下标,再将a(i)与a(Position)交换数据。Fori=1Ton-1按成绩从小到大排序Position=i先

9、假定Score(i)就是最小值,故记录下标iForj=i+1TonIfScore(Position)Score(j)ThenPosition=j记录更小的Nextj,VisualBasic程序设计教程,31,IfiPositionThen下标Position与下标i的数据交换TempName=Name1(i):Name1(i)=Name1(Position)Name1(Position)=TempNameTempScore=Score(i):Score(i)=Score(Position)Score(Position)=TempScoreEndIfNexti,VisualBasic程序设计教程

10、,32,7.3.3使用ForEach/Next语句访问数组采用ForEach/Next语句可以遍历数组中所有元素格式:ForEach元素In数组名循环体Next其中元素必须为一个Variant类型的变量只要数组有一个元素,就会进入循环。,VisualBasic程序设计教程,33,循环的执行过程是:分别对数组中的第一个元素、第二个元素、最后一个元素,按序执行一次循环体。例如要输出数组A中各元素及它们的和,可用:S=0ForEachXInAX为Variant类型的变量,不必赋值;A为数组名PrintX;:S=S+XNextPrint:PrintS,VisualBasic程序设计教程,34,7.4.

11、1列表框(ListBox)列表框和组合框可解决单选框和复选框选项数量的限制。列表框控件可显示多个项目列表列表框往往可让用户选择一个或多个项目。例如通过选择字体来改变标签的文字字体。系统提供的字体有100多种,使用ListBox,可以它们都放入列表框,利用滚动条,方便选择。,7.4使用列表框和组合框控件,VisualBasic程序设计教程,35,列表框和组合框可解决单选框和复选框选项数量的限制。列表框控件可显示多个项目列表列表框往往可让用户选择一个或多个项目。例如通过选择字体来改变标签的文字字体。系统提供的字体有100多种,使用ListBox,可以它们都放入列表框,利用滚动条,方便选择。1创建列

12、表框控件创建列表框在工具箱内选取列表框工具。,VisualBasic程序设计教程,36,2列表框控件的主要属性(名称)Name,设置名称,字符型。缺省值为List1List:保存选项的字符串数组。如第i项为List(i-1)ListCount:列表框项目总数,共有0(ListCount-)个ListIndex:选中的项目在列表框中的位置(索引值或下标)第一项的索引值为0,第二项的索引值为1。Selected:列表框某项的选中状态,布尔型数组。,VisualBasic程序设计教程,37,Sorted:设置列表框项目是否排序。True为升序排列Text:最后一次选中的选项的文本,该属性不能直接修改

13、MultiSelect:确定列表框是否允许多选。可设置0、1、2SelCount:列表框中选中的项目数属性举例,如:Str=List1.List(2)IfList1.Selected(i)ThenMsgboxList1.List(i)MultiSelect为0:List1.Text等价List1.List(List1.ListIndex),VisualBasic程序设计教程,38,3列表框控件的方法(1)AddItem方法AddItem方法用于建立列表框数据项格式:列表框对象名称.AddItem项目字符串,索引值索引值表示添加的位置,如3,表示添加的下标为3,VisualBasic程序设计教程

14、,39,省略索引值,则将项目添加在列表框最后。如:List1.AddItemHello将字符串添加到列表框最后List1.AddItemList2.List(0)将List2中的第一条放入List1List1.AddItem计算机,2将字符串添加到List1第2条后,VisualBasic程序设计教程,40,(2)RemoveItem方法RemoveItem方法清除列表框一项数据项格式:列表框对象名称.RemoveItem索引值它通过索引值删除列表框中指定项目。如:List1.RemoveItem2删除List1中下标为2的项目,VisualBasic程序设计教程,41,(3)Clear方法C

15、lear方法用于清除列表框中所有项目。格式:列表框对象名称.Clear4列表框控件的常用事件Click事件DblClick事件,VisualBasic程序设计教程,42,【例7-5】通过选择字体改变标签文字字体。如图。Screen是系统对象,指整个Windows桌面FontCount属性提供了可用的字体数目Fonts属性数组提供了具体的字体,如Fonts(i)为一种字体控件:1个标签和1个列表框事件过程:Form_Load:标签属性设置,各种字体放入列表框中;List1_Click:实现修改标签字体。,VisualBasic程序设计教程,43,【例7-5】通过选择字体改变标签文字字体。如图。程

16、序代码如下:PrivateSubForm_Load()DimiAsIntegerLabel1.FontSize=18Label1.Caption=浙江大学ComputerFori=0ToScreen.FontCount1字体名放入List1List1.AddItemScreen.Fonts(i)NextiEndSubPrivateSubList1_Click()Label1.FontName=List1.TextEndSub,VisualBasic程序设计教程,44,【例7-6】程序运行界面如图。控件:1个标签框、1个文本框1个列表框命令按钮“添加”将文本框中的内容按升序添加到列表框中,然后删除文本框内容,并把焦点定位于文本框。如果列表框中的项目数超过了30,则显示“个数已到,不能再添加”的信息。,VisualBasic程序设计教程,45,命令按钮“删除”删除列表框中所选的项目(允许多选)。注意:删除一个,ListCount的值就会减1。主要属性设置:Listl的Sorted:由于要求升序,设置为True。Listl的MultiSelect:由于允许多选,设置为2。,V

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号