vb各章知识点总结_第1页
vb各章知识点总结_第2页
vb各章知识点总结_第3页
vb各章知识点总结_第4页
vb各章知识点总结_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

vb各章知识点总结第一章:VisualBasic概述1.11.1VisualBasic简介•具有面向对象的可视化设计工具•事件驱动的编程机制•提供了易学易用的应用程序集成开发环境•结构化的程序设计语言•支持多种数据库的访问•支持DDE、DLL、OLE技术•完备的Help联机帮助功能1.1.2面向对象的程序设计方法基础2.2.对象及对象类:动作体的逻辑模型,称为“对象”3.3.属性:属性是用来描述对象的特性。4.4.方法:方法指对象可以进行的动作或行为。VB对象具有属性、方法和事件。属性是描述对象的数据;方法告诉对象应做的事情;事件是对象所产生的事情,事件发生时可以编写代码进行处理。VB的窗体和控件是具有自己的属性、方法和事件的对象。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。日常生活中的对象,如小孩玩的气球同样具有属性、方法和事件。气球的属性包括可以看到的一些性质,如它的直径和颜色。其它一些属性描述气球的状态(充气的或未充气的)或不可见的性质,如它的寿命。通过定义,所有气球都具有这些属性;这些属性也会因气球的不同而不同。气球还具有本身所固有的方法和动作。如:充气方法(用氦气充满气球的动作),放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。所有的气球都具备这些能力。1.1.3基于Windows环境下的应用程序的工作方式——事件驱动在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。因为事件的顺序是无法预测的,所以在代码中必须对执行时的“各种状态”作一定的假设。当作出某些假设时(例如,假设在运行来处理某一输入字段的过程之前,该输入字段必须包含确定的值),应该组织好应用程序的结构,以确保该假设始终有效(例如,在输入字段中有值之前禁止使用启动该处理过程的命令按钮)。在执行中代码也可以触发事件。例如,在程序中改变文本框中的文本将引发文本框的Change事件。如果Change事件中包含有代码,则将导致该代码的执行。如果原来假设该事件仅能由用户的交互操作所触发,则可能会产生意料之外的结果。正因为这一原因,所以在设计应用程序时理解事件驱动模型并牢记在心是非常重要的。在VB中事件的调用形式是:PrivateSub对象名_事件名(事件内容)EndSub1.4VisualBasic的集成开发环境VB集成开发环境(IDE——IntegratedDevelopingEnvironment)由以下元素组成:1(标题栏用于显示正在开发或调试的工程名和系统的工作状态(设计态、运行态、中止态)。2(菜单栏用于显示所使用的VisualBasic命令。VB6.0标准菜单包括:3(工具栏在编程环境下用于快速访问常用命令。缺省情况下,启动VB后显示“标准”工具栏,附加的编辑、窗体设计和调试的工具栏可以从“视图”菜单上的“工具栏”命令中移进或移出。4(窗体设计器用来设计应用程序的界面。启动VB后,窗体设计器中自动出现一个名为Form1的空白窗体,可以在该窗体中添加控件、图形和图片等来创建所希望的外观,窗体的外观设计好后,从菜单中选择“文件”?“保存窗体”?在保存对话框中给出合适的文件名(注意扩展名),并选择所需的保存位置?确定。需要再设计另一个窗体时,单击工具栏上的“添加窗体”按钮即可。5(控件(工具)箱由一组控件按钮组成,用于设计时在窗体中放置控件。除了缺省的工具箱布局之外,还可以通过从上下文菜单中选定“添加选项卡”并在结果选项卡中添加控件来创建自定义布局。6(弹出式(上下文)菜单在要使用的对象上单击鼠标右键即可打开快捷菜单,其上会出现与当前对象相关的经常执行的操作,以加快操作速度。7(工程管理器窗口用于浏览工程中所包含的窗体和模块,还可以从中查看代码、查看对象。8(属性窗口是VB中一个比较复杂的窗口,其中列出了对选定窗体和控件的属性设置值。VB中正是通过改变属性来改变对象的特征,如大小、标题或颜色。9(对象浏览器列出工程中有效的对象,并提供在编码中漫游的快速方法。可以使用“对象浏览器”浏览在VB中的对象和其它应用程序,查看对那些对象有效的方法和属性,并将代码过程粘贴进自己的应用程序。,,(对象浏览器右击窗体中的对象、从工程管理器中点“查看代码”按钮。11(窗体布局窗口FormLayoutwindow允许使用表示屏幕的小图象来布置应用程序中各窗体的位置。12(立即、本地和监视窗口这些附加窗口是为调试应用程序提供的,它们只在IDE之中运行应用程序时才有效。1.5创建VB应用程序的一般步骤一个VB程序也称为一个工程,由窗体、标准模块、自定义控件及应用所需的环境设置组成。开发步骤一般如下:1(创建程序的用户界面2(设置界面上各个对象的属性3(编写对象响应事件的程序代码4(保存工程5(测试应用程序,排除错误6(创建可执行程序•硬件环境:486以上处理器、16MB以上内存、50MB以上的硬盘空间、CD-ROM驱动器、鼠标等•软件环境:Windows95或indowsNT3.51以上版本•初次安装:1)启动Windows952)插入具有VB6.0系统的光盘3)运行VB6.0安装程序Setup.exe4)选择“典型安装”或“自定义安装”或“最小安装”•添加或删除VB6.0部件:1)插入具有VB6.0系统的光盘2)运行“开始/设置/控制面板”3)双击控制面板中的“添加/删除程序”图标4)选择其中的“VisualBasic6.0”选项•启动1.桌面:开始/程序/VisualBasic6.02.建立快捷方式,双击图标•退出1.选择文件菜单下的退出命令2.单击窗口关闭按钮举例:1启动VB,开始新工程2创建程序的用户截面3加入程序代码4保存工程文件5运行和调试应用程序,检查并排除程序中的错误6生成可执行程序7打印窗体和代码(7)列表框(ListBox):用于列出可供用户选择的项目列表。用户可以从中选择一个或多个项目。属性:名称:(通常以“List”作为前缀。)List:列表属性。用于保存列表的内容。List实际上是一个一维数组,数组中元素的值,就是在执行时看到的列表项(item)一维数组:List中有5个元素,List(0),List(1)List(2),List(3),List(4)列表项文本List(0)=68List(1)=78List(2)=88List(3)=80List(4)=76数组名:List列表项序号:0,1,2,3,4,(从0开始)列表项文本(数组元素值)分别为:6878888076Listcount:列表框内所有选项的总数,也就是List()数组元素的总个数。ListIndex:用户最后单击的列表项在List()数组中的编号顺序。(无选中时其值为-1)Text:列表项的正文。其值为最后选中的列表项的文本。请记住如下关系:[对象名称(]List(ListIndex)=TextColumns:列表框显示形式。设定Listbox的列表项若超过显示范围时,其卷动方式使用垂直滚动条或是水平滚动条。取值:,:(默认值)使用垂直滚动条。逐行显示列表项,可能有垂直滚动条。1~n:使用水平滚动条。此时列表框内一次可显示的列数(Column)即为n值。MultiSelect:设定是否允许用户多重选取对象的列表项取值:,:不能多重选取。(默认值),:简易多重选取。(用鼠标或空格键来选取,一次一个),:高级多重选取。可用,shift,或,ctrl,来选取。(类似文件选取)Selected:设定列表项是否被选取的状态。它是一个与List大小相同的数组。其中各元素的取值:,rue:被选取。,alse:不被选取。(默认值)Sorted:排序属性。设定列表项是否要照ASCII代码排序。(字母顺序)取值:True:是(不区分大小写)False:否。(默认值)方法:(,28)AddItem:添加列表项。格式:[对象名称(]AddItem<列表项文本>[,插入位置序号]说明:,、若不指定位置,则插入到列表项末尾。,、新列表项插入后,原来位置及其后的列表项顺序下移。Clear:删除列表所有项目。RemoveItem:删除列表项。格式:,对象名称(,RemoveItem删除项序号事件:Click:单击事件。Dblick:双击事件(使用较少)应掌握:,(如何添加或删除列表框中的列表项,方法一:在设计态:定制List属性。(向列表中添加列表时,按,ctrl,+[Enter]换行。)方法二:在程序代码中:用AddItem,RemoveItem等方法进行。,(如何知道目前用户所选取的列表项和目前列表框中的列表项数目,用户目前所选的列表项:Text的值。目前列表框中的列表项数目:ListCount的值。(8)组合框(comboBox):将文本框和列表框结合在一起,在列表框中所选项目的文本会自动填入文本框。(与列表框相比,组合框一次只能选取一个列表项)工具箱中的图标P25;在窗体中的形式属性:同Listbox有:List,ListCount,ListIndex,Text,Sorted等等。Style:外观属性。设置组合框的类型和功能。取值:(实验指导书P40)0:(默认值)系统将创建一个带有下拉式列表框的组合框。称为组合下拉式的组合框。它的下拉式窗体不是一直显示的。(如word中字体大小选择框),此状态下用户可将所内容直接输入到文本框中。1:系统创建一个由文本框和列表框直接结合在一起的简单组合框。称为组合式的组合框。它的下拉式窗体是一直显示的。如:word中字体菜单对话框中的字体、字号对话内容。,:系统创建一个没有文本框的下拉式列表框。单击列表框右侧的按钮,文本框才会显示出来。称为单纯下拉式的组合框。此状态下用户不可在文本框中输入,只能在列表中选择。且下拉式窗体也不是一直显示的。Text:文本属性。其取值为用户从列表框中选定的文本内容或直接输入文本框中的内容。事件:对不同类型的组合框,响应的事件是不相同的。对于,,,类型的组合框:单击事件。对于,类型的组合框:双击事件。带有文本框的,,,组合框:在编辑文本时可引发Change事件。说明:,、用户若只需要使用单选的列表框,则可用组合框来代替。,、如何添加或删除组合框中的列表项,(方法:同列表框),、如何知道用户目前所选取或输入的列表项是什么,由于组合框不允许多重选取,所以,,ext属性值为内容;Listindex属性值为序号。方法:同列表框。图像:(image):主要用于图像的显示、放大、缩小等静态显示图像场合。图像框中不能容纳其他控件、也不能绘制图形和显示文本。而图片控件框中可以。图像在工具箱中的图标P25;在窗体中的形式属性:名称:visible:设置此对象在执行时是否看得见。取值:True:(默认值)看得见。False:隐藏。enabled:可用否。picture:设定图像框中代表的图片名称。其值在设定时的格式为:盘符\路径\图片文件名(.ico图标文件.bmp位图文件)stretch:用来决定图像控件的大小是否要随着所载入图片的大小而变化。取值:true:随图片的大小而变化。False:(默认值)不随图片的大小而变化。事件:类似窗体。方法:MoveRefresh(10)图片:(picturebox):不仅可以装入图像,还可以在它上面绘制各种图形和显示正文、放置控件(类似框架控件)。图片在工具箱中的图标P25;在窗体中的形式水平滚动条(horizontalscrollbar)、垂直滚动条(verticalscrollbar):滚动条:用来附加在那些不能自动支持滚动的应用程序或控件中水平滚动或垂直滚动查阅大量信息。一般出现在文本框、列表框右边;用来调整数据或选择输入。(如word中字体、段落对话框中)滚动条在工具箱中的图标P25;在窗体中的形式属性:(实验指导书P18)名称:(通常以“Hsb”、“Vsb”作为前缀。)Max/Min:定义了Value属性值所能出现的最大值和最小值。说明:1、一开始使用滚动条时,Max为32768,Min为0。2、水平滚动条位于最左边时、垂直滚动条位于最上边时为Min;水平滚动条位于最右边时、垂直滚动条位于最下边时为Max。Value:滚动条目前所在位置所对应的数值。(也可在代码中设定。)LargeChange:当用户在滚动块的上方、下方(左方、右方)单击时Value所增加的值。默认值为1。SmallChang:当用户在滚动条两端的箭头按钮上单击时Value所增加的值。默认值为1。事件:Change:在滚动块移动后(即Value值改变时)发生。例如,可用一个滚动条的Change事件过程更新一个TextBox控件中滚动条的Value属性的设置。或者可以利用Change事件过程在一个工作区里显示数据和公式,在另一个区域里显示结果。Scroll:在拖动滚动块时发生。单击滚动箭头或滚动条时不发生。方法:Move:用以移动滚动条。Refresh:强制全部重绘一个滚动条。SetFocus:设置焦点。将焦点移至指定的滚动条上。时间:(timer)(计时器):用来实现与时间有关的功能。时间控件在工具箱中的图标P25;在窗体中的形式属性:名称:enabledinterval用来设定引发timer事件过程的间隔时间,单位为1/1000秒。事件:(时间控件只有一个事件)timer:它会按照interval所设定的时间定时引发。说明:时间控件的使用方法:1(在form上放置一个时间对象。2(在属性窗口中设定其interval属性。3(填写timer事件的程序内容,4(当程序开始执行后,将不会看到它的图标,每隔interval定义的时间内,程序会触发一次timer事件。时间控控件应用举例:windows中计时器,word中的定时保存文件,定时更新屏幕画面(屏幕保护程序)等等。:2'>Text取值:空字符串:(默认值):可以看到输入的字符。某一字符:用户每输入一个字符,文本框内就出现一个该字符。MaxLength:最大长度属性。设置文本框的Text属性中所能放入的字符总个数。取值:,:(默认值)。,,32KB。MultiLine:多行属性。设置用户是否可在文本框内输入多行文本。取值:True:可多行输入。False:(默认值)只能单行输入。Alignment:对齐属性。设置文本框内的文本内容的对齐方式。取值:0:(默认值)靠左对齐。1:靠右对齐。2:居中对齐。说明:本属性只在MultiLine为True时有效。TabStop:[Tab]键属性。设置是否可用[Tab]键来移动焦点到另一个对象上。取值:True:(默认值)可以。False:不可以。其它属性类似窗体。方法:Refresh:刷新。SetFocus:设置焦点。通过本方法,可以使光标指向指定的文本框。事件:Change:当文本框的内容发生变化时,就引发本事件。LostFocus:当光标离开文本框时,引发本事件。Keypress:当用户按下或松开键盘上某个按键时,发生本事件。(2)标签:(Label)主要用于在窗体上增加文字说明。标签在工具箱中的图标P25;在窗体中的形式属性:名称:标签名称。(通常以“Lbl”作为前缀。)Caption:标题属性。本属性的值为显示在标签上的内容。AutoSize:大小自适应属性。即标签的大小是否随着标题内容的多少而自动变化。取值:True:是。False:(默认值)否。FontName:字体名称。设置在标签内显示的文本的字体名称。方法:Refresh:刷新。Move:移动。事件:Click:单击事件。DblClick:双击事件。(3)命令按钮:(commandbutton):用户用鼠标单击命令按钮,表示要执行某项功能。属性:名称:(通常以“Cmd”作为前缀。)Caption:标题。其值就是在命令按钮上显示的文本。Default:设定此命令按钮是否为窗体的默认按钮。取值true:在窗体启动(Active)后,按Enter键马上就会执行的命令按钮。(同一窗体中只能有一个命令按钮的此项属性值为true)False:否。Enabled:设定命令按钮是否可用。取值true:(默认值):可用。false:不可用。(命令按钮呈灰色)事件:click:单击事件方法:SetFocus:命令按钮经过SetFocus方法后,将取得焦点。(用户此时按回车键将会执行此命令按钮。)(4)复选框:(checkbox):用来设定程序的执行状态。属性:名称:(通常以“Chk”作为前缀。)caption:标题,显示在复选框的右方,指明此复选框所代表的功能。Value:表示复选框在执行时的三种状态。取值:0:不复选,执行时无勾。1:复选,执行时有勾。2:灰色,表示用户不能修改这个设定值,只能看到它目前状态。事件:click:单击事件。方法:Move:Refresh:(5)选项按钮:(optionbutton)用来设定程序的执行状态。属性:名称:(通常以“Opt”作为前缀。)caption:标题alignment:设置标题文本的对齐方式。取值:0:(默认值)靠左对齐1:靠右对齐2:靠中对齐value:其值决定该选项按钮是否被选中。取值:true:表示此选项按钮被选中。False:表示此选项按钮没选中。说明:一个窗体或一个框架内的选项按钮只能有一个被选中,(不同框架内的选项按钮互不干扰)若用户不设定哪一个选项按钮的值为true,则系统指定第一个选项按钮的value值为true。事件:click:单击。方法:Move:Refresh(6)框架:(frame)可以用框架控件将其它各自独立的控件(一般指复选框、选项按钮等)组合在一组中。如实验指导书P13、P16。属性:名称captiontopleftwidthheightfontforecolor等等事件:clickdblclick等等说明:1、在使用框架控件将其它控件分组时必须先绘制框架控件,后绘制其中的控件。2、在一个框架内的控件可以进行整体的激活、屏蔽、移动等等。3、在同一个窗体中的多个选项按钮,只有一个可以被选中,但在窗体中可以用框架将选项按钮分类,在同一框架内的多个选项按钮中只有一个可以被选取。不同框架内的选项按钮彼此互不干扰。4、要将控件画在框架之中,不能双击控件,因为那样将使控件重叠在框架的上面,必须单击工具图标,然后在框架内拖动后释放,这样的所画的控件在框架之中。第三章:VisualBasic语言基础本章内容及要求:1熟悉VB程序中代码和语句书写规则;2掌握VB的数据类型;3掌握VB的运算符和表达式的使用;4掌握常用内部函数的使用;本章重点:变量和常量的定义及使用、运算符和表达式的使用及常用内部函数的使用。本章难点:数据类型、内部函数。3.1程序代码的组织方式一个VB程序由窗体界面和程序代码两部组成,通过程序代码把窗口界面的各个对象以及应用中的其它元素联系在一起。程序代码部分则由若干被称为“过程”的代码行及向系统提供某些信息的说明组成。过程及说明又被组织在“模块”之中。将设计的过程代码及相关说明合理地组织到不同的模块之中,也就是设计代码的结构,在创建VB应用程序时是最为重要的一个步骤。一过程所谓“过程”,就是具有特定书写格式、包含若干可被作为一个整体执行的代码的组合。根据执行方式,可把“过程”分为“事件过程”和“通用过程”两类。二模块模块是VB用于将不同类型过程代码组织到一起而提供的一种结构。在VB中具有三种类型的模块:窗体模块标准模块类模块。3.2.VB代码书写规则(1)程序中不区分字母的大小写,Ab与AB等效;(2)系统对用户程序代码进行自动转换:1)对于VB中的关键字,首字母被转换成大写,其余转换成小写2)若关键字由多个英文单词组成,则将每个单词的首字母转换成大写3)对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式(1)在同一行上可以书写多行语句,语句间用冒号(:)分隔(2)单行语句可以分多行书写,在本行后加续行符:空格和下划线_(3)一行允许多达255个字符3.3VB的数据类型3.3.1.数据类型VB的标准数据类型类型存储空数据类型关键字前缀范围符间字节1个字数ByteByt0到255型节值数2个字整型Integer%Int-32,768到32,767据节类长整4个字-2,147,483,648到Long&Lng型型节2,147,483,647负数:-3.402823E38到单精4个字Single~Sng-1.401298E-45;正数:度型节1.401298E-45到3.402823E38负数:-1.79769313486232E308-双精8个字4.94065645841247E-324;Double#Dbl度型节正数:4.94065645841247E-3241.79769313486232E308从-922,337,203,685,477.5808货币8个字Currency@Cur型节到922,337,203,685,477.58072个字逻辑型BooleanBlnTrue或False节8个字100年1月1日到9999年12日期型DateDtm节月31日4个字对象型ObjectObj任何Object引用节10字节变长字符String$Str加字符0到大约20亿型串长度定长字符字符串String$Str1到大约65,400型长度变体数字16个字任何数字值,最大可达Double的VariantVnt型节范围22个字变体字符节加字VariantVnt与变长String有相同的范围型符串长度注意:1)VB中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多。为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。2)逻辑型数据只有True和False两个值,转换成整型时,True=-1,False=0,将其它类型转换成逻辑型时,非0数转换为True,0转换为False。3)字符型可以包括所有的西文字符和汉字,字符必须用双引号括""起来,如:"abc123"4)日期型数据按8字节的浮点数来存储,日期型数表示方式有两种:可以用号码符#括起来,也可以用数字序列表示(小数点左边的数字代表日期,右边代表时间,0为午夜,0。5为中午12点,负数表示是1899年12月31日前的日期和时间)。如:#3/22/2002##2002-3-2214:30:20#DimTAsDateT=-2.5PrintT'打印出来的结果是1899-12-2812:00:00,)任何数据类型的数组都需要20个字节的内存空间,加上每一数组维数占4个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以4个2字节之Integer数据元所组成的一维数组中的数据,占8个字节。这8个字节加上额外的24个字节,使得这个数组所需总内存空间为32个字节。2.变量与常量(1)变量或常量的命名规则1)必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度?255个字符;2)不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim、Sin3)VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示4)为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。(2)变量声明1)用Dim语句进行显式声明语句形式:Dim变量名[As类型]如:DimintXAsinteger说明:?如果没有As类型,则默认为变体类型。?可在变量名后加类型符来代替As类型如:DimintX%?一条语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用;?字符串变量根据其存放的长度是否固定,定义方法不同:定长字符串:DimstrAAsString*10表示最多存放10个字符,如果赋值不足10个,则右补空;若多于10个,则多余部分截去。不定长字符串:DimstrAAsString最多可存放2MB个字符2)隐式声明VB中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型的。隐式声明容易造成错误,为了调试程序方便,一般对使用的变量都进行声明,可以在通用声明段使用OptionExplicit语句来强制显式声明所有变量。(3)常量1)直接常量指在程序中直接给出值的数据,如:123、123&、123.45、1.234E2、123D3分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。八进制常数:在数值前加&O,如&O123十六进制常数:在数值前加&H,如&H1232)用户声明的符号常量用Const来声明:Const符号常量名[As类型]=表达式如:ConstPI=3.14159'声明了常量PI,代表3.14159,单精度型ConstMAXAsInteger=&O144''声明了常量MAX,代表八进制数144,整型ConstCOUNT#=45.67'声明了常量COUNT,代表45.67,双精度型3)系统提供的常量系统定义的常量位于对象库中,在对象浏览器中的VisualBasic(VB)和VisualBasicforAplication(VBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。如:Form1.WindowsState=vbMaximized表示将窗口极大化。3.变量作用域与变量说明语句1)变量作用域变量的有效作用范围称为变量作用域。VB有以下三个作用域等级,见表3:等级范围局部在过程中说明,仅在说明它的过程有效窗体、模块在窗体或模块中说明,在定义该变量的模块或窗体的所有过程内均有效。在模块或窗体中说明,在工程内的所有全局(公有)过程中都有效3.4运算符与表达式本节课重点:运算符的功能及优先级表达式的书写及运算规则VB中的运算符和表达式可分为:算术运算符与算术表达式、关系运算符与关系表达式、逻辑运算符与逻辑表达式1(算术运算符VB的算术运算符有以下几种:。,:加法运算,也适合于字符串的之间的合并运算。,,:加法运算。,*:乘法运算。,/:除法运算。,\:整除运算。,Mod:求余运算。例如:aModb表示a被b整除以后的余数。,^:幂运算。A^B表示以A为底的B次方。把常量、变量等运算元素用算术运算符连接起来的式子称为“算术表达式”。例如:a*b/(c*d)3.14159265*r^2等带有括号的算术表达式在运算时将优先进行括号内的运算注意:(1)/和,的区别:1/2=0.5,1,2=0(2)Mod运算中,结果与被除数同号例如:-9Mod7结果为-2字符串运算符与字符串表达式字符串运算符有:,、+。功能是字符串连接例如:"ABCD"+"EFGHI"„结果为:"ABCDEFGHI""VB"&"程序设计教程"'结果为:"VB程序设计教程"说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是:+(连接运算):两个操作数均应为字符串类型;&(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。3.4.2关系运算符与关系表达式关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。关系运算也称比较运算,它表示不等式的真或假,VB共提供六种运算符,分别是=(等于),>(大于),<(小于),>=(大于等于),<=(小于等于)和<>(不等于)。关系表达式就是用关系运算把两个比较对象连接起来的式子。?比较对象可以是变量、常量和算术表达式。例如:a<32x+y>=z/2b$<>"Basic"object1isobject2?关系表达式的运算是采用“按值比较”的方法,即先求出运算符两边的“值”,若是变量,则取其当前值,如果两端的值满足条件,则结果为“True”,否则为“False”。3.4.3逻辑运算符与逻辑表达式逻辑运算是对逻辑值进行的运算,Not逻辑非为单目运算符(要求一个操作数),其它为双目运算符。运算符说明说明例结果取反操作数为假,结果为真,NotNotFT操作数为真,结果为假与操作数均为真时,结果才AndTAndFF为真TAndTT或操作数中有一个为真时,OrTOrFT结果为真FOrFF异或操作数相反时,结果才为XorTXorFT真TXorTF逻辑运算的优先次序是:Not?And?Or?Xor2(逻辑表达式逻辑表达式是用逻辑运算符把逻辑变量连接起来的式子。例如:a>=2*3.141159*rAnd(x<>5OrNotb)x>2OrText1.text=”Microsoft”表达式的书写:(1)运算符不能相邻。例a+*b是错误的。(2)乘号不能省略。例x乘以y应写成:x*y(3)括号必须成对出现,均使用圆括号,可以嵌套使用。(4)表达式从左到右在同一基准并排书写,不能出现上下标(5)要注意各种运算符的优先级别,为保持运算顺序,在写,,表达式时需要适当添加括号()3.4.4(运算规则表达式中出现了多种不同类型的运算符时,其运算符优先级如下:算术运算符>关系运算符>逻辑运算符说明:1(当一个表达式中出现多种运算符时,首先进行算术运算,接着关系运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。2(可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。2.3VB的公共函数1.数学函数VB中常用的数学函数函数名功能示例结果Sqr(x)求平方根Sqr(9)3Log(x)求自然对数,x>0Log(10)2.3xExp(x)求以e为底的幂值,即求eExp(3)20.086Abs(x)求x的绝对值Abs(-2.5)2.5Hex[$](x)求x的十六进制数,返回的是字符型值Hex[$](28)"1C"Oct[$](x)求x的八进制数,返回的是字符型值Oct[$](10)"12"Sgn(x)求x的符号,当x>0,返回1;x=0,返Sgn(15)1回0;x<0,返回-1Rnd(x)产生一个在(0,1)区间均匀分布的随机Rnd(x)0-1之间数,每次的值都不同;若x=0,则给出的的数是上一次本函数产生的随机数Sin(x)求x的正弦值,x的单位是弧度Sin(0)0Cos(x)求x的余弦值,x的单位是弧度Cos(1)0.54Tan(x)求x的正切值,x的单位是弧度Tan(1)1.56Atn(x)求x的反正切值,x的单位是弧度,函数Atn(1)0.79返回的是弧度值2.字符函数(1)字符串编码在Windows采用的DBCS(DoubleByteCharacterSet)编码方案中,一个汉字在计算机内存中占2个字节,一个西文字符(ASCII码)占1个字节,但在VB中采用的是Unicode(ISO字符标准)来存储字符的,所有字符都占2个字节。为方便使用,可以用StrConv函数来对Unicode与DBCS进行转换,可以用函数Len()函数求字符串的字符数,用LenB()函数求字符串的字节数。(2)常用的字符串函数函数名功能示例结果Len(x)求x字符串的字符Len("ab技术")4长度(个数)LenB(x)求x字符串的字节LenB("ab技术")8个数Left(x,n)从x字符串左边取Left("ABsYt",2)"AB"n个字符Right(x,n)从x字符串右边取Right("ABsYt",2)"Yt"n个字符从x字符串左边第Mid(x,n1,n2)Mid("ABsYt",2,3)"BsY"n1个位置开始向右取n2个字符Ucase(x)将x字符串中所有Ucase("ABsYug")ABSYUG小写字母改为大写Lcase(x)将x字符串中所有Ucase("ABsYug")absyug大写字母改为小写Ltrim(x)去掉x左边的空格Lrim("ABC")"ABC"Rtrim(x)去掉x右边的空格Trim("ABC")"ABC"Trim(x)去掉x两边的空格Trim("ABC")"ABC"在x中查找给定的字符,返回该字符Instr(x,"字符",M)在x中的位置,M=1Instr("WBAC","B")2不区分大小写,省略则区分String(n,"字符")得到由n个首字符String(3,"abcd")"aaa"组成的一个字符串Space(n)得到n个空格Space(3)""在C字符串中从N1Replace("ABCASAA",""ABC12S12Replace(C,C1,C2,N1,N开始将C2替代N2A","12",2,2)A2)次C1,如果没有N1表示从1开始3.日期与时间函数常用的日期与时间函数函数名含义示例结果Date()返回系统日期Date()02-3-19Time()返回系统时间Time()3:30:00PMNow返回系统时间和日期Now02-3-193:30:00Month(C)返回月份代号(1-12)Month("02,03,19")3Year(C)返回年代号(1752-2078)Year("02-03-19")2002Day(C)返回日期代号(1-31)Day("02,03,19")19WeekDay()返回星期代号(1-7),星期日WeekDay("02,03,17")1为1增减日期函数:DateAdd(要增减日期形式,增减量,要增减的日期变量)例:计算期末考试日期:DateAdd("ww",15,#2002/3/19#)求日期之差函数:DateDiff(要间隔日期形式,日期一,日期二)例:计算距毕业天数:DateDiff("d",Now,#2005/6/30#)日期形式日期形式yyyyqmydwwwhns意义年季月一年的天数日一周的天数星期时分秒4.转换函数函数名功能示例结果Str(x)将数值数据x转换成字符串Str(45.2)"45.2"Val(x)将字符串x中的数字转换成数值Val("23ab")23Chr(x)返回以x为ASCII码的字符Chr(65)"A"Asc(x)给出字符x的ASCII码值,十进制数Asc("a")97Cint(x)将数值型数据x的小数部分四舍五入Cint(3.6)4取整Int(-3.5)-4Int(x)取小于等于x的最大整数Int(3.5)3Fix(x)将数值型数据x的小数部分舍去Fix(-3.5)-3True将任何有效的数字字符串或数值转换CBool(x)CBool(2)CBool("0")成逻辑型FalseCByte(x)将0-255之间的数值转换成字节型CByte(6)6CDate(x)将有效的日期字符串转换成日期CDate(#1990,2,23#)1990-2-23CCur(x)将数值数据x转换成货币型CCur(25.6)25.6Round(x,N)在保留N位小数的情况下四舍五入取Round(2.86,1)2.9整CStr(x)将x转换成字符串型CStr(12)"12"CVar(x)将数值型数据x转换成变体型CVar("23")+"A""23A"CSng(x)将数值数据x转换成单精度型CSng(23.5125468)23.51255CDbl(x)将数值数据x转换成双精度型CDbl(23.5125468)23.51254685.格式输出Format函数Format函数用于制定字符串或数字的输出格式。语法:x=Format(expression,fmt)expression是所输出的内容。fmt是指输出的格式,这是一个字符串型的变量,这一项若省略的话,那么Format函数将和Str函数的功能差不多。如:语句输出Format(2,“0.00”)2.00Format(.7,“0%”)70%Format(1140,“$#,##0”)$1,140Format字符的意义字符意义字符意义0显示一数字,若此位置没有数字则补.小数点0#显示一数字,若此位置没有数字则不,千位的分隔符显示%数字乘以100并在右边加上”%”号-+$()这些字出现在fmt里将原样打出第四章VB程序的控制结构4.1算法概论1(算法的概念算法:指用计算机解决某一问题的方法和步骤。算法分类:数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。非数值算法:用于对非数值信息进行查找、排序等2(算法的特征(1)确定性:指算法的每个步骤都应确切无误,没有歧义。(2)可行性:指算法的每个步骤必须是计算机能够有效执行、可以实现的,并可得到确定的结果。(3)有穷性:指一个算法应该在有限的时间和步骤内可以执行完毕的。(4)输入性:指一个算法可以有0或多个输入数据。(5)输出性:指一个算法必须有一个或多个输出结果。3(算法的评价主要评价指标是:算法是否正确、运行的效率、占用系统资源的多少。4(算法的描述一般常用流程框图来描述算法。图形符号名称代表操作输入/输出数据的输入与输出处理各种形式的数据处理判断判断选择,根据条件满足与否选择不同路径起止流程的起点与终点特定过程一个定义过的过程流程线连接各个框图,表示执行顺序连接点表示与流程图其他部分相连接5.基本算法结构“结构化程序设计方法”规定算法有三种基本结构:顺序结构、选择结构和循环结构6(算法示例欧几里德算法——求两个自然数的最大公约数4(2赋值语句及InputBox、MsgBox函数(1)赋值语句:P59一般格式:var=<表达式>其中:var可以是变量名或属性名。功能:将表达式的值赋给“=”左边的变量(或为某个对象设置某属性值)。使用说明:?“=”左边的变量和右边的表达式的值的类型要一致。程序举例:已知半径,求圆面积已知三边长,求三角形面积P65(2)不同数据类型数据的赋值:P594(2(2InputBox函数:P60InputBox函数:用来接受用户通过键盘输入的数据。InputBox的使用形式:(P60)v=InputBox(prompt[,title][,default][,x,y][,helpfile,context])其中:v:可为变体变量、字符串变量、数值变量。功能:执行本语句,调用InputBox函数时,将在屏幕上出现一个带有提示信息的对话框,当用户从对话框的用户编辑框中输入数据并按回车键(或单击确定按钮))后,系统则把输入的数据赋给变量v。或按[Esc]键或取消按钮,则把0或空串赋给变量v。用户可通过设置InputBox函数的参数来定制提示信息对话框的形式。具体内容见P61例:P612、MsgBox函数:向用户发布提示信息,并要求用户作出必要的响应。函数格式:(P61)例:P634(3分支结构与分支结构语句?if–then结构:(可实现单分支)一般格式:格式一:ifethen语句格式二:ifethen语句组endif其中:e为条件,其形式可为:逻辑变量、关系表达式或逻辑表达式。功能:执行本语句时,判断e的值,若为true,则执行then后的语句(语句组),若为false,则执行本if语句(或endif)下面的语句。(对此功能的理解可看P64图4-7)程序举例:用InputBox输入一个数,若此数大小0,则在窗体上将它显示出来。PrivateSubForm_click()DimxAsIntegerx=InputBox("请输入一个数")Ifx>0ThenPrintxEndSub?if-then-else-endif结构:(可实现两分支)一般格式:ifethenA语句组ElseB语句组Endif功能:执行本语句时,先判断e的值:e为true:执行A语句组后转endif下一条语句继续执行。e为false:执行B语句组后转endif下一条语句继续执行。(对此功能的理解可参考P58图4-3(b))程序举例:教材P65、实验指导书P43实验5-3?if-then-elseif结构:(可实现多分支)一般格式:ife1thenA1语句组Elseife2thenA2语句组Elseife3thenA3语句组……ElseifenthenAn语句组elseA(n+1)语句组Endif功能:执行本语句时依次判断各条件的值,若有e的值为true,则执行相应的A语句组后转endif的下一条语句去继续执行。ii若所有e的值均为false,则执行else后的A(n+1)语句组后转endif的下一条语句i去继续执行。(对此功能的理解参考教材P66图4-8)一般来说,e中最多只有一个值为true。i程序举例:教材P66例4-2?Select-Case-EndSelect结构语句:(可以实现多分支结构)P66一般格式:SelectCaseeCasec1A1语句组Casec2A2语句组……CasecnAn语句组CaseElseA(n+1)语句组EndSelect其中:e:测试表达式,形式可为:算术表达式或字符表达式。c1,c2,…:测试项。形式可为以下三种:?具体取值:常量1,常量2,…..?连续的数据范围:下界值to上界值例如:8to12BtoH等等。?满足某个判决条件:Is<关系表达式>常量例如:Is>20Is<=”p”其中Is代表e(测试表达式)的值。-2程序举例:教材P67例44(4循环结构与循环结构语句循环语句:(可以使得某些语句组重复执行的语句)4(4(2for-next循环语句:P69一般格式:forv=e1toe2[stepe3]……[exitfor]循环体语句组……nextv其中:v:循环控制变量。应为整型或单精度型。e1:循环控制变量的初值。e2:循环控制变量的终值。e3:循环控制变量的步长值。功能:(执行过程):P70使用说明:?超过终值的情况:当e3>0时,指v>e2,当e3<0时,指v<e2。?循环次数的计算公式:循环次数=Int((e2-e1)/e3)+1?当step1时,此部分可以省略。?循环中执行到exitfor语句时,结束本循环语句,转本next的下一条语句去执行。程序举例:P70例:求1+2+3+4+5PrivateSubForm_click()DimsAsInteger,iAsIntegers=0Fori=1To5s=s+iNextiPrint"s=";sEndSub例:求1*2*3*4PrivateSubForm_click()DimsAsInteger,iAsIntegers=1Fori=1To4s=s*iNextIPrint"s=";sEndSub例4-4P70例4-5P71先看len、mid函数的使用:有一个字符串A=”abcd”(1)则len(A)=4len(x)可获得x字符串长度。(一个汉字为2个字符)(2)(2)mid(x,n1,n2):取子串函数作用一:取子串:mid(A,1,1)=”a”mid(A,1,2)=”ab”mid(A,3,1)=”c”从一个字符串中一个一个取出字符的方法:forI=1tolen(x)printmid(x,I,1)nextI若逆序取出:forI=len(x)to1step-1printmid(x,I,1)nextI作用二:改变一个字符串中某些字符。mid(x,2,2)=”k”4(4(3循环嵌套:P73forI=1to2fotj=1to3print“b”nextjprint“a”nextI程序举例:P73例4-6rnd(x):随机函数的使用方法:P73改变程序中rnd(X)中的X取值,观察结果PrivateSubForm_click()PrintRnd(1);Rnd(0)EndSub产生[a,b]范围内随机整数的公式:P73int((b-a+1)*rnd+a)例:生成5个3位随机整数。ForI=1to5Printint((999-100+1)*rnd+100)NextI自习P74各例isNumeric(x):判断一个字符串是否是一个数字串。若x是数字串,其值为True,若不是数字串,其值为False4(4(1do-loop循环结构:P68一般格式:4种P68dowhileedo…………[exitdo][exitdo]…………looploopwhilee格式一:(1)先判断e的值,为true,执行循环体A,为false,循环结束,转loop的下面一条语句去执行。(2)循环体执行完后,执行loop语句,返回(1)。流程图P67(a)例:(补充)求s=1+2+3+4+„„当结果大小等于55时结束PrivateSubForm_click()DimsAsInteger,nAsIntegers=0n=0DoWhiles<55n=n+1s=s+nLoopPrints,nEndSub格式二:(1)执行循环体语句组。(2)执行到loopwhile语句时,判断e的值,若为true,转(1),若为false,循环结束,转loop的下面一条语句去执行。流程图P67(b)格式三:dountile格式四:do…..….[exitdo][exitdo]…………looploopuntile格式三功能:(1)判断e的值,若为false,则执行循环体语句;若为true,则循环结束,转loop的下面一条语句去执行。(2)执行loop语句时,返回(1)流程图P68图4-13(b)格式四功能:(1)执行循环体语句(2)执行loop语句时,判断e的值,若为false,返回(1),若为true,则循环结束,转loop的下面一条语句去执行。流程图P68图4-13(a)特别说明:无论哪种格式,记住循环体执行的条件:(1)while后的条件值为true时,执行循环体,为false时,循环结束。(,)until后的条件值为false时,执行循环体,为true时,循环结束。程序举例:P68例4-3第五章第五章数组5(5(1数组的概念数组:是同类变量的一个有序的集合。例:有5个学生的数学成绩,若编程时这样存放:s1=50s2=90s3=80s4=60s5=70则5个分数分别存放在s1s2s3s4s5简单变量中若编程时这样存放:s(1)=89s(2)=67s(3)=42s(4)=68s(5)=97则5个分数分别存放在一个s数组中。一、数组命名、数组元素、数组的维数与数组的类型:上例中:数组名s命名规则同简单变量的命名规则。P45数组元素:数组中的每个成员为一个元素。如上例中s数组中有5个元素,分别为:s(1)s(2)s(3)s(4)s(5)数组元素又称为下标变量。其中:1,2,3,4,5称为下标。表示该元素在数组中排列的位置。数组的维数:一维数组:只有一个下标的数组称为一维数组。二维数组:有两个下标的数组称为二维数组。X(2,5)N维数组:有N个下标的数组称为N维数组。Score(1,3,5„„)数组的类型:(1)(1)固定大小数组:P85(2)(2)动态数组:二、数组定义:程序中的数组必须先定义,后使用。?数组说明语句一般格式:P85Dim数组名1([<维界定义>])[As<数据类型>][,数组名2(下标范围)As<数据类型>]……其中:维界定义的形式:[下界1to]上界1[,[下界2to]上界2]……例如:Dima(1to5)Asinteger本语句说明了一个一维a数组,有5个元素,分别为a(1),a(2),a(3),a(4),a(5)又例如:Dimb(1to2,1to3)AsSingle,c(3)AsInteger,d(3to5)本语句说明了三个数组:二维数组b:有2行3列,6个元素分别为:b(1,1)b(1,2)b(1,3)b(2,1)b(2,2)b(2,3)一维数组c:有4个元素:c(0)c(1)c(2)c(3)d:有3个元素:d(3)d(4)d(5)一维数组使用说明:,,下界缺省时,为0。,,若在窗体或标准模块的所有过程之前书写下列语句:OptionBase1则下界缺省值为1。,,下界1或下界2只能是常量,不允许是变量或其它表达式。5.2数组的基本操作P925(2(1数组元素的赋值1(用赋值语句给数组元素赋值例:P92DimScore(3)AsIntegerDimTwo(1,1to2)AsIntegerScore(0)=80Score(1)=75Score(2)=91Score(3)=68Two(0,1)=Score(0)PrintTwo(0,1)22通过循环逐一给数组元素赋值例:PrivateSubForm_Click()DimA(6)AsInteger,iAsIntegerDimB(1To2,1To2)AsInteger,jAsIntegerFori=0To6'使用循环给一维数组赋值并输出A(i)=Int(99*Rnd)+1PrintA(i)NextiPrintFori=1To2'利用二重循环给二维数组赋值并输出Forj=1To2B(i,j)=i*10+jPrintB(i,j);NextjPrintNextiEndSub33用InputBox函数给数组元素赋值PrivateSubForm_Click()DimA(6)AsInteger,VAsVariantFori=0To6A(i)=InputBox("给数组元素赋值","数组A赋值")PrintA(i);NextiPrintEndSub4用Array函数给数组赋值Array函数的一般使用形式如下:〈变体变量名〉=Array([数据列表])功能:将一个数据集赋给一个Variant变量,并将该变量创建成一个一维数组。例P93OptionBase1PrivateSubForm_Click()DimAAsVariant,IAsIntegerDimB(4)AsVariantA=Array(5,4,3,2,1)PrintA(1);A(2);A(3);A(4);A(5)A=Array(1.5,2.3,3.6,4.1)PrintA(1);A(2);A(3);A(4)A="NOArray"PrintA'B=Array(1,2,3,4,5,6)„注意A与B的区别EndSub5(2(2数组元素的输出例:一维数组的输出二维数组的输出P94OptionExplicitOptionBase1PrivateSubForm_click()DimkAsInteger,iAsIntegerDimA(4,5)AsInteger,JAsInteger,SAsString'生成数组k=10Fori=1To4IfiMod2<>0Then'处理奇数行ForJ=1To5k=k+1A(i,J)=kNextJElseForJ=5To1Step-1'处理偶数行k=k+1A(i,J)=kNextJEndIfNexti'数组输出IfCheck1.Value<>1ThenFori=1To4'输出到图片框ForJ=1To5Picture1.PrintA(i,J);NextJPicture1.PrintNextiElseFori=1To4'输出到多行文本框ForJ=1To5S=S&Str(A(i,J))NextJS=S&Chr(13)&Chr(10)NextiText1.Text=SEndIfEndSub5(2(3数组元素的引用例5-1P95OptionExplicitOptionBase1PrivateSubForm_Click()DimCompare(12)AsInteger,iAsIntegerDimMaxAsInteger,MinAsIntegerRandomizeFori=1To12Compare(i)=Int(90*Rnd)+10PrintCompare(i);NextiPrintMax=Compare(1):Min=Compare(1)Fori=2To12IfCompare(i)>MaxThenMax=Compare(i)ElseIfCompare(i)<MinThenMin=Compare(i)EndIfNextiPrint"最大数是:";MaxPrint"最小数是:";MinEndSub5.5程序示例P102例5-3选择排序法直接排序法OptionExplicitOptionBase1PrivateSubCmdSort_Click()DimSort(10)AsInteger,TempAsIntegerDimIAsInteger,JAsIntegerRandomizeForI=1To10Sort(I)=Int(Rnd*(100-1))+1Text1=Text1&Str(Sort(I))NextIForI=1To9ForJ=I+1To10IfSort(I)>Sort(J)ThenTemp=Sort(I)Sort(I)=Sort(J)Sort(J)=TempEndIfNextJText2=Text2&Str(Sort(I))NextIText2=Text2&Str(Sort(10))EndSubOptionExplicitOptionBase1PrivateSubCmdSort_Click()DimSort(10)AsInteger,TempAsIntegerDimIAsInteger,JAsIntegerDimPointerAsIntegerRandomizeForI=1To10Sort(I)=Int(Rnd*(100-1))+1Text1=Text1&Str(Sort(I))NextIForI=1To9Pointer=IForJ=I+1To10IfSort(Pointer)>Sort(J)ThenPointer=JEndIfNextJIfI<>PointerThenTemp=Sort(I)Sort(I)=Sort(Pointer)Sort(Pointer)=TempEndIfText2=Text2&Str(Sort(I))NextIText2=Text2&Str(Sort(10))EndSub例:5-4顺序查找程序(界面见P105)先介绍ForEach–next结构的语句:OptionExplicitOptionBase1DimSearchAsVariantPrivateSubCmd生成数组_Click()DimIAsInteger,ElementAsVariantSearch=Array(34,12,56,81,59,83,91,26,47)ForEachElementInSearch„foreach-next结构语句见P90Text1=Text1&Str(Element)NextElementEndSubPrivateSubCmd查找_Click()DimIAsInteger,FindAsIntegerText2=""Find=InputBox("输入要查找的数")ForI=1ToUBound(Search)IfSearch(I)=FindThenExitForNextIIfI<=UBound(Search)ThenText2="要查找的数"&Str(Search(I))&"是Search("&Str(I)&")"ElseText2="在数列中没有找到"&Str(Find)EndIfEndSub例5-5二分查找程序:OptionExplicitOptionBase1DimSearchAsVariantPrivateSubCmd二分查找_Click()DimLeftAsInteger,RightAsIntegerDimMidAsInteger,FlgAsBooleanDimFindAsIntegerFind=InputBox("输入要查找的数")Left=1:Right=UBound(Search)Flg=FalseDoWhileLeft<=RightMid=(Left+Right)/2IfSearch(Mid)=FindThenFlg=TrueExitDoElseIfFind>Search(Mid)ThenLeft=Mid+1ElseRight=Mid-1EndIfLoopIfFlgThenText2="要查找的数"&Str(Find)&"在Search("&Str(Mid)&")中"ElseText2=Str(Find)&"不在数组中"EndIfEndSubPrivateSubCmd生成数据_Click()DimVAsVariantSearch=Array(12,17,23,28,30,39,41,46,57,61,78,83,85,89,93)ForEachVInSearchText1=Text1&Str(V)NextVEndSub例5-7求裴波拉契数列。OptionBase1OptionExplicitPrivateSubForm_Click()DimFb(18)AsInteger,IAsIntegerFb(1)=1:Fb(2)=1ForI=3To18Fb(I)=Fb(I-2)+Fb(I-1)NextIForI=1To18Text1=Text1&Str(Fb(I))&""NextIEndSub-8:例5OptionExplicitPrivateSubCommand1_ClicK()DimStAsString,IdxAsIntegerDimA(0To25)AsIntegerDimIAsInteger,jsAsIntegerDimCHAsString

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论