Visual Basic 60第二章电子教案.docx
《Visual Basic 60第二章电子教案.docx》由会员分享,可在线阅读,更多相关《Visual Basic 60第二章电子教案.docx(41页珍藏版)》请在冰豆网上搜索。
VisualBasic60第二章电子教案
第二章:
VisualBasic编程语言
教学内容:
VisualBasic编程语言,主要包括:
数据类型、常量、变量、赋值语句、选择语句、循环语句、数组、过程和函数。
教学目标:
1、掌握VisualBasic程序书写规范,属性、事件和方法,以及窗体模块和标准模块的用法。
2、了解数据类型、变量及常量的概念和分类
3、理解变量和常量声明的语法、功能
3、掌握变量和常量的使用方法
4、掌握VisualBasic中各种语句的语法格式、功能以及使用方法。
5、掌握数组的定义和使用方法。
6、掌握过程和函数的定义和调用。
教学重点:
变量和常量的使用方法;
VisualBasic中各种语句的语法格式、功能以及使用方法;
教学难点:
数组的定义和使用方法。
掌握过程和函数的定义和调用。
课时安排:
13课时
任务一
教学内容:
区分数据的类型
教学过程:
一、基本数据类型,如下表:
二、常量
1、一般常量:
指包含在程序代码中的常量。
分为以下几种:
(1)字符串常量:
用双引号括起来的一串字符。
如:
“123”
(2)数值常量:
包括整数、定点数和浮点数。
如:
12,&H11,&O13,3.14,2.168E5
(3)布尔型常量:
只有两个值,True或False
(4)日期型常量:
要用“#”括起来,如:
#10/16/2014#
2、符号常量:
在程序中用标识符表示的一些永远不变的常数或字符串。
(1)系统内部定义的符号常量:
VsiualBasic6.0定义了许多符号常量如vbRed(红色)、vbBlue(蓝色)、vbGreen(绿色)等,在程序设计中可以直接使用。
(2)用户定义的符号常量可以用Const语句来声明,语法格式如下。
Const常量名[As类型]=常量表达式
如:
Constpi=3.14159265
三、Print语句
语法格式:
[对象名称.]Print[表达式][,|;][表达式][,|;]…
语句功能:
用来输出数据和文本
说明:
1、表达式之间用“,”分隔,则按标准格式(分区格式)显示数据项,此时把屏幕的一行分成5个区,其中前三个区每个区占14个字符的位置,最一个区占24个字符的位置。
2、表达式之间用“;”分隔,则按紧凑格式输出,即一项接着一项输出。
3、Print语句具有计算和输出的双重功能,即先计算后输出。
4、若想要把两个Print语句的输出项输出到一行,则可以在上一个Print语句末尾使用“,”或“;”
例:
print12,3.2;abc
print1,2,
print1+2
四、标识符命名规则
VisualBasic中有许多需要命名的地方,如符号常量名、变量名等,在命名时需要遵循以下规则:
1、标识符必须以字母开头,最大长度为255个字符。
2、标识符不能使用VisualBasic的保留字(关键字),不能包含有特殊含义的字符,如句号、空格、类型说明符和运算符。
3、VisualBasic的标识符不区分大小写。
4、标识符在标识符的同一范围内必须是唯一的。
例:
判断下列字符字列能否作为VisualBasic的标识符:
(1)a1
(2)B+5(3)p5
(4)a:
b(5)x2Y(6)Print
五、举例
分别为每种数据类型提供一些常量,并使用Print语句将常量的值显示在窗体上,运行效果如下图:
布置作业:
1、在VisualBasic中基本数据类型有哪些?
2、在VisualBasic中常量分为哪些类型?
3、Print语句有哪几种输出格式?
4、在VisualBasic中标识符的命名规则如何?
任务二
教学内容:
制作个人信息卡
教学过程:
一、变量
1、变量的概念:
程序执行过程中其值可以变化的量称为变量。
2、变量的实质:
变量名实质上是计算机内存单元的命名。
3、变量的声明:
有显示声明和隐式声明两种。
隐式声明:
不经过声明直接使用变量,变量是Variant类型
显示声明:
可以在模块的声明段中加入OptionExplicit语句。
用变量声明语句来声明变量的类型,语法格式如下:
<变量名>[As类型][,<变量名>[As类型]]
关键字Dim、Private、Static、Public用法如下表:
变量型
作用域
声明位置
使用语句
局部变量
过程
过程中
Dim或Static
模块变量
窗体模块或标准模块
模块的声明部分
Dim或Private
全局变量
整个应用程序
标准模块的声明部分
Public
二、赋值语句
1、语法格式:
[Let]变量名=表达式
2、功能:
先计算表达式的值,然后赋给赋值号左边的变量。
3、说明:
(1)变量和表达式的数据类型必须一致。
(2)赋值号“=”表示将表达式的值赋给变量,与数学上的等于号形同义不同。
(3)语句定义符“let”可以省略。
(4)赋值语句兼有计算和赋值的双重功能。
(5)若把多个赋语句放在同一行,各语句之间必颀用冒号分隔。
例如:
Privatesubform_click()
dimaasinteger,basinteger,casinteger
a=2:
b=5:
c=0
c=a+b
c=a*b
endsub
三、注释语句
1、注释语的作用:
是为了方便程序阅读而对程序进行的说明,对程序运行没有影响。
2、注释语句的形式:
在VisualBasic中有两种形式的注释语句,语法格式如下:
Rem|’[注释文本]
四、结束语句
在VisualBasic中有两个结束语句,语法格式如下:
End
Unload<对象名称>
End语句的功能是结束正在运行的程序;
Unload语句的功能是从内存中卸载窗体或控件。
五、语句的书写格式
在VisualBasic中,编写程序代码时,需要注意以下规则:
1、不区分大小写;
2、标点符号需要在英文状态下输入;
3、语句以回车键结束。
六、举例
作一个个人信息卡,卡片上的内容包括:
姓名、性别、身高、体重、出生时间及是否喜欢学习VisualBasic6.0等信息,程序运行效果如下图。
布置作业:
1、什么是变量?
在VisualBasic6.0中变量有几种声明方式?
2、赋值语句的功能发何?
3、在VisualBasic6.0中有几种注释语句?
4、在VisualBasic6.0中语句的书定格式如何?
任务三
教学内容:
计算圆的面积
教学过程:
一、算术表达式
算术表达式由算术运算符、数值型量和圆括号组成,其运算结果为数值型,下表按优先级列出8个算术运算符,如下表:
优先级
运算
运算符
表达式举例
示例
值
1
幂
^
X^Y
2^3
8
2
负号
-
-x
-5
-5
3
乘、除
*、/
X*Y、X/Y
2*3,6/2
6,3
4
整除
\
X\Y
7\3
2
5
取模
Mod
XmodY
7mod3
1
6
加、减
+、-
X+Y、X-Y
1+2,3-2
3,1
二、字符串表达式
字符串连接运算符有以下两个,主要用于连接两个或更多字符串并构成字符串表达式:
1、&:
将任意两个量以字符串形式连接在一起。
2、+:
将两个字符串类型的量连接在一起。
例:
12&“ABC”结果为“12ABC”
12+“ABC”结果就会出错
三、应用举例
例1、计算下列表达式的值:
1、3^3+18\4-52、(21mod5+12/3)\2
3、10\3*2-16mod44、“x1”+“123”
例2、计算半径为10cm的圆的面积,程序运行效果如下图。
布置作业:
填空题
1、在VisualBasic6.0中算术运算符有哪些?
2、在VisualBasic6.0中字符串连接运算符有哪些?
任务四
教学内容:
判断闰年的问题
教学过程:
一、关系表达式
关系运算符用来对两个表达式的值进行比较,比较的结果是一个逻辑值,即真(True)或假(False)。
如下表
二、布尔表达式
优先级
运算
运算符
说明
1
非
Not
“取反”运算
2
与
And
两个表达式的值均为True,结果为True,否则为False
3
或
Or
两个表达式的值均为False,结果为False,否则为True
4
异或
Xor
两个表达式的值同时为True或False,结果为False,否则为True
5
等价
Eqv
两个表达式的值同时为True或False,结果为True
6
蕴含
Imp
当第一个表达式为True,第二个表达式为False时,结果为False
三、布尔表达式
四、应用举例
例1、计算下列表达式的值:
1、“BCE”>“BT”2、3<5AND5>9
3、NOT2>8OR“XY”=“XY”4、NOT12>3*3
例2、创建一个应用程序,用于判断指定的年份是不是闰年,运行效果如下图:
布置作业:
1、在VisualBasic6.0中关系运算符有哪些?
2、在VisualBasic6.0中逻辑运算符有哪些?
任务五
教学内容:
改变窗体的颜色
教学过程:
一、程序的结构
在结构化程序设计中,程序的基本结构有三种,分别是:
1、顺序结构
顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的,这种结构的特点是:
程序从入口点a开始,按顺序执行所有操作,直到出口点b处,所以称为顺序结构。
2、选择结构
选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。
选择结构有单选择、双选择和多选择三种形式。
3、循环结构
循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。
在循环结构中最主要的是:
什么情况下执行循环?
哪些操作需要循环执行?
循环结构的基本形式有两种:
当型循环和直到型循环,而什么情况下执行循环则要根据条件判断
二、if语句
VisualBasic6.0的选择语句包单行结构和块结构。
1、单行结构的if语句格式:
if<条件>then[语句1][Else语句2]
单行结构的if语句的执行流程是,若“条件”为真,则执行“语句1”;否则执行“语句2”。
2、块形式的if语句格式:
if<条件1>then
[语句块1]
[Elseif<条件2>then
[语句块2]
[Elseif<条件3>then
[语句块3]
……
[Else
[语句块n]]
endif
块结构的if语句的执行流程是,若“条件1”为真,则执行“语句块1”;否则,若“条件2”为真,则执行“语句块2”……,若条件都为假,则执行“语句块n”
例:
求两个数中较大的数
三、IIf函数
IIf函数
Result=IIf(条件,True部分,False部分)
例如:
x=10
y=iff(x>0,x+1,x-1)
四、应用举例
例1、分析下列程序
if x=3 then
y=2*x+1
elseif x=5 then
y=2*x-1
elseif x=9 then
y=3*x+4
elseif x=6 then
y=9*x-9
else
print “error”
endif
例2、创建一个应用程序,每当用鼠标单击窗口时,窗口的背景就变换一种颜色,窗口的背景颜色在红、绿、蓝三色之间循环。
运行效果如下图:
布置作业:
1、在结构化程序设计中,程序有哪几种基本结构?
2、在VB6.0中if语句有哪几种形式?
任务六
教学内容:
值班情况查询
教学过程:
一、selectcase语句
⏹SelectCase语句根据测试表达式的值,从多个语句块中选择一个符合条件的语句块执行。
语法格式如下:
SelectCase<测试表达式>
Case表达式列表1
语句块1
[Case表达式列表2
语句块2]
...
[CaseElse
语句块n]
EndSelect
⏹其中测试表达式可以是数值或字符串表达式;每个“表达式列表”可以是一个表达式、一组用逗号分隔的枚举值(如1,2,3)、表达式1to表达式2(如1to5)、Is关系运算符表达式(如Is<3)。
⏹SelectCase语句执行的流程是:
对测试表达式进行测试并检查表达式列表1,若为真,则执行语句块1并结束选择;若为假,继续检查下一个条件。
如果都不为真,则执行语句块n。
如果没有语句块n,则什么也不做就结束选择。
二、应用举例:
⏹制作一个学校的电子值班安排表,供师生查询,运行结果如下图所示。
分析:
一个星期内的值班安排,最多有7种情况,输入1~7中的一个数字,根据输入的数字用SelectCase语句进行判断,并给出相应的提示信息。
对于输入小于1、大于7的的情况也应进行适当处理
设计步骤:
1、在VB6.0中创建一个标准EXE工程。
2、把窗体Form1的Caption属性值设置为“任务6值班情况查询”。
3、在窗体Form1的代码窗口中编写事件过程。
(事件过程略)
InputBox函数的格式:
InputBox(<提示信息>[,标题][,默认值])
4、分别保存窗体文件和工程文件。
5、运行该程序。
布置作业:
SelectCase语句的执行流程如何?
任务七
教学内容:
棋盘上的麦粒数
教学过程:
一、For循环语句
在实际工作中,常遇到一些操作过程不太复杂,但又需要反复进行相同处理的问题,比如,统计本单位所有人员的工资,求全班同学各科的平均成绩等等。
这些问题的解决逻辑上并不复杂,但如果单纯用顺序结构来处理,那将得到一个非常乏味且冗长的程序。
例如,计算1~100所有奇数的平方和,如果用顺序结构来解决这个问题非常麻烦。
我们用循环语句解决上面的问题,程序非常简短,所谓循环就是重复地执行一组语句。
1.For循环
For循环变量=初值To终值[Step步长]
[循环体]
[ExitFor]
[循环体]
Next[循环变量]
1.格式中各项的说明
循环变量:
亦称为循环控制变量,必须为数值型。
初值、终值:
都是数值型,可以是数值表达式。
步长:
循环变量的增量,是一个数值表达式。
一般来说,其值为正,初值应小于终值;若为负,初值应大于终值。
但步长不能是0。
如果步长是1,Step1可略去不写。
循环体:
在For语句和Next语句之间的语句序列。
Next后面的循环变量与For语句中的循环变量必须相同。
2.执行过程
For循环语句的执行过程如下:
(1)系统将初值赋给循环变量,并自动记下终值和步长。
(2)检查循环变量的值是否超过终值。
如果超过就结束循环,执行Next后面的语句;否则,执行一次循环体。
(3)执行Next语句,将循环变量增加一个步长值再赋给循环变量,转到
(2)继续执行。
以上执行过程用流程图描述,如下图所示。
这里所说的“超过”有两种含义,即大于或小于。
当步长为正值时,循环变量大于终值为“超过”;当步长为负值时,循环变量小于终值为“超过”。
我们通过分析下面的程序来进一步理解For语句的执行过程。
Forn=1To10Step3
Printn,
Nextn
具体执行情况如下:
第几次循环n与终值比较执行循环体否
11<10执行
24<10执行
37<10执行
410=10执行
513>10停止执行
上面程序的执行结果为:
14710
3.注意事项
For语句和Next语句必须成对出现,缺一不可,且For语句必须在Next语句之前。
循环次数由初值、终值和步长确定,计算公式为:
循环次数=Int((终值-初值)/步长)+1
二、While循环语句
前面我们介绍了For…Next循环,它适合于解决循环次数事先能够确定的问题。
对于只知道控制条件,但不能预先确定需要执行多少次循环体的情况,我们可以使用While循环。
While语句格式如下:
While<条件>
[循环体]
Wend
1.While语句说明
“条件”可以是关系表达式或逻辑表达式。
While循环就是当给定的“条件”为True时,执行循环体,为False时不执行循环体。
因此While循环也叫当型循环。
2.执行过程
While循环的执行过程(如图5-5所示):
(1)执行While语句,判断条件是否成立。
(2)如果条件成立,就执行循环体;否则,转到(4)执行。
(3)执行Wend语句,转到
(1)执行。
(4)执行Wend语句下面的语句。
3.While循环的几点说明
(1)While循环语句本身不能修改循环条件,所以必须在While…Wend语句的循环体内设置相应语句,使得整个循环趋于结束,以避免死循环。
(2)While循环语句先对条件进行判断,然后才决定是否执行循环体。
如果开始条件就不成立,则循环体一次也不执行。
(3)凡是用For…Next循环编写的程序,我们都可以用While…Wend语句实现。
反之,则不然。
三、For循环语句实例
【例1】求N!
(N为自然数)。
分析:
由阶乘的定义,我们可以得出N!
=1*2*…*(N-2)*(N-1)*N=(N-1)!
*N,也就是说,一个自然数的阶乘,等于该自然数与前一个自然数阶乘的乘积。
【例1】据传说记载,有位印度教宗师发明了国际象棋.国王非常喜欢,问宗师需要什么赏赐.宗师说:
请您在棋盘上的第一个格子上放1粒麦子,第二个格子上放2粒,第三个格子上放4粒,即后面格子的麦粒数是它前一个格子的倍数,直到64格放满为止。
“好吧!
”,国王慷慨地答应了宗师的请求。
国王要给宗师多少麦子呢?
计算结果如下图所示。
四、While循环语句实例
【例1】分析下面的程序
Privatesubform_click()
Dimxasinteger
x=1
Whilex<5
Printx,
x=x+1
Wend
Endsub
【例2】假设我国现有人口12亿,若年增长率为1.5%,试计算多少年后我国人口增加到或超过20亿。
人口计算公式为:
p=y(1+r)n
y为人口初值,r为年增长率,n为年数。
程序如下:
PrivateSubForm_Click()
Dimp!
,r!
,I%
p=12
r=0.015
I=0
Whilep<20
p=p*(1+r)
I=I+1
Wend
PrintI;"年后,我国人口将达到";p;"亿"
EndSub
布置作业:
1、for循环语句的执行过程如何?
2、while循环语句的执行过程如何?
任务八
教学内容:
计算阶梯问题
教学过程:
一、Do循环语句格式一
格式一
Do[While|Until<循环条件>]
[语句块]
[ExitDo]
[语句块]
Loop
二、Do循环语句格式二
格式二
Do
[语句块]
[ExitDo]
[语句块]
Loop[While|Until<循环条件>]
三、格式一举例
PrivateSubForm_Click()
DimiAsInteger '定义循环变量为整型
DoWhilei<10 '如果i小于10,那么就输出i的值
Printi; '输出i的值
i=i+1 'i的值加1
Loop
EndSub
PrivateSubForm_Click()
m=2460:
n=345
DimsAsSingle
Dowhile(n<>0)
s=mModn
m=n
n=s
Loop
Print“最大公约数=”&m
EndSub
四、格式二实例
例1:
PrivateSubCommand1_Click()
DimnumAsInteger
num=1
DoUntilnum>6
Printnum;
num=num+2.4
Loop
EndSub
他说窗体显示结果是135
为什么不是13.45.8呢
例2:
爱因斯坦曾提出这样一个问题:
设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶,正好到达阶梯顶。
问共有多少阶梯?
计算结果如下图所示。
布置作业:
1、DO循环语句有哪几种格式?
任务九
教学内容:
分析蛋糕销售情况
教学过程:
一、定长数组
定长数组的说明:
Dim数组名([下标下界To]下标上界[,下标下界To下标上界])[As数据类型]
说明:
1、Dim语句必须放在使用数组之前,遵循先声明后使用的原则。
2、格式中的数组名可以是任意合法的变量名。
3、数据类型可以是整型、长整型、单精度型、双精度型、货币型和字符型等基本类型,也可以是变体类型,若少略As子句,则定义的数组为变体类型。
4、用Dim语句定义数据时,数组中的全部元素初始化为0,字符串数组中的全部元素初始化为空字符串。
5、下标下界和下标上界表示该维的最小和最大下标值,通过关键字TO连接起来,代表下标的取值范围,或省略了“下标下界TO”,则数组默认下界为0;若希望下标从1开始,可以通过OptionBase1来设置,该语句必须出现在窗体层或模块层的说明部分。
6、数组有一个下标变量,称为一维数组,有两个或多个下标变量,称为二维数组或多维数组。
数组的维数最多可以有60维。
7、不能使用Dim语句对已经声明了的数组进行重新声明。
8、在同一过程中,数组名不能与变量名相同。
9、在声明数组时,每一维元素的个数必须是常数,不能是变量和表达式。
10、数组的下界必须小于数组的上界。
数组下标的上界值和下界值可以用UBound和LBound函数来测试:
语法格式如下:
UBound(数组名[,维])测试指定维的上界
LBound(数组名[,维])测试指定维的下界
例如:
Dima(3to8)
UBound(a)
LBound(a)
二、默认数组
⏹在VisualBasic中,允许声明默认数组,即数据类型为Variant的数组:
StaticVari(1To100)
该声明等价于:
StaticVari(1To100)AsVariant
三、数组的初始化
数组的初始化
数组名=Array(数组元素值)
⏹