论文部分内容阅读
多题一解教学方法可以培养学生的创新思维以及训练学生的发散思维,使学生对所学的内容更加感兴趣,感到高效、易学、切合实际,感到一切都是通过转化成已经解决的问题来达到解决新问题的目的。本文根据笔者对信息技术程序设计教学的一点体会,使用多题一解的方法来解决用循环语句输出不同的规则图形所设计的程序。
如要输出如(图一)所示的由符号组成的图形,一般可从图形的大小、形状、位置和组成图形的符号这四方面着手,下面我们就来讨论一下如何解决上述的四个问题。
1.图形共有多少行?
解决方法:用双重循环语句中的外层循环来控制。
用外循环变量x来控制图形的行数,设x的值从-4到4,请看程序一的For x=-4 TO 4语句。
2.图形的每行是从什么位置(哪一列)开始输出符号?
解决方法:用内、外层循环之间的部分来确定。
由于各行输出的起始位置不同,因此,这个起始位置一般可以用一个含变量x的绝对值的表达式来确定。进而可以发现,第x行的初始位置随x的绝对值增大而增大,减小而减小,因此可以用Abs(x)来确定。如程序一的Print Tab(Abs(x));语句。
3.图形的每行输出多少个符号?
解决方法:用内循环来控制。
仔细观察一下,每一行的符号个数与行数也是有着因果变化关系的,因此第一行的字符个数也可由一个含变量x的表达式来确定。用内循环变量y来控制各行的数字个数。如程序一的For y=1 TO 2*p-1语句。
4.图形各列输出什么样数字或符号?
解决方法:用内层循环体来确定。如程序一的Print“*”;语句。
由以上四个问题我们可以得到程序一
Private sub form_click()
For x=-4 TO 4:p=5-Abs(X)
Print Tab(Abs(x));
For y=1 TO 2*p-1
Print “*”;
Next y
Print
Next x
EndSub(程序一)
以上是在VB中输出规则图形的方法,我们可以通过改动其中的语句,输出不同的图形,实现多题一解。
一、分解图形
1.输出(图二)。解决方法是改变控制图形行数的语句。将程序一中的For x=-4 TO 4:p=5-Abs(x)语句中的-4改为0即可,其它语句不变。
2.输出(图三)。解决方法是改变控制图形列数的语句。将程序一中的For y=1 TO 2*p-1语句中的2*P-1改为p ,则运行后可输出图三。
二、组合图形
输出(图四)。解决方法是在程序一的内外循环中间加一个循环z来控制字符个数的循环次数。① 在For y=1 TO 2*p-1语句前加上循环语句For z=1 TO 3;②在Next y语句后添上以下语句:Print Spc(2* Abs(x));:Next z。
三、图形由数字组成
解决方法:①将程序1的 Print Tab(Abs(x));语句改为Print TAB(3* Abs(x));。因为在VB中输出数值时,值前有一符号位(正数为空格),数值后有一个空格。故一个数值输出时要占3个字符的位置。②改动程序1的 Print “*”;语句。下面的所有图形都是由数字组成,故程序1内、外层循环之间的部分都是Print Tab(3* Abs(x));。
1.上下对称图形
解决方法:因为上下对称图形的各行数字是一样的。故输出语句只与变量X有关。
如将程序一的Print “*”;语句改为Print Abs(x);,运行后输出结果为(图五);如改为Print 5-Abs(x);,运行后则输出结果为(图六)。
2.左右对称图形
解决方法:左右对称图形的输出语句与变量P和Y有关。
如将程序一的Print “*”;改为: Print Abs(p-y);则运行后输出(图七);如改为: Print 5-Abs(p-y);则运行后输出(图八)。
3.中心对称图形
解决方法:中心对称图形,要么是最外层的数字减小,向内逐层增大,要么反之。
如将程序一的Print “*”;语句改为:Print p-Abs(p-y);运行后输出(图九);如改为: Print 5-p+Abs(p-y);运行后则输出(图十)。
4.其它图形
如将Print “*”;语句改为IF Y=1 Or Y=2*p-1 Then Print p; Else Print “ ”; 运行后则输出(图十一)。
如将Print “*”;语句改为Print 5-Int((p+1)/2);运行后输出图十二。
从上面输出的这些不同的图形,我们可以发现其都有相同之处,有共性,抓住这一共性,我们就可以用相同的算法来输出不同的图形,这有利于培养学生的归纳推理能力、创新能力、思维能力和探究能力。
说明:以上例程在VB6环境中运行测试正确。
(作者联通:222100江苏省赣榆县教育局教研室)
如要输出如(图一)所示的由符号组成的图形,一般可从图形的大小、形状、位置和组成图形的符号这四方面着手,下面我们就来讨论一下如何解决上述的四个问题。
1.图形共有多少行?
解决方法:用双重循环语句中的外层循环来控制。
用外循环变量x来控制图形的行数,设x的值从-4到4,请看程序一的For x=-4 TO 4语句。
2.图形的每行是从什么位置(哪一列)开始输出符号?
解决方法:用内、外层循环之间的部分来确定。
由于各行输出的起始位置不同,因此,这个起始位置一般可以用一个含变量x的绝对值的表达式来确定。进而可以发现,第x行的初始位置随x的绝对值增大而增大,减小而减小,因此可以用Abs(x)来确定。如程序一的Print Tab(Abs(x));语句。
3.图形的每行输出多少个符号?
解决方法:用内循环来控制。
仔细观察一下,每一行的符号个数与行数也是有着因果变化关系的,因此第一行的字符个数也可由一个含变量x的表达式来确定。用内循环变量y来控制各行的数字个数。如程序一的For y=1 TO 2*p-1语句。
4.图形各列输出什么样数字或符号?
解决方法:用内层循环体来确定。如程序一的Print“*”;语句。
由以上四个问题我们可以得到程序一
Private sub form_click()
For x=-4 TO 4:p=5-Abs(X)
Print Tab(Abs(x));
For y=1 TO 2*p-1
Print “*”;
Next y
Next x
EndSub(程序一)
以上是在VB中输出规则图形的方法,我们可以通过改动其中的语句,输出不同的图形,实现多题一解。
一、分解图形
1.输出(图二)。解决方法是改变控制图形行数的语句。将程序一中的For x=-4 TO 4:p=5-Abs(x)语句中的-4改为0即可,其它语句不变。
2.输出(图三)。解决方法是改变控制图形列数的语句。将程序一中的For y=1 TO 2*p-1语句中的2*P-1改为p ,则运行后可输出图三。
二、组合图形
输出(图四)。解决方法是在程序一的内外循环中间加一个循环z来控制字符个数的循环次数。① 在For y=1 TO 2*p-1语句前加上循环语句For z=1 TO 3;②在Next y语句后添上以下语句:Print Spc(2* Abs(x));:Next z。
三、图形由数字组成
解决方法:①将程序1的 Print Tab(Abs(x));语句改为Print TAB(3* Abs(x));。因为在VB中输出数值时,值前有一符号位(正数为空格),数值后有一个空格。故一个数值输出时要占3个字符的位置。②改动程序1的 Print “*”;语句。下面的所有图形都是由数字组成,故程序1内、外层循环之间的部分都是Print Tab(3* Abs(x));。
1.上下对称图形
解决方法:因为上下对称图形的各行数字是一样的。故输出语句只与变量X有关。
如将程序一的Print “*”;语句改为Print Abs(x);,运行后输出结果为(图五);如改为Print 5-Abs(x);,运行后则输出结果为(图六)。
2.左右对称图形
解决方法:左右对称图形的输出语句与变量P和Y有关。
如将程序一的Print “*”;改为: Print Abs(p-y);则运行后输出(图七);如改为: Print 5-Abs(p-y);则运行后输出(图八)。
3.中心对称图形
解决方法:中心对称图形,要么是最外层的数字减小,向内逐层增大,要么反之。
如将程序一的Print “*”;语句改为:Print p-Abs(p-y);运行后输出(图九);如改为: Print 5-p+Abs(p-y);运行后则输出(图十)。
4.其它图形
如将Print “*”;语句改为IF Y=1 Or Y=2*p-1 Then Print p; Else Print “ ”; 运行后则输出(图十一)。
如将Print “*”;语句改为Print 5-Int((p+1)/2);运行后输出图十二。
从上面输出的这些不同的图形,我们可以发现其都有相同之处,有共性,抓住这一共性,我们就可以用相同的算法来输出不同的图形,这有利于培养学生的归纳推理能力、创新能力、思维能力和探究能力。
说明:以上例程在VB6环境中运行测试正确。
(作者联通:222100江苏省赣榆县教育局教研室)