第二章 程序结构
- 格式:pdf
- 大小:209.53 KB
- 文档页数:14
程序的选择结构一、教学目标1、知识与技能理解程序选择结构中的条件选择语句的执行流程,掌握条件选择语句和多种选择语句的使用方法,能够编写简单的选择结构的程序,以解决生活中的一些计算问题.2、方法与过程本节从简单的问题入手,通过一道求一个数的绝对值的题目,让学生明白条件选取择语句的执行流程及使用方法.通过一道输入学生分数,判断该分数是属于哪种等级的题目,让学生初步接触多种选择语句的使用。
进而再做类似的练习,加强学生的理解,课程安排形成循序渐进的梯度,充分挖掘学生潜力.3、情感态度和价值观程序设计选取的题目都是生活中遇到的例子,加强学生利用本学科解决日学生活中的问题的意识。
二、重点难点1、教学重点(1)条件选择语句和多重选择语句的使用(2)程序条件选择结构的执行流程(3)会使用条件语句和多重选择语句编写程序解决简单的应用题2、教学难点:根据题目写出正确的程序三、教学环境所需软件:学生机要安装VB6。
0或以上版本。
四、教学过程导入:演示求一个数的绝对值这道题的程序,让学生明白通过程序可以解决数学中的问题,也给学生展示完整的程序代码,这道程序的功能就是靠这些代码来控制的,引起学生的注意,激发他们的求知欲。
一、演示上述的程序,并把程序代码中的各行代码的作用解释一遍,顺便把程序的执行流程说明一下,编写的程序与设计的算法是一致的.程序2—3Private sub command1_click() ‘定义名为command1_click()的事件过程Dim A as single ‘定义求绝对值的数A为单精度实型A=inputbox(“r=",”请输入半径”)‘输入A的值If A〉=0 then ‘如果A〉=0Print “Y=";A‘输出A的值ElsePrint “Y=”;-A ‘输出-A的值End ifEnd sub ‘过程结束二、条件语句在解决问题的过程中,常常需要对事物进行判断和选择,如上题中,求一个数A的绝对值,如果A〉=0,则这个数的绝对值为A,否则为-A。
第二单元程序结构本课主要介绍了程序设计的精髓——算法和程序的三种基本结构:顺序结构、选择结构、循环结构。
教材安排了多个编程小活动,让学生在实践中了解什么是算法,了解程序的三种基本结构并学会使用程序的三种基本结构编程。
本课建议课时2课时。
1.算法的描述对于算法的描述,教材给出了三种方法:用自然语言描述算法、用表格描述算法和用流程图描述算法。
其中用流程图描述算法是编程人员更多采用的。
流程图又称程序框图,它是用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。
流程图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。
构成程序框的图形符号及其作用在教材中有详细的列表介绍。
学习这部分内容的时候,要掌握各个图形的形状、作用及使用规则。
画程序框图有如下规则:(1)使用标准的图形符号。
(2)框图一般按从上到下、从左到右的方向画。
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。
判断框具有超过一个退出点的唯一符号。
(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。
(5)在图形符号内描述的语言要非常简练清楚。
在具体画程序框图时,要注意流程线上要有标志执行顺序的前头;判断框后边的流程线应根据情况标注“是”或“否”;在循环结构中,要注意根据条件设计合理的计数变量、累加变量等。
2.程序的三种基本结构教材详细介绍了程序的三种基本逻辑结构有顺序结构、选择结构、循环结构。
顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
顺序结构在程序流程图中的体现就是用流程线将程序框自上而地连接起来,按顺序执行算法步骤。
选择结构:选择结构是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构。
循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,循环结构中一定包含条件结构。
最新教科版选修1第二章《程序的基本结构》教案一、教材分析1、“程序的基本结构”是信息技术选修模块《算法与程序设计》第二章程序设计ABC第3节的内容,也是本章的重点内容。
本节授课课时共计2课时,这节课为第1课时,主要介绍顺序结构和选择结构的If语句及If语句的嵌套方法。
本节内容是在学习了自然语言、算法描述、流程图、基本语句和基本函数的基础上学习的。
二、教学目标1、知识目标掌握顺序、选择、循环三种基本结构。
2、能力目标通过例题教学,培养学生能够使用三种基本结构编写简单的程序解决具体问题。
3、情感目标通过本节的学习,体会用结构化方法解决总分数学问题的便捷性,明确三种控制结构的重要作用。
三、教学重点、难点重点: If语句及If语句的嵌套方法,三种结构的实现语句的格式和功能。
难点:使用三种基本结构编写简单的程序,以及同种结构的不同实现语句之间的差异。
四、教学学法,学情分析1、学情这节课的教学对象是高二年级重点班的学生,他们的基础以及对知识的接受能力相对其它班来说是较好的,学习兴趣也相对高些,因此在教学中要注意引导的方法,启发它们的思维能力,解决问题能力。
2、教法教学活动是教与学的双边活动,必须充分发挥教师主导作用和学生主体地位。
根据这一教学原则和学情分析,主要用如下方法进行教学即“点拨、分析、猜想、归纳、概括”等探索式教学方法。
五、教学程序设计㈠创设问题情境,引导学生思考,引入课堂。
1、问题1:前面我们学习了哪些基本语句?①赋值语句②输出语句 print③注释语句④结束语句2、问题2:学习了哪些基本的函数?①与用户交互函数InputBox()、MsgBox()②数学函数③字符串函数④日期函数3、通过第一章的学习我们对VB编程有了初步的体验,知道了计算机解决问题的过程和三种描述算法的方法。
接下来我们应如何利用这些基本的语句及函数来实现算法和进行编程呢?由此引入课题,并板书。
课题:程序的基本结构㈡展示目标:知识目标,能力目标,情感目标。
一、实验准备实验准备实验准备实验准备1、C语言程序的上机操作语言程序的上机操作语言程序的上机操作语言程序的上机操作C是编译型语言,设计好一个C源程序后,需要经过编译生成目标文件(扩展名.obj)、连接生成可执行文件(扩展名.exe),然后执行。
一个C程序的具体开发步骤如下: (1) 启动启动启动启动VC++ 6.0:“开始”“程序”“Microsoft Visual C++ 6.0” (2) 新建文件新建文件新建文件新建文件:“文件”“新建”在“新建”对话框中选择“文件”标签列表框中选“C++ Source File”,在右边指定文件名和保存位置。
(3) 编辑编辑编辑编辑:录入或修改源程序并保存(Ctrl+S) (4) 调试运行调试运行调试运行调试运行:编译(Ctrl+F7)连接(F7)运行(Ctrl+F5),若有错需修改源程序后再调试程序 (5) 关闭工作区关闭工作区关闭工作区关闭工作区:“文件”“关闭工作空间”,一个程序调试结束后需关闭当前工作空间,再从第(2)步开始下一个程序的调试 2、、、、C程序的调试程序的调试程序的调试程序的调试调试即是在源程序中查找错误并修改错误的过程。
程序的错误一般分为两类:语法错误和逻辑错误语法错误和逻辑错误语法错误和逻辑错误语法错误和逻辑错误。
①语法错误语法错误语法错误语法错误:指不符合C语言语法规则而产生的错误。
语法错误系统能检测出来并告之原因及位置,设计者可参考修改。
②逻辑错误逻辑错误逻辑错误逻辑错误:指程序的运行结果与预期的结果不符而产生的错误。
这类错误拔除难度较大,一般需祥细分析算法或在程序运行过程中设置断点、追踪程序的运行来纠错。
(1)语法错误调试案例(建立程序名为ex1-1.c)# include <stdio.h> void main() { int i=0 //错误原因:语句结束位置缺分号printf("i=%d\n",i); } 调试并查找以上程序的语法错误并分析原因并改正。
第二章 程序结构2.1 循环结构2.1.1 While 循环While 循环可以反复执行循环体的程序,直至到达某个边界条件。
它类似于普通编程语言中的 Do 循环和 Repeat-Until 循环。
While 循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为 FALSE。
●该循环有如下特点:●计数从0开始(i=0)。
●先执行循环体,而后i+1,如果循环只执行一次,那么循环输出值i=0。
●循环至少要运行一次。
条件端子循环变量图2-1 While 循环示意图练习 2-1 使用While循环和图表目的:用 While 循环和图表获得数据,并实时显示。
创建一个可以产生并在图表中显示随机数的VI。
前面板有一个控制旋钮可在0到10秒之间调节循环时间,还有一个开关可以中止VI的运行。
学习怎样改变开关的动作属性,以便不用每次运行VI时都要打开开关。
操作步骤如下:前面板图2-2 练习2-1的前面板1.选择File»New,打开一个新的前面板。
2.选择Controls»Boolean,在前面板中放置一个开关。
设置开关的标签为控制开关。
3.使用标签工具创建 ON 和 OFF 的标签,放置于开关旁。
4.选中Controls»Graph,在前面板中放置一个波形图(是chart,而不是graph)。
设置它的标签为随机信号。
这个图表用于实时显示随机数。
5.把图表的纵坐标改为0.0 到 1.0。
方法是用标签工具把最大值从10.0改为1.0。
6.选择Controls»Numeric,在前面板中放置一个旋钮。
设置旋钮的标签为循环延时。
这个旋钮用于控制While 循环的循环时间。
流程图7.开流程图,按照下图创建流程图。
随机信号循环延时控制开关图2-2 练习2-1的流程图a.从 Functions»Structures 中选择 While 循环,把它放置在流程图中。
将其拖至适当大小,将相关对象移到循环圈内。
b.从 Functions» Numeri c中选择随机数(0-1)功能函数放到循环内。
c.在循环中设置Wait Until Next ms Multiple函数(Functions»Time & Dialog),该函数的时间单位是毫秒,按目前面板旋钮的标度,可将每次执行时间延迟0到10毫秒。
d.照上面所示的流程图连线,把随机数功能函数和随机信号图表输入端子连接起来,并把启动开关和While 循环的条件端子连接。
8.返回前面板,调用操作工具后单击垂直开关将它打开。
9.把该 VI 保存为 LabVIEW\Activity目录中的Random Signal.vi。
10.执行该 VI。
While循环的执行次数是不确定的,只要设置的条件为真,循环程序就会持续运行。
在这个例子中,只要开关打开(TRUE),框图程序就会一直产生随机数,并将其在图表中显示。
11.单击垂直开关,中止该VI。
关闭开关这个动作会给循环条件端子发送一个FALSE值,从而中止循环。
12.用鼠标右键单击图表,选择DataOperations»Clear Chart,清除显示缓存,重新设置图表。
练习 2-1结束附注与说明布尔开关的机械动作:布尔开关有6种机械动作属性可供选择。
在前面板上用鼠标右键单击开关,在快捷菜单中选择Mechanical Action就可以看到这些可选的动作。
LabVIEW还提供了一个范例示范这些动作,它是位于Examples\General\Controls\booleans.llb的Mechanical Action of Booleans.vi。
2.1.2 移位寄存器(Shift Register)移位寄存器可以将数据从一个循环周期传递到另外一个周期。
在程序设计中,经常要用到它.创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择Add Shift Register。
如右图所示。
移位寄存器在流程图上用在循环边框上相应的一对端子来表示。
右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。
移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。
它会自动适应与它连接的第一个对象的数据类型。
下图表示了它的工作过程.图2-3 Shift Register的工作过程可以令移位寄存器记忆前面的多个周期的数值。
这个功能对于计算数据均值非常有用。
还可以创建其他的端子访问先前的周期的数据,方法是用鼠标右键单击左边或者右边的端子,在快捷菜单中选择Add Element。
例如,如果某个移位寄存器左边的端口含有三个元素,那么就可以访问前三个周期的数据。
练习 2-2使用移位寄存器目的:创建一个可以在图表中显示运行平均数的VI。
前面板1.打开一个新的前面板,按照下图所示创建对象。
2.把波形图表的坐标范围改为0.0到2.0。
3.在添加竖直坐标之后,用鼠标右键单击它,在快捷菜单中选择Mechanical Action»Latch When Pressed,再选择Operate»Make Current Values Default,把ON状态设置为默认状态。
图2-4 练习2-2的前面板流程图4.按下图创建流程图。
随机数图2-4 练习2-2的流程图5.在流程图中添加 While 循环(Functions»Structures),创建移位寄存器。
a. 用鼠标右键单击While循环的左边或者右边,在快捷菜单中选择Add Shift Register。
b. 用鼠标右键单击寄存器的左端子,在快捷菜单中选择Add Element,添加一个寄存器。
用同样的方法创建第三个元素。
6.Random Number (0–1)函数(Functions»Numeric)——产生0到1之间的某个随机数。
7.Compound Arithmetic 函数(Functions»Numeric)——在本练习中,它将返回两个周期产生的随机数的和。
如果要加入其他的输入,只需用右键单击某个输入,从快捷菜单中选择Add Input。
8.除法函数(Functions»Numeric)——在本练习中,它用于返回最近四个随机数的平均值。
9.数值常数(Functions»Numeric)——在While循环的每个周期,Random Number (0–1)函数将产生一个随机数。
VI就将把这个数加入到存储在寄存器中的最近三个数值中。
Random Number (0–1)再将结果除以4,就能得到这些数的平均值(当前数加上以前的三个数)。
然后再将这个平均值显示在波形图中。
10. Wait Until Next ms Multiple函数(Functions»Time & Dialog)——它将确保循环的每个周期不会比毫秒输入快。
在本练习中,毫秒输入的值是500毫秒。
如果用鼠标右键单击图标,从快捷菜单中选择Visible»Label,就可以看到Wait Until Next ms Multiple 的标签。
11. 用鼠标右键单击Wait Until Next ms Multiple 功能函数的输入端子,在快捷菜单中选择Create Constant。
出现一个数值常数,并自动与功能函数连接。
12. 将Constant设置为500。
这样连接到函数的数值常数设置了500毫秒的等待时间。
因此循环每半秒执行一次。
注意,VI用一个随机数作为移位寄存器的初始值。
如果没有设置移位寄存器端子的初始值,它就含有一个默认的数值,或者上次运行结束时的数值,因此开始得到的平均数没有任何意义。
13. 执行该 VI,观察过程。
14. 把该 VI 保存为LabVIEW\Activity目录下的Random Average.vi。
练习 2-2 结束。
附注:移位寄存器的初值:上面的练习中对移位寄存器设置了初值0.5。
如果不设这个初值,默认的初值是0。
在这个例子中,一开始的计算结果是不对的,只有到循环完3次后移位寄存器中的过去值才填满,即第4次循环执行后可以得到正确的结果。
2.1.3 For循环For循环用于将某段程序执行指定次数。
和While 循环一样,它不会立刻出现在流程图中,而是出现一个小的图标,而后您可以修改它的大小和位置。
具体的方法是,先单击所有端子的左上方,然后按下鼠标,拖曳出一个包含所有端子的矩形。
释放鼠标时就创建了一个指定大小和位置的For循环。
图表For 循环将把它的框图中的程序执行指定的次数,For 循环具有下面这两个端子:N: 计数端子(输入端子)——用于指定循环执行的次数。
I: 周期端子(输出端子)——含有循环已经执行的次数。
上图显示了一可以产生100个随机数并将数据显示在一个图表上的For 循环。
在该例中,i 的初值是0,终值是99。
练习 2-3 使用For 循环目的:用For 循环和移位寄存器计算一组随机数的最大值。
1.打开一个新的前面板,按照下图创建对象。
a. 将一个数字显示对象放在前面板,设置它的标签为“最大值”。
b. 将一个波形图表放在前面板,设置它的标签为“随机数”。
将图表的纵坐标范围改为0.0到1.0。
c. 在图表的快捷菜单中选择Visible Items»Scrollbar和Digital Display ,并隐藏Plot Legend 。
d. 用移位工具修改滚动栏的大小。
图2-5 练习2-3的面板和流程图随机数2.按照上图画流程图。
3.在流程图中放置一个For循环(Functions»Structures)。
4.在For循环的边框处单击鼠标右键,在快捷菜单中选择Add Shift Register。
5.将下列对象添加到流程图。
a Random Number (0–1)函数(Functions»Numeric)——产生0到1之间的某个随机数。
b数值常数(Functions»Numeric)——在这个练习中需要将移位寄存器的初始值设成0。
c Max&Min函数(Functions»Comparison)——输入两个数值,再将它们的最大值输出到右上角,最小值输出到右下角。
这里只需要最大值,只用连接最大值输出。
d数值常数(Functions»Numeric)——For循环需要知道需要执行的次数。
本练习中是100次。
6.按照上图连接各个端子。
7.运行该VI。
8.将该VI保存为LabVIEW\Activity 目录下的CalculateMax.vi。