周肖敏
(广东省佛山市南海区桂城街道灯湖小学,广东 佛山)
有些人将信息学称为“聪明人的游戏”,这个说法只说对了一半。其实最正确的说法应该是“使人变聪明的游戏”。很多人刚开始学习编程的时候,并不怎么聪明,但在不断的学习过程中会变得越来越聪明。信息学不需要你聪明绝顶,但会让你往这个方向发展。
在信息学活动中,可以使学生的解题能力、发散思维能力、学习迁移能力得到提高。
一位名叫蓝迪·查尔斯的数学老师指出:“老师常说‘运动大脑。‘自己再看一遍’这样的话,让孩子们感到很沮丧。”
我们不该常用无意义的指示来搪塞遭遇困难的孩子,我们必须指出解决问题的流程,让他们知道如何理解、破解,从而解决问题。
如何解决问题?我把它分为以下四个步骤:
如题目:
《编一个猜数游戏》的游戏规则:电脑产生一个1到100之间的整数作底数,嘉宾要轮流猜,每猜一次,如果不是底数,就把范围缩小到嘉宾猜的那个数,直到有人猜中底数为止,谁先猜中,谁就赢。
缺乏解题经验的学生会无从下手。我会引导分析题目,用“画一画”的方法把题目的相关信息标出来,再从中找出相应的解决方法,得出解题步骤:①电脑产生一个1到100之间的整数作底数。②嘉宾要轮流猜。③每猜一次,如果不是底数,就把范围缩小到嘉宾猜的那个数。④直到有人猜中底数为止,谁先猜中,谁就赢。
根据解题步骤选择合适的策略并写下解题思路:①用随机函数产生1~100之间的整数并存入变量底数t;②输入嘉宾猜的数jb;③用if语句判断嘉宾猜的数jb是否等于底数t,(用画图的方法,判断如何缩小范围,范围用a-b表示,则在①之前要先赋值a:
=1;b:=100;)如果嘉宾猜的数比底数大则改变b的值,反之改变a的值;④不断循环②③,直到有人猜对时结束程序。
根据解题思路,写出相应的程序。
写好程序后,进行调试。
在讲解题目时,使用一题多解开拓学生的发散思维。
例:输入一个三位整数,将它反向输出,各个数字之间用空格隔开,写出程序。如输入123,输出3 2 1。
解题思路:
1.输入一个三位整数。
2.分别取出个十百位个的数字。
3.按照个、十、百的顺序输出。
解题的关键是拆分三个数位上的数字,可以整数方式读入,或以字符、字符串的方式读入,得出以下方法:
1.以整数方式读入:
var a,x,y,z:integer;
begin
readln(a);
x:=a div 100;
y:=a div 10 mod 10;
z:=a mod 10;
writeln(z,y:2,x:2);
end.
2.以字符串方式读入:
var a:string;x,y,z:integer;
begin
readln(a);
val(a[1],x);
val(a[2],y);
val(a[3],z);
writeln(z,y:2,x:2);
end.
以上的程序还有多种变化,通过一题多解,充分调动学生的思维。这不仅仅停留在摸索多种解法,还要对各种解法进行观察对比,比较各种解法的优缺点,找出最佳的思考途径和最简捷的解题方法。
信息学活动中注重培养学生的学习能力,能灵活运用所学知识,举一反三,掌握解题的方法,再迁移到更多的题目。如在讲授上面例题后,我会把题目进行变化:
题1:输入一个5位以内的整数,将它反向输出,各个数字之间用空格隔开,写出程序。如输入1234,输出4 3 2 1。输入14893,输出 3 9 8 4 1
题2:一个两位数X,将它的个位数字与十位数字对调后得到一个新数Y,此时Y恰好比X大36,请编程求出所有这样的两位数。
题3:求出100~9999范围内的所有水仙花花数。(注:所谓水仙花数,就是指各位数字立方之和等于该数的数;a3称为a的立方,即等于a·a·a的值。例如:因为153=13+53+33,所以153是一个水仙花数)
通过变式练习,学生能更好地掌握知识,灵活运用,发展创造性思维,运用知识迁移解决新的问题。
在信息学活动中,培养的不仅仅是信息学方面的人,更是培养学生全面发展,让学生掌握学习的方法,为学生学习其他学科打下坚实的基础,信息学活动让你在学习的过程中,变得越来越聪明!