计算机程序设计基础Visual Basic版_第1页
计算机程序设计基础Visual Basic版_第2页
计算机程序设计基础Visual Basic版_第3页
计算机程序设计基础Visual Basic版_第4页
计算机程序设计基础Visual Basic版_第5页
已阅读5页,还剩465页未读 继续免费阅读

下载本文档

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

文档简介

计算机程序设计基础:计算机基础教育课程体系规划教材VisualBasic版邱李华郭志强曹青1第1章程序设计基础本章要点:程序设计语言算法▲*结构化程序设计▲面向对象的程序设计2指令:规定计算机完成一定操作的命令。程序设计语言:要使计算机能够理解人给出的各种指令,就需要在人和计算机之间有一种特定的语言,人和计算机都能够识别,这种特定的语言就是计算机语言,也叫程序设计语言。程序:使用程序设计语言编写的用来使计算机完成一定任务的一段“文章”称为程序。程序设计:编写程序的工作称为程序设计。学习目的:利用程序设计语言进行程序设计,完成一定功能31.1程序设计语言发展:机器语言

汇编语言

高级语言1.1.1机器语言机器指令:由0和1组成的二进制编码机器语言:计算机能直接识别的机器指令的集合例:用某机器语言编写的求“9+8”的程序。1011000000001001000001000000100011110100把加数9送到累加器AL中

把累加器AL中的内容与另一数8相加,结果存在累加器AL中

停止操作

特点:机器能直接识别、执行效率高难学、难记、难写、难检查、难移植41.1.2汇编语言特点:可读性好,容易查错、方便机器不能直接识别、需翻译、可移植性差引入助记符代替指令,如ADD、SUB、MOV、HLT等。例:用汇编语言

实现

求“9+8”

MOVAL,9把加数9送到累加器AL中

ADDAL,8把AL中的数与8相加,存在AL中

HLT停止操作连接程序汇编程序汇编语言源程序目标程序可执行程序5解释程序高级语言源程序执行结果1.1.3高级语言更接近自然语言,脱离具体机器,与指令系统无关高级语言处理程序:翻译程序翻译程序的工作方式:解释方式和编译方式编译程序连接程序高级语言源程序目标程序可执行程序例:用某高级语言计算9+8的问题,只需写成:

S=9+8

计算9+8的值,保存到变量S中

END结束特点:易编写、易读、易查错、不依赖具体机器

需要配合使用翻译程序61.2程序设计程序设计:编制程序的工作实现:选择工具—语言掌握解题的方法和步骤—算法1.2.1算法1.什么是算法计算机为解决一个问题而采取的方法和步骤。2.算法的特性有穷性、确定性、有效性、有0个到若干个输入、有1个到若干个输出。3.算法的表示形式(1)用自然语言表示算法7例如:将两个变量X和Y的值互换。算法表示如下:步骤1将X值存入中间变量Z中:X

Z

步骤2将Y值存入变量X中:Y

X

步骤3将中间变量Z的值存入Y中:Z

Y

用自然语言表示算法,虽然容易表达,但文字冗长且易产生“二义性”。(2)用流程图表示算法传统流程图处理框:连接点:N-S流程图:表示成三种基本的结构起止框:输入/输出框:判断框:流向线:8例:交换两个变量的流程图传统流程图:N-S流程图:开始输出X,Y输入X,YX

ZY

XZ

Y结束输出X,YZ

YY

XX

Z输入X,Y91.2.2结构化程序设计1.三种基本结构顺序结构、选择结构和循环结构(1)顺序结构bABaAB传统流程图:N-S流程图:10(2)选择结构传统流程图:N-S流程图:ba条件?AB不成立成立条件成立AB不成立11例:分别用传统流程图和N-S流程图表示求一个数的绝对值的算法。开始输出Y输入X-X

Y结束X>=0?X

YYesNo输入X??NoX>=0?YesX

Y-X

Y输出Y传统流程图:N-S流程图:12(3)循环结构当型循环结构

传统流程图:N-S流程图:条件?成立Ab不成立a

当条件为真

A13直到条件为真A直到型循环结构

传统流程图:N-S流程图:aAb不成立成立条件?14例:分别用传统流程图和N-S流程图表示:

求1+2+3+…+100的算法。开始输出S1

IS+I

SI+1

I结束0

SI>100YesNo11直到I>1001

IS+I

SI+1

I输出S0

SN-S流程图:传统流程图:15三种基本结构有以下共同的特点:只有一个入口、一个出口每个基本结构中的每一部分都有机会被执行到结构内不存在“死循环”2.结构化程序设计方法自顶向下、逐步求精、模块化161.2.3面向对象的程序设计任何现实问题都是由一些基本事物组成,这些事物之间存在着一定的联系,在使用计算机解决现实问题的过程中,为了有效地反映客观世界,最好建立相应的概念去直接表现问题领域中的事物及事物之间的相互联系。面向对象技术中引入了“对象”来表示事物;用消息传递建立事物间的联系。(1)对象(Object)

用于描述某一实体。如房屋、人、汽车等:

属性:事件:方法:17(2)面向对象(ObjectOriented,简称OO)(3)消息(Messages)

消息是用来请求对象执行某一处理或回答某些信息的要求。某一对象可以在必要时通过传递消息请求其他对象完成某些处理工作或回答某些信息,其他对象在执行所要求的处理活动时,同样可以通过传递消息与别的对象联系。因此,程序的执行是靠在对象间传递消息来完成的。(4)类(Class)及类的实例

将带有相似属性和行为的事物组合在一起构成一个类。一个属于某种类的特定对象称为该类的一个实例。18(5)封装(Encapsulation)

将数据和操作数据的函数衔接在一起,构成一个具有类类型的对象的描述称为封装。(6)继承(Inheritance)

在面向对象的语言中,可以从一个类生成另一个类。派生类(也称子类)继承了其父类和祖先类的数据成员和成员函数。(7)多态性(Polymorphism)

多态性是一种面向对象的程序设计功能,当同样的消息被不同的对象接收时,却导致完全不同的行为,即完成不同的功能。19本章小结1.程序设计语言机器语言、汇编语言、高级语言2.程序设计算法的概念结构化程序设计的三种基本结构顺序结构、选择结构、循环结构面向对象程序设计的基本概念对象、面向对象、消息、类及类实例、封装、继承、多态性20第2章VisualBasic简介本章要点:VisualBasic的集成开发环境(IDE)可视化编程的基本概念▲窗体、命令按钮、标签、文本框▲VisualBasic工程的设计步骤▲VisualBasic的帮助系统212.1概述VisualBasic是程序设计语言(开发工具)用于开发Windows环境下的应用程序。VisualBasic由BASIC语言发展而来Visual:可视的,指开发图形用户界面(GUI)

的方法Basic:初学者通用符号指令代码不但是专业人员得心应手的开发工具,而且易于被非专业人员掌握使用以事件驱动作为运行机制,提供了一定的面向对象编程机制222.1.1VisualBasic6.0的版本(1)是面向对象的可视化程序设计工具。(2)采用结构化的程序设计方法。(3)采用事件驱动的编程机制。(4)提供了易学易用的应用程序集成开发环境。(5)支持多种数据库系统的访问。(6)采用了对象的链接与嵌入技术。学习版:用于初学者开发基于Windows的应用程序专业版:用于专业人员开发客户/服务器应用程序企业版:用于创建高级的、高性能的网络应用程序2.1.2VisualBasic主要的功能特点232.2VisualBasic的安装与启动2.2.1系统要求(1)微处理器:486DX/66MHz或更高。(2)内存:至少16MB。(3)硬盘空间:学习版:典型安装48MB,完全安装80MB。

专业版:典型安装48MB,完全安装80MB。

企业版:典型安装128MB,完全安装147MB。

MSDN(用于提供帮助文档):67MB。IE4.x:约需66MB(Windows98中已经包含)。(4)显示设备:VGA或更高分辨率的显示器。(5)读入设备:CD-ROM。(6)操作系统:Windows95/98或更新的版本;WindowsNT3.51或更新的版本。2.2.2VisualBasic的安装:VB、MSDN2.2.3VisualBasic的启动242.3VisualBasic的集成开发环境(IDE)1.标题栏:三种工作模式设计模式:可以进行用户界面的设计和代码的编写:运行模式:运行应用程序,此时不可以编辑代码,也不可以编辑界面。

中断模式:应用程序运行暂时中断,此时可以编辑代码,但不可以编辑界面

2.菜单栏

提供了VB中用于开发、调试和保存应用程序所需要的所有命令。

3.工具栏:提供了对常用命令的快速访问。4种工具栏:编辑、标准、窗体编辑器和调试

使用:视图→工具栏打开或关闭工具栏。

254.工具箱:控件的容器控件:用于创建对象,每个控件都有其属性、事件和方法。工具箱中的控件可以有三类:内部控件—默认状态下工具箱中显示的控件ActiveX控件—存于.OCX文件中,包括各种版本的VB控件以及第三方厂家提供的控件

,必要时可添加到工具箱中。可插入对象—将其他应用程序产品作为一个对象加入到工具箱中。如Excel工作表、公式等。

添加选项卡:右击工具箱→添加选项卡→输入名称添加控件:将控件直接拖入新选项卡切换选项卡:单击选项卡名称删除选项卡:右击选项卡名称→删除选项卡265.工程资源管理器窗口工程:每个应用程序可称为一个工程每个工程可包括多种类型的文件文件类型:

.Vbp.Frm.Bas.Cls.Res.Ocx.Frx查看代码查看对象切换文件夹显示:视图→工程资源管理器使用工具栏按钮276.属性窗口对象下拉列表框属性说明属性列表框选项卡显示:视图→属性窗口使用工具栏按钮按F4键287.窗体布局窗口:调整程序运行时窗体显示的位置8.窗体设计器窗口是进行界面设计的窗口。工程中的每个窗体都有自己的窗体设计器窗口。一个应用程序至少有一个窗体。9.代码编辑器窗口:用于编写程序代码进入代码编辑器窗口的方法:双击窗体的任何地方右击窗体,从快捷菜单中选择“查看代码”单击工程资源管理器窗口中的“查看代码”按钮。执行“视图”菜单中的“代码窗口”命令。29代码编辑器窗口组成:自动列出成员特性:自动列出控件的属性和方法。自动显示快速信息:自动显示语句和函数的语法格式自动语法检查:出错时显示为红色。10.立即窗口用于调试应用程序。可键入或粘贴一行代码,按下回车键立即执行。过程下拉列表框代码区过程查看全模块查看拆分栏对象下拉列表框302.4可视化编程的基本概念2.4.1对象

对象:代码和数据的集合。如:窗体、按钮、菜单、文本框等。

对象名:如Form1、Command2、Menu1、Text32.4.2属性

属性:对象的一组特征,如:标题、宽度、字体等

属性名:如Caption、Width、Font、Color

属性设置方法:设计阶段在属性窗口中设置在代码中设置:<对象名>.<属性名>=<属性值>例:Form1.Caption="学籍管理"

CmdOK.Caption="确定"31

事件:在对象上所发生的事情如单击、双击、内容改变、尺寸改变等事件是固定的。

事件过程:发生某事件后所要执行的程序代码一般格式:

PrivateSub<对象名>_<事件名>([<参数表>])

<程序代码>EndSub例:PrivateSubCommand1_Click()Form1.BackColor=vbRedEndSub2.4.3事件32方法:用于对对象进行一定的操作。由函数或过程实现。方法是固定的调用格式为:[<对象名>.]方法名[<参数表>]例:FirstForm.Print"欢迎使用VisualBasic"

SecondForm.Show

MyPicture.Cls

2.4.4方法332.5窗体、命令按钮、标签、文本框2.5.1窗体(Form)

窗体:窗口(一般,设计期称窗体、运行期称窗口)窗体模块:每个窗体对应于一个窗体模块1.窗体的结构控制菜单标题栏最大化/还原最小化关闭边框34移除方法一:

工程→移除Form1移除方法二:

在工程资源管理器中右击窗体名称→移除Form1工程→添加窗体(打开“添加窗体”对话框)→新建现存添加方法二:

使用工具栏中的“添加窗体”按钮设置启动对象:工程→工程1属性→设置启动对象显示具体窗体名添加方法一:2.添加窗体、移除窗体353.属性(1)Name(名称):窗体的名称。以英文字母开始,最多40个字符。不能包含标点符号或空格。(2)Caption(标题):窗体标题栏显示的内容。(3)BackColor:窗体的背景颜色。(4)ForeColor:窗体的前景颜色。(5)Font:窗体中输出字符的字体、大小等特性。(6)Icon:运行时窗体处于最小化时所显示的图标。(7)Picture:设置要在窗体上显示的图片。(8)MaxButton:决定窗体的标题栏中是否具有最大化按钮。(9)MinButton:决定窗体的标题栏中是否具有最小化按钮。(10)BorderStyle:窗体的边框样式。(11)ControlBox:决定窗体是否具有控制菜单。(12)Moveable:决定窗体是否能移动(13)WindowState:决定运行时窗体是正常、最小化还是最大化。364.事件

Load、Activate、Click、DblClick

例:单击窗体时产生Click事件,将窗体背景设成黄色

PrivateSubForm_Click()Form1.BackColor=vbYellowEndSub

例:在窗体加载时将窗体背景设成红色PrivateSubForm_Load()Form1.BackColor=vbRedEndSub5.方法窗体上常用的方法有Print、Cls、Move和Show等371.属性(1)Caption:命令按钮的标题。在字符前加一个“&”符号,该字符就会带有一个下划线,成为访问键。运行时,同时按下Alt键和带下划线的字符相当于单击该按钮。(2)Font:设置文字的字体、字形、大小和效果等。(3)Style:0-Standard(缺省值)—不能显示图形或设置颜色1-Graphical—可以显示图形或设置颜色(4)Picture:指定要在命令按钮上显示的图形。(5)DownPicture:指定命令按钮按下时显示的图形。2.5.2命令按钮(CommandButton)38(6)DisabledPicture:指定命令按钮无效时显示的图形。(7)Enabled:该属性值为False时,表示命令按钮无效,不能对用户产生的事件作出反应,呈暗淡显示。缺省值为True。(8)Visible:决定命令按钮在运行时是否可见。(9)Value:该属性只能在程序运行期间使用。设置为True表示该命令按钮被按下。(10)Default:指定该命令按钮是否为窗体的缺省按钮。(11)Cancel:指定该命令按钮是否为窗体的取消按钮。392.事件Click;KeyDown;KeyUp;MouseDown;MouseUp…例:PrivateSubCommand1_MouseDown(……)Form1.BackColor=vbRedEndSubPrivateSubCommand1_MouseUp(……)Form1.BackColor=vbGreenEndSub

PrivateSubCommand1_KeyDown(……)Form1.Caption="你好"

EndSub

PrivateSubCommand1_KeyUp(……)Form1.Caption="再见"

EndSub40在程序运行时,可以用以下方法之一触发命令按钮的Click(单击)事件:用鼠标单击命令按钮。按Tab键,把焦点移动到命令按钮上,再按回车或空格键。按命令按钮的访问键。在程序代码中将命令按钮的Value属性值设为True。如:PrivateSubCommand2_Click()

Command1.Value=True

'单击Command1EndSub直接在程序代码中调用命令按钮的Click事件。如PrivateSubCommand4_Click()

Command1_Click

'单击Command1EndSub41

如果指定某命令按钮为窗体的缺省按钮,那么即使焦点移到其他控件上,也能通过按回车键单击该命令按钮。如果指定某命令按钮为窗体的缺省取消按钮,那么即使焦点移到其他控件上,也能通过按Esc键单击该命令按钮。

3.方法

SetFocus方法:将焦点定位在指定的命令按钮上例:cmdOk.SetFocus422.5.3标签(Label)标签常用在界面上提供一些文字提示信息。1.属性(1)Caption:标签的标题。(2)Alignment:标签中标题的对齐方式。(3)AutoSize:设为True时,可根据标题自动调整大小;设为False时,标签保持设计时定义的大小,太长的标题内容将不能显示出来。(4)BorderStyle:设置标签的边框。(5)BackStyle:设置标签是否透明。(6)WordWrap:指示是否随标题沿垂直方向自动扩展。True—标签将随标题在垂直方向变化。

(此时AutoSize属性值应设置为True)False—标签不能在垂直方向上扩展。432.事件

Click、DblClick。例:设窗体上有一个标签控件Label1,其AutoSize属性值为True,双击该标签控件,则标签的标题字体增加10磅,可以通过如下代码实现:PrivateSubLabel1_DblClick()Label1.FontSize=Label1.FontSize+10EndSub443.方法

Move方法:

<对象名>.Moveleft[,[top][,[width][,height]]]其中:<对象名>:标签名。left:指示对象左边的水平坐标(x-轴)。top:指示对象顶边的垂直坐标(y-轴)。width:指示对象新的宽度。height:指示对象新的高度。例:单击标签Label1使该标签向右移动50缇:PrivateSubLabel1_Click()Label1.MoveLabel1.Left+50EndSub452.5.4文本框(TextBox)可以使用文本框控件输入、编辑、显示数据。1.属性(1)Text属性:文本框中显示的内容。例:Text1.Text="欢迎使用VisualBasic"(2)MultiLine:决定是否可以显示多行文本。(3)PasswordChar:常用于输入口令。在文本框中键入字符显示为该指定的字符。(此时MultiLine属性值应为False)(4)ScrollBars:用于确定文本框是否带滚动条以及滚动条的方向(无、水平、垂直、双向)。(仅当MultiLine属性值为True时才可以带滚动条)46(5)SelStart:在运行期返回或设置当前选择文本的起始位置。例:Text1.SelStart=0

表示选择文本的起始位置从第一个字符开始。(6)SelLength:在运行期返回或设置选择的字符数。例:Text1.SelLength=Len(Text1.Text)

表示选中文本框Text1中所有字符。(7)Locked:指定运行时文本框内容是否可以编辑。False—可以编辑True—不可编辑(只读)472.事件Change

、Click、DblClick、

GotFocus、LostFocus、

KeyPress3.方法

SetFocus方法:

[<对象名>.]SetFocus

例:将焦点定位在文本框Text1中:Text1.SetFocus482.6VisualBasic工程的设计步骤(1)新建一个工程(2)设计用户界面(3)编写事件过程及通用过程(4)运行、调试并保存工程【例2-1】编写一个求两个数相加的程序。界面设计如下图a所示。运行时,当按下“求和(S)”按钮时,求数1和数2的和。运行效果如下图b所示。(a)(b)492.6.1新建工程启动VB文件→新建工程在“新建工程”对话框中选择“标准EXE”2.6.2设计界面1.控件的画法:拖动、双击、连续画连续画:Ctrl+单击控件→画多个控件→单击箭头2.控件的缩放和移动缩放:鼠标;Shift+箭头;改Width、Height属性移动:鼠标;Ctrl+箭头;改Left、Top属性HeightLeftTopWidth503.控件的复制与删除复制:注意复制后的控件名(控件数组,非控件数组)删除:Del4.控件的布局选定多个控件:Shift(或Ctrl)+单击;拖动鼠标控件布局:选定多个控件→格式→……5.设置属性设置窗体属性、控件属性51PrivateSubCommand1_Click()Text3.Text=Val(Text1.Text)+Val(Text2.Text)EndSubPrivateSubCommand2_Click()EndEndSub2.6.4运行与调试工程•运行→启动

•单击工具栏中的“启动”按钮•按F5键。2.6.3编写代码52文件→保存工程单击工具栏中的“保存工程”按钮建议将同一工程的所有文件保存在同一位置名称前缀相同。移除工程:文件→移除工程打开工程:文件→打开工程另存工程:先另存窗体文件,后另存工程文件工程文件更名:使用另存方法注:不允许在“我的电脑”或“资源管理器”下修改工程中的文件名2.6.5保存工程532.7VisualBasic的帮助系统2.7.1使用MSDNLibrary浏览器

帮助→内容/索引/搜索目录:按目录分类查找索引:按主题查找指定的关键字搜索:通过全文搜索查找指定关键字书签:收集常用主题542.7.2使用上下文相关帮助在以下位置可直接按F1键获取相关的帮助信息:VisualBasic中的每个窗口工具箱中的控件窗体内的对象属性窗口中的属性VisualBasic关键词:声明、函数、属性、方法…错误信息例:FillColor

属性示例例:DrawWidth

属性示例55本章小结:1.VB的集成开发环境2.可视化编程的基本概念

对象、属性、事件、方法3.窗体(Form)(1)属性

Name、Caption、BackColor、BorderStyle、Icon、MaxButton、MinButton、Moveable、WindowState

等(2)事件:Activate、Load、Click等(3)方法:Print、Show、Cls564.命令按钮(CommandButton)(1)属性:Caption注意“&”符号的使用Style、Picture的作用及相互关系Enabled与Visible的区别(2)事件:KeyDown、KeyUp、Click等(3)方法:SetFocus等5.标签(Label)(1)属性:Caption、Alignment、AutoSize、BorderStyle、

BackStyle、WordWrap

(2)事件:Click、DblClick。(3)方法:Move576.文本框(TextBox)(1)属性:Text、MultiLine、PasswordChar、

ScrollBars、SelStart、SelLength、Locked(2)事件:Change、Click、DblClick、KeyPress、

GotFocus、LostFocus(3)方法:SetFocus7.工程设计步骤新建工程设计界面:添加控件、设置属性控件属性编写代码调试、修改、运行保存工程8.帮助系统的使用58第3章VisualBasic程序设计代码基础▲本章要点:字符集数据类型常量、变量常用内部函数运算符与表达式593.1字符集1.字符集使用Unicode字符集,其基本字符集包括:数字:0~9英文字母:a~z,A~Z特殊字符:空格!"#$%&'()*+-/\^,.:;<=>?@[]_{}|~等。2.关键字关键字又称为保留字

VB自动将关键字的首字母转换为大写字母例如:PRINT5+6

转换成Print5+6

603.2数据类型基本数据类型:数值型字符串型布尔型日期型用户自定义的数据类型基本数据类型分为613.2.1数值型数据Integer(整型)Long(长整型)Single(单精度浮点型)Double(双精度浮点型)Currency(货币型)Byte(字节型)621.整数类型(1)整型(Integer)以2个字节存储十进制表示:由+-号,0~9组成范围:-32768~32767八进制表示:以&O开头,由0~7组成范围:&O0~&O177777十六进制表示:以&H开头,由0~9,A~F组成范围:&H0~&HFFFF例:-325056+100

&O456&O36

&H1AC&H38&H263(2)长整型(Long)以4个字节存储十进制表示:由+-号,0~9组成范围:-2147483648~+2147483647八进制表示:以&O开头,以&结束范围:&O0&~&O37777777777&十六进制表示:以&H开头,以&结束范围:&H0&~&HFFFFFFFF&例:453466-34568+1000000

&O456&

&O36&

&H1AC&

&H38&

&H2&642.实数类型浮点数采用IEEE格式,由尾数及指数组成:

[±]...[....][E|D][±](1)单精度浮点型(Single)

以4个字节存储,可以精确到7位十进制数例:3.234E+2表示3.234102-28E9表示-281094.56E-17表示4.5610-17(2)双精度浮点型(Double)

以8个字节存储,可以精确到16位3.234D+2表示3.234102-28D9表示-281094.56D-17表示4.5610-17尾数部分指数部分e|d65(3)货币型(Currency)以8个字节存储用于表示定点数,其小数点左边有15位数字,右边有4位数字。3.字节型(Byte)用于存储二进制数据,其取值范围为0~255。663.2.2字符串型数据(String)由""括起来的一串符号例:"abc""ABC""计算机""12.34""3+2"""(空串)

如果字符串本身包括双引号,可用连续两个双引号表示。例:要打印以下字符串:

"Youmuststudyhard",hesaid.在程序中需要将该字符串表示成:"""Youmuststudyhard"",hesaid."3.2.3布尔型数据(Boolean)用于进行逻辑判断,只有True和False两个值673.2.4日期型数据(Date)用于表示日期和时间格式:#……#VB接受许多种日期时间格式例:下面的Date/Time值全部有效。

#3-6-9313:20#

#March27,19931:20am#

#Apr-2-93#

#14April1993#

#12/18/1999#3.2.5对象型数据(Object)以4个字节存储,用于引用程序中的对象。3.2.6可变类型数据(Variant)可以包含任何类型的数据。可以包含Empty、Error、及Null等特殊值68*3.2.7枚举类型(自学)3.2.8用户自定义类型是用户自己定义的类型,这种类型可以包含多个基本类型。例如,可以定义一个Students数据类型,该类型中的每一个数又包含了学生的班级、学号、姓名、成绩信息。定义格式为:

PrivateTypeStudents

ClassAsString'班级

NoAsString'学号

NameAsString'姓名

ScoreAsInteger'成绩EndType693.3常量指在程序运行期间其值不发生变化的量。两种形式:直接常量;符号常量3.3.1直接常量例:"欢迎使用VisualBasic"字符串常量12345数值型常量True布尔型常量#11/10/2001#日期型常量3.3.2用户自定义符号常量

格式:Const<常量名>[As

<类型>]=<表达式>

类型:

IntegerLongSingleDoubleStringString*nBooleanDateCurrencyByteVariant70例:ConstPi=3.14159ConstMaxAsInteger=9ConstBirthDate=#1/1/01#ConstMyString="friend"

'用逗号分隔多个常量声明ConstPi=3.14,Max=9,

MyStr="Hello"

'用先前定义过的常量定义新常量ConstPi2=Pi*2使用:在程序中引用如:AREA=Pi*R^2在程序中不可修改如:Pi=3.1471VB内部已定义,可以直接使用的常量查看内部常量:视图→对象浏览器→选择库、类、成员如:库VBRUN

类ColorConstants

ShapeConstants

成员Vbred

vbShapeCircle

例:PrivateSubForm_Activate()ConstAAsString="各种常量的使用"

Form1.BackColor=vbGreenForm1.ForeColor=vbRedForm1.FontSize=14PrintAEndSub3.3.3系统定义符号常量723.4变量程序执行期间,用变量临时存储数值。变量的值可以发生变化。每个变量都有名称和数据类型。2.变量的命名规则第一个字符必须是字母

长度不超过255个字符不可以包含小数点或者内嵌的类型声明字符

不能使用关键字不能与过程名或符号常量同名例:intMax

strNameStudent1MyName

不区分大小写;变量名应便于识别、记忆……5A1.什么是变量?

一个有名称的内存单元称为变量。733.变量的声明(1)声明变量格式:Dim|Private|Public|Static<变量名>[As<类型>]Dim:在窗体模块、标准模块或过程中声明变量。Private:在窗体模块或标准模块中声明变量,使变量仅在该模块中有效。Public:在标准模块中声明全局变量,使变量在整个应用程序中有效。Static:在过程中定义静态变量,即使该过程结束,也仍然保留变量的值。74例:DimSumAsLongDimAddressAsStringDimNoAsString*8PrivatebAsIntegerDimNum,TotalAsInteger'Num为可变类型PublicAverageAsSingle

StaticAAsLong(2)隐式声明可变类型。易出错、浪费空间(3)强制显式声明在模块的声明段中使用语句:OptionExplicit如果设置:工具→选项→编辑器→

要求变量声明则在后续模块中自动插入OptionExplicit75例:窗体模块和过程中使用Dim语句的区别。设在窗体中放置按钮Command1和Command2

DimaAsIntegerPrivateSubCommand1_Click()

a=a+10PrintaEndSubPrivateSubCommand2_Click()

a=a+15PrintaEndSub观察程序运行结果将DimaAsInteger放到过程内,观察运行结果。76例:Staic的作用。设在窗体中放置按钮C1PrivateSubC1_Click()StaticaAsIntegera=a+10PrintaEndSubPrivateSubC1_Click()DimaAsIntegera=a+10PrintaEndSub运行时,多次单击命令按钮C1,比较以上两个事件过程的执行效果773.5常用内部函数函数形式:函数名[(<参数表>]参数:常量、变量或表达式。若有多个参数,参数之间以逗号分隔。函数值:也叫“返回值”函数的使用:函数在表达式中被调用。函数分类内部函数用户自定义函数78例:Fix(45.67)结果为45Int(45.67)结果为45Fix(-2.89)结果为-2Int(-2.89)结果为-3Abs(-4)结果为4Log(10)结果为2.30258509299405Sgn(3)结果为1Sgn(-6)结果为-1Sgn(0)结果为0例:求sin300

Sin(a*3.14/180)3.5.1数学函数79例:判断一个整数Y能否被另一个整数X整除如果INT(Y/X)=Y/X则整除例:常用对数log10X的求法用换底公式log10X=Ln(X)/Ln(10)

即LOG(X)/LOG(10)例:求e3

正确:EXP(3)

错误:e^3(错)80例:LTrim("∪∪∪ABC")结果为"ABC"表示空格RTrim("ABC∪∪∪")结果为"ABC"Trim("∪∪∪ABC∪∪∪")结果为"ABC"Left("ABCDE",2)结果为"AB"Right("ABCDE",2)结果为"DE"Mid("ABCDE",2,3)结果为"BCD"Mid("ABCDE",2,6)结果为"BCDE"Len("ABCDE")结果为5String(3,"ABC")结果为"AAA"String(3,65)结果为"AAA"InStr("ABCDECDE","DE")结果为4InStr(5,"ABCDECDE","DE")结果为7UCase("Abc")结果为"ABC"LCase("ABc")结果为"abc"3.5.2字符串函数811.随机函数

Rnd[(x)]

产生[0,1)之间的单精度随机数。

x<0:每次使用x作为随机数种子得到相同的结果。

x>0:以上一个随机数作种子,产生序列中的下一个随机数。

x=0:产生与最近生成的随机数相同的数。省略x:同x>02.Randomize语句初始化随机数发生器,格式:

Randomize[n]

n:种子,省略时以系统时间作为种子3.5.3随机函数82生成[a,b]范围内的随机整数

Int((b-a+1)*Rnd+a)例:生成[1,99]之间的随机整数的表达式为:Int(99*Rnd+1)例:生成(1,99)之间的随机整数的表达式为:Int(97*Rnd+2)83例:Asc("A")结果为65

Asc("ABC")结果为65Chr(65)结果为"A"Str(123)结果为"∪123"Str(-123)结果为"-123"Val("123")结果为123Val("123AB")结果为123Val(".123AB")结果为.123Val("a123AB")结果为0Val("12E2ABC")结果为12003.5.5日期和时间函数自学:P503.5.4转换函数84例:Format(123.45,"0000.000")结果为"0123.450"Format(123.45,"0.0")结果为"123.5"Format(123.45,"####.###")结果为"123.45"Format(123.45,"#.#")结果为"123.5"Format(0.123,".##")结果为".12"Format(0.123,"0.##")结果为"0.12"

Format("HELLO","<")结果为"hello"

Format("Thisisit",">")结果为"THISISIT"注:经Format函数格式化后的结果为字符串类型例:

Format(123)+Format(456)结果为"123456"区别:

Str(123)+Str(456)结果为"∪123∪456"3.5.6格式输出函数85Shell函数用于调用Windows下的应用程序。格式:Shell(pathname[,windowstyle])pathname:要执行的可执行文件名,包含路径。windowstyle:决定程序运行时窗口的样式。如果省略,则程序以具有焦点的最小化窗口执行。取值见P51表3-1。3.5.7Shell函数例:运行时单击窗体,打开计算器:

PrivateSubForm_Click()

Shell"c:\winnt\system32\calc.exe",vbNormalFocusEndSub这里Shell函数以语句形式出现,没有返回值。863.6运算符与表达式操作数:常量、变量、函数、对象运算符:圆括号算术运算符(算术表达式)字符串运算符(字符串表达式)关系运算符(关系表达式)布尔运算符(布尔表达式)873.6.1算术运算符与算术表达式优先级运算符运算示例1^乘方3^22-取负-93*乘法3*53/浮点除法10/34\整数除法10/35Mod取模10mod36+加法2+36-减法2-3书写:一条线、无[]、无{}88例:将以下表达式写成VB合法的表达式(xy)za1+a2a-b+a(-b)a1+a2a^(-b)+a*(-b)(x^y)^z

a^(1/n)

y/(-x)+x/(-y)A/(4+(8/(3+B))891.乘方运算例:10^210的平方,结果为10010^(-2)10的平方的倒数,结果为0.012^2^3运算顺序从左到右,结果为64(-8)^(-1/3)错误,当底数为负时,指数应为整数2.整数除法例:10\4结果为225.68\6.99先四舍五入再整除,结果为33.取模运算例:10Mod4结果为225.68Mod6.99先四舍五入再求余数,结果为511Mod–4结果为3-11Mod5结果为-1-11Mod-3结果为-2结果符号同第一个操作数90字符串运算符有两个:&+例:"Hello"&"World"结果为"HelloWorld""Check"&123结果为"Check123"123&456结果为"123456""123"&456结果为"123456"&:自动将两侧的操作数作为字符处理

123+456

结果为579

"123"+456

结果为579

"123"+"456"

结果为"123456"

"Check"+123

错误+:仅当两侧操作数都为字符串时才做字符串连接3.6.2字符串运算符与字符串表达式911.比较运算符<(小于)<=(小于或等于)>(大于)>=(大于或等于)=(等于)<>(不等于)2.表达式:<表达式1><比较运算符><表达式2>3.如何比较数值比较:按数值大小单字符比较:缺省情况下按字符的内部二进制表示比较,典型的二进制排序顺序如下:

""<"0"<"1"<……<"9"<"A"<"B"<……<"Z"<"a"<"b"<……<"z"

字符串比较:从左开始逐个比较3.6.3关系运算符与关系表达式924.比较结果:TrueFalse例:45<35结果为False45=45

结果为True4<>3结果为True

"abc">"cdf"结果为False

"for"<"fortran"结果为True例:要判断两个单精度型变量A和B的值是否相等,可以用下式判断:

Abs(A-B)<ε例如:要判断1除以3是否等于0.3333,可以写成:

Abs(1/3-0.3333)<10E-5931.布尔运算符:NotAndOr2.布尔表达式:

<关系表达式1><布尔运算符><关系表达式2>3.优先级:Not→And→Or例:A=10:B=8:C=6。Not(A>B)结果为FalseNot(B>A)结果为TrueA>BAndB>C结果为TrueB>AAndB>C结果为FalseA>BOrB>C结果为TrueB>AOrB>C结果为TrueA<BOrB=C结果为False3.6.4布尔运算符与布尔表达式94例:将以下条件写成VB布尔表达式1.m1-n1≤j≤m1+n12.X<-5或X>53.M和N之一为5,但不能同时为54.-100<k<100,且K为偶数的定义域5.1.(J>=M1-N1)And(J<=M1+N1)2.(X<-5.0)Or(X>5.0)3.((M=5)And(N<>5))Or((M<>5)And(N=5))4.(K>-100)And(K<100)And(KMod2=0)5.(X<>0)And((X-1.0)*(X-2.0)>=0.0)95()→函数运算→算术运算→关系运算→布尔运算例:设a=3,b=5,c=-1,d=7,求以下表达式的值。⑥False⑦True⑧False⑨

True⑩True②6③True④False⑤Falsea+b>c+dAnda>=5OrNotc>0Ord<0①83.6.5表达式的运算顺序963.7代码书写规则及格式约定1.每条语句完成某种功能,通常单独占一行。2.语句应符合一定语法归则。3.VB对语句自动检查语法、自动格式化。4.一行可以写多条语句,之间用冒号隔开例如:Form1.FontSize=14:Form1.BackColor=vbRed5.语句太长时可以续行,使用空格加下划线表示例如:Text3.Text=Val(Text1.Text)+_Val(Text2.Text)976.命令格式中的符号约定<>必选参数表示符。如缺少必选参数,则语句发生语法错误。[]可选参数表示符。如方括号中的内容省略,则VB会使用该参数的缺省值。|多个取一表示符。分隔多个选择项,必须选择其中之一。{}括起多个选择项。,…同类项目的重复出现。…省略了在当时叙述中不涉及的部分。注意:这些专用符号和其中的提示,不是语句行或函数的组成部分,在输入具体命令或函数时,上述符号均不能作为语句的组成部分。98本章小结:1.常用数据类型

整型:Integer长整型:Long单精度:Single

双精度:Double

货币型:Currency字节型:Byte可变长度字符串:String

固定长度字符串:String*length布尔:Boolean日期型:Date对象类型:Object

可变类型:Variant992.常量:直接常量用户自定义符号常量:Const语句系统定义符号常量3.变量

命名规则声明:Dim语句4.内部函数

数学函数、字符串函数、随机函数转换函数、日期时间函数5.表达式:算术表达式字符串表达式关系表达式布尔表达式日期表达式对象表达式100第4章顺序结构程序设计本章要点:赋值语句▲数据输入▲*数据输出▲*注释、暂停与程序结束语句101事件驱动:将代码划分成一些“子过程”过程结构:过程内部代码由三种基本结构组成即:顺序结构、选择结构、循环结构顺序结构:执行过程的次序从上到下,从左到右例:PrivateSubCommand1_Click()ConstPi=3.14H=Val(Text1.Text):R=Val(Text2.Text)Text3.Text=Pi*R^2*HEndSub1024.1赋值语句1.格式

<变量名>=<表达式>或:[<对象名>.]<属性名>=<表达式>2.功能计算表达式的值,再将此值赋给变量或对象属性。3.说明(1)<变量名>:应符合VB变量命名约定。(2)<表达式>:常量、变量、表达式、属性。(3)<对象名>:缺省时为当前窗体。(4)赋值号“=”:与数学中的等号意义不同。例:X=X+1103(5)赋值号左边必须是变量或对象属性。例:X=1

MyStr="GoodMorning"Command1.Caption="确定"X+1=X'

错误,赋值号左边是表达式

Y=5'

正确5=Y'

错误,赋值号左边是常量(6)变量名或对象属性名的类型应与表达式类型相容。类型相容:指变量名或对象属性名能够正确存取赋值号右边的表达式的值。104例:DimAAsInteger,BAsSingleDimCAsDouble,SAsStringA=100'将整型数100赋给整型变量AS="123

温馨提示

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

评论

0/150

提交评论