第3章 顺序结构程序设计教案.docx
- 文档编号:8880536
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:14
- 大小:66.37KB
第3章 顺序结构程序设计教案.docx
《第3章 顺序结构程序设计教案.docx》由会员分享,可在线阅读,更多相关《第3章 顺序结构程序设计教案.docx(14页珍藏版)》请在冰点文库上搜索。
第3章顺序结构程序设计教案
第3章顺序结构程序设计
本章要点
✧结构化程序设计及三种基本控制结构
✧语句的概念
✧数据的输入/输出
本章学习目标
✧掌握顺序结构程序设计方法
✧掌握VisualBasic数据的输入/输出方法
3.1结构化程序设计概述
VisualBasic是面向对象的程序设计语言,但面向对象的程序设计并不是要抛弃结构化程序设计方法,而是站在比结构化程序设计更高、更抽象的层次上去解决问题。
当它被分解为低级代码模块时,仍需要结构化编程的方法和技巧,只是它分解一个大问题为小问题时采取的思路与结构化方法是不同的。
结构化的分解突出过程,强调的是如何做(Howtodo?
),代码的功能如何完成;面向对象的分解突出现实世界和抽象的对象,强调的是做什么(Whattodo?
),它将大量的工作由相应的对象来完成,程序员在应用程序中只需说明要求对象完成的任务。
3.1.1结构化程序设计
20世纪60年代末,著名学者E.W.Dijkstra首先提出了“结构化程序设计”的思想。
这种方法要求程序设计者按照一定的结构形式来设计和编写程序,使程序易阅读、易理解、易修改和易维护。
这个结构形式主要包括两方面的内容:
(1)在程序设计中,采用自顶向下、逐步细化的原则。
按照这个原则,整个程序设计过程应分成若干层次,逐步加以解决。
每一步是在前一步的基础上,对前一步设计的细化。
这样,一个较复杂的大问题,就被层层分解成为多个相对独立的、易于解决的小模块,有利于程序设计工作的分工和组织,也使调试工作比较容易进行。
(2)在程序设计中,编写程序的控制结构仅由三种基本的控制结构(顺序结构、选择结构和循环结构)组成,避免使用可能造成程序结构混乱的GoTo语句。
所谓程序的控制结构是指用于规定程序流程的方法和手段。
它是一种逻辑结构,描述程序执行的顺序,也是一种形式结构,描述程序的编写规则。
按照结构化程序设计方法,使设计编写的程序的控制结构由上述三种结构组成,这样的程序就是结构化程序。
3.1.2三种基本的控制结构的流程图
流程图是一种传统的算法表示方法,它使用不同的几何图形框来代表各种不同性质的操作,用流程线来指示算法的执行方向。
由于它直观形象,易于理解,所以应用广泛。
1.常用的流程符号
起止框:
表示算法的开始和结束。
处理框:
表示初始化或运算赋值等操作。
输入输出框:
表示数据的输入输出操作。
判断框:
表示根据一个条件成立与否,决定执行两种不同操作中的其中一个。
流程线:
表示流程的方向。
连接点:
用于流程分支的连接。
2.三种基本结构的表示
(1)顺序结构。
顺序结构是简单的线性结构,各框按顺序执行。
其流程图如图3.1所示,语句的执行顺序为:
语句1→语句2。
(2)选择(分支)结构。
这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。
其基本形状有两种,如图3.2所示。
图3.2(a)的执行序列为:
当条件为真时执行语句1,否则执行语句2;图3.2(b)的执行序列为:
当条件为真时执行语句1,否则什么也不做。
图3.1顺序结构图3.2选择结构
(3)循环结构。
循环结构有以下两种:
先判断条件,后执行循环:
执行过程是先判断条件,当条件为真时,反复执行“语句组”(也称循环体),一旦条件为假,跳出循环,如图3.3(a)所示。
先执行循环,后判断条件:
执行过程是先执行“语句组”,再判断条件,条件为真时,一直循环执行语句组;一旦条件为假时,结束循环,如图3.3(b)所示。
图3.3循环结构流程图
例3.1输入三个数,然后输出其中最大的数,用算法用流程图表示如图3.4所示。
例3.2输入10个数,打印输出其中最大的数,用算法流程图表示如图3.5所示。
图3.4例3.1的算法流程图图3.5例3.2的算法流程图
3.2顺序结构程序设计
顺序结构是结构化程序设计中的第一种基本结构,在该结构中,各语句或语句组按照出现的先后顺序依次执行。
在选择结构和循环结构中,顺序结构也是组成部分。
例3.1鸡兔同笼,已知鸡兔总头数为H头,它们脚的总数为F只,编写程序,计算出鸡的只数X和兔的只数Y。
解:
数学上可列出二元一次方程:
X+Y=H
2X+4Y=F
通过解方程得:
X=(4H-F)/2,Y=(F-2H)/2。
程序代码写在窗体的单击事件中(假设H=11,F=34),代码如下:
PrivateSubForm_Click()
DimXAsInteger,YAsInteger'定义变量X,Y为整形
DimHAsInteger,FAsInteger'定义变量H,F为整形
H=11:
F=34'11赋值给H,34赋值给F
X=(4*H-F)/2'X赋值成5
Y=(F-2*H)/2'Y赋值成6
Form1.Print"鸡的只数=";X,"兔的只数=";Y'在窗体Form1上打印结果
EndSub'结束过程
工程运行时,单击窗体Form1后,事件过程Form_Click()的执行顺序是这样的DimXAsInteger,YAsInteger→DimHAsInteger,FAsInteger→H=11→F=34→X=(4*H-F)/2→Y=(F-2*H)/2→Form1.Print“鸡的只数=”;X,“兔的只数=”;Y→EndSub。
可见在程序运行时,语句的执行从头到尾顺序执行,最后执行EndSub结束过程的运行。
说明:
1)VB只能计算和赋值,不能进行解方程(如例3.1中的二元一次方程求解)和因式分解(如A2-B2=(A+B)(A-B))等代数运算。
2)H=11:
F=34两个赋值语句写在同一行上,中间用冒号:
分隔,组成了语句组。
3)每行后由单引号开始的部分(如:
‘定义变量X,Y为整形)是注释部分,用来解释语句或程序段功能的,程序运行时不被执行。
一般一个完整的程序包括三个部分:
数据输入、数据处理和结果输出。
如果要使用变量,应遵循先定义后使用的原则。
3.3语句
语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的。
例3.1的顺序结构程序就是由多个语句组成的。
顺序结构程序的语句一般由两部分组成:
语句定义符和语句体。
语句定义符是关键字,决定系统作什么;语句体是语句定义符的操作对象或操作的内容。
例如:
(1)DimXAsInteger,YAsInteger是申明变量的语句。
其中:
dim是语句定义符,它的作用是定义变量;XAsInteger,YAsInteger则是语句体,是定义变量的具体内容,表示x,y被申明成整数。
(2)Form1.Print“鸡的只数=”;X,“兔的只数=”;Y是打印语句。
其中:
Print是语句定义符,作用是打印;“鸡的只数=”;X,“兔的只数=”;Y是语句体,它是print(打印)的对象。
(3)h=11是赋值语句。
其中:
“=”就是赋值的意思,赋值的内容是把11赋值给h。
说明:
语句也可以只有语句定义符,如end就表示结束程序的运行。
除了顺序结构程序中以上类型的语句外,VB还有条件语句、循环语句、注释语句等其他类型的语句,这些我们以后都会陆续学习到。
3.4数据输入
在VisualBasic程序执行过程中,主要通过以下方式给程序中的变量赋值:
(1)使用赋值语句,具体使用方法详见第2章的2.6.2。
(2)使用文本框输入数据。
通过使用文本框的Text属性获得用户输入的数据。
使用的格式如下:
变量名=文本框名.Text
因为文本框的Text属性值是字符串型的,所以要得到数值类型的数据,就要使用Val函数进行类型转换。
例如,X=Val(Text1.Text)。
(3)使用Inputbox函数,具体使用方法详见第2章的2.7.7。
3.5数据输出
在VisualBasic程序中可以通过Print方法、文本框、标签框、MsgBox函数和MsgBox过程来输出数据。
(1)使用Print方法。
具体使用方法详见第2章的2.6.1。
(2)使用文本框输出数据。
通过使用文本框的Text属性输出用户的数据。
使用的格式如下:
文本框名.Text=字符表达式
因为文本框的Text属性是字符串型的,所以要输出数值类型的数据,就要使用Str函数先进行类型转换。
例如,Text1.Text=Str(X)。
(3)使用标签框输出数据。
通过使用标签框的Caption属性输出用户的数据。
使用的格式如下:
标签框名.Caption=字符表达式
因为标签框的Caption属性是字符串型的,所以要输出数值类型的数据,就要使用Str函数进行类型转换。
例如,Label1.Caption=“X=”+Str(X)。
(4)使用Msgbox函数和Msgbox过程来输出数据。
具体使用方法详见第2章的2.7.7。
3.6其他语句
3.6.1注释语句
注释是用来对程序进行解释,方便读者对程序的理解;还可以用来调试程序,如可以利用注释屏蔽一条语句以观察变化,发现问题和错误。
注释语句是程序中经常用到的语句。
语法格式为:
Rem注释内容
或
'注释内容
说明:
①Rem是系统关键字,它与后面的注释内容之间至少有一个空格分隔,否则系统不能识别。
如语句Rem计算方程的根是正确的用法。
而Remcomputer却是错误的,因为系统无法识别“Remcomputer”这个词。
使用单引号“'”添加注释内容时,单引号与注释内容之间可以没有空格;②如在语句行后使用Rem注释,必须使用冒号(:
)与前面部分隔开,这样就构成语句组。
若用单引号(')则在其他语句行后面不必加冒号(:
)。
例如:
ConstPI=3.14159'定义符号常量PI
S=2*PI*R:
Rem计算圆周长
3.6.2End语句
结束工程的运行,使用End语句。
语法格式为:
End
说明:
程序执行End语句,结束应用程序的运行,并关闭用Open语句打开的文件并清除变量,返回操作系统(当程序编译执行时)或VisualBasic系统集成开发环境(当程序解释运行时)。
3.6.3暂停语句
要暂停程序的执行,在事件代码中设置断点,可以在程序中使用Stop语句。
使用格式为:
Stop
说明:
①在程序解释运行时,Stop语句把解释程序设置为中断模式,以便对程序进行检查和调试,同时自动打开立即窗口;与End语句不同,在程序解释运行时Stop不会关闭任何文件或清除变量;②在可执行文件中含有Stop语句,Stop执行时将关闭所有的文件而退出程序。
因此,当程序调试结束后,在生成可执行文件之前,应清除代码中的所有Stop语句。
3.7应用举例
例3.3输入一个三位正整数M,输出它的百位数、十位数、个位数。
解:
数学上可以解得:
百位数=m\100;十位数=(m-百位数*100)\10;个位数=mmod10。
使用输入对话框函数输入数据,使用print方法将结果输出到窗体上,程序写在窗体的单击事件中,程序如下:
PrivateSubForm_Click()
DimMAsInteger'M用来存放三位正整数
DimHAsInteger,TAsInteger,DAsinteger'H、T、D分别存放百位
数、十位数、个位数
M=Val(Inputbox("请输入一个三位正整数"))
H=M\100
T=(M-H*100)\10
D=MMod10
Form1.Print"百位数是:
"+Str(H)
Form1.Print"十位数是:
"+Str(T)
Form1.Print"个位数是:
"+Str(D)
EndSub
例3.4输入时间(小时、分和秒)然后使用消息框输出从零时起时间过了多少秒。
解:
使用文本框输入数据,程序界面如图3.6所示。
图3.6例3.4程序运行界面
将窗体及控件的属性初值在form_load()过程中完成,用变量hh、mm、ss分别表示小时、分种、秒,totals代表总的秒数,则:
totals=hh*3600+mm*60+ss
程序代码如下:
PrivateSubForm_Load()'初始化对象属性值
Form1.Caption="例3-3"
Label1.Caption="小时:
"
Label2.Caption="分:
"
Label3.Caption="秒:
"
Text1.Text="":
Text2.Text="":
Text3.Text=""
Command1.Caption="计算":
Command2.Caption="结束"
EndSub
PrivateSubCommand1_Click()'计算总秒数
Dimhh%,mm%,ss%,totals!
str1$
hh=Val(Text1):
mm=Val(Text2):
ss=Val(Text3)
totals=hh*3600+mm*60+ss
str1="总计:
"&totals&"秒"
MsgBoxstr1,,"输出结果"
EndSub
本章小结
1)本章介绍了结构化程序设计方法及其算法表示,算法是程序设计的灵魂,任何一个程序在编写时都要考虑先做什么,再做什么,最后做什么。
2)程序的顺序结构是结构化程序设计的第一种基本结构,它的执行顺序是从头到尾顺序执行的。
3)在VisualBasic程序中要输入数据,可以使用赋值语句、Inputbox函数、文本框或标签框等。
4)在VisualBasic程序中要输出数据,可以使用Print方法、Msgbox函数或过程、文本框或标签框等。
一、思考题
1.结构化程序设计的特点是什么?
面象对象的程序设计与结构化程序设计的主要区别是什么?
2.VisualBasic中数据输入常用的方法有那些?
比较使用文本框和InputBox函数输入数据的异同。
3.使用一个文本框,能否直接输入多项数据?
4.要输入10个数据,能否使用下面的语句来实现。
x=InputBox(“输入10个数据”)
5.能否使用文本框和InputBox函数直接输入逻辑数据、日期数据?
二、程序阅读
1.下面程序执行的结果是________。
PrivateSubcommand1_Click()
A=3:
B=2:
C=1
A=B
B=C
C=A
Print"A=";A;"B=";B;"C=";C
EndSub
2.下面程序执行的结果是________。
PrivateSubForm_Click()
A$="456":
B$="789"
C=Val(A$)+Val(B$)
PrintC\100
EndSub
3.下面程序运行后输出结果是_______。
PrivateSubForm_Click()
X$="A":
Y$="B":
Z$="C"
X$=Y$&X$:
Y$=Y$&Z$:
Z$=X$&Z$&Y$
PrintX$+Y$+Z$
EndSub
4.下列程序段的执行结果为()。
PrivateSubForm_Click()
X=1:
Y=2
Z=X=Y
PrintX;Y;Z
EndSub
三、选择题
1.Inputbox函数的参数中,必选参数的作用是()。
A.输出信息B.定义提示信息
C.定义隐含信息D.定义输入的位置
2.假设变量B是一个布尔型变量,则下面正确的赋值语句是()。
A.B=T B.B=”True”
C.B=#True# D.B=3<4
3.下列程序执行的结果为( )。
x=5:
y=6:
z=7
Print“a(“;x+z*y;”)”
A.a(47)B.a(72)
C.a(5+6*7)D.a(47)
4.以下程序段可以实现X、Y变量值交换的是()。
A.Y=X:
X=YB.Z=X:
Y=Z:
X=Y
C.Z=X:
X=Y:
Y=Z D.Z=X:
W=Y:
Y=Z:
X=Y
5.下述程序的运行结果是( )。
A=5
B=-5
C=NOTA=B
PrintC
A.TrueB.5C.0D.无法输出
6.如果将布尔常量False赋值给一个整型变量,则整型变量的值为()。
A.0 B.-1 C.TrueD.False
7.用X、Y、Z表示三角形的三条边,条件“三角形任意两边之和大于第三边”的布尔表达式可以用()表示。
A.X+Y>ZAndX+Z>YAndY+Z>X
B.X+Y C.Not(X+Y D.X+Y>=ZOrX+Z>=YOrY+Z>=X 四、程序设计题 1.输入一个圆的半径,输出圆的面积。 2.从键盘输入任意一个实数,用Print方法在窗体上同一行显示其平方和平方根,要求每个数保留三位小数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 顺序结构程序设计教案 顺序 结构 程序设计 教案