·网站地图
·收藏本页
·文章搜索

谈如何提高学生程序设计能力

整理:新范文   来源:互联网   收藏本页   保存本文

在中学阶段,学生学习计算机主要是学习计算机的基础知识和基本技能。在中学开设计算机语言课,目的是培养学生的程序设计能力。通过学生自己进行程序设计,大大提高学生的逻辑思维能力,对学习其他学科起到了良好的促进作用。通过几年的实践,发现要提高学生的程序设计能力,也并不是人们想象中那么高不可攀,只要方法得当,持之以恒,是完全可以取得良好效果的。下面结合自已教学体会,谈谈如何提高学生的程序设计能力。

一、努力培养学生学习兴趣

因为编程序不比操作其他WINDOWS应用程序,它要求有一定的数学基础,并且学生容易厌倦,学不下去。这就要求我们一开始就要注意对他们学习兴趣的培养;上机题目尽量接近实际,如邮局物件邮寄计费、银行存钱利息计算、迷宫、方阵,校运会成绩计算、名次排列等,使学生觉得编写程序可以解决实际问题,慢慢培养起他们学习的兴趣,另外在布置练习时,也要注意题目的难度,不要一下子就布置高难度的题目,使学生望而生畏,失去学习的积极性。

二、重视基础知识的学习

在学习计算机语言时,十分强调基础知识的学习,因为对于计算机语言中的每一个语句,如果不知道它的格式和作用,那么也就谈不上如何应用它。如在讲授打印语句时,对打印语句的一般格式、紧凑格式、按区格式、特殊格式的使用,要求学生要注意区分和懂得如何应用。在学习条件语句时,因当时没有学习AND,OR,NOT,如要实现多个条件的判断,应如何用多个IF语句实现。在教学上,特别注重每一语句的格式和作用的训练,通过讲课、上机练习、阅读程序、测验等手段,使学生发现错误,及时改正错误,从而加深对语句的掌握。在掌握各语句的同时,加强对程序结构知识的领会。因为程序的结构有顺序结构,分支结构,循环结构,弄清程序结构,对于自己编写程序起到一个良好的作用,否则,自己编写出来的程序,思路凌乱,影响程序的可读性和执行效率。所以在教学上,对于每一种程序结构,都要求学生能熟练掌握,并在自己编写程序时灵活运用。在开始编写程序时,要求学生先画出流程图,再写程序,这样有利于学生编写出结构清淅的程序。

三、加强一题多解的训练

在BASIC教学中,许多问题可以用多种方法来解决,在学生用一种方法解决后,要求学生看看能否用其他方法来解决。如讲到如何交换A,B两变量的值时,通常用C=A:A=B:B=C来解决,这是借助第三个变量C来解决的。能否不用第三个变量也能实现A,B两数的交换呢?同学们会觉得很有兴趣,不断开动脑筋,很多同学最终也能想出答案:A=A+B:B=A-B:A=A-B。在学习排序时,常用方法是用选择排序方法,这种方法比较容易掌握。待同学们掌握了该方法后,教师及时提问能否有别的方法,加快排序的速度,引出冒泡排序,对于这两种排序,分别也有两种方法,只是对前一种方法的改进。这样,开阔了学生的编程思路,对提高编程能力是大有裨益的。

四、灵活运用所学知识,做到举一反三

1.运用数组,解决数值问题

数组是一批相同类型的数据的有序集合,它用下标变量表示该元素在数组中位置。给查找、排序、统计带来很大的方便。如题目:读入一组不大于50的自然数,求出各数出现的次数。学生一开始便觉得比较难解决,要用到很多变量,但若用到数组来解决,则非常简单:

5 DIMC(50)

10 READ A

20 IF A=0 THEN 50

30 C(A)=C(A)+1

40 GOTO 10

50 FOR I=1 TO 50

60 PRINT I,C(I)

70 NEXT I

80 END

在这里利用读入的数A作为下标,C(A)=C(A)+1巧妙地实现了各数出现的次数的累加,使学生豁然开朗。

数组的另一应用是在数值运算中,由于计算机字长的限制,当运算结果较大时,计算机将用科学计数法表示结果,这样将使结果产生误差。为了求得有效位数的准确值,在程序设计时采用数组对每一位结果进行保存,并考虑进位,从而产生高精度的结果。这样程序结构简单,思路清楚,学生容易掌握。如怎样用高精度计算求N!的方法。

例1:求n!的值,其中n!表示阶乘,例如5!=5·4.3·2·l

(本题假设N<=50)

10 INPUT "N=";N

20 DIM A(100)

40 A(1)=1

45 FOR I=l TO N

50 FOR J=l T0 100

60 B=A(J)*I十T

70 T=INT(B/10)

80 C=B-T*10

90 A(J)=C

100 NEXT J

110 NEXT I

120 FOR I=100 T0 1 STEP -l

125 IF A(I)=0 AND V=0 THEN 135

127 IF A(I)>0 THENV=l

130 PRINT A(I);

135 NEXT I

140 END

在本程序中,A(100)-A(1)存放结果,A(1)是个位,依次把A(100)-A(1)乘以l至N,每次相乘时,考虑进位,程序中的变量T是指前一位运算时产生的进位,最后把运算结果打印出来,125对前面的0进行处理。

2.熟练掌握用回朔法解不同类型题

当要求出解决某一问题的所有方法时,通常要用到回朔法。如

例2:求出从1到N的N个数中,取出M个数所有排列。

该题是一道数学中的排列组合问题,开始学生感到较难,但仔细分析可知,从1-N中取M个数,我们可以理解成在数组A(1)-A(M)中存放数,每位数只能是1-N,每位从1开始测试,不断加1,若超过N,则回退一步,把前一位加1,直到A(1)-A(M)都满足条件为止。这就是回朔法。

程序如下:

10 INPUT "N,M=";N,M

20 A(1)=1:I=2(置初值)

30 A(I)=A(I)+1(每位从1开始测试,不断加1)

40 IF A(I)<=N THEN 80

60 A(I)=0:I=I-1(当前位清0,再回退一步)

65 IF I=0 THEN 190

70 GOTO 30

80 FOR K=1 TO I-1

100 IF A(K)=A(I)TEHN 30(条件测试,不能和前面位值相同)

120 NEXT K

130 IF I=M THEN 145

140 I=I+1:GOTO 30

145 W=W+1:PRINT W;"──";

150 FOR K=1 TO M

160 PRINT A(K);

170 NEXT K:PRINT

180 GOTO30

190 END

用回朔法在解决皇后题、方阵填数、迷宫问题,都可以受到很好的效果。这方面要求学生多上机,多做题,真正领会回朔法的编程思路,做到举一反三,灵活应用。

3.巧用字符串解递归题

字符串是指由英文字母、数字、空格以及其他有效符号组成的一串字符。因为字符串可以直接相加,从而很方便地把两个字符串连接起来;另外有关处理字符串的函数所非常丰富如LEN,VAL,STR$,MID$,LEFT$,RIGHT$,ASC,CHR$等,所以在程序设计中,很多数值处理的问题都可以转化为用字符串处理来解决,往往能达到非常好的解题效果。下面结合1998年复赛的一道题的解法,谈如何用字符串来解决数值处理的递归问题。

1998年全国青少年信息学(计算机)奥林匹克分区联赛复赛中的第3题是一道比较难的题;用常规的办法,要考虑用到递归,并且处理起来也很复杂。但用字符串来解,就显得简单得多。

题目:

任何一个正整数都可以用若干个2的多少次幂的和来表示

例如:137=27+23+20

同时约定方次用括号来表示,即ab可表示为a(b)

由此可知,137可表示为:

2(7)+2(3)+2(0)

进一步


 相关文章
·强化互动 学会学习──关于小学信息技术
·提高中小学信息技术课教学质量初探
·谈信息学的听课与评课
·小学信息技术教学中如何培养学生创新精
·信息技术课程教学经验浅谈
·小学信息技术课程教学初探
·硬盘维护的几点经验
·以“乐学”促“会学”培养创新精神
·运用现代教育技术,发挥学生的主体作用
·运用电教媒体让学生学得更好
·中小学信息技术课“任务驱动”教学模式
·众人划桨开大船──探索农村学校信息技
·中小学信息技术课程的问题与思考
·中小学教师的教育信息技术绩效标准研究
近期本站推荐

读后感
·2008年大学毕业生IBM实习总结
·公司2008年办公室工作计划
·三国演义读后感1000字
·朝花夕拾读后感
·水浒传读后感1500字
·读骆驼祥子有感
·迎奥运手抄报
·制作个人简历九大标准
·如何使简历醒目
·将个性品质特征融入你的简历

个人简历



About收藏本站设置首页..
Copyright @ www.xinfanwen.com Powered by 新范文 All Rights Reserved.