信息学第九课过程与函数

合集下载

人教版信息技术八下第9课《演示轨迹》word教案

人教版信息技术八下第9课《演示轨迹》word教案
第五步:同时选定圆上的A,B,C,然后执行“编辑----动画按钮”命令,在打开属性对话框中,分别操纵三个点在各自的圆上以不同的速度运动。
第六步:同时选定条件半径,执行“显示”------“追踪点”。
第七步:点击“动画按钮”,绘图板上就会显示条件半径的轨迹。
任务二
用“动画按钮”同时运动三个圆的轨迹图
时刻10分钟
几何画板能够对对象等差不多元素进行轨迹跟踪,当移动对象时,该对象就会留下相应的轨。
利用几何画板中的轨迹功能,能够关心我们更好地学习和研究轨迹。
(引导学生积极展开讨论、自由回答,简单总结出动画制作的过程。)
教学过程教学内容
现在来看老师是如何制作追踪图形运动的轨迹动画。
1.追踪线段
第一步:在绘图板上画一条线段,并设置线性和颜色。
静态的图形变成动态的图形。通常要看目标的运动轨迹跟踪就能够用动画功能。
★布置作业
把书74页“练一练”中的两个例子再做一遍。巩固所学知识,请你们把作品传到老师的QQ上,下节课将对其中的优秀作品进行展现,假如在制作过程中有什么问题,也可随时在老师的QQ空间里留言,老师会及时给予解答。让我们共同努力,加油!




轨迹跟踪
动画按钮
同时演示多个图形的运动轨迹




现在老师给大伙儿展现一个“图形轨迹”动画,请注意观看:那个动画有没有轨迹。轨迹的颜色是什么颜色。
大伙儿看到了动画轨迹。
轨迹跟踪是一个专门重要的功能。轨迹跟踪我们生活当中经常遇到过。我们黑板上写字儿的时候粉笔就会留下的相应的轨迹。
什么是轨迹?
•一个点在空间移动,它所通过的全部路径叫做那个点的轨迹
…………
第二步:选定线段,执行“显示”—“追踪线段”命令。

六年级上册信息技术人教版第9课+带变量的过程

六年级上册信息技术人教版第9课+带变量的过程
4. 教学素材:提供丰富的教学素材,如编程案例、实验指导等,帮助学生更好地理解和掌握变量知识。
五、教学实施过程
1. 课前自主探索
教师活动:
- 发布预习任务:通过学校在线学习平台,发布预习资料,包括PPT、视频和预习指导文档,明确预习目标和要求,即理解变量的概念和简单应用。
- 设计预习问题:围绕“变量的应用”设计问题,如“什么是变量?它在编程中有什么作用?”引导学生自主思考。
(3)课堂参与度:部分学生在课堂中积极参与讨论和实践活动,表现出较高的热情;而另一部分学生则较为沉默,参与度不高。教师应关注全体学生,通过提问、小组合作等方式,激发学生的课堂参与意识。
四、教学方法与策略
为了实现本节课的教学目标,充分考虑学习者的特点,选择以下教学方法与策略:
1. 讲授法:以讲解为主,结合课本第9课《带变量的过程》,向学生系统地介绍变量的概念、作用以及使用方法。通过讲授,帮助学生建立基本知识框架,为后续实践奠定基础。
- 参与课堂活动:在小组讨论和实验中积极发言,编写程序并尝试解决问题。
- 提问与讨论:对不懂的问题勇敢提问,参与小组讨论,共同解决难题。
教学方法/手段/资源:
- 讲授法:通过讲解,帮助学生系统掌握变量知识。
- 实践活动法:通过编程实验,培养学生的动手能力和问题解决能力。
- 合作学习法:通过小组合作,培养学生的团队协作和沟通能力。
1. 学生层次分析:
六年级的学生在认知发展方面已具备一定的抽象思维能力,能够理解编程中较为复杂的概念。然而,在信息技术学科方面,学生的层次差异较大。部分学生对计算机编程有一定的基础,能够熟练操作相关软件,而另一部分学生对编程知识了解较少,操作能力较弱。这种层次差异在本节课的学习中,需要教师采取差异化教学策略,兼顾各层次学生的学习需求。

苏科版信息技术选修第9课《定义过程》word教案

苏科版信息技术选修第9课《定义过程》word教案

苏科版信息技术选修第9课《定义过程》word教案知1.什么叫过程:把海龟画图过程中执行的所有命令组合在一起就叫过程。

那么我们该如何编写和定义过程呢2.过程定义的格式TO过程名过程体END下面我们来看看如何编写一个让海龟画正方形的过程。

(1)过程的编写:TOZFX 教师演示在命令窗口输入;TO ZFX。

TOZFX是过程头,ZFX是我们要编写的过程的名字,注意在它们之间要留有空格。

(2)执行过程:当我们在命令行中直截了当输入过程名,就表示要小海龟执行过程头和过程尾之间的命令。

在命令窗口中键人过程名ZFX,回车后,小海龟赶忙画出一个正方形。

学生尝试练习学生分析过程的意义。

学生记好笔记学生练习课件出示,To zfxRepeat 4[fd50 rt 360/4]end学生操作反馈与关心第一个过程的教学专门重要,确保100%学生的成功。

教师多加巡视。

巩固练习1.定义一个画正方形的过程,并试着执行这一过程。

2.请在命令窗口中输入“FD100 cfx",看看小海龟能画出一个什么图形。

学生练习,体会运用过程的便利学生演示优秀作品展现让学生体会成功。

拓展练习(1)试一试,你能让海龟记住画三角形和圆的命令吗?(教师巡回指导)(2)你能用定义好的"ZFX"过程画出下面的图形吗?(3)图中正六边形(六条边、六个内角都相等),以它的各边为一边向别处正方形可得学生上机练习小组合作完成下面的图形。

投影方法:①定义过程ZFX ②画出第一个长方形③。

找出第二让学生在合作的过程中相互学习。

下图。

(4)完成个性练习(实践园)……个长方形的来由。

⑤隐藏小海龟⑥想一想:后几个长方形的画法完全相同,如何简化呢任务分层次,给不同程度的学生以提高的机会。

总结引导学生自我总结,说明定义后的过程能够与前面学习的差不多命令混合使用。

能够任意地调用学生总结作业复习今天学习的命令板书设计:课题TO过程名过程体(如:三角形…)END教学后记:(详见附页)。

小学信息技术六年级上册第9课《 带变量的过程》教案

小学信息技术六年级上册第9课《 带变量的过程》教案

小学信息技术六年级上册第9课《带变量的过程》教案年级:六年级上册学科:信息技术版本:人教版(三起)(2001)教材分析一、教学目标1. 知识与技能:理解变量的概念,掌握如何在程序中创建和使用变量,理解变量在处理数据过程中的作用。

2. 过程与方法:通过实例操作,学会在编程环境中创建和改变变量的值,体验带变量的过程。

3. 情感态度与价值观:培养学生的逻辑思维能力和问题解决能力,激发对信息技术的兴趣。

二、教学重难点重点:理解变量的概念和作用,学会在程序中创建和使用变量。

难点:理解变量的动态变化和其在处理数据过程中的应用。

三、教学过程1. 导入新课:通过生活中的例子(如:银行存款的余额)引入变量的概念,让学生初步理解变量是可以存储和改变数据的“箱子”。

2. 讲解新知:定义变量:解释变量是用于存储信息的“容器”,每个变量都有特定的名称(变量名)和可以改变的值。

创建变量:以编程环境(如Scratch或Python)为例,演示如何创建一个变量,包括变量的命名和赋值。

使用变量:通过编写简单的程序,展示如何在程序中使用变量,如读取用户输入、改变变量的值等。

3. 实践操作:学生操作:让学生在编程环境中尝试创建和使用变量,例如编写一个程序,让变量的值根据用户输入或特定规则变化。

分组讨论:讨论变量在实际问题解决中的应用,如游戏计分、模拟天气变化等。

4. 巩固提升:例题解析:分析一些包含变量的编程题目,让学生理解并掌握变量的使用方法。

创新挑战:设计一个更复杂的程序,要求学生在其中灵活运用变量,如设计一个简单的购物车系统。

5. 课堂小结:回顾本课内容,让学生再次阐述变量的概念和作用,以及如何在程序中创建和使用变量。

6. 课后作业:完成相关的编程练习,进一步巩固变量的使用。

四、教学评价通过观察学生在实践操作和讨论中的表现,以及课后作业的完成情况,评估学生对变量的理解和应用能力。

五、教学反思1. 知识理解:首先,需要反思学生对变量这一概念的理解程度。

信息学奥赛之过程与函数资料

信息学奥赛之过程与函数资料

end;
S:=area(b1,b5,b6)+area(b2,b6,b7)+area(b3,b4,b7);
实在参数
实在参数
实在参数
函数调用方式与标准函数的调用方式相同。 函数调用的一般格式:
<函数名> 或
<函数名>(实在参数表)
• ①函数由首部与函数体两部分组成,函数体与 程序体基本相似。
• ②函数首部以关键字function开头。③函数名 是用户自定义的标识符。
end;
三 次 调 用 函
begin {主程序} write( ‘please input b1,b2,b3,b4,b5,b6,b7:’); readln(b1,b2,b3,b4,b5,b6,b7); S:=area(b1,b5,b6)+area(b2,b6,b7)+area(b3,b4,b7); writeln( ‘s=’,s:10:3);
(一)函数定义的一般格式:
function <函数名> (<形式参数表>:<类型>):函数类型;
自定义的函数在调用前要先说明,在程序中,函数的说明放 在调用该函数的程序(主程序或其它子程序)的说明部分。 例:
PROGRAM 程序名 (INPUT,OUTPUT); VAR 主程序变量说明;
FOUNCTION 函数名(形参表):函数类型; VAR 函数变量(局部变量)说明; BEGIN
函数体 END;{FUNCTION} BEGIN
主程序 END。
函数的结构与主程序的结构很相似。
(二)函数的调用
• 我们可以在任何与函数值类型兼容的表达式中调用函数,或者说, 函数调用只能出现在允许表达式出现的地方,或作为表达式的一 个因子。

3.1《函数》教案 2023—2024学年重大版(2019)初中信息技术八年级上册

3.1《函数》教案 2023—2024学年重大版(2019)初中信息技术八年级上册

【重大版(第七版)】信息技术八年级上册3.1《函数》教案•通过PPT展示函数的代码示例。

学生行为:•认真听讲,记录关键知识点。

•观察代码示例,理解函数的逻辑。

设计目的:•确保学生对函数有清晰的认识。

(三)案例分析(10分钟)教师行为:•展示一个具体的编程案例,如使用函数计算不同形状的面积。

•分析案例中函数的应用。

学生行为:•跟随教师的分析,理解函数在实际编程中的应用。

•提问和讨论,加深理解。

设计目的:•通过案例分析,让学生更深入地理解函数的应用。

(四)实践操作(10分钟)教师行为:•指导学生使用编程软件,根据所学知识完成一个简单的编程任务,如定义并调用一个函数。

•巡视课堂,个别指导有困难的学生。

学生行为:•动手操作编程软件,尝试定义和调用函数。

•遇到问题主动向教师求助,与同学讨论。

设计目的:•通过实践加深学生对函数的理解和应用。

(五)小组合作编程(5分钟)教师行为:•将学生分成小组,每个小组设计一个使用函数的小程序。

•鼓励学生在小组内进行分工合作,共同解决问题。

学生行为:•在小组内进行讨论,明确分工,共同完成编程任务。

•展示小组的成果,分享合作经验。

设计目的:•培养学生的团队协作能力和沟通能力。

(六)互动讨论(5分钟)教师行为:•提出一些关于函数的问题,如函数在优化程序中的作用。

•组织学生进行小组讨论。

学生行为:•积极参与小组讨论,分享自己的见解。

•听取他人意见,拓宽思路。

设计目的:•培养学生的合作精神和交流能力。

(七)问题探究(5分钟)教师行为:•提出一些编程中可能遇到的问题,如函数递归的使用。

•引导学生思考这些问题,并尝试提出解决方案。

学生行为:•积极思考,尝试提出问题的答案。

•参与讨论,分享自己的想法。

设计目的:•培养学生的批判性思维和创新能力。

(八)课堂小结(5分钟)教师行为:•总结本节课的主要内容和学习要点。

•强调函数在程序设计中的重要性。

学生行为:•认真听讲,回顾本节课的学习内容。

•准备提出自己的疑问和困惑。

八年级上册信息技术 -第9课 python 自定义函数 【教案】

八年级上册信息技术 -第9课 python 自定义函数 【教案】

第二单元 Python程序设计第9课自定义函数【教案】一、【教材分析】二、【教学流程】(课件出示猜成语游戏)【游戏导入】我们一起来玩一个看图猜成语的游戏吧,看哪个小组猜的最多。

【启发思考】每个成语背后说明了什么道理?【教师总结】成语展现了汉语表达巨大而丰富内涵的能力和语义融合能力。

短短几个汉字,往往包涵了一段历史、一个故事、一个典故、一个道理、一个哲理。

生活中,我们经常引用成语。

【函数引入】我们这节课要学习的函数就和成语一样,是一段语句的集合。

在python程序中,我们可以像引用成语一样,使用函数,完成复杂的问题。

出示课件,停留在活字印刷图片【类比启发】活字印刷是我国古代伟大的四大发明,印章一次制作,可以多次使用。

函数就像这些活字印章一样,一次定义多次使用。

【提出问题】什么是函数?函数是一种可以重复使用的程序功能模块。

④试一试:给sjx()函数设定参数,使其根据参数打印不同行数的三角形图案。

使用for 语句。

def sjx(n):for i in range(1,n):print("*"*i)例如:sjx(10)⑤议一议:在程序设计中,把一些功能设计成函数有什么作用。

【活动引入】数学课我们学过解方程,那我们能不能自定义函数来解决解方程的问题呢?做一做:在方程ax=b(a不等于0)中,请设计一个自定义函数,给定a 和b的值,即可算出x的值。

课件出示程序:【讲授】在函数内部的变量为“局部变量”,在函数外部的变量为“全局变量”。

例如上面代码中的x在函数外部,为全局变量,程序要修改全局变量,应在变量前添加global保留字。

【讲授】使用全局变量保存方程的计算结果时,虽实现了计算的效果,但对程序的模块化和重复使用上有所影响。

所以在函数内部一般不使用全局变量,可以定义局部变量x,获取得到的结果,最后使用“return x”语句作为函数的结果。

课件出示程序:【活动引入】在python中,列表等数据结构能够支持基本的数据统计应用,请利用自定义函数,设计一个程序,用函数功能实现以下功能。

人教版(新版)信息技术六下第9课《使用变量编过程》说课稿

人教版(新版)信息技术六下第9课《使用变量编过程》说课稿

人教版(新版)信息技术六下第9课《使用变量编过程》说课稿一. 教材分析《使用变量编过程》是人教版(新版)信息技术六下第9课的内容。

本节课的主要任务是让学生掌握使用变量编写过程的方法,培养学生利用变量解决实际问题的能力。

教材通过生动的案例,引导学生理解变量的概念,并学会在编程中使用变量。

教材内容由浅入深,循序渐进,使学生在学习过程中能够逐步掌握变量的使用方法。

二. 学情分析在学习本节课之前,学生已经掌握了编程的基本语法和结构,具备了一定的逻辑思维能力。

但部分学生对于变量的概念和作用可能还比较模糊,因此在教学过程中需要加强对学生的引导,让学生能够充分理解并熟练运用变量。

三. 说教学目标1.知识与技能:让学生掌握变量的概念,学会在编程中使用变量,并能够运用变量解决实际问题。

2.过程与方法:通过案例分析,培养学生独立思考和合作解决问题的能力。

3.情感态度与价值观:激发学生对编程的兴趣,培养学生的创新精神和团队合作意识。

四. 说教学重难点1.重点:掌握变量的概念和使用方法。

2.难点:灵活运用变量解决实际问题。

五. 说教学方法与手段1.教学方法:采用问题驱动法、案例教学法和小组合作学习法。

2.教学手段:利用多媒体课件、网络资源和编程软件进行教学。

六. 说教学过程1.导入新课:通过一个有趣的编程案例,引导学生思考如何利用变量解决问题。

2.讲解变量概念:为学生讲解变量的概念,让学生明白变量在编程中的作用。

3.演示变量使用:通过编程软件演示如何使用变量编写过程,让学生直观地感受变量的使用方法。

4.实践操作:让学生分组进行编程实践,运用所学知识解决实际问题。

5.总结提升:对学生的实践成果进行点评,总结变量使用的注意事项,并引导学生思考如何更好地利用变量优化程序。

6.课堂小结:对本节课的内容进行总结,强调变量的概念和使用方法。

七. 说板书设计板书设计如下:1.变量概念:变量 = 值2.变量使用方法:a.声明变量b.给变量赋值c.使用变量3.变量解决的实例八. 说教学评价本节课的评价方式包括课堂表现、实践操作和课后作业。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九课过程与函数前面我们曾经学习了程序设计中的三种基本控制结构(顺序、分支、循环)。

用它们可以组成任何程序。

但在应用中,还经常用到子程序结构。

通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上其标识符即可。

这样的程序段,我们称之为子程序。

子程序的使用不仅缩短了程序,节省了内存空间及减少了程序的编译时间,而且有利于结构化程序设计。

因为一个复杂的问题总可将其分解成若干个子问题来解决,如果子问题依然很复杂,还可以将它继续分解,直到每个子问题都是一个具有独立任务的模块。

这样编制的程序结构清晰,逻辑关系明确,无论是编写、阅读、调试还是修改,都会带来极大的好处。

在一个程序中可以只有主程序而没有子程序(本章以前都是如此),但不能没有主程序,也就是说不能单独执行子程序。

pascal中子程序有两种形式:函数和过程。

一、函数在此之前,我们曾经介绍并使用了pascal提供的各种标准函数,如ABS,SUCC等等,这些函数为我们编写程序提供了很大的方便。

但这些函数只是常用的基本函数,编程时经常需要自定义一些函数。

(一)函数的说明在pascal中,函数也遵循先说明后使用的规则,在程序中,函数的说明放在调用该函数的程序(主程序或其它子程序)的说明部分。

函数的结构主程序的结构很相似。

函数定义的一般格式:function <函数名> (<形式参数表>):<类型>; {函数首部}说明:①函数由首部与函数体两部分组成。

②函数首部以关键字function开头。

③函数名是用户自定义的标识符。

④函数的类型也就是函数值的类型,所求得的函数值通过函数名传回调用它的程序。

可见,函数的作用一般是为了求得一个值。

⑤形式参数简称形参,形参即函数的自变量。

自变量的初值来源于函数调用。

在函数中,形参一般格式如下:变量名表1:类型标识符1;变量名表2:类型标识符2;…;变量名表n:类型标识符n 可见形参表相当于变量说明,对函数自变量进行说明,但应特别注意:此处只能使用类型标识符,而不能直接使用类型。

⑥当缺省形参表(当然要同时省去一对括号)时,称为无参函数。

⑦函数体与程序体基本相似,由说明部分和执行部分组成。

⑧函数体中的说明部分用来对本函数使用的标号、常量、类型、变量、子程序加以说明,这些量只在本函数内有效。

⑨函数体的执行部分由begin开头,end结束,中间有若干用分号隔开的语句,只是end 后应跟分号,不能像程序那样用句号"."。

⑩在函数体的执行部分,至少应该给函数名赋一次值,以使在函数执行结束后把函数值带回调用程序。

(二)函数的调用我们可以在任何与函数值类型兼容的表达式中调用函数,或者说,函数调用只能出现在允许表达式出现的地方,或作为表达式的一个因子。

函数调用方式与标准函数的调用方式相同。

函数调用的一般格式:<函数名>或<函数名>(实在参数表)说明:①实在参数简称实参。

实参的个数必须与函数说明中形参的个数一致,实参的类型与形参的类型应当一一对应。

②调用函数时,一般的,实参必须有确定的值。

③函数调用的步骤为:计算实参的值,"赋给"对应的形参;(三)函数的应用举例例1求正整数A和B之间的完全数(A<B).分析:所谓完全数是指它的小于该数本身的因子之和等于它本身,如6=1+2+3,6即是一个完全数。

因此我们可定义一个布尔型函数perfect(x),若x是完全数,其值为TURE,否则为FALSE。

整个程序算法如下:1 for i:=A to B do2 if perfect(i) then writeln(i);源程序如下:program ex7_1;vari,a,b : integer;function perfect(x:integer):boolean;vark,sum : integer;begin{累加x所有小于本身的因数}sum:=1;for k:=2 to x div 2 doif x mod k=0 then sum:=sum+k;{判断x是否是完全数}perfect:=x=sum; {将结果赋值给函数名}end;{end of perfect}begin{主程序开始}write('Input a,b:');repeat {输入0<a<b}readln(a,b);until (a>0)and(b>0)and(a<b);writeln('List of all perfect numbers:');{从a到b逐个判断,是完全数则打印出来for i:=a to b doif perfect(i) then writeln(i);end.自定义函数只是主程序的说明部分,若主程序中没有调用函数,则系统不会执行函数子程序。

当主程序调用一次函数时,则将实在参数的值传给函数的形式参数,控制转向函数子程序去执行,子程序执行完毕后自动返回调用处。

练习:1.编写一个函数计算f(X ,Y)=X Y2.已知一元二次方程的求解与值有关,输入a (a 不等于0)、b 、c ,得出其是否有解? aacb c bx ax 2b -x 000401,222∆±=<∆=∆>∆-=∆=++时,无实数解时,有两个相等解;时,有实数解;3.......!7!5!3!1sin 753+-+-=x x x x x 计算sin (x,n )其中n 表示sin(x)的前n 项。

输入x 、n 。

.第二部分二、过程在pascal中,自定义过程与自定义函数一样,都需要先定义后调用。

函数一般用于求值,而过程一般实现某些操作。

(一)过程的说明过程说明的一般格式为:procedure <过程名> (<形式参数表>); {过程首部}说明: ①过程首部以关键字procedure开头。

②过程名是用户自定义的标识符,只用来标识一个过程,不能代表任何数据,因此不能说明"过程的类型"。

③形参表缺省(当然要同时省去一对括号)时,称为无参过程。

④形参表的一般格式形式如下:[var] 变量名表:类型;…;[var] 变量名表:类型。

其中带var的称为变量形参,不带var的称为值形参。

在函数中,形参一般都是值形参,很少用变量形参(但可以使用)。

例如,下列形参表中:(x,y:real;n:integer;var w:real;var k:integer;b:real)x、y、n、b为值形参,而w、k为变量形参。

调用过程时,通过值形参给过程提供原始数据,通过变量形参将值带回调用程序。

因此,可以说,值形参是过程的输入参数,变量形参是过程的输出参数。

有关变参,这在后面内容具体叙述。

⑤过程体与程序、函数体类似。

与函数体不同的是:函数体的执行部分至少有一个语句给函数名赋值,而过程体的执行部分不能给过程名赋值,因为过程名不能代表任何数据。

⑥过程体的说明部分可以定义只在本过程有效的标号、常量、类型、变量、子程序等。

(二)过程的调用过程调用是通过一条独立的过程调用语句来实现的,它与函数调用完全不同。

过程调用与调与标准过程(如write,read等)的方式相同。

调用的一般格式为:<过程名>或<过程名>(实在参数表)说明: ①实参的个数、类型必须与形参一一对应。

②对应于值形参的实参可以是表达式,对应于变量形参的实参只能是变量。

③过程调用的步骤为:计算实参的值;将值或变量的"地址"传送给对应的形参;执行过程体;返回调用处。

过程与函数有下列主要区别:①过程的首部与函数的首部不同;②函数通常是为了求一个函数值,而过程可以得到若干个运算结果,也可用来完成一系列的数据处理,或用来完成与计算无关的各种操作;③调用方式不同。

函数的调用出现在表达式中,而过程调用是一个独立的语句。

(三)过程的应用举例例2输出以下一个图形:*********************分析:我们前面学习可用的二重循环打印出上图形, 现我们设置一个过程打印出N个连续的"*"号。

源程序如下:program ex7_2;var i:integer;procedure draw_a_line(n:integer); {该过程打印出连续n 个星号,并换行} var j:integer;beginfor j:=1 to n dowrite('*');writeln;end;beginfor i:=1 to 6 dodraw_a_line(i);{调用过程,第I行打印i个连续星号}end.(仔细阅读以下内容)三、过程、函数的数据传递在程序调用子程序时,调用程序将数据传递给被调用的过程或函数,而当子程序运行结束后,结果又可以通过函数名、变参。

当然也可以用全局变量等形式实现数据的传递。

这一节我们,就来研究参数传递与局部变量、全局变量等问题。

(一)数值参数和变量参数前面已经讲过,pascal子程序中形式参数有数值形参(简称值参)和变量形参(变参)两种。

事实上,还有函数形参和过程形参两种,只是应用并不太多,我们不作深入地研究。

1、值形参值参的一般格式如§7.1.1所示。

应该强调的是:①形参表中只能使用类型标识符,而不能使用类型。

②值形参和对应的实参必须一一对应,包括个数和类型。

③实参和值形参之间数据传递是单向的,只能由实参传送给形参,相当赋值运算。

④一个特殊情况是,当值形参是实型变量名时,对应的实参可以是整型表达式。

⑤值形参作为子程序的局部量,当控制返回程序后,值形参的存储单元释放。

2、变量形参变量形参的一般格式如§7.2.1所示,必须在形参前加关键字var。

应该注意的是:①与变量形参对应的实参只能是变量名,而不能是表达式。

②与变量形参对应的实参可以根据需要决定是否事先有值。

③变量形参与对应的实参的类型必须完全相同。

④对变量形参,运行时不另外开辟存储单元,而是与对应的实参使用相同的存储单元。

也就是说,调用子程序时,是将实参的地址传送给对应的变量形参。

⑤当控制返回到调用程序后,变量形参的存储单元不释放,但变量形参本身无定义,即不得再使用。

⑥选用形式参时,到底是使用值形参还是变量形参,应慎重考虑。

值形参需要另开辟存储空间,而变量形参会带来一些副作用。

一般在函数中使用值形参,而在过程中才使用变量形参,但也有例外。

例3写出下列两个程序的运行结果。

program ex1; program ex2;var a,b:integer; var a,b:integer;procedure swap(x,y:integer); procedure swap(Var x,y:integer) ;var t:integer; var t:integer;begin begint:=x;x:=y;y:=t; t:=x;x:=y;y:=t;end; end;begin begina:=1;b:=2; a:=1;b:=2;writeln(a:3,b:3); writeln(a:3,b:3);swap(a,b); swap(a,b);writeln(a:3,b:3); writeln(a:3,b:3);end. end.分析:这两个程序唯一的区别是ex1中将x,y作为值形参,而 ex2中将x,y作为变量形参,因此在ex2中对x,y的修改实际上是对调用该过程时与它们对应的变量a,b的修改,故最后,a,b的值为2,1。

相关文档
最新文档