八年级信息技术课教案_八年级信息技术教案第八章程式序设计个性化----函数和子程序
【jiaoan.jxxyjl.com--初中信息技术教案】
第八章 程式序设计个性化----函数和子程序一、学习目标
1.掌握模块化程序设计思想
2.掌握函数与子程序的定义及使用
3.理解全局变量与局部变量
4.了解参数的传送过程
二、教学重点
掌握模块化程序设计
三、教学难点
掌握函数与子程序的定义及使用
四、教学方法
1.演示法。
2.实践法。
五、教学手段与教学媒体
多媒体网络教室。
六、课时安排
1课时。
七、教学过程
“模块化程序设计”中的“模块”是指:完成程序全部或部分任务的独立源程序文件。
程序的每一个模块可以是子程序或函数,它是通过执行一系列语句来完成一个特定的操作过程,常称为“过程”。
“执行一个过程”——调用一个子程序或函数;
一、自定义函数
qbasic函数:
①标准函数
②自定义函数
③外部函数
1、单行自定义(def)函数
语句函数——用一个语句定义一个函数
(1). 一般格式;
def fn<名字>(<参数>)=<表达式>
例1. 已知圆的半径r,求圆的面积:s=πr2
def fns(r)=3.14159*r*r
print fns(3)
end
例2.def fns$=”this is a string”
print fns$
例3. 求以下公式:
def fnc(a,b)=sqr(a*a+b*b)
print fnc(3,4)
(2).说明
• 函数名由两部分组成
fn s
自定义函数标志(fn),用户定义名(一个字母s);
• 参数可有多个,但调用时的参数(实参)与定义时的
参数(形参)要一致。
2、多行自定义(def)函数
用多行语句来定义一个函数。
(1)、一般格式
def fn<名字>(<参数>)
......
fn<名字>=<表达式>
end def
例4、定义函数f(n)=1+2+...+n
def fns(n)
s=0
for i=1 to n
s=s+i
next i
fns=s
end def
for n=1 to 100
print fns(n)
next n
end
(2)、说明
(i)形式参数——定义函数的自变量
实际参数——调用函数时的参数。
(ii)函数先定义后使用,即习惯把def语句
放在程序的开头。
二、块内子程序
1、gosub-return 语句
子程序定义:
<标号或行号>:
......
return
子程序调用:
gosub <标号或行号>
例5:求4!+5!+6!
s=0
n=4: gosub f:s=s+p
n=5: gosub f:s=s+p
n=6: gosub f:s=s+p
print “4!+5!+6!=”;s
end
f: p=1
for i=1 to n
p=p*i
next i
return
2、on gosub-return 语句
(1).一般格式
子程序定义:
<标号>:
......
return
子程序调用:
on <表达式> gosub <子程1>,<子程2>,…,<子程n>
例:“小学生算术练习”——轮流出一个二位数和一个一位数的加法、减法和乘法的题目,共出十题,每题 10分。
randomize
for i=1 to 10
a=int(90*rnd)+10
b=int(9*rnd)+1
p=i mod 3 + 1
on p gosob a1,a2,a3
next i
print "n=";n*10
end
a1: print a;"+";b;"="; 123
input c
if c=a+b then n=n+1
return
a2: print a;"-";b;"=";
input c
if c=a-b then n=n+1
return
a3: print a;"*";b;"="
input c
if c=a*b then n=n+1
return.
(2)、说明:
<表达式>的值不是整数时,按四舍五入处理,值为0或大于n则不起作用,值为负时系统给出错误信息——“不正确的函数调用”。
3、on key(n) gosub-return 语句
(1)、调用格式
on key(n) gosub <标号>
其中n是数值表达式,代表一个“陷阱键”。n的值与 设定键的对应关系如下:
n值 键名
1~10 功能键f1~f10
11 方向键↑
12 方向键←
13 方向键→
14 方向键↓
例: 求和式:s=12+22+...+n2 n=100000
on key(2) gosub pri
key(2) on
s=0
for i=1 to 100000
s=s+i*i
next i
pring “s=”;s
end
pri:print “now swm is”;s,”i=”;i
return
(2).说明
设置陷阱:on key(n) gosub <标号>
打开陷阱:key (n) on
关闭陷阱:key (n) off
三、独立模块的子程序
1、建立子程序
格式:sub <子程序名>[(<参数表>)]
………
end sub
2、子程序的调用
(1).格式
declare sub <子程序名>[(<参数表>)]
………
call <子程序名>[(<参数表>)]
或 <子程序名> <参数表>
例:sub stars(n)
for i=1 to n
print “*”;
next i
end sub
_________________________
declare sub stars(n)
call stars(30)
call stars(18)
end
(2). 说明
i)declare 为外部子程序说明语句,主程序调用多少个子程序,就有多少个declare语句;
ii)call语句的“call”可以省写,参数的括弧也
可不写;
如: call stars(30)
可写成: stars 30
3、参数传递
(1).值传递方式
call stars (30)
......
sub stars (n)
(2).地址传递方式
a=30
call stars(a)
......
sub stars(n)
例:求4!+5!+6!+7!
子程序:sub fact(n,f)
f=1
for i=1 to n
f=f*i
next i
end sub
主程序:declare sub fact(n,f)
for i=4 to 7
call fact(i,f)
s=s+f
next i
print “s=”;s
end
注:地址传递方式是当实际参数为变量时发生,它将可能会改变原变量的值,若实际参数是变量时,又不想用地址传递(即用值传递方式)则可把变量用括号括起来。
例:求两个整数的最大公约数和最小公倍数。(p208) 最小公倍数=(m*n)/最大公约数
求最大公约数子程序:
sub hcf(m,n,h)
if m<n then swap m,n
r=m mod n
do while r<>0
m=n
n=r
r=m mod n
loop 123
h=n
end sub
求最小公倍数子程序:
sub lcm(m,n,h)
h=m*n/h
end sub
主程序:
declare sub hcf(m!,n!,h!)
declare sub lcm(m!,n!,h!)
input "m,n=";m,n
call hcf(m,n,h)
print "最大公约数为:";h
call lcm(m,n,h)
print "最小公倍数为:";h
end
说明:程序在执行时,结果不正确;其原因是call hcf语句调用时修改了m和n的值,以至使call lcm运行不
正确。因此,call hcf语句应为:
call hcf((m),(n),h)
例:验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和。(p209)
算法: n=10
n1 n2
2(t) 8(f)
3(t) 7(t)
n=16
n1 n2
2(t) 14(f)
3(t) 13(t)
四、模块化的函数
1、建立一个函数
function <函数名>(<形参表>)
......
let <函数名>=<表达式>
end fuwstion
2、函数的调用
与标准函数相同,只是在主程序开头加上 declare function <函数名>(<参数表>),无参数函数也要写上两个括号( );
例:求4到7的阶乘之和
function fact(n)
f=1
for i=1 to n
f=f*i
next i
fact=f
end function
__________
declare function fact(n)
s=0
for i=4 to 7
s=s+fact(i)
next i
print "s=";s
end
注意函数的参数传递
3、static选项(静态)
外部函数中使用的变量,在函数调用结束后将全部被释放,其值不再保留。如要保留函数中的变量,可在建立函数时加写“static”即 funtion 函数名(<参数>) static
五、全局变量与局部变量
1、局部变量
每一个模块(子程序、主程序、函数)中的变量都只在本模块中有效,即是它们的作用域只限于模块,这种变量称为局部变量。
2、全局变量
在程序所有模块中都有效的变量,即作用域为整个程序变量称为全局变量。其定义格式为:
common shared <变量表>
六、过程的嵌套调用
在一个过程里又调用另一个过程。
七、过程的递归调用
在一个过程里又调用该过程本身;
例如直接调用:
function f(x)
c=f(x)
f=2*c
end function
又如交叉调用:
function f1(x)
……
c=f2(y)
……
f1=2*c
……
end function function f2(t)
……
d=f1(a)
……
f2=4/d
……
end function
执行的结果造成无终止的自身调用,显然,程序中不应出现这种无终止的调用,而只应是有限次数的、有终止的递归调用。
fonction age(n)
if n=1 then age=10 else age=age(n-1)+2
end fonction
主程序: declare function age(n)
print age(5)
end
fonction fact(n)
if n<=1 then fact=1 else fact=n*fact(n-1)
end fonction
教学后记:
123
本文来源:https://jiaoan.jxxyjl.com/chuzhongxinxijishujiaoan/11328.html
-
【计算机的安全与使用道德规范ppt】计算机的安全使用与道德规范详细阅读
课题:(第四节、第五节, 1课时)教学目的与要求:了解计算机安全使用的意义; 增强对病毒的防范意识; 懂一些必要的知识产权知识,树立法制观念。教学重点与难点:安全用机、防病毒、知...
-
[八年级信息技术课教案]八年级信息技术教案第九章磨刀不误砍柴工-----算法基础知识详细阅读
第九章 磨刀不误砍柴工-----算法基础知识一、教学目标1.理解算法的概念;2.知道两种算法的描述方法—语言描述法和流程图的区别3.能初步利用算法解决简单的问题。4.培养学生的理论联系实际能力和动手操作能力。二、教学重难点1.重点:算法的描述2.难点:算法的描述四、教学方法讨论、讲解、操作相结合。五...
-
制作简易计算器c语言_制作简易计算器详细阅读
课 题第三节管理个人资料辅助练习学 科信息技术授课教师 地 点机 房年 级初二授课时间xx-03-7教学目标德育目标培养学生利用计算机编程去管理个人资料,学会利用计算机管理日常信息。加强利用信息技术去服务于社会的意识。知识目标1 巩固label,image,textbox,c...
-
[劳动实践我是家庭小管家教学设计]家庭小管家──“数值运算”》教学设计详细阅读
【教材版本】 本课为人教版初中第二册第14课《数值运算》。 【教学目标】 认知目标: ·了解常量、变量; ·掌握单元格的引用; ·学会用公式计算数据; ·能够熟练使用填充柄; ·掌握复制、修改输入的公式。 技能目标: 通过本节资源,学生以自主探究的方式完成本节课的学习,增强主...
-
网页浏览设置|网页浏览》教案设计详细阅读
教学内容:信息技术第一册《网页浏览》教学目标:1、通过对网页浏览活动,进一步认识网站、首页,为八年级学习网页制作做知识储备。2、培养学生的合作学习能力、探究问题的兴趣与能力。3、培养学生的鉴赏能力。4、激发学生为祖国信息产业的发展作贡献的爱国情感。教学重点:网站的形式、内容与主题之间的关系教学难点:...
-
信息处理技术是指应用电子计算机_强大的信息处理工具——电子计算机详细阅读
课题:强大的信息处理工具—电子计算机(第三节 , 1课时) 教学目的与要求:了解计算机的主要特点、简史与发展方向; 认识计算机对现代社会的作用、意义; 理解计算机的组成、简单工作原理及系统分类。 教学重点与难点:计算机的组成、计算机系统分类(重点);...
-
第九特区_第 6 节《借助Excel作研究报告》教学设计详细阅读
一、学习者分析虽然已经掌握excel数据加工和处理的方法,但要完成一份研究报告,初一的学生依然面临许多困难:一方面,他们不知道应该如何确定研究课题?如何选择适当可行的研究方法?如何通过数据分析来证明自己的观点?如何撰写研究报告?另一方面,研究报告往往与社会有更紧密的联系,需花费更多的时间和精力,学生...
-
通向世界的钥匙英语|通向世界的钥匙详细阅读
第二课 通向世界的钥匙(教案)教学目标1、认识ie浏览器的窗口组成。2、掌握上网的基本方法。3、对超级链接的认识。教学难点在地址栏输入正确的网络地址,对网络地址命名规则的初步认识。任务安排1、在地址栏输入网址到达指定的网站。2、点击网站首页上的超级链接进入对应的页面。使用课件教学过程教学预案一、导入...
-
【小学综合实践活动教学案例】网瘾的危害》综合实践活动教学案例详细阅读
一、研究背景 网络作为一种全新媒体和信息获得途径已经在人们的日常生活、学习和工作中占据越来越重要的位置,但是,网络所带来的负面影响也是非常明显的,青少年沉湎于网络游戏甚至患上网络成瘾症已成为日益突出的社会难题,这些现象在希望通过网络游戏来舒缓学习压力、摆脱孤独、满足成就感、缺乏自我控制力的青少...
-
【合成海报怎么做】《合成图像做海报》导学案详细阅读
【自研课导学】预习课(晚自习后20分钟):自读自悟资料准备: 1、自己围绕一个主题准备一组照片。 2、合成图片做成海报自主积累:我们做海报时需要:(1)先设计海报的布局,筛选符合海报主题的图片。(2)对图片进行简单编辑,制作海报。(3)通过使用画笔、填充工具等对海报进行美化。(4...