C+ +函数三步教学法 |
本文来源:本站原创 发表时间:2012-01-26 21:54 编辑作者:98dn |
| 本文作者: 周志德, ZHOU Zhi-de 收稿日期:""#$"#$%作者简介:周志德(%&’),男,广州市人,无锡职业技术学院副教授。 *++函数三步教学法周志德(无锡职业技术学院)江苏)无锡)%,"-.)摘要:函数三步式教学法是指,在介绍与函数相关知识点时,先介绍函数定义格式(包括函数类型、形参等),然后再介绍函数的调用格式(包括实参等),最后介绍函数调用过程中实参与形参的传送方式。并举例说明相关知识点的函数使用方法。关键词:函数定义调用传送函数三步教学法教学效果中图分类号:/-%)文献标识码:0)文章编号:%#-%$-11"(""#)$"#$.-$"."#$$(%&$’$"*+,-$&"./.01++23+)&*.+2345267$8945%&::6;99(<=9>=9?@67ABC9=6D8DEEFA@=7DAGH69A7A=;D8F@7AB=69;9I?=98JADHI98B9DEEFA@$=7DAKE7;<=IL7A=;D8F@9=69>?9;ADEEFA@=7DA89E7A7=7DAM7A@IF87ABEFA@=7DA=L>9?;?C9=9;NK=69A>;9<9A69=;?A 因此,函数中对形参数组的修改,就是对实参数组的修改。下面举例说明。 ”。显然,这种语言叙述方式的教学法使学生不能直观而清楚理解“数组名作为函数参数”时,函数的定义、调用与传送的过程。采用函数三步教学法的教学内容如下:“%Q一维数组作为函数参数(%)函数定义格式:S类型TS函数名T(S类型TS数组名T长度,){函数体}函数调用格式:函数名(数组名,)(.)实参与形参的传送方式:在*++中数组名用于表示数组在内存的首地址。因此,当数组作为函数参数时,系统并没有为形参数组重新分配内存空间,而是将实?.-?第’卷第.期无锡职业技术学院学报""#年&月UDF;A?IDEVFP7WA<=7=F=9DE:9@6ADIDBLXDIQ’YDQ.Z9>Q""#参数组的首地址传送给形参数组,使形参数组与实参数组占用相同的内存空间,所以对形参数组的修改就是对实参数组的修改。这种参数的传送方式称为传地址。 ”从《函数》以后章节中,凡是用到函数概念的知识点,如数组作为函数参数,指针变量作为函数参数、返回指针值的函数、结构体数组作为函数参数、运算符重载函数,均以函数的定义、调用、参数传送三步进行描述。这样做的好处是:一方面,通过多次重复使学生能更好地掌握函数的定义、调用、参数传送的概念,另一方面,多次使用函数的定义、调用、参数传送三步方式更容易引入新知识点的概念。下面介绍""函数三步式教学法在相关章节中的教学案例。##三、函数三步教学法的教学案例$%函数函数三步式教学法是指,在介绍与函数相关知识点时,用先介绍函数定义格式(包括函数类型、形参等),然后再介绍函数的调用格式(包括实参等),最后介绍函数调用过程中,实参与形参的传送方式。并举例说明相关知识点的函数使用方法。 具体内容如下。($)函数定义格式:&类型’&函数名’(&形参表’){&函数体’})函数调用格式:&函数名’(&实参表’)(实参与形参的值传送:实参和形参间的值传送是指,在调用函数时,先给形参分配存储单元,然后将实参对应的值传递给形参。 在函数执行过程中,都是形参参与运算,函数调用结束后,形参所对应的存储单元被释放,实参保持原来的值不变。【例$】定义变量交换函数*+,将两个整型变量交换数据后输出(题解略)。(%指针变量作为函数参数对于函数,读者应掌握函数定义、函数调用及参数传送三项内容。指针变量作为函数参数时同样需要讨论函数定义、函数调用及参数传送,现介绍如下。($)函数定义格式:&类型’&函数名’(&类型’"&指针变量名’,){函数体})函数调用格式:函数名(.变量,)#或#函数名(指针变量,)(实参与形参的传送方式:用指针变量作为函数参数时,传送给函数的是变量地址或指针地址,所以为传地址方式。 由于传送的是变量地址,所以可直接对函数内指针变量所指数据进行修改,并返回修改后的值。即:传地址可对实参单元进行修改,并返回修改值。 当函数需要返回多个参数值时,可使用指针变量作为参数来实现。而传值方式的函数调用,只能返回一个函数值,其形参值是无法返回的。【例(】编写两个数据交换函数,用指针变量作为函数参数实现两个数据的交换(程序略)。)%返回指针值的函数($)函数定义格式:&类型’"&函数名’(&形参’)#{&函数体’}其中:“"”说明函数返回一个指针值,即返回一个地址。)函数调用格式:指针变量/&函数名’(实参)或&函数名’(实参)(实参与形参的传送方式:与一般函数实参与形参的传送方式相同。【例)】用返回指针值的函数求两个整数的最大值(程序略)。0%结构体数组作为函数参数($)函数定义格式:&类型’&函数名’(&结构体类型’&数组名长度’传奇的,){函数体})函数调用格式:&函数名’(结构体数组名,)(参数的传送方式::用结构体变量作为函数参数时,实参值传送给形参属于值传送,因此,函数调用后实参值仍保持不变。用结构体数组作为函数参数时,实参值传送给形参属于传地址,因此,函数调用后实参数组值随形参数组而变动。【例0】定义全班学生学习成绩的结构体数组,学生结构体类型的数据成员为:姓名、学号、英语、物理、数学和这三门功课的平均成绩(通过计算得到)。设计四个函数:全班成绩输入,求出每个学生的平均成绩,按平均成绩的升序排序,输出全班成绩表。在主函数调用这四函数完成学生成绩的输入、计算、排序与输出工作。 12345678&29*:;8,<%=’*:;64:*:6783:######>>定义学生成绩结构体类型{23:394=,;3,<8?@59,:83A,-=B,<,:=,,C8}C927D3-6:(*:6783:*,23:3)#>>输入函数{23:2496:&&E输入学生:E&&83754新开传奇96:&&E学号、姓名、英语、物理、数学成绩E&&8375@9;(2/F2&32"")423’’*2%39’’*2%3,<8’’*2%83A’’*2%-=B’’*2%<,:=}C927GC8(*:6783:*,23:3)#>>求平均成绩函数{#23:2@9;(2/F2&32"")#*2%,C8/(*2%83A"*2%-=B"*2%<,:=)>)?)??第H卷#无锡职业技术学院学报}"#$%"&’’)$*+’(,#+’+),升序排序函数{#+’#,.(’)$*+’’*/01"&(#23#4+56#77){8.2#1"&(-2#76-4+-77)#1.9:*;(-9:*).2-#1(.;#){’*/02(.(.2(#(#2’*/0}}}"#$<+’’)$*+’(,#+’+),输出函数{#+’#=")’44>学号>44?@’?44>姓名>44?@’?44>英语>44?@’?44>物理>44?@’?44>数学>44?@’?44>平均成绩>44?@+?1"&(#23#4+#77)=")’44(#9+"44?@’?44(#9+:/*44?@’?44(#9*+A44?@’?44(#90BC44?@’?44(#9/:’B44?@’?44(#9:*44?@+?}"#$/:#+("#$){8(’)$*+’(’)D,定义结构体数组E+0)’’),D),输入学生成绩F*’),D),计算学生平均成绩%"&’’),D),按平均成绩排序<+’’),D),输出学生成绩}8G9二元运算符重载成员函数(6)函数定义格式:4类型;4类名;::4"0*&:’"&;4重载运算符;(形参){函数体}其中二元运算符重载成员函数的函数名为:4"0*&:H’"&;4重载运算符;。(I)函数调用格式:4对象名;94函数名;(实参表)将其中的4函数名;换成4"0*&:’"&;4重载运算符;则可得出二元运算符重载成员函数的调用格式为:4对象名;94"0*&:’"&;4重载运算符;(实参表)(D)实参与形参的传送过程:用例题来说明实参与形参的数据传送过程。【例G】定义一个复数类,重载“7”运算符,使这个运算符能直接完成两个复数的加法运算,及一个复数与一个实数的加法运算。J#+=K)$*4#"(’&*:/9B;=K:(L"/0K*M{80:’*:1K":’N*:K,E/:A*0)OK#=:L"/0K*M(1K":’&23,1K":’#23){8N*:K2&E/:A*2#}"#$%B"P(#+’#)8,显示输出复数8{8=")’44>=>44#44>2>44传奇N*:K44>7>44E/:A*44>#>44*+$K}L"/0K*M"0*&:’"&7(L"/0K*MQ=),“7”运算符重载函数完成两个复数加法{8L"/0K*M’’9N*:K2N*:K7=9N*:K’9E/:A*2E/:A*7=9E/:A*&*’)&+’}}"#$/:#+("#$){8L"/0K*M=6(IG,G3),=I(633,I33),=D=69%B"P(6)8=I9%B"P(I)8=D2=67=I,=D2(IG7G3#)7(6337I33#)26IG7IG3#=D9%B"P(D)}实现复数加法运算是通过调用加法运算符重载函数来完成。 对主函数中复数加法运算表达式:=D2=67=I的执行过程是,编译器将=67=I解释为对“7”运算符重载函数:=69"0*&:’"&7(=I)的调用,求出复数’2=67=I的值,并返回一个计算结果=D2’,完成复数加法运算。 88四、函数三步教学法的教学体会在《L77程序设计》课程的前几学期教学过程中,每当讲到与函数相关的知识点时,学生对于函数的定义、调用与传送过程总感到有些模糊不清,教师需在课后进一步辅导,才能新开传奇理清函数的三步过程。 当采用函数三步教学法后,教师板书始终由定义、调用与传送三段组成,经过多次重复后,学生很容易掌握函数的定义、调用与传送过程,也容易接收应用函数的新知识点,教学比以前更为轻松,学生学习也变得轻松。因此,函数三步教学法已在校内教学中得到推广使用,取明显的教学效果。(责任编辑陈永涛)?DR?周志德:L77函数三步教学法第D期C++函数三步教学法。 本文《C+ +函数三步教学法》 --- 作者: 周志德, ZHOU Zhi-de |
| -------------------------------------------------------------------------------------- |
| 上一篇:CAD在机械零件课程设计中的应用 |
| 下一篇:Cimatron产品培训系列讲座第四讲:Cimatron E |
| -------------------------------------------------------------------------------------- |
| 相关文章导读: |