子程序的应用(教案).doc_第1页
子程序的应用(教案).doc_第2页
子程序的应用(教案).doc_第3页
子程序的应用(教案).doc_第4页
子程序的应用(教案).doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

子程序的应用(教案) 湖南省桃江县第一中学 田 岱教学目的:1、激发学生对编程的学习兴趣,并掌握使用QBASIC进行程序设计的基础方法。 2、让学生进一步理解并掌握子程序有关基础知识,并能解决实际问题,不断提高自己的编程水平。教学重点:算法分析教学难点:通过对子程序知识的学习来解决实际问题,并能正确编写程序。教学媒体:CAI课件教学工具:计算机教学过程:一、 复习提问1、 建立子程序的命令格式? (分无参子程序和有参子程序)无参子程序格式: 有参子程序格式:SUB 子程序名 SUB 子程序名(形式参数) 语句组 语句组END SUB END SUB2、 对于有参子程序中的形式参数与主程序中对应的实际参数的值是如何传递的? 主程序在调用子程序时,实际参数将其初值传递给与之对应的形式参数, 如果形式参数的值发生了变化,那么与之对应的实际参数的值也发生变化。即形式参数的终值返还给与之对应的实际参数。也就是说形式参数与实际参数之间的值是相互传递的。(注:教材没有要求区分按值传递和地址传递)3、 调用子程序的命令格式是什么?无参子程序格式:CALL 子程序名有参子程序格式:CALL 子程序名(实际参数)二、 应用举例(程序流程图由学生自己画出)例1:要求在屏幕上显示如下菜单:1、 画圆2、 画三角形3、 画半圆4、 结束并要求编写出具有实现上述功能的程序。算法分析: 在设计这个程序时,需要编写画圆、三角形、半圆图像的3段程序,如果都写在同一模块中,程序会很长,结构不清晰,读起来也很费力。所以我们把它写成3个子程序,它们的功能分别是画圆、三角形、半圆的图像,这样,一个复杂的任务分解为几个简单的子程序,使得复杂的问题简单化。由于没有数据需要传递,故该程序为无参子程序。具体步骤如下:1、 显示出菜单2、 输入一个1至4之间的一个数字送入变量N3、 进行判断:如果N=1,则调用画圆的子程序如果N=2,则调用画三角形的子程序如果N=3,则调用画半圆的子程序4、 重复执行步骤1至3,直到N=4程序结束5、 因为步骤1至3重复执行几次不能确定,是以条件N=4是否成立来决定的,所以这里使用的是:条件循环语句WHILEWEND具体程序如下:主程序:Declare sub huayuan( )Declare sub huashanjiaoxing( )Declare sub huabanyuan( )ClsN=1While n4Print tab(3);”1.huayuan”PrintPrint tab(3);”2.huashanjiaoxing”PrintPrint tab(3);”3.huabanyuan”PrintPrint tab(3);”4.end”DoInput “please select(1_4)”;nLoop until n=1 If n=1 then call huayuanIf n=2 then call huashanjiaoxingIf n=3 then call huabanyuanWendEnd三个子程序如下:子程序一:sub huayuan screen 12 circle (160,200),50,4end sub子程序二:sub huashanjiaoxing screen 12 line (20,80)-(120,160) line (120,160)-(320,480) line (320,480)-(20,80)end sub子程序三:sub huabanyuan screen 12 circle (120,240),60,4,-1.57,4.71end sub例2:求3!+5!+8!的和。算法分析: 这是一道求阶乘的算术题,虽然我们可以将求3!、5!、8!以子程序的形式编写出来,但这并不是我们所认为的最佳方法,而且比较呆板。既然都是求阶乘,它们有一个通项式即N!。我们只需编写一个求N!的子程序即可。这不仅减少我们的编程量,也大大地提高了编程效率。这里又由于不是求某个阶乘,而是求阶乘的和,涉及到数据的传递,因此子程序宜采用有参子程序来编写。本题中N的取值分别为3,5,8,故需要调用该子程序3次,即用FOR循环语句调用3次子程序。具体步骤如下:1、 编写出一个求N!的子程序2、 在主程序中实际参数用变量N,SM来对应子程序中的形式参数变量M,S,其中SM是通过S求得的N不同取值的阶乘的积。并且用FOR循环语句反复调用子程序3次。3、 用键盘输入语句INPUT给变量N赋初值,也就是给形式参数M赋初值。 具体程序如下:主程序:declare sub jc(m!,s!)clssum=0:sm=0for I=1 to 3input “n=”;ncall jc(n,sm)sum=sum+smnext Iprint “sum=”;sumend子程序如下:sub jc(m,s)t=1for j=1 to mt=t*jnext jprint m;”!=”;ts=tend sub例3:求多边形面积。如图所示: 5.1 3 4.9 6.2 7.4 6.1 8.1 8.1 7.9算法分析:本题解题方法与例2差不多(请大家分析)。因该多边形是由4个三角形组成,要得到多边形面积就只需要求出每一个三角形面积即可。而求三角形面积的公式是一样的(均按海伦公式),故我们只要编写出求一个三角形面积的子程序即可。然后用FOR循环语句来反复调用该子程序4次。这里因涉及到数据的传递,需要采用有参子程序。具体步骤如下:1、 编写出求一个三角形面积的子程序2、 用FOR循环语句调用子程序4次3、 在主程序中的实际参数用变量X,Y,Z,M来分别对应形式参数A,B,C,S。其中M为每次通过S求得的不同三角形面积的值。4、 又因三角形的边长已知,故用READ语句读入初始数据,即READ X,Y,Z 具体的值由语句DATA提供。具体程序如下: 主程序:declare sub sear(a!,b!,c!,s!)clssum=0:m=0for I=1 to 4read x,y,zcall sear(x,y,z,m)sum=sum+mnext Iprint sumdata 6.2,5.1,7.4,4.9,3,6.1data 7.9,5.1,8.1,7.4,6.1,8.1end子程序如下:sub sear(a,b,c,s)p=(a+b+c)/2s=sqr(p*(p-a)*(p-b)*(p-c)end sub例4: 编出子程序CHUXING(C,D),它的功能是画出Y=SIN(X+C)的不同颜色的正弦函数图像,其中C为初相,D为颜色号。写出主程序,在主程序中C,D取3组值,即3次调用子程序。 算法分析: 在完成这个任务时,需要3次使用画Y=SIN(X+C)的正弦函数图像的程序,只是每次C,D的取值不同,因此把画Y=SIN(X+C)图像的一段程序写成子程序,然后在主程序中使用FOR循环语句反复调用它。 具体步骤如下:1、 写出画Y=SIN(X+C)图像的子程序2、 在主程序中实际参数用变量M,N来对应形式参数C,D3、 根据C,D的3次取值不同,在主程序中用FOR循环语句调用子程序3次4、 因C,D的值已知,故用READ语句读入初值,即READ M,N ,具体的值由DATA 语句提供具体程序如下: 主程序: declare sub chuxiang(c!,d!)for I=1 to 3read m,ncall chuxiang(m,n)next Idata 0,15,1.5708,12,-1.0472,14end子程序如下:sub chuxiang(c,d)screen 12window (-4,-10)-(10,10)line (0,10)-(0,-10),2line (-4,0)-(10,0),2for x= -10 to 10 step 0.01y=sin(x+c)pset (x,y),dfor j=1 to 1000next jnext xend sub三、 小结:本节我们通过实际应用来进一步理解子程序的有关概念,同时也是加强我们的分析问题、

温馨提示

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

评论

0/150

提交评论