第四章 程序设计基础.docx

上传人:b****5 文档编号:6733104 上传时间:2023-01-09 格式:DOCX 页数:17 大小:22.16KB
下载 相关 举报
第四章 程序设计基础.docx_第1页
第1页 / 共17页
第四章 程序设计基础.docx_第2页
第2页 / 共17页
第四章 程序设计基础.docx_第3页
第3页 / 共17页
第四章 程序设计基础.docx_第4页
第4页 / 共17页
第四章 程序设计基础.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第四章 程序设计基础.docx

《第四章 程序设计基础.docx》由会员分享,可在线阅读,更多相关《第四章 程序设计基础.docx(17页珍藏版)》请在冰豆网上搜索。

第四章 程序设计基础.docx

第四章程序设计基础

第四章程序设计基础

教学目的及要求:

使学生掌握顺序结构、分支结构、循环结构的语法规则和具体应用,程序调试的步骤和方法。

重点与难点:

1、熟练掌握表达式、赋值语句及逻辑表达式等的书写约定

2、掌握InputBox和MsgBox函数的用法

3、掌握单分支和多分支条件语句

4、熟练掌握For语句和While语句的使用

5、难点是多重循环的程序设计

主要外语词汇:

context、prompt、msgbox、inputbox

授课内容:

1、三种基本结构:

顺序结构、选择结构、循环结构

2、流程图:

(1)传统的流程图

(2)N-S流程图

第一节顺序结构程序设计

特点:

按书写时的顺序依次执行。

一、VB中的语句及书写约定:

1、自动语法检测

2、格式化处理

3、续行符:

下划线,一条语句写在多行上。

下划线与其前面的字符之间至少要有一个空格。

4、复合语句行:

冒号,多条语句写在一行上。

二、赋值语句:

1、可以给一个变量或某一个对象的属性赋值。

格式1:

变量名=表达式

格式2:

[对象名.]属性名=属性值

若省略对象名,则默认是当前窗体。

方向性:

从右向左赋值。

2、最终的结果是最后一次的赋值。

3、数据类型要匹配,注意相容现象:

(1)逻辑型->数值型:

True->-1,False->0

数值型->逻辑型:

非0->True,0->False

(2)实型->整型:

四舍五入原则,不是去尾原则

整型->实型:

扩展小数位数

4、不管表达式是什么数据类型,都可以赋给一个Variant变量。

5、系统提供的默认初始值:

(1)数值型:

0

(2)货币型:

0(3)字符型:

空字符串

(4)逻辑型:

False(5)日期型:

0:

00:

00

(6)可变型:

Empty(7)对象型:

Nothing

6、不能连续赋值:

例:

DimaAsInteger,bAsInteger,cAsInteger

a=b=c=1错误

a=1:

b=1:

c=1正确

7、交换两个变量中的数据:

例:

a=b:

b=a错误

t=a:

a=b:

b=t正确,t是中间变量

注意:

VB中的数字和只包含数字的字符串可以方便地互换类型,例:

(1)隐式转换:

PrivateSubCommand1_Click()

DimxAsInteger,yAsString

y=“100.23”:

x=y‘隐式转换

Printx

EndSub

(2)显式转换字符型->数值型:

利用Val函数:

PrivateSubCommand1_Click()

DimxAsInteger

Text1.Text=“100.23”

x=Val(Text1.Text)‘显式转换

Printx

EndSub

(3)显式转换数值型->字符型:

利用Str函数:

PrivateSubCommand1_Click()

DimxAsInteger

x=100.23

Text1.Text=Str(x)‘显式转换

PrintText1.Text

EndSub

三、注释、暂停、结束语句:

1、注释语句:

非执行语句

(1)格式1:

Rem注释语句

(2)格式2:

‘注释语句(常用)

(3)块注释:

视图->工具栏->编辑->设置注释块、解除注释块

2、暂停语句:

格式:

Stop

暂停程序的运行,但不关闭所有已打开的文件,相当于在程序代码中设置断点,主要用于调试程序。

3、结束语句:

格式:

End

停止程序的运行,关闭所有已打开的文件。

还可以用来结束一些模块的操作。

例:

PrivateSubCommand2_Click()

End

EndSub

四、输入函数InputBox:

在一对话框中显示提示,等待用户输入内容,并返回包含文本框内容的字符串。

1、格式:

InputBox(prompt[,title][,default][,xpos,ypos][,helpfile,context])

(1)prompt:

对话框的消息提示文字。

(2)title:

对话框的标题,标题省略取默认值“工程1”。

(3)default:

文本框的默认输入信息。

2、InputBox函数的返回值是字符型的。

3、每运行一次InputBox函数只能给一个变量赋值。

总结:

输入数据的方法:

1、在程序代码中直接指定:

优点:

代码简单

缺点:

缺少灵活性

2、利用TextBox文本框输入数据:

优点:

可以输入任意值

缺点:

要添加多个文本框,界面复杂

3、利用InputBox函数输入数据:

优点:

界面简单,可以输入任意值

缺点:

代码复杂,参数较多

五、消息函数和语句MsgBox:

在一对话框中显示消息,等待用户单击按钮,并返回包含文本框内容的字符串。

1、MsgBox函数:

(1)格式:

MsgBox(prompt[,buttons][,title][,helpfile,context])

①prompt:

对话框的消息提示文字。

②buttons:

a)组合值,每组只能取一个数字,数字间用“+”连接。

b)进行相加(只有唯一的分解方式)。

c)使用VB常数。

(表4-1)

d)方式a)和方式c)可以结合起来使用。

e)把“+”换成“Or”

例:

3+32+0

35

vbYesNoCancel+vbQuestion+vbDefaultButton1

vbYesNoCancel+32+vbDefaultButton1

③title:

对话框的标题,标题省略取默认值“工程1”。

(2)MsgBox函数的返回值是整型的:

1-7(表4-2)

例:

PrivateSubForm_Load()

DimaAsInteger

Show

a=MsgBox("请你选择:

",3+32+0,"Buttons参数组合举例")

Ifa=6Then

UnloadForm1

Form2.Show

EndIf

Ifa=7Then

UnloadForm1

Form3.Show

EndIf

Ifa=2Then

End

EndIf

EndSub

2、MsgBox语句:

仅仅用于显示一些简单的信息而不需要返回值。

格式:

MsgBoxprompt[,buttons][,title][,helpfile,context]

参数含义:

同上

不用写小括号,没有返回值,可以单独作为一个语句来使用。

六、数据输出:

Print方法的缺省输出:

从窗体的第1行第1列开始输出。

1、Tab函数:

格式:

Tab(n),参数n是绝对列数值。

(1)Tab函数与表达式之间用分号分隔。

(2)如果当前行的打印位置大于n,则Tab将打印位置移动到下一行的第n列上。

(3)如果n小于1,则Tab将打印位置移动到该行的第1列。

(4)如果n大于输出行的宽度,则Tab函数用以下公式计算下一个打印位置:

nMod行宽。

2、Spc函数:

格式:

Spc(n),参数n是相对列数值。

(1)Spc函数与表达式之间用分号分隔。

(2)如果n小于输出行的宽度,则下一个打印位置将紧接在数个已打印的空白之后。

(3)如果n大于输出行的宽度,则Spc函数用以下公式计算下一个打印位置:

当前打印位置+(nMod行宽)。

3、Space函数:

格式:

Space(n),输出n个空格

注:

Spc函数与Space函数作用相同,但Space函数可以使用字符串运算符&和+。

总结:

输出行的控制:

Print后面不跟表达式,只输出一行空行。

输出列的控制:

用Tab、Spc或Space函数调整。

七、输出到打印机:

1、直接输出:

格式:

Printer.Print[表达式]

只能打印文本信息,不能打印图形图像信息。

(1)Page属性:

用来设置页码,默认缺省值为1。

(2)NewPage方法:

强制打印机跳到下一页打印。

(3)EndDoc方法:

用来结束文件的打印。

2、窗体输出:

格式:

[窗体.]PrintForm

既将信息输出到窗体,又将信息输出到打印机。

预览作用

(1)[窗体.]AutoRedraw=True

(2)可以打印窗体上的文本、任何可见的控件及图形信息。

附:

方法与函数的区别:

(1)方法可以单独作为语句使用,函数不可以。

(2)方法没有返回值,函数有返回值。

(3)方法的格式:

[对象.]方法[参数列表]

函数的调用格式:

函数名([参数列表])

(4)方法是隶属于某一个对象的,函数存在于VB自带的函数库。

第二节选择结构程序设计

特点:

根据指定的条件进行判断,根据判断的结果在两条分支或多条分支路径中选取其中的一条执行。

一、行If语句:

单行形式,双分支结构

格式1:

If条件Then语句组1

格式2:

If条件Then语句组1Else语句组2

语句组中的多个语句之间用冒号分隔。

二、块If语句:

多行形式,双分支结构

格式3:

If条件Then格式4:

If条件Then

语句组1语句组1

EndIfElse

语句组2

EndIf

1、Else必须单独一行。

2、If…EndIf必须成对出现。

行If语句中不需要EndIf。

3、最好采用缩进形式。

4、如果语句组1、语句组2中含有多条语句时,最好使用块If语句。

三、If语句的嵌套:

多分支结构

四、ElseIf语句:

多分支结构

格式:

If条件1Then

语句组1

ElseIf条件2Then

语句组2

……

ElseIf条件nThen

语句组n

Else

语句组n+1

EndIf

1、VB首先测试条件1,如果它为False,VB就测试条件2,依次类推,直到找到一个为True的条件。

此时,VB就会执行相应的语句组,然后执行EndIf后面的语句。

2、不能交叉嵌套,只能完全嵌套。

3、可以使用任意数量的ElseIf语句。

4、只有一个EndIf与If相对应。

例题4-5:

方法一:

Ifcj>=0Andcj<60Then

Print"不及格"

Else

Ifcj>=60Andcj<75Then

Print"及格"

Else

Ifcj>=75Andcj<90Then

Print"良好"

Else

Ifcj>=90Andcj<=100Then

Print"优秀"

EndIf

EndIf

EndIf

EndIf

方法二:

Ifcj>=90Andcj<=100Then

Print"优秀"

Else

Ifcj>=75Then

Print"良好"

Else

Ifcj>=60Then

Print"及格"

Else

Print"不及格"

EndIf

EndIf

EndIf

方法三:

Ifcj>=90Andcj<=100Then

Print"优秀"

ElseIfcj>=75Then

Print"良好"

ElseIfcj>=60Then

Print"及格"

Else

Print"不及格"

EndIf

方法四:

SelectCasecj

Case90To100

Print“优秀”

Case75To89

Print“良好”

Case60To74

Print“及格”

CaseElse

Print“不及格”

EndSelect

五、多条件选择语句SelectCase:

多分支结构

格式:

SelectCase测试表达式

Case表达式1

语句组1

Case表达式2

语句组2

……

Case表达式n

语句组n

[CaseElse

语句组n+1]

EndSelect

改进:

SelectCase测试表达式‘复合语句

Case表达式1:

语句组1

Case表达式2:

语句组2

……

Case表达式n:

语句组n

[CaseElse:

语句组n+1]

EndSelect

1、测试表达式只能是数值型或字符型。

2、测试表达式只计算一次,然后VB将表达式的值与结构中的每个Case的值进行比较,如果相等,就执行与该Case相关联的语句组。

3、如果不止一个Case与测试表达式相匹配,则只对第一个匹配的Case执行与之相关联的语句组。

4、表达式n的可能形式:

(1)表达式1[,表达式2][,表达式3]……无大小顺序。

(2)表达式1To表达式2包括表达式1和表达式2在内。

(3)Is<关系运算符><表达式>

只能是简单的条件,不能用逻辑运算符将两个或多个条件组合在一起。

以上三种形式可以混合使用。

六、条件判断函数IIf:

双分支结构

格式:

IIf(条件,表达式1,表达式2)

1、当条件为真时,函数返回值是表达式1的值;当条件为假时,函数返回值是表达式2的值。

例:

PrintIIf(cj>=60,“通过”,“不通过”)

2、IIf函数可以嵌套使用。

例:

PrintIIf(a<0,-1,IIf(a=0,0,1))

总结:

1、行If语句:

双分支结构

2、块If语句:

双分支结构

3、If语句的嵌套:

多分支结构

4、ElseIf语句:

多分支结构

5、多条件选择语句SelectCase:

多分支结构

6、条件判断函数IIf:

双分支结构

第三节循环结构程序设计

1、特点:

根据给定条件是否满足决定是否继续执行循环体中的操作。

注:

避免出现“死循环”。

当程序运行了“死循环”的结构,必须按Ctrl+Break中断。

2、三种循环结构:

(1)For…Next

(2)While…Wend(3)Do…Loop

3、循环方式:

(1)计数法

(2)标志法

一、For循环结构:

格式:

For循环变量=初值To终值[Step步长]

循环体

Next[循环变量]

1、缺省步长时,默认是1。

步长可以为正值或为负值。

2、先判断条件,后执行循环体。

注:

若循环体执行n次,则条件将被判断n+1次。

3、ExitFor语句的作用:

提前退出循环体,结束循环结构。

4、空循环的作用:

延时。

5、For循环一般用在已知循环次数的情况。

6、多重循环:

不能交叉嵌套,只能完全嵌套。

各层次的循环变量名不能相同。

7、多重循环可以共用一个Next语句,但此时循环变量名不能省略,并且先内循环变量,后外循环变量。

例:

Fori=1To10

Forj=1To15

Fork=1To20

循环体

Nextk

Nextj

Nexti

二、当型循环While…Wend结构:

格式:

While条件

循环体

Wend

1、先判断条件,后执行循环体。

注:

若循环体执行n次,则条件将被判断n+1次。

2、循环体内一定要有改变条件的语句,否则就会导致“死循环”。

3、多重循环:

不能交叉嵌套,只能完全嵌套。

例题4-11:

求两个数的最大公约数。

(1)该程序算法:

(2)PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13ThenText2.SetFocus

EndSub

注:

CommandButton的Default属性默认是False,该属性设置为True时,说明该按钮是缺省按钮,按回车键就相当于单击了该按钮。

两者不能相互冲突。

三、Do…Loop循环结构:

先判断后执行

先执行后判断

DoWhile条件

循环体

Loop

与While…Wend结构相同

Do

循环体

LoopWhile条件

DoUntill条件

循环体

Loop

Do

循环体

LoopUntill条件

1、既可以是当型循环,也可以是直到型循环。

2、While与Untill后面的“条件”总是相反的。

3、既可以先判断后执行:

若循环体执行n次,则条件将被判断n+1次。

也可以先执行后判断:

若循环体执行n次,则条件将被判断n次。

4、ExitDo语句的作用:

提前退出循环体,结束循环结构。

总结:

提前退出循环体的方法:

(1)For…Next:

用ExitFor语句

(2)While…Wend

(3)Do…Loop:

用ExitDo语句

Page79:

i=1

DoWhilei<=99

s=s+i

Ifs>2000Then

ExitDo

EndIf

i=i+2

Loop

例题4-10:

方法一:

用For循环结构

Fori=1To9

Forj=1Toi

PrintTab(j*8);j&"×"&i&"="&j*i;

Nextj

Print

Nexti

方法二:

用While…Wend循环结构

i=1

Whilei<=9

j=1

Whilej<=i

PrintTab(j*8);j&"×"&i&"="&j*i;

j=j+1

Wend

Print

i=i+1

Wend

方法三:

用Do…Loop循环结构

i=1

DoWhilei<=9

j=1

DoWhilej<=i

PrintTab(j*8);j&"×"&i&"="&j*i;

j=j+1

Loop

Print

i=i+1

Loop

例题4-5:

DimcjAsInteger

cj=InputBox(“请输入学生的成绩:

0~100分:

”)

DoWhileTrue

Ifcj>=0Andcj<=100Then

ExitDo

Else

MsgBox“必须输入0~100分之间的整数!

cj=InputBox(“请输入学生的成绩:

0~100分:

”)

EndIf

Loop

例题4-13:

方法一:

用While…Wend循环结构

f=0

i=2

Whilei<=n-1Andf=0

IfnModi=0Then

f=1

Else

i=i+1

EndIf

Wend

方法二:

用For循环结构

f=0

Fori=2Ton-1

IfnModi=0Then

f=1

ExitFor

EndIf

Nexti

方法三:

用Do…Loop循环结构

f=0

i=2

DoWhilei<=n-1

IfnModi=0Then

f=1

ExitDo

EndIf

i=i+1

Loop

总结:

1、For循环结构:

计数法。

2、While循环结构:

计数法、标志法,可以实现多条件判断。

3、Do…Loop循环结构:

计数法、标志法,可以实现多条件判断。

第四节其他辅助语句

一、Goto语句:

功能:

无条件地转向执行语句标号或行号的语句。

1、格式1:

Goto语句标号

语句标号后面必须加一个冒号。

2、格式2:

Goto行号

行号后面不能加冒号。

二、On-Goto语句:

缺点:

BS现象

 

辅助教学情况:

多媒体课件、VisualBasic6.0

复习思考题、作业题

思考当窗体的名称改为form1时,该窗体的对象名是什么。

教材习题一1、2、3、4、5

参考教材或资料:

《VisualBasic程序设计教程》,刘炳文许蔓舒编著,清华大学出版

 

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1