案例教学在计算机类课程体系中的设计与实践_第1页
案例教学在计算机类课程体系中的设计与实践_第2页
案例教学在计算机类课程体系中的设计与实践_第3页
案例教学在计算机类课程体系中的设计与实践_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    案例教学在计算机类课程体系中的设计与实践    摘要:转型期的民办高校要始终注重学生能力的培养,贯彻授之以渔的教育理念,逐步实现课堂教学开放互动的教学模式,激发学生共同讨论问题的兴趣,增强其分析和解决问题的能力。本文将结合高校计算机类通识课程中的面向过程语言编程实例,剖析排序算法分析,引领学生掌握解决此类题目的方式方法。关键词:教学模式;实践;举一反三:g642.4 文献标志码:a :1674-9324(2018)24-0274-02首先,课前教师要精心准备教学实例并指导学生提前阅读。已知数据文件in.dat中存有200个四位数,并已调用读函数r

2、eaddat()把这些数存入数组a中,请学生编制一函数jsval(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把這些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writedat()把结果cnt以及数组b中符合条件的四位数输出到out.dat文件中。通过阅读题目,我们首先可以得出:有200个四位数存储在数组a中,那么,学生该如何引用这批数据呢?c语言规定:数组的下标从0开始记,即a0、a1、a2、a199。其次,我们要通过编辑jsval()函数体中的语句,来实现该函数的功能。“如果四位数各位上的数字均是0或2或4或6或8”,

3、请学生认真思考:如何获取一个四位数(例如:6482)的千位、百位、十位、个位上的数字呢?我们不妨进行下面的一组演算:6482/1000,所得商即为千位上的数字6。6482/100%10,所得余数即为百位上的数字4。6482/10%10,所得余数即为十位上的数字8。6482%10,所得余数即为个位上的数字2。通过观察上述的演算过程,我们可以整理出关于获取四位数各位上的数字的算法来,也就是,千位上的数字:四位数/1000,百位上的数字:四位数/100%10,十位上的数字:四位数/10%10,个位上的数字:四位数%10。同样,我们也可以以此类推出获取三位数各位上的数字的算法来,即百位上的数字:三位数

4、/100,十位上的数字:三位数/10%10,个位上的数字:三位数%10。接下来,请学生对已拆分出各位上的数字“均是0或2或4或6或8”进行仔细分析。我们不难发现,其实具有这类特征的数值都是偶数,但千位上的数字却不能为0。对此,我们通过选择结构来完成上述结论的逻辑分析,即if(千位上的数字%2=0&&百位上的数字%2=0&&十位上的数字%2=0&&个位上的数字%2=0&&千位上的数字!=0)。可在此题目中,我们要对数组a中200个元素去重复执行该项条件的判定,为此,我们需要借助循环结构来遍历数组a中全部元素,即for(i=0;i&l

5、t;200;i+)。再接下来,“则统计出满足此条件的个数cnt”,值得强调的是,如果不存在满足条件的数据,那么,此时cnt的值就是0。换言之,cnt的初始值应置为0。当条件满足时,cnt的值加1,即cnt+。“并把这些四位数按从大到小的顺序存入数组b中”,请学生仔细思考,究竟有多少个被筛选出来的数组a中元素会存入到数组b中,是200个吗?不,是cnt个。我们要将满足上述if表达式的数组a中的元素,逐一地赋值到数组b中,即bcnt+=ai;实际上,我们也正是要对它们进行从大到小的排序。下面,我们就通过对一组无序数列:78、29、86、54来加以分析,从而整理出能够完成指定排序的算法来。分析过程如

6、下所示:第一趟操作是从第一个位置上的数值开始,进行两两比较。在第一趟操作中,我们依次将第一个位置上的数值与其后各个位置上的数值作比较。如果后者较大,则交换二者位置上的数值;否则,对应位置上的数值不变。经过4-1次比较后,我们得出四个数中最大数86。如此进行下去,在第二趟操作中,对应位置上的数值共进行4-2次比较,我们得出三个数中最大数78。第二趟操作是从第二个位置上的数值开始,进行两两比较。以此类推,第三趟操作是从第三个位置上的数值开始,进行两两比较。值得注意的是,在第三趟操作中,共进行了4-3次两两比较,我们得出两个数中的最大数54。以此类推,如果有cnt个数,则要进行cnt-1趟操作,也就

7、是要用外层循环去控制趟数,即for(i=0;i<cnt;j+)。如果当前元素bi小于后序元素bj时,我们则需要借助中间变量t来完成两数交换,即if(bi< p>综上,授课教师要及时并认真地带领学生梳理解题思路,把握正确灌输学生算法分析的火候,举一反三,触类旁通,乐此不疲。有200个正整数,且每个数均在1000至9999之间。编制函数,要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。在题目的阅读中,请大家仔细推敲。第一点,“有200个正整数,且每个数均在1000至9999之间”,它实际上

8、等同于“有200个四位数”的说法。第二点,“要求按每个数的后三位的大小进行升序排列”,这其中,我们该如何获取“每个数的后三位”呢?例如:6482%1000,所得余数即为百位、十位、个位上的数字482。第三点:无论是说升序排列,还是在说降序排列,那其实都是在暗示我们,要按照从小到大或者从大到小进行排列。接下来,我们将分析重点落在如何完成指定要求的排序上去。一种情况是,如果原四位数的后三位数不同时,则将原四位数按照它们的后三位大小进行从小到大排列,即if(当前元素%1000>后序元素%1000)。另一种情况是,如果原四位数的后三位数相同时,则直接按照原四位数的大小进行从大到小排列,即if(当前元素%1000=后序元素%1000&&当前元素<后序元素)。而两种情况的逻辑关系应该是:if(一种情况|另一种情况)。通过上述对案例教学逐层递进式地设计与实践,要积极倡导授课教师优化案例教学理念,创新教改思路,正确载入先进的教育教学方式方法,引领学生温故而知新,构建师生默契的教学模式,让授课教师有备而来,学生满载而归,实现寓教于乐。参考文献:1王一美.新时期创新创业教育的实践与研究j.西部素质教育,2017,(13):74-76.2王一美.创新创业视角下人才培养模式研究j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论