学习程序设计的基本方法多练模仿_第1页
学习程序设计的基本方法多练模仿_第2页
学习程序设计的基本方法多练模仿_第3页
学习程序设计的基本方法多练模仿_第4页
学习程序设计的基本方法多练模仿_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

学习程序设计的基本方法多练模仿第一页,共三十三页,2022年,8月28日第2章

程序设计基础

程序中的大部分实际工作是采用程序代码来处理的任何一个程序设计语言都有一套严格的编程规定

本章主要内容

数据类型常量与变量表达式常用内部函数程序代码编写规则第二页,共三十三页,2022年,8月28日

2.1

数据类型

数据是程序处理的对象。为了更好地处理各种各样的数据,VB定义了多种数据类型数值型

数据类型字符型逻辑型日期型对象型变体型整数:整型/长整型字节型浮点型:单/双精度货币型第三页,共三十三页,2022年,8月28日

1.整型(Integer)和长整型(Long)

不带小数部分的数,表示正整数、负整数和零

整型数:-32768~32767

长整型数:-2147483648~2147483647

2.字节型(Byte)

字节型数可以表示无符号的整数

0~255

3.单精度型(Single)和双精度型(Double)

浮点数。表示带有小数部分的数

表示数的范围大,但有误差。

如超出某个表示范围,则用科学记数法

例如:4.53E8(4.53×108),8.173E-14,3.14D23

4.货币型(Currency)

专门为处理货币而设计的数据类型

它可最多保留小数点右边4位和小数点左边15位

第四页,共三十三页,2022年,8月28日

5.字符型(String)

用双引号括起来的一串字符。

例如,“Canton”、”1+2=?”、”Good└┘Morning”等

“″”称为起止界限符。

字符串长度。分变长字符串(长度不固定)和定长字符串(长度固定)

在VB中,把汉字作为一个字符来处理。

6.逻辑型(Boolean)

逻辑型又称布尔型,其数据只有True(真)和False(假)两个值

7.日期型(Date)

表示日期和时间

用两个“#”符号把日期和时间的值括起来

如:#08/20/2001#、#2001-08-20#

第五页,共三十三页,2022年,8月28日

8.对象型(Object)

对象型数据可用来表示应用程序中的对象

9.变体型(Variant)

变体型数据是一种可变的数据类型,可以存放任何类型的数据

当指定变量为Variant变量时,VB会自动完成必要的转换

在程序中不特别说明时,VB会自动将该变量默认为Variant型变量。

例:Temp=“22”

’字符串

Temp=Temp-1’数值

Temp=#01/01/2002#’日期

第六页,共三十三页,2022年,8月28日说明:

(1)

不同类型的数据,所占的存储空间不一样。

(2)数据的类型可在数据之后加上一个类型符来表示,例如,413&,86!,104.67#等。

第七页,共三十三页,2022年,8月28日2.2常量与变量2.2.1常量

在程序运行期间其值始终保持不变的量两种形式的常量:一般常量和符号常量

1.一般常量在程序代码中直接给出的数据。例如:123,-263,“VisualBasic”,“12.57”等

2.符号常量符号常量是在程序中用符号表示的常量。格式:

[Public|Private]Const常量名[As数据类型]=表达式例如:

ConstPI=3.14159AsSingle第八页,共三十三页,2022年,8月28日

变量

变量是在程序运行期间其值可以发生变化的量

1.变量的命名规则应遵守一些规则:

(1)变量名必须以字母开头;

(2)只能由字母、数字和下划线组成。不能含有小数点、空格等字符;

(3)字符个数不得超过255个;

(4)不能使用VB的关键字(如语句名、函数名等)。例如,Print、Sub、End等;

(5)不区分变量名中字母的大小写第九页,共三十三页,2022年,8月28日

变量的声明就是向程序说明要使用的变量

有以下2种方法(显式声明与隐式声明)

(1)声明变量(显式声明)

用Dim、Public、Private或Static语句来声明变量例如:DimsumAsInteger′把sum定义为整型变量

(2)隐式声明

不加说明就直接使用变量,此时默认的变量类型为变体类型(Variant)

也允许使用类型符来声明变量的类型,如Num%,Sum!

2.变量的声明第十页,共三十三页,2022年,8月28日

五类表达式:算术表达式、字符串表达式、日期表达式、关系表达式和逻辑表达式

2.3.1算术表达式

算术表达式也称数值表达式,是用算术运算符把数值型常量、变量、函数连接起来的式子

表达式的运算结果是一个数值

VB有8种算术运算符(表2.2)

运算符优先级

^(乘方)→-(求负)→*/→\→Mod→+-

同级左到右

2.3表达式第十一页,共三十三页,2022年,8月28日说明:

(1)/和\的区别:1/2=0.5,1\2=0

(2)Mod用来求整型数除法的余数。例如:9Mod7结果为2

(3)在表达式中乘号不能省略,如a*b不能写成ab(或a·b)

(4)括号不分大、中、小,一律采用圆括号。可以嵌套使用例如,x[x(x+1)+1]

x*(x*(x+1)+1)第十二页,共三十三页,2022年,8月28日

字符串表达式是采用连接符将两个字符串常量、字符串变量、字符串函数连接起来的式子。

连接符有两个:&和+

其作用都是将两个字符串连接起来,运算结果是一个字符串。

例如:

”计算机”

&”网络”的结果是:”计算机网络”

”123”+”45”

的结果是:”12345”

123&”ABC”

的结果是:”123ABC”

2.3.2字符串表达式第十三页,共三十三页,2022年,8月28日

日期表达式是用运算符(+或-)将算术表达式、日期型常量、日期型变量和函数连接起来的式子。

有以下3种运算方式:

(1)两个日期型数据相减,其结果是一个数值型数据(相差的天数)。例如:#8/8/2001#-#6/3/2001#的结果为:66

(2)日期型数据加上天数,其结果为一个日期型数据。例如:#12/1/2000#+31的结果为:#01/01/2001#

(3)日期型数据减去天数,其结果为一个日期型数据。例如:#12/1/2000#-32的结果为:#10/30/2000#2.3.3日期表达式第十四页,共三十三页,2022年,8月28日

内部函数是由VB系统提供的,每个内部函数完成某个特定的功能。在程序中使用函数称为调用函数函数调用的一般格式为:

函数名(参数1,参数2,…)

参数(也称自变量)放在圆括号内,若有多个参数,以逗号分隔。

函数调用后,一般都有一个确定的函数值,即返回值。例如:y=Sqr(289)

Sqr是内部函数名,289为参数,运行时该语句调用内部函数Sqr来求289的平方根,其计算结果由系统返回给变量y

VB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。2.4常用内部函数第十五页,共三十三页,2022年,8月28日

VB中备有各种计算算术函数的子程序,在程序中要使用某个函数时,只要调用该函数就行了。

使用数学函数的几点说明:

(1)

三角函数的自变量单位是弧度如Sin47°应写成Sin(47*3.14159/180)。

(2)

函数Int是求小于或等于x的最大整数。例如Int(2)=2,Int(-2.5)=-3

当x≥0时就直接舍去小数,若x<0则舍去小数位后再减1

利用Int函数可以对数据进行四舍五入。例如,对一个正数x舍去小数位时进行四舍五入,可采用如下式子:Int(x+0.5)

当x=9.4时,Int(9.4+0.5)=9

当x=9.5时,Int(9.5+0.5)=102.4.1数学函数第十六页,共三十三页,2022年,8月28日

(3)随机函数可以模拟自然界中各种随机现象,它所产生的随机数,可以提供给各种运算或试验使用

Rnd通常与Int函数配合使用生成[a,b]区间范围内的随机整数,可以采用

Int((b-a+1)*Rnd+a)

例如Int(4*Rnd+1)可以产生1~4之间(含1和4)的随机整数。可以是1,2,3或4,这由VB运行时随机给定使用Rnd函数之前,先用Randomize语句来初始化随机数生成器第十七页,共三十三页,2022年,8月28日编写的窗体单击事件过程代码如下:

PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)'求十位数

b=xMod10'求个位数

c=b*10+a'生成新的数

Print"处理后的数:";cEndSub运行程序后单击窗体,输出结果是:

处理后的数:63例2.1

给定一个两位正整数(如36),交换个位数和十位数的位置,把处理后的数显示在窗体上第十八页,共三十三页,2022年,8月28日PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36

a=x\10

'求十位数

b=x–10*a

'求个位数

c=b*10+aPrint"处理后的数:";cEndSub

把上述程序改为以下形式,效果是否一样?想一想通常,解决某个问题的程序方法有多种,我们应该从中选择较优的一种方法。第十九页,共三十三页,2022年,8月28日编写的窗体单击事件过程代码如下:

PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerRandomize'初始化随机数生成器

a=Int(90*Rnd+10)'产生[10,99]区间内的随机整数

b=Int(90*Rnd+10)c=a+b'求两数之和

Print"产生的两个随机数:";a,bPrint"和数:";cEndSub运行程序后单击窗体,输出结果是:

产生的两个随机数:5671

和数:127例2.2

通过随机函数产生2个两位正整数,求这2个数之和并显示出来

再次运行程序,单击窗体后输出另一组结果是:产生的两个随机数:1837

和数:55第二十页,共三十三页,2022年,8月28日

字符串函数用于进行字符串处理

使用字符串函数的几点说明:

(1)函数Mid(“ABCDEG”,3,2)的结果为”CD”

若省略n,则得到的是从P开始的往后所有字符,如

Mid(“ABCDE”,2)

的结果为“BCDE”

(2)插入字符串语句Mid,该语句格式如下:

Mid(字符串,p[,n])=子字符串用“子字符串”替换“字符串”中从P开始的与“子字符串”等长的一串字符。例如,假设S=“ABCDE“,执行语句Mid(S,3)=“99“后,S的值为“AB99E“

字符串函数第二十一页,共三十三页,2022年,8月28日

(3)在函数Instr中,f和k均为可选参数,f表示开始搜索的位置(默认值为1),k表示比较方式,若k为0(默认),表示区分大小写;若k为1,则不分大小写。格式:Instr(f,字符串1,字符串2,k)

例如Instr(3,”A12a34A56”,

”A”)

的结果为7

Instr(3,”A12a34A56”,”A”,1)的结果为4

Instr(”A12a34A56”,

”A”)

的结果为1

(4)在函数String中,字符也可以用ASCII代码(附录一)来表示

例如String(6,42)

与String(6,”*”)作用相同第二十二页,共三十三页,2022年,8月28日

先从字符串a中找出某个指定字符(本例为空格),再以此字符为界拆分成两个字符串。编写的窗体单击过程代码如下:

PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera="Visual└┘FoxPro"

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左边部分

c=Mid(a,n+1)

'取右边部分

Printb

'显示左边部分

Printc

'显示右边部分

EndSub

程序运行后单击窗体,输出结果是:

Visual

FoxPro例2.3

使用字符串函数示例第二十三页,共三十三页,2022年,8月28日

PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera="Visual└┘FoxPro"

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左边部分

c=Right(____,____)

'取右边部分

Printb

'显示左边部分

Printc

'显示右边部分

EndSub

程序运行后单击窗体,输出结果是:

Visual

FoxPro

若用Right函数来代替Mid函数,应如何改动?想一想答案:a,Len(a)-n第二十四页,共三十三页,2022年,8月28日

日期/时间函数用于进行日期和时间处理

说明:

函数Weekday返回值1~7,依次表示星期日到星期六。2.4.3日期与时间函数第二十五页,共三十三页,2022年,8月28日

PrivateSubForm_Click()

x=#1/1/2005#

a=x-Date

b=Weekday(x)

c=Year(Date)

d=Month(Date)

e=Hour(Time)

f=Minute(Time)

Print"现在距离2005年元旦还有:";a;"天"

Print"2005年元旦是:星期";b-1

Print"本月份是:";c;"年";d;"月"

Print"现在是:";e;"时";f;"分"

EndSub

运行程序后单击窗体,输出结果如下:

现在距离2005年元旦还有:1184天

2005年元旦是:星期6

本月份是:2001年10月

现在是:16时27分例2.4

使用日期/时间函数示例(留给学生分析)第二十六页,共三十三页,2022年,8月28日

转换函数用于数据类型的转换

说明:Val函数将数字字符串转换为数值型数字时,会自动将字符串中的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如:

Val("A12")的值为0Val("12A12")的值为12Val("1.2e2")的值为120

例2.4使用转换函数的示例(留给学生分析)

PrivateSubForm_Click()

x="123"y=123

a=Chr(Asc(x)+5)

b=Str(Val(x)+5)

c=Val(Str(y)+"5")

Printa,b,c

EndSub

运行程序后单击窗体,输出结果如下:

61281235

类型转换函数第二十七页,共三十三页,2022年,8月28日

2.5.1语句及语法

VB中的程序语句是执行具体操作的指令。由VB关键字、属性、表达式以及VB可识别符号的组合例如,下列两个语句:

Printa–2*b

↑↑

关键字表达式

Text1.Text═“VB程序设计”

↑↑↑↑

对象名属性名赋值号表达式

简单的语句只有一个关键字。示例:End

2.5

程序代码编写规则第二十八页,共三十三页,2022年,8月28日

建立程序语句时必须遵守的构建规则称为语法。

统一约定符号如下:

[]方括号,可选项

{}多项中选一项

(竖线)用来分隔多个选择项(选其中之一项)

,…

表示同类项目的重复出现第二十九页,共三十三页,2022年,8月28日

在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。

(1)一行写多条语句。冒号分隔

Sum=Sum+x:Count=Count+1

(2)一条语句写成多行使用续行符(一个空格后面跟随一个下划线“_”),将长语句分成多行。例如:

PrintText1.Text&Text2.Text&Text4.Text&└┘_

&Left(Text3.Text,3)

(3)不区分大小写字母

V

温馨提示

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

最新文档

评论

0/150

提交评论