




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、八年级信息技术教案第八章程式序设计个性化-函数和子程序 第八章程式序设计个性化-函数和子程序 一、学习目标 掌握模块化程序设计思想 掌握函数与子程序的定义及使用 理解全局变量与局部变量 了解参数的传送过程 二、教学重点 掌握模块化程序设计 三、教学难点 掌握函数与子程序的定义及使用 四、教学方法 演示法。 实践法。 五、教学手段与教学媒体 多媒体网络教室。 六、课时安排 课时。 七、教学过程 “模块化程序设计”中的“模块”是指:完成程序全部 或部分任务的独立源程序文件。 程序的每一个模块可以是子程序或函数,它是通过执行一系列语句来完成一个特定的操作过程,常称为“过程”。 “执行一个过程”调用一
2、个子程序或函数; 一、自定义函数 QBASIc函数: 标准函数 自定义函数 外部函数 单行自定义函数 语句函数用一个语句定义一个函数 一般格式; DEFfn= 例1.已知圆的半径r,求圆的面积:S=r2 DEFfns=3.14159*r*r PRINTfns END 例2DEFfns$=”thisisastring” PRINTfns$ 例3. 求以下公式: DEFfnc=SQR Printfnc 说明 ?函数名由两部分组成 fns 自定义函数标志,用户定义名; ?参数可有多个,但调用时的参数与定义时的 参数要一致。 多行自定义函数 用多行语句来定义一个函数。 一般格式 DEF fn . fn
3、= END DEF 例4、定义函数f=1+2+.+n DEFfns S=0 FoRi=1ton S=S+i Nexti fns=S ENDDEF Forn=1to100 Printfns NEXTn END 说明 形式参数定义函数的自变量 实际参数调用函数时的参数。 函数先定义后使用,即习惯把DEF语句 放在程序的开头。 二、块内子程序 gosub-return语句 子程序定义: : . return 子程序调用: GoSUB 例5:求4!+5!+6! S=0 n=4:gosubf:s=s+p n=5:gosubf:s=s+p n=6:gosubf:s=s+p ;s ”4!+5!+6!=“pr
4、int end f:p=1 fori=1ton p=p*i nexti return ongosub-return语句 一般格式 子程序定义: : . return 子程序调用: oN gosub, 例:“小学生算术练习”轮流出一个二位数和一个一位数的加法、减法和乘法的题目,共出十题,每题10分。 RANDoIZE fori=1to10 a=int+10 b=int+1 p=iod3+1 oNpGoSoBa1,a2,a3 Nexti Print=;n*10 END a1:printa;+;b;=; inputc ifc=a+bthenn=n+1 return a2:printa;-;b;=;
5、inputc Ifc=a-bthenn=n+1 Return a3:printa;*;b;= Inputc Ifc=a*bthenn=n+1 Return. 说明: 的值不是整数时,按四舍五入处理,值为0或大于n则不起作用,值为负时系统给出错误信息“不正确的函数调用”。 oNEyGoSUB-RETURN语句 调用格式 oNEyGoSUB 其中n是数值表达式,代表一个“陷阱键”。n的值与 设定键的对应关系如下: n值键名 10 功能键F1F10 1方向键 方向键 3方向键 方向键 例:求和式:S=12+22+.+n2 n=100000 oNEyGoSUBpri EyoN S=0 Fori=1to
6、100000 S=S+i*i NEXTi pring“s=”;s end pri:print“nosis”;s,”I=”;i return 说明 设置陷阱:oNeyGoSUB 打开陷阱:Eyon 关闭陷阱:Eyoff 三、独立模块的子程序 建立子程序 格式:SUB ENDSUB 子程序的调用 格式 DEcLARESUB call 或 例:SUBstars fori=1ton PRINT“*”; Nexti Print ENDSUB _ DEcLARESUBStars callStars callStars End 说明 i)DEcLARE为外部子程序说明语句,主程序调用多少个子程序,就有多少个
7、DEcLARE语句; ii)call语句的“call”可以省写,参数的括弧也 可不写; 如:callstars 可写成:stars30 参数传递 值传递方式 callstars . SUBstars 地址传递方式 a=30 callstars . SUBstars 例:求4!+5!+6!+7! 子程序:SUBFact f=1 fori=1ton f=f*i nexti ENDSUB 主程序:DEcLARESUBFact fori=4to7 callFact S=S+f Nexti Print“s=”;S End 注:地址传递方式是当实际参数为变量时发生,它将可能会改变原变量的值,若实际参数是变
8、量时,又不想用地址传递则可把变量用括号括起来。 例:求两个整数的最大公约数和最小公倍数。 最小公倍数=/最大公约数 求最大公约数子程序: SUBHcF IF0 =n n=r r=oDn LooP h=n ENDSUB 求最小公倍数子程序: SUBLc h=*n/h ENDSUB 主程序: DEcLARESUBHcF DEcLARESUBLc INPUT,n=;,n cALLHcF 剐义屔最大公约数为:;h cALLLc 剐义屔最小公倍数为:;h END 说明:程序在执行时,结果不正确;其原因是cALLHcF语句调用时修改了和n的值,以至使cALLLc运行不 正确。因此,cALLHcF语句应为:
9、 cALLHcF,h) 例:验证哥德巴赫猜想:一个不小于6的偶数可以表示 为两个素数之和。 算法:n=10 n1 n2 n=16 n1 n2 3 四、模块化的函数 建立一个函数 FUNcTIoN . LET= ENDFUSTIoN 函数的调用 与标准函数相同,只是在主程序开头加上DEcLARE ,无参数函数也要写上两个括号;FUNcTIoN 7的阶乘之和到 例:求4FUNcTIoNFact f=1 fori=1ton f=f*i NEXTI Fact=f ENDFUNcTIoN _ DEcLAREFUNcTIoNFact S=0 Fori=4to7 S=S+Fact Nexti PrintS=
10、;S End 注意函数的参数传递 STATIc选项 外部函数中使用的变量,在函数调用结束后将全部被释放,其值不再保留。如要保留函数中的变量,可在建立函数时加写“STATIc”即 FUNTIoN函数名STATIc 五、全局变量与局部变量 局部变量 每一个模块中的变量都只在本模块中有效,即是它们的作用域只限于模块,这种变量称为局部变量。 全局变量 在程序所有模块中都有效的变量,即作用域为整个程序变量称为全局变量。其定义格式为: oNSHARED 六、过程的嵌套调用 在一个过程里又调用另一个过程。 七、过程的递归调用 在一个过程里又调用该过程本身; 例如直接调用: FUNcTIoNf c=f f=2*c ENDFUNcTIoN 又如交叉调用: FUNcTIoNf1 c=f2 f1=2*c ENDFUNcTIoN FUNcTIoNf2 d=f1 f2=4/d ENDFUNcTIoN 执行的结果造成无终止的自身调用,显然,程序中不应出现这种无终止的调用,而只应是有限次数的、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ccs变更点管理办法
- 贵州国省道管理办法
- 中央厨房运作管理办法
- 财务公司管理办法讲解
- 维保修工作管理办法
- 规范课程实施管理办法
- 试验室操作管理办法
- 装修消费管理办法细则
- 苏水基建设管理办法
- 中国收养儿童管理办法
- 2024年陕西数字教育年度发展报告-陕西省教育厅
- 探针卡基础知识培训课件
- 2025年留置看护队考试题库及答案
- 幽门螺旋杆菌教学课件
- 《管理学基础与实务》 课件 曾宪达 第1-5章 管理与管理者- 目标与计划
- 高三秋季开学第一课:语你相遇文暖我心+课件+2025-2026学年统编版高一语文必修上册
- 心内科常见疾病健康宣教
- 闭经中医课件
- 煤粉锅炉培训课件
- 面塑教学 课件
- 2025年小学体育课程标准考试测试卷及参考答案
评论
0/150
提交评论