




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 子程序教学难点解析及对策 朱洋【摘 要】qbasic程序设计是计算机专业对口单招指定程序设计语言。本文详尽讲解了子程序的参数、变量等基本概念,重点分析了子程序调用过程中参数的传输方式和相互关系,列举了子程序应用中的特例和注意点。【关键词】qb 子程序 形参 实参 传递qbasic程序设计作为计算机专业对口单招指定程序设计语言,它在计算机学科体系中的作用和地位是显而易见的。亦是许多学生最害怕的一门课,尤其是子程序设计部分,学生更是难以理解,笔者执教该课多年,对子程序教学有所感悟,下面,笔者就子程序难点处理的教学对策谈谈看法。一、基本概念要搞清
2、,“形”“实”“参”“非”莫混淆刚学习子程序时,大部分学生感到难理解的是参数和变量的含义,而参数与变量的内涵是学好子程序的基础。如何判断一个参数是形参还是实参,主要看这个参数的位置,在调用子程序语句中的参数就是实参,在定义子程序语句中的参数就为形参。对于参数变量和非参数变量,学生容易将子程序中的变量与主程序中的同名实参相混,我们判断一个变量是参数变量还是非参数变量,主要是针对子程序而言,在子程序中,如果这个变量作为形参,则该变量为参数变量,否则为非参数变量。二、调用过程要吃透,数据传递要把准1.吃准传递方式,弄清相互关系sub子程序中所有的非参数变量都是局部变量(全局变量和共享变量除外),它们
3、与主程序中的同名变量没有任何关系,主程序中的实参与子程序中的形参有两种传递方式,即值传递和地址传递,判断参数传递的方式,就看实参的形式,如果实参是变量(包括简单变量、下标变量、数组变量、记录变量),则为地址传递,如果实参是常量、表达式、变量上加一对小括号,则为值传递。在例1中,实参a和aa()都是以变量的形式出现,所以是地址传递。而实参b+2是表达式,(c)是变量加上了一对小括号,所以是值传递。值传递是指调用子程序时,实参和形参分别拥有自己的内存单元,实参仅将值传递给形参,而形参不能反方向把值传递给主程序中对应的实参。在例1中,实参b+2和(c)都是值传递,它们对应的形参分别为y和z,在调用子
4、程序时,实参b+2将值4传递给形参y,实参(c)将值3传递给形参z,在调用子程序后,形参y和z的值分别变为8和18,但由于是值传递方式,形参不能将值传递给实参,实参b和c的值仍为2和3,即形参的变化不会影响实参。地址传递是在调用子程序时,实参将自己所占用内存单元的地址传递给形参,此时,实参和形参共同占用一个内存单元,在调用子程序过程中,形参改变了,也就是内存单元中的值改变了,所以,实参会跟着变化,例1中a和aa()采用地址传递,它们对应的形参为x和 b(),在调用子程序时,其传递过程如下表所示:从表中不难看出,地址传递方式中,实参a和形参x占用同一个内存单元,实参aa()和形参b()占用同一个
5、内存区域,所以不管谁的值变化,内存中值就跟着变化,而内存的值变化,实参和形参当然同时变化,所以,地址传递方式下,传递的方向是双向的,形参的变化会影响实参。2.理清传递通道,抓住关键要点(1)子程序中的变量,如果是参数变量,则与主程序对应实参有两种传递方式,即值传递和地址传递,这两种方式前面已作阐述。(2)如果子程序中的变量不是参数变量,就看它是否为全局变量,如果是全局变量则该变量在主程序和所有的子程序中为同一变量,如例2,子程序test1中变量d就是一个非参数变量,但它是一个全局变量,所以在主程序和子程序test1中,d是同一个变量,正因为如此,d可以将初始值4带到子程序中,子程序调用结束后,
6、d的值为11,主程序中的d也为11。(3)如果子程序中的变量,既不是参数变量又不是全局变量,则看它是否为共享变量,如例1中的a就是共享变量,它不同于全局变量,全局变量作用于主程序和所有的子程序,而它只作用于主程序和申请共享该变量的子程序,与其它子程序无关。(4)综上所述,如果一个子程序中变量既不是参数变量,也不是全局变量,又不是共享变量,则该变量与主程序和其他子程序中的同名变量没有任何关系。三、几种特例要牢记,攻克难点才轻松1.全局变量与值传递发生矛盾时,值传递优先当一个全局变量既作为实参又作为形参,并且采用值传递方式时,这时就出现了一对矛盾,作为全局变量,在子程序中改变了它的值,主程序中也应
7、该改变,但从值传递的角度看,子程序中改变了形参的值不会影响主程序中对应实参的值,此时值传递方式优先,如例2,a是一个全局变量,但它同时又作为实参和形参,并且采用的是值传递方式,在子程序text3调用结束后,子程序中a的值为2098,但此时这个值并不会传递给主程序中的a,主程序中的a仍然为100。2.如果参数为记录类型,必须指定其所属记录类型对于实参而言,必须在主程序中先定义记录结构,然后才能用属于这种记录类型的变量作为实参,对于形参,在定义子程序时,就要将它定义为对应实参所属的记录类型,否则程序将出错。3.static语句的另一种用法大家都知道,用static语句可以在子程序调用结束后,将子程
8、序中变量的值保留下来,作为下一次调用的初始值,但还可以在子程序中用static语句将全局变量申请为该子程中的局部变量。当然,出了该子程序,此变量仍然是全局变量,如例1中的全局变量b,在子程序test3中,用语句static b将其申请为局部变量。所以,尽管主程序中b的值为123,但这个值并不能带到test3中,在test3中,b的值为0,但在其他子程序中,b仍然为全局变量。参考文献:1谭浩强.qbasic程序设计.北京:清华大学出版社,2000.2谭浩强.qbasic语言教程.北京:电子工业出版社,1997.3教育部考试中心.全国计算机等级考试大纲.北京:高等教育出版社,2002.中国校外教育(下旬)2009年14期中国校
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国板型电阻器数据监测研究报告
- 2025年中国束状染色机市场调查研究报告
- 2025年中国无缝小背心市场调查研究报告
- 2025年中国ABS珠数据监测研究报告
- 2025年中国方杆磨尖铅笔市场调查研究报告
- 2025年中国数控高速塑料中空成型机市场调查研究报告
- 2025-2030年中国互联网传媒市场动态监测及投资前景评估报告
- 2025-2030年中国丙烯行业市场发展预测及前景调研分析报告
- 2025-2030年中国MTBE甲基叔丁基醚行业风险评估与发展前景分析报告
- 新疆吐鲁番市鄯善县2025年三年级数学第二学期期末经典模拟试题含解析
- 初中八年级数学课件-最短路径-将军饮马问题
- 信息论与编码期末考试题(全套)
- 医院医学伦理审查委员会章程
- 废弃物管理制度范本
- 房地产销售价格优惠申请表-
- 绿化自动滴灌系统施工方案
- 处理突发事件流程图
- 2023年梅毒诊疗指南
- 医疗卫生系统招聘《医学基础知识》备考题库资料宝典(核心题版)
- 使用说明书仪表8530d技术手册
- 五金工具零售规章制度
评论
0/150
提交评论