K12学习八年级信息技术教案第八章程式序设计个性化函数和子程序.docx
- 文档编号:27478682
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:9
- 大小:17.41KB
K12学习八年级信息技术教案第八章程式序设计个性化函数和子程序.docx
《K12学习八年级信息技术教案第八章程式序设计个性化函数和子程序.docx》由会员分享,可在线阅读,更多相关《K12学习八年级信息技术教案第八章程式序设计个性化函数和子程序.docx(9页珍藏版)》请在冰豆网上搜索。
K12学习八年级信息技术教案第八章程式序设计个性化函数和子程序
八年级信息技术教案第八章程式序设计个性化----函数和子程序
第八章程式序设计个性化----函数和子程序
一、学习目标
掌握模块化程序设计思想
掌握函数与子程序的定义及使用
理解全局变量与局部变量
了解参数的传送过程
二、教学重点
掌握模块化程序设计
三、教学难点
掌握函数与子程序的定义及使用
四、教学方法
.演示法。
.实践法。
五、教学手段与教学媒体
多媒体网络教室。
六、课时安排
课时。
七、教学过程
“模块化程序设计”中的“模块”是指:
完成程序全部或部分任务的独立源程序文件。
程序的每一个模块可以是子程序或函数,它是通过执行一系列语句来完成一个特定的操作过程,常称为“过程”。
“执行一个过程”——调用一个子程序或函数;
一、自定义函数
QBASIc函数:
①标准函数
②自定义函数
③外部函数
单行自定义函数
语句函数——用一个语句定义一个函数
一般格式;
DEFfn=
例1.已知圆的半径r,求圆的面积:
S=πr2
DEFfns=3.14159*r*r
PRINTfns
END
例2.DEFfns$=”thisisastring”
PRINTfns$
例3. 求以下公式:
DEFfnc=SQR
Printfnc
说明
•函数名由两部分组成
fns
自定义函数标志,用户定义名;
•参数可有多个,但调用时的参数与定义时的
参数要一致。
多行自定义函数
用多行语句来定义一个函数。
一般格式
DEF fn
.....
fn=
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
print“4!
+5!
+6!
=”;s
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=";n*10
END
a1:
printa;"+";b;"=";
inputc
ifc=a+bthenn=n+1
return
a2:
printa;"-";b;"=";
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
功能键F1~F10
1方向键↑
方向键←
3方向键→
方向键↓
例:
求和式:
S=12+22+...+n2
n=100000
oNEyGoSUBpri
EyoN
S=0
Fori=1to100000
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
ENDSUB
_________________________
DEcLARESUBStars
callStars
callStars
End
说明
i)DEcLARE为外部子程序说明语句,主程序调用多少个子程序,就有多少个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
注:
地址传递方式是当实际参数为变量时发生,它将可能会改变原变量的值,若实际参数是变量时,又不想用地址传递则可把变量用括号括起来。
例:
求两个整数的最大公约数和最小公倍数。
最小公倍数=/最大公约数
求最大公约数子程序:
SUBHcF
IF0
=n
n=r
r=oDn
LooP
h=n
ENDSUB
求最小公倍数子程序:
SUBLc
h=*n/h
ENDSUB
主程序:
DEcLARESUBHcF
DEcLARESUBLc
INPUT",n=";,n
cALLHcF
PRINT"最大公约数为:
";h
cALLLc
PRINT"最小公倍数为:
";h
END
说明:
程序在执行时,结果不正确;其原因是cALLHcF语句调用时修改了和n的值,以至使cALLLc运行不
正确。
因此,cALLHcF语句应为:
cALLHcF,,h)
例:
验证哥德巴赫猜想:
一个不小于6的偶数可以表示为两个素数之和。
算法:
n=10
n1
n2
n=16
n1
n2
3
四、模块化的函数
建立一个函数
FUNcTIoN
.....
LET=
ENDFUSTIoN
函数的调用
与标准函数相同,只是在主程序开头加上DEcLARE FUNcTIoN,无参数函数也要写上两个括号;
例:
求4到7的阶乘之和
FUNcTIoNFact
f=1
fori=1ton
f=f*i
NEXTI
Fact=f
ENDFUNcTIoN
__________
DEcLAREFUNcTIoNFact
S=0
Fori=4to7
S=S+Fact
Nexti
Print"S=";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
执行的结果造成无终止的自身调用,显然,程序中不应出现这种无终止的调用,而只应是有限次数的、有终止的递归调用。
FoNcTIoNAge
Ifn=1thenAge=10elseAge=Age+2
EndFoNcTIoN
主程序:
DEcLAREFUNcTIoNAge
PrintAge
End
FoNcTIoNFact
Ifn<=1thenFact=1elseFact=n*Fact
ENDFoNcTIoN
教学后记:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- K12 学习 年级 信息技术 教案 第八 章程 设计 个性化 函数 子程序