VB6.0程序设计教程.ppt

上传人:laozhun 文档编号:2772206 上传时间:2023-02-24 格式:PPT 页数:110 大小:635.50KB
返回 下载 相关 举报
VB6.0程序设计教程.ppt_第1页
第1页 / 共110页
VB6.0程序设计教程.ppt_第2页
第2页 / 共110页
VB6.0程序设计教程.ppt_第3页
第3页 / 共110页
VB6.0程序设计教程.ppt_第4页
第4页 / 共110页
VB6.0程序设计教程.ppt_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《VB6.0程序设计教程.ppt》由会员分享,可在线阅读,更多相关《VB6.0程序设计教程.ppt(110页珍藏版)》请在三一办公上搜索。

1、VB6.0程序设计教程,赵艳,第一章 Visual Basic 6.0概述,1.1概述一、VB简介:Visual Beginners All-purpose Symbolic Instruction Code(可视化的初学者通用符号指令代码)包括学习版、专业版、企业版(最高版本)三种。二、VB功能特点:P41、具有面向对象的可视化设计工具。对象+属性+方法2、事件驱动的编程机制。3、提供了易学易用的应用程序集成开发环境。4、结构化的程序设计语言。5、支持多种数据库系统的访问。6、OLE技术。7、完备的帮助功能。,开发环境上的改进。创建ActiveX控件。Internet的开发。,新增,1.2

2、启动与退出,一、启动:1、开始程序vb6.0vb6.0程序 2、双击快捷图标新建:建立新工程。现存:选择和打开现有的工程。最新:列出最近使用过的工程。二、退出:1、文件退出2、点击标题栏关闭按钮,1.3 集成开发环境,由标题栏、菜单栏、工具栏、窗体窗口、属性窗口、工程资源管理器窗口、代码窗口、立即窗口、窗体布局窗口、对象浏览器窗口、工具箱窗口组成。标题栏:vb有三种工作模式。设计模式:进行界面的设计和代码的编制。运行模式:运行应用程序。中断模式:应用程序运行暂时中断,可编辑代码。工具栏:,主窗口,工具箱,窗体窗口,立即窗口,工程窗口,属性窗口,窗体布局,1、窗体窗口:是建立VB应用程序的主要部

3、分,是应用程序界面的窗口。2、属性窗口:列出了选定的窗体或控件的全部属性及其设置值。由对象列表框、属性显示排列方式、属性列表框几部分组成。,3、工程资源管理器窗口:列出了当前工程中的窗体和模块。4、代码窗口:代码编写器,用于显示或编写代码。5、窗体布局窗口:6、对象浏览器窗口:,1.4 标准控件简介,7、工具箱窗口:工具箱中放置的是VB的标准控件。,1.5 使用帮助,1、使用命令:帮助内容或索引2、使用上下文相关的帮助:3、从internet 上获得帮助。,作业:P16,2、4、5、6,程序设计方法的发展1、初期的程序设计:体现手工编制技巧的编制方法。2、结构化程序设计:模块化思想。分为顺序、

4、选择和循环三种结构,采用自定而下、逐步求精的分析方法。3、面向对象的程序设计:将问题分解为对象。对象即为一个实体,有自己的属性,又有作用于数据的方法,将属性和方法封装成一个整体,供程序设计者使用。,第二章 简单的VB程序设计,一、类和对象,2.1 对象的概念,类:是一组具有相同特性物体的抽象化模型。对象是一个实例化的类,是一个基本运行时的实体,是数据与数据操作方式的综合,包括属性、方法、事件。可直接使用的对象包括:窗体:是构成程序与用户之间界面的基础,是一个包含有创建用户界面所需的其他对象以及应用程序代码的窗口。控件:放在窗体中的对象。标准控件、定制控件、可插入对象。系统资源:应用程序对象、剪

5、贴板对象、屏幕对象、打印机对象等。,二、对象的建立和编辑,1、建立:,以字母或汉字开头;最大长度255个字符;可包含字母、汉字、数字和下划线。注意:窗体不能与公用对象重名;窗体之间也不能重名。,(1)将鼠标定位在工具箱要制作控件对象的图标上,单击左键。(2)将鼠标移到窗体所需位置处,拖曳鼠标。,2、命名规则:,3、对象的选定:选定一个对象,按住CTRL键,再单击其他对象。4、复制或删除对象:遵从WINDOWS规范。注意:当粘贴控件时,“是”则建立一个控件数组,“否”则复制一个标题相同而名称不同的控件。,1、属性:是个别对象区别于其他对象的特征,是描述和反映对象特征的参数。决定了对象的外观和行为

6、。如NAME、TOP、LEFT、WIDTH。设置属性方法:a:在设计阶段利用属性框设置对象属性。b:在程序代码中通过赋值实现。格式:对象名.属性名=属性值,三、对象的属性、事件和方法,2、事件、事件过程:发生在对象上的事情事件。事件过程:当一个对象的某个事件发生后,系统就做出相应的动作,该动作是由事件相应程序代码来决定的,这样的代码叫事件过程。,创建事件过程方法:打开视图|代码窗口菜单。(1)选定响应事件的对象(2)从选中对象能检测到的事件列表中,选择所希望的事件。这样就得到一个事件过程的框架。,如:sub exitbutton-click()end sub,3、方法:是对象自身内部完成某一任

7、务的一段代码,是一些特殊的过程和函数,它定义了怎样处理信息并完成规定的动作。对象调用格式:对象名.方法名参数名表如:form1.print“欢迎使用 visual basic 6.0”form1.move 0,0,例2.1 编写一个程序,单击按钮1,则文本框中显示“hello vb”,单击按钮2,清除文本框中内容。步骤:(1)建立用户界面的对象(2)设置对象的属性(3)对象事件过程的编程(4)保存文件和运行程序 保存文件:文件form1另存为.frm;文件工程另存为.vbp系统默认为VB目录。,2.2 简单应用程序的建立,一、生成可执行文件:步骤:(1)选择菜单,文件生成exe文件(2)键入文

8、件名。二、制作安装盘:(安装向导制作过程)(1)保存要制作的文件,退出vb6.0。(2)开始vb6.0vb6.0中文版工具package&deployment 向导(3)选定工程及选项对话框中选择工程文件名(4)选择发行方法。,生成可执行文件和制作安装盘,2.3 工程管理和环境设置,一、vb工程的结构:用户建立一个应用程序后,系统会根据应用程序的组成建立一系列文件,这些文件的有关信息都保存在一个“工程”的文件中。工程包括以下文件类型:工程文件、窗体文件、窗体的二进制数据文件、标准模块文件、类模块文件、资源文件、控件文件等。,工程文件(.vbp):与该工程有关的全部文件和对象的清单。窗体文件(.

9、frm):包含窗体及控件的属性设置。标准模块文件:包含类型、常量、变量、外部过程和公共过程的声明和公共声明。,二、创建、打开和保存工程:文件|新建工程;文件|打开工程:文件|保存工程;工程|另存为,三、添加、删除和保存文件:添加窗体:工程|添加窗体;添加模块:工程|添加模块删除窗体:工程|删除窗体删除模块:工程|删除模块保存文件:文件|保存窗体(或模块)四、环境设置:工具|选项,2.4 基本的属性、事件和方法,2、caption属性:设置窗体或控件的标题,显示在标题上。对象名.caption=“标题字符串”;form1.caption=“my form”3、helight、width、top、

10、left:控件在窗体中的大小和位置。4、Font:改变文本的外观。Fontname,Fontsize,Fontbold,Fontitalic,Font Strikethru,Font Underline等。对象名.font.font 对象属性名=属性值;5、enabled属性:窗体或控件对发生的动作是否做出反应,一、基本属性1、Name属性:用来标示对象,不会显示在窗体上。代码中访问对象的属性和方法的语法格式为:对象名.属性名对象名.方法名 参数表,6、Alignment:控件内的对齐方式。0左对齐,1右对齐,2居中。7、visible:控件是否可见。True:程序运行时可见;false:不可

11、见。8、Forecolor 前景颜色属性;Backcolor背景颜色属性。用代码设置语法格式为:对象名.颜色属性名=十六进制颜色值对象名.颜色属性名=rgb(r,g,b),例 2.2、例2.3、例2.4,9、picture:对象中显示的图像。设置方法有以下几种:设计阶段从属性窗口通过LoadPicture对话框设置。设计阶段从剪贴板粘贴图形到对象上。运行阶段用LoadPicture()函数装入,语法格式为:对象名.Picture=LoadPicture(“d:path图形文件名”)10、Autosize:控件自动调整大小。True 自动调整大小;false 保持原设计大小。,11、MouseP

12、ointer、MouseIcon(鼠标指针属性):用于设置程序运行时,鼠标移到对象上后指针的形状。设置方法:使用属性窗口,修改MousePointer的值。其可取值及对应的指针形状见表2.6。用代码设置,语法格式为:对象名.MousePointer=设置值 对象名.MouseIcon=LoadPicture(光标文件名)/对象名.Picture12、TabIndex:按Tab键时,焦点在各个控件中的移动顺序。13、控件默认属性:可以直接改变控件的值,而不必指出是何属性。Text.text、label.caption,二、基本事件,事件是对象能识别的动作。控件事件过程的语法格式为:Private

13、 sub 对象名_事件名(参数表)语句行End sub窗体事件过程的一般语法格式为:Private sub form_事件名(参数表)语句行End sub,单击和双击事件:click、dblclick。单击某对象,引发click事件;双击某对象,引发、dblclick事件。焦点事件:gotfoucs、lostfoucs。当一个对象接受到焦点时,发生gotfoucs事件;当一个对象失去焦点时,发生lostfoucs事件,键盘事件:keypress、keydown、keyup:按下并释放一个ANSI键时发生Keypress事件,返回的是该键所对应的ASCII值。按下或释放一个键时发生Keydown

14、、keyup事件,返回的是该键所对应的keycode键代码。Keyascii:按键的ascii码;Keycode:按键的物理码。,鼠标事件:mousedown、mouseup、mousemove。Button:返回一个值,用于标示鼠标的哪一个键被按下。左、右、中键分别对应的值为1、2、4。Shift:返回一个值,用于标示鼠标键时,是否同时按下shift、ctrl、alt键。Shiftctrlalt键分别对应的值为124。X,y:返回鼠标指针的坐标。,键 keycode keyasciiA&H41&H41 a&H41&H615&H35&H35%&H35&H25,装载Load和卸载Unload事件

15、:加载窗体时发生load事件;卸载窗体时发生unload事件。,三、基本方法:格式:对象名.方法名 参数表1、setfocus:调用一个对象的setfocus方法时,把焦点移到该对象上。语法格式:对象名.setfocus,2、print方法:对象名.print spc(n)tab(n)表达式列表;,作用:在对象上输出信息。对象:窗体、图形框、打印机,省略对象表示窗体。Spc(n):各输出表达式之间距离n个空格;Tab(n):将输出表达式定位在第n列。,:表示光标定位在下一个显示区的开始位置;:表示光标定位在上一个显示的字符后。例shuchugeshi,3、cls方法:格式:对象.cls 对象:

16、窗体、图形框,对象省略表示窗体。作用:清除运行时窗体或图形框中显示的文本或图形。,4、move方法:对象.move 左边距离,上边距离,宽度,高度对象:窗体和除时钟、菜单外的所有控件。作用:移动窗体或控件,并可改变大小。(vb4-9)5、hide、show方法:窗体名.hide;窗体名.show0/1 作业:p43,1、3、4、5、12,第三章 VB程序设计基础,事件过程:只存在于窗体中,没有返回值,用于响应用户的系统事件。格式:private sub form/控件名_事件名(参数表).End sub通用过程:可存在于窗体模块、标准模块和类模块中。可使应用程序完成特定的任务。public/p

17、rivatestaticsub 过程名(参数表).exit sub End sub,3.1 程序结构与编码规则:一、模块:一个程序由若干模块组成。窗体模块:包括窗体窗口的可视部分、窗体及其中所有控件的属性设置说明、相关的事件过程。标准模块:包含着为应用程序编写的一般过程、函数子过程等代码。类模块:包括创建新对象的代码。,二、模块中的代码:有两种形式。声明:在模块级定义常量、变量、数据类型、windows动态链接库中的过程声明等。过程:具有一定功能的一段代码。事件过程、通用过程。,三、编码规则:见例3.1。P461.代码中不区分大小写。2.语句书写自由。多个语句之间用“:”号分隔;单行语句可分若

18、干行书写,在本行后加入“_”续行符。3.注释有利于程序的维护和调试。以Rem开头,或以“”开头。4.保留行号与标号。,3.2 数据类型,一、标准数据类型:,1、数值数据类型:整形数:类型符%,存放较小的整数。长整形:类型符&,存放较大的整数值。单精度:类型符!,只能精确到七位数。双精度:类型符#,16位精度。货币:类型符2、字符数据类型:用引号括起来的一串字符即为字符串常量。有变长字符串和定长字符串两种。如:dim s1 as string,s2 as string*40,3、逻辑数据类型:非0数转换为True,0转换为False。4、日期型数据类型:任何字面上被认为日期和时间的字符,用#括起

19、来,即可成为日期型。如:#Jan 1,1993#。当其他数据类型转换为日期型数据时,整数代表日期,小数表示时间。对于日期/时间也可以进行数字计算。5、对象数据类型:,6、变体数据类型:可存放任何内部的数据类型的数据,向可变数据类型赋值时,不必进行任何转换,自动执行必要的转换。如:dim some as variant some=“24”some=some-5 some=“数字”&some如果想知道变量的内部表示形式可以用vartype函数来获取,该函数使用方式为 Vartype(变量名)。如:print vartype(some),二、自定义类型,把若干不同类型的变量结合在一起作为一个数据类型

20、。,格式:private/publicType 自定义类型名 元素名(下标)as 类型名 元素名(下标)as 类型名End type元素名:自定义类型中的一个成员。类型名:标准类型。,如:Type stutype i as integer name as string*20 mark(1 to 4)as single End type Dim student as stutype变量中的某个元素的表示方法:变量名.元素名如:student.name student.mark(4),3.3 常量、变量和函数,一、常量或变量的命名规则:以字母或汉字开头;最大长度255个字符;可包含字母、汉字、数字

21、和下划线;不能与关键字相同;不区分大小写;可加前缀表明类型。如:strMyname、dtYear,二、常量:123、“123”、#4/12/2002#1、用户声明的常量:解决重复使用常量值的问题。public/privateconst 常量名as 类型=表达式As 类型:说明该常量的数据类型。表达式:数值常量、字符常量、表达式。如:Const PI=3.1415926 const max as integer=&H1442、系统提供的常量:系统提供了应用程序和控件的系统定义常量,系统常量位于对象库中。,三、变量声明:使用前先声明变量名及类型,以便系统为它分配存储单元。1.用Dim语句声明变量:

22、Dim/private/public/static 变量名 as 类型如:dim ca as double,b as integerPrivate:声明为私有,只能在它所在的模块内被调用;public可在应用程序的任何地方被调用。Static用于声明过程中使用的变量为静态变量。注意:一条语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用。如:dim x,y,z as integer则创建x、y变体,z 整形。,2.用类型说明符声明变量:dim 变量名类型符 如:dim ca#,b%3.隐式声明:未进行声明直接使用,则为variant。Function safesqr(n

23、um)tempval=abs(num)End function 直接使用了tempval变量。,四、标准内部函数:1.数学函数:Rnd 产生一个0-1内的随机数Randomize number 初始化随机数发生器 例suijishu2.转换函数:VAL()、Chr$()、asc()。3.字符串操作函数:4.日期函数:5.格式输出函数:数值、字符、日期按指定的格式输出。如:Format$(表达式,格式字符串)Format$(1234.567,”00000.0000”),例:设计一个能做四则运算的运算器。(运算器)对象:文本框text1、text2输入数据;label1显示当前运算符,label2

24、显示“=”,label3显示计算结果;加、减、乘、除、清除、退出6个命令按钮。,3.4 运算符和表达式,一、运算符:有算术运算符、字符运算符、关系运算符和逻辑运算符。,1.算术运算符:、*、/、mod、+、2.字符串运算符:&,+。如:“汉字”+12345,是错误的“汉字”&1234=“汉字1234”,正确3.逻辑运算符:not、and、or、xor、eqv、imp。,A B NOT A A AND B A OR B A XOR B A IMP B A EQV BT T F T T F T TT F F F T T F FF T T F T T T FF F T F F F T T,4.关系运

25、算符:=、=、like(相似)、is(是否)字符串比较时,按照从左到右依次取两个字符串中的对应字符的ASCII码进行比较,对应字符不同时结束比较,其ASCII码的大小关系即为两字符串的大小关系。如:”CAN”CASA”(false)结果=对象1 like 格式(比较字符串是否是给定的格式)结果=对象1 is 对象2(对象1和对象2是否指向同一个对象),二、表达式:用运算符把常量、变量、函数连接起来的式子。1、书写规则:乘号不能省略。括号必须成对出现,且都用圆括号。表达式从左到右在同一基准上写,无高低、大小之分。2.不同数据类型的转换:integer=字符运算符关系运算符逻辑运算符,数组是具有相

26、同类型的数据的有序集合,组内每一个元素为一个下标变量。,3.5 数组,.一、问题的提出:解决数据量大、内存有限的情况。B11 B12 B13 B1N B21 B22 B23.B2N.=B.BN1 BN2 BN3 BNN,B(1,1)B(1,2)B(1,3)B(1,N)B(2,1)B(2,2)B(2,3)B(2,N).=B.B(N,1)B(N,2)B(N,3)B(N,N),一维数组的存储结构:存储结构和逻辑结构相一致。如 A(5)数组 A(0),A(1),A(2),A(3),A(4),A(5)多维数组的存储结构:各元素存储顺序为按行优先,一行排列完后再排下一行。如B(3,3)数组:B(0,0)B

27、(0,1)B(0,2)B(0,3)B(1,0)B(1,1)B(1,2)B(1,3)B(2,0)B(2,1)B(2,2)B(2,3)B(3,0)B(3,1)B(3,2)B(3,3),1、静态数组:在整个程序执行过程中,大小不发生变化的数组。,2、动态数组:与上相反,在程序中用到数组时,才给它分配存储空间,可随时用redim重新指出数组大小。方法:先使用Dim,private或public语句声明括号内为空的数组,然后用redim语句声明该数组的大小.redim 数组名(下标1,下标2)注意:1、静态数组声明中的下标只能是常量,而动态数组中的下标可以是常量或变量。2、可多次使用Redim语句;可加

28、 Preserve 语句用来保留数组的数据。,1.一维数组:Dim/public/private 数组名(下标 to)上界as 类型2.二维数组:Dim/public/private 数组名(下标1,下标2as类型如:dim a(23)as string dim h(0 to 3,2 to 9)as long,1.数组元素初始化:For I=1 to 8 a(I)=0 next,2.数组的输入。For I=1 to 3For j=1 to 4A(I,j)=intput(“输入”&I&j&“的值”)Next jNext i,Private Sub Form_Click()Dim a():a=Ar

29、ray(1,2,3,4,5,6)For i=0 To 5Print a(i)a(0)a(5)NextEnd Sub,二、控件数组,1.概念:是同种控件的集合,共用一个控件名,共享同一个事件过程,通过index来区别各元素。2.建立:(1)设计时建立:在窗体上画出控件,进行属性设置,选中控件进行赋值和粘贴,进行事件过程的编程。(2)运行时添加控件数组:在窗体上画出控件,进行index设置,编程时通过load方法添加其余的元素,通过left、top属性确定其在窗体中的位置,将visible属性设置为true。例3.13,程序设计方法的发展1、初期的程序设计:体现手工编制技巧的编制方法。2、结构化程

30、序设计:模块化思想。分为顺序、选择和循环三种结构,采用自上而下、逐步求精的分析方法。3、面向对象的程序设计:将问题分解为对象。对象即为一个实体,有自己的属性,又有作用于数据的方法,将属性和方法封装成一个整体,供程序设计者使用。,第4章 vb语言基础,4.1 结构化程序设计:1、算法及其表示:定义:是数值计算和非数值计算过程中的方法和步骤,分为数值算法和非数值算法两种。如珠算口诀是数值算法;而组装机器,一道道工序是非数值算法。,2、流程图的概念:是由一些几何框图、流线和必要的文字说明构成的框图。其框式、意义及长度比例都有国家标准。例4.1,2、结构化程序设计:1)顺序结构:是沿一个方向进行的,没

31、有分支,是最简单的一种。2)选择结构:出现两个或多个分支,根据一定的条件选择其中之一。,其他辅助控制语句:,选择结构,3)循环结构:按照一定的条件重复执行一段程序。有当型循环和直到型循环两种结构。,4.2 顺序结构,一、赋值语句:格式:LET 变量名=表达式如:iA.text=“姓名”:left=300注意:“=”左右两边类型要一致。表达式可以是常量、变量、函数或表达式,4.3 选择结构,一、二分支结构:1、if 条件 then 语句块1 else 语句块2 end if,2、if 条件 then 语句块 end if,注意:条件为关系表达式或逻辑表达式 必须以 End if 结束 各语句块应

32、缩格书写,体现层次关系。,If then else,二、多分支结构:1、if 条件1 then 语句块1 elseif 条件2 then 语句块2.else 语句块n+1 end if,2、if语句的嵌套:if 表达式1 then if 表达式2 then else end ifelseend if例4.4,3、多分支的select case结构:select case 变量或表达式 case 表达式1 语句块 case 表达式2.case else 语句块 n+1end select,Case 3Case 1 to 10case 2,4,6,5,is10,例:输入三个数,按从大到小进行排序。

33、要求对文本框中的数据有测试,输入为非数字时提示(实验2-1)。,对象设置:3个文本框输入、1个图片框输出、1个命令按钮排序。对文本框中的数据进行测试采用Lostfocus有何不妥?在这里采用3个keypress事件,对3个文本框进行测试,非数字字符时,清除原数据,该文本框重新获得焦点。Keyascii=13回车,则证明数据输入完毕。,例:对输入的字符进行转换,大写变为小写,小写变为大写,空格不转换,其余转换为“*”。(Vb2-1)算法:,四、循环结构,一、FOR 循环语句:For循环是循环次数已知的循环。FOR 循环变量=初值 TO 终值 STEP 步长值 语句块 exit for 循环体 语

34、句块NEXT 循环变量,循环体是位于for-next语句之间的部分,是多次重复执行的动作。,例4.7:分析:ascii编码值为32-126,通过chr$()函数将编码值转换成对应的字符,tab(7*I+2)让每项占7列。,例4.8:用print方法输出下列图形:vb3-22,该图形分为上下两部分,上部6行,下部5行。在打印每一行时需要定义首位置及字符个数。,二、do-loop循环:do循环适合循环次数未知的循环。1.DO WHILE UNTIL 语句块 exit do 语句块 LOOP2.DO 语句块 exit do 语句块 LOOP WHILE UNTIL,如:1、do while I=10

35、0 s=s+I:I=I+1 loop2、do s=s+I:I=I+1 loop while I=100当I=100为true时,执行循环。,3、do until I100 s=s+I:I=I+1 loop4、do s=s+I:i=I+1 loop until I100当I100为true时,不执行循环。,三、循环的嵌套,1、FOR 循环:FOR 循环变量1=初值1 TO 终值1 STEP 步长1.FOR 循环变量2=初值2 TO 终值2 STEP 步长2 循环体 NEXT 循环变量2.NEXT 循环变量12、DO 循环:do do loop loop,注意:(1)内循环与外循环变量不能同名。(

36、2)内循环与外循环不能交叉。(3)与if-end if语句配合时,不能从循环体外跳到体内,也不能从外循环转到内循环。例4.12四、其他辅助语句:goto 标号行号 end 例4.13,例:e=1+1/1!+1/2!+1/3!+1/n!+分析:e=e+t,t=1/n!,n!=1*2*.*n=(n-1)!*n,定义n!-p,所以p=p*I,i值从0到n不断增长。,回顾:实验1-2、1-3、2-1、2-2、2-3。,第5章 过程,一、过程的定义:1.利用工具添加过程。2.利用代码窗口直接建立。自定义子过程的格式:staticpublic privatesub 子过程名(参数列表)局部变量或常数定义

37、语句 exit sub 语句 end sub,有系统提供的内部函数过程和事件过程、用户定义的过程两种。自定义的过程有:以 sub、function、property、event四种保留字开始的过程。,自定义函数过程的格式:staticpublic privatefunction 函数过程名(参数列表)as 类型 局部变量或常数定义 参数列表:语句 byval变量名()as类型 函数名=返回值 有:传值 exit function 无:传址 语句():形参列表,函数后不能省略 end function,二、过程的调用:1.子过程的调用:子过程名 参数列表 或 call 子过程名(参数列表)过程调

38、用 CALL TESTSUB(A,B,C,“TEST”)y=2x+3求实参过程定义 SUB TESTSUB(L,M,N,X$).实参与虚参一一对应,进行虚实结合.执行调用的子程序.返回调用程序,并把虚参的值传送给实参,接着执行CALL的后续语句。,2.函数过程的调用:变量名=函数过程名(参数列表)注意:(1)实参与形参保持个数相同,位置与类型一一对应。(2)调用是把实参值传给形参称为参数传递。(3)参数是数组时,实参与形参在参数声明时可以省略维数。,1.传址与传值:实参和虚参之间如何按地址传送?即:在调用过程时,将实参所用存储单元的地址传送给过程的形参。使实参、形参共有一个地址,实现参数的传递

39、。,实参和虚参之间如何按数值传送?在调用过程时,将实参的值复制给形参,实参与形参断开了联系,然后在形参的存储单元中操作,调用结束,形参所占用的存储单元也同时释放。由于过程中没有访问原始变量的地址,因而若过程修改了形参的值,则返给实参的值也不会改变。,三、参数传递:,注意:传址方式时,实参不能是表达式、常数,只能是变量。,2.数组参数的传递:一般通过传址方式传递。注意:在实参形参为数组时,可省略维数,但 还要写圆括号。如果被调过程不知道实参数组的上下界,可用lbound、ubound函数确定。Lbound ubound(数组名,维数)如:lbound(a,3),guochengliangfang

40、fa求:1+x+x2/2!+.+xn/n!,精度为xn/n!eps(例3.15)(例3.19)体会一下static,四、变量、过程的作用域:即变量、过程可被访问的范围。1.过程的作用域:(1)窗体/模块级:private sub mysub()(2)全局级:public sub mysub(),在某个窗体或标准模块内定义的过程,定义子过程或函数过程前加private关键字,过程只能被本窗体或本模块中的过程调用。,在窗体或标准模块中定义的过程,其默认是全局的,也可加public说明。可供该应用程序的所有窗体和所有标准模块中的过程调用。,2.变量的作用域:决定哪些子过程和函数过程可访问该变量.(1

41、)局部变量:在过程内用dim语句声明的变量,只能在本过程中使用,别的过程不可访问。(2)窗体/模块级变量:在一个窗体/模块的任何过程外,用dim语句或用private语句声明的变量,可被本窗体模块的任何过程访问。(3)全局变量:在“通用声明”段,用public语句声明的变量,可适合整个应用程序的变量。,3.静态变量:static 变量名 as 类型每次调用过程时,变量保持原来的值static function 函数名(参数列表)as 类型static sub 过程名(参数列表)表示该函数、过程内的局部变量都是静态变量,五、递归:用自身结构来描述自身。N!=n*(n-1)!例:有五个人在一起,现

42、在我们想知道第五个人的年龄。说:比第四个人大2岁 说:比第三个人大2岁说:比第二个人大2岁说:比第一个人大2岁说:他40岁询问过程:-递推求解过程:-回归,40(n=1)公式表示如下:age(n)=age(n-1)+2(n1)注:递归过程不能无限进行,必须要有一个结束递归的条件,如本题的age(1)=40。,Public function age(n as integer)as integer IF n=1 THEN age=40 ELSE age=age(n-1)+2 END IFEND FUNCTION Private sub command1_click()PRINT“AGE(5)=“;

43、age(5)END sub,主程序只有一条语句,求解完全靠age(n)子程序。过程中,age共被调用5次,age(5),age(4),age(3),age(2),age(1),其中age(5)是主程序调用的,其它是在过程本身中调用的(共4次)注:在某一次调用时,并不会立即得到age的值,只有递推调用到age(1)时,才有确定的值,然后再回归到age(5),得到最后结果。例5.3,构成递归的条件:1 递归结束条件及结束时的值。2 能用递归形式表示,并且递归向终止条件发展。,5.3 常用算法举例,一.用筛选法求素数:例3.23算法:1.从2开始,把数列中2的倍数划去;2.从3 开始,把3的倍数划去

44、;3.跳过已划去的数,把5的倍数划去;4.直到数列最大数max 的sqr(max)为止。用一个一维数组作为筛子,数组元素的下标与数列的整数对应,数组中全部元素预先置1,在进行筛选时,把要划去的数即其下标对应的元素置为0。,For k=J To max Step P,Prime数组全部置1,p=2,读入max,求出sqr(max),Then Prime(p)=1 else,J=p+p,Prime(k)=0,next,当psqr(max),P=p+1,二、数值转换:例3.24算法:一个十进制数m 转换成 r 进制数,将m 不断除 r 取余数,直到商为 0,反序即为结果。Idec0存放十进制数m;i

45、base0存放r 进制数;Idecr()存放不断除的余数;下标与除的次数对应。,三、加密与解密:例3.25算法:将每一字母加以序数,如序数为2A B C D E F G H I.X Y Z A B C A B C D E F G.X Y Z A,四、排序:例5.8选择法:a(1)a(2)a(3)a(4)a(5)a(6)a(7)合并排序:算法:1、在数组a、b 中各取第一个元素进行比较,将小的元素放入数组c中。2、取小的元素所在数组的下一个元素与上一次比较后较大的元素比较,重复上述比较过程,直到某一个数组先排完;3、将另一个数组剩余元素抄入数组c,排序完成。,五、查找:例5.111、顺序查找:根

46、据查找的关键字与数组中的元素逐个比较,相同,找到;找不到,查找失败。2、二分法查找:算法:要查找的关键字同数组的中间项元素比较,若相同则查找成功结束;否则判别关键字落在数组的那半部分,然后保留一半,舍弃另一半。如此重复,直到找到或数组中没有这样的元素。,六、高次方程求根:算法:方程f(x)=0 的根就是f(x)与x轴的焦点x*,用求导的方法,从x0开始,使方程的根逐渐逼近x*。步骤如下:(1)求f(x)在x0 处切线斜率f(x0)=f(x0)/(x0-x1)x1为f(x0)与x轴交点,达到要求,即为所求。则建立迭代公式:x1=x0-f(x0)/f(x0)(2)判断条件:x1-x0 是否满足,直

47、到满足为止七、字符处理应用:例3.31,X0,X1,第6章 窗体设计,一、窗体设计:1、基本属性:name、height、caption、width、left、top、font、enabled、visible、forecolor等。Scalemode:设置窗口坐标的度量单位。Scaleheight、scalewidth:决定窗口用户区的高度和宽度。maxbutton和minbutton:maxbutton为true,窗体右上角有最大化按钮。minbutton为true,窗体右上角有最小化按钮。controlbox:窗体标题栏是否有控制菜单。windowstate:窗体启动时的可见状态。,2、窗

48、体的主要事件:有click、dblclick、load、gotfocus等事件,在发生load事件时还同时伴随着许多事件发生。窗体的方法有print,cls,move。,3、窗体的设计:包括窗体的控制菜单、窗体的背景和窗体的输出(format,currentx,currenty)。例6.1二、多重窗体:1、多重窗体的管理:添加窗体、删除窗体和保存窗体。2、设置启动窗体:系统默认第一个建立的窗体为启动窗体。也可以通过工程工程名属性来设置。,三、窗体处理:1、load方法:把一个窗体装入内存。格式:load 窗体名称2、unload方法:从内存删除一个窗体。格式:unload 窗体名称3、show

49、方法:显示一个窗体。格式:窗体名称.show 模式模式有0、1两个值4、hide方法:将窗体隐藏起来,并不从内存中删除。格式:窗体名称.hide例4.18、例6.2,第7章 标准控件的使用,一、命令按钮、图片框和图像框:1、命令按钮:属性:default cancel style picture disablepicture downpicture事件:click事件。,选中命令按钮的方法:,2、图形框与图像框:Picture属性:设置显示的图形。在图形框中装入图片图形框对象.picture=loadpicture(图形文件)在图形框中删除图片:图形框对象.picture=loadpictur

50、e(“”)Autosize属性:(图像框无该属性)true 图形框能自动调整大小;false 图形框不能自动调整大小。Stretch属性:设置图像框中装入的图片是否自动调整大小。,二、标签与文本框:1、标签:用来输出文本信息,但不能输入信息,因此该控件的内容只能用caption属性修改。属性:caption、alignment、backstyle、wordwrap 事件:Click、Dblclick、Change。例:vb2-52、文本框:即编辑框。常用作输入、输出控件。属性:multiline、scrollbars、maxlength、locked、Sellength、Seltext。事件:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号