设为主页
加入收藏夹
教材实验与研究 教材·教辅资源 教学资源 教师之家 学生天地 资源下载 最新文章 信息技术论坛
当前位置:首页>>信息技术>>教师之家>>技术交流
 

  多题一解教学方法可以培养学生的创新思维以及训练学生的发散思维,使学生对所学的内容更加感兴趣,感到高效、易学、切合实际,感到一切都是通过转化成已经解决的问题来达到解决新问题的目的。本文根据笔者对信息技术程序设计教学的一点体会,使用多题一解的方法来解决用循环语句输出不同的规则图形所设计的程序。

 

文本框: *
***
*****
*******
*********
*******
*****
***
*  
(图一)

 

  若要用计算机输出(图一)这样的由符号组成的图形,不外要从图形的大小、形状、位置和组成图形的符号这四方面着手,下面我们就来讨论一下如何解决上述的四个问题。

 

  1.图形共有多少行?

 

  解决方法:用双重循环语句中的外层循环来控制。

 

  用外循环变量x来控制图形的行数,设x的值从-44,请看程序一的For x=-4 TO 4语句。

 

  2.图形的每行是从什么位置(哪一列)开始输符号?

 

  解决方法:用内、外层循环之间的部分来确定。

 

  由于各行输出的位置不同,因而这个位置一般可以用一个含变量x的绝对值的表达式来确定。进而可以发现,第x行的初始位置随x的绝对值增大而增大,减小而减小,因此可以用Absx)来确定。如程序一的Print TabAbsx));语句。

 

  3.图形的每行输出多少个符号?

 

  解决方法:用内循环来控制。

 

  仔细观察一下,每一行的符号个数与行数也是有着因果变化的,因此第一行的字符个数也可由一个含变量x的表达式来确定。用内循环变量y来控制各行的数字个数。如程序一的For y=1 TO 2*p-1语句。

 

  4.图形各列输出什么样数字或符号?

 

  解决方法:用内层循环体来确定。如程序一的Print“*”;语句。

 

  由以上四个问题我们可以得到程序一

 

  Private sub form_click()

 

  For x=-4 TO 4p=5-AbsX

 

  Print TabAbsx));

 

  For y=1 TO 2*p-1

 

  Print “*”

 

  Next y

 

  Print

 

  Next x

 

  End  Sub          (程序一)  

 

  一、分解图形

 

  1.输出(图二)。解决方法是改变控制图形行数的语句。将程序一中的For x=-4 TO 4p=5-Absx)语句中的-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 Spc2* Absx));Next z

 

  三、图形由数字组成

 

  解决方法:①将程序1 Print TabAbsx));语句改为Print TAB3* Absx));。因为在VB中输出数值时,值前有一符号位(正数为空格),数值后有一个空格。故一个数值输出时要占3个字符的位置。②改动程序1 Print “*”;语句。下面的所有图形都是由数字组成,故程序1内、外层循环之间的部分都是Print Tab3* Absx));。

 

  1.上下对称图形

 

  解决方法:因为上下对称图形的各行数字是一样的。故输出语句只与变量x有关。

 

  如将程序一的Print “*”;语句改为Print Absx);,运行后输出结果为(图五);如改为Print 5-Absx);,运行后则输出结果为(图六);

 

4

3 3 3

2 2 2 2 2

1 1 1 1 1 1 1

0 0 0 0 0 0 0 0

1 1 1 1 1 1 1

2 2 2 2 2

3  3  3

4

(图五)

 
    

1

2 2 2

3 3 3 3 3

4 4 4 4 4 4 4

5 5 5 5 5 5 5 5 5

4 4 4 4 4 4 4

3 3 3 3 3

2 2 2

1

(图六)

 

 

  2.左右对称图形

 

  解决方法:左右对称图形的输出语句与变量p和y有关。

 

  如将程序一的Print *”;改为: Print Absp-y);则运行后输出(图七);如改为: Print 5-Absp-y);则运行后输出(图八)。

 

0

1 0 1

3 1 0 1 2

3 2 1 0 1 2 3

4 3 2 1 0 1 2 3 4

3 2 1 0 1 2 3

2 1 0 1 2

1 0 1

0

(图七)

 
    

5

4 5 4

3 4 5 4 3

2 3 4 5 4 3 2

1 2 3 4 5 4 3 2 1

2 3 4 5 4 3 2

3 4 5 4 3

4 5 4

5

(图八)

 

 

  3.中心对称图形

 

  解决方法:中心对称图形,要么是最外层的数学减小,向内逐层增大,要么反之。

 

  如将程序一的Print “*”;语句改为:Print p-Absp-y);运行后输出(图九);如改为: Print 5-p+Absp-y);运行后则输出(图十)。

 

1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1

1 2 3 4 3 2 1

1 2 3 2 1

1 2 1

1

(图九)

 
    

4

4 3 4

4 3 2 3 4

4 3 2 1 2 3 4

4 3 2 1 0 1 2 3 4

4 3 2 1 2 3 4

4 3 2 3 4

4 3 4

4

(图十)

 

 

 

 

 

  4.其他图形

 

  若把程序一的内循环换成: IF y=1 Or y=2*p-1 Then Print pElse Print “   ”;运行后则输出(图十一)。

 

1

2   2

3             3

4                 4

5                     5

4                        4

     3

2   2

1

(图十一)

 
    

4

4 4 4

3 3 3 3 3

3 3 3 3 3 3 3

2 2 2 2 2 2 2 2 2

3 3 3 3 3 3 3

3 3 3 3 3

4 4 4

4

(图十二)

 

 

  如果将变量p重新赋值p=5-X且将Print “*”;语句改为Print 5-Int((p+1/2);运行后输出图十二。

 

  从上面输出的这些不同的图形,我们可以发现其都有相同之处,有共性,抓住这一共性,我们就可以用相同的算法来输出不同的图形,这有利于培养学生的归纳推理能力、创新能力、思维能力和探究能力。

 

  说明:以上程序在VB软件环境中都能正常运行。

 
【上一篇】
【下一篇】