编写简单的图案打印程序时应该注意的几个问题
初学编程,往往会对于程序中出现的i,j,k等变量感到头疼,可能是觉得这些变量代表的含义无法准确把握,因此就无法真正理解相应的程序,也就更没有办法自己来把这样的程序写出来。这里以一个例子来说明。
比如要打印下面的简单图案,我们要考虑哪些因素呢?

我们注意到,第一行有4个空格,1个星号。
第二行有3个空格,3个星号。
第三行有2个空格,5个星号。
.。。。。。。。。。
所以我们可以得出规律:每一行的空格数逐行减1,每行的星号数按奇数2n-1进行增加。
接下来就是要实现这种想法。计算机编程里面都是通过变量来控制。
空格数是一个变化的量,这里用j来控制。我们还注意到,每行的空格数还和所在的这行的行号相关联,比如,图案一共有5行,第一行的空格数是4个,好像是5-1等于4;第二行是3个空格,是5-2=3个;以此类推,每行的空格数应该等于5减去所在的行号5-i。
还有一个变化的量是星号数。第一行的1个,第二行是3个,接着是5个,7个。。。。。。,因此,行数和星号数的关系应该是行号的2倍减1(2*i-1)。
知道了这些关系以后,这个程序就可以写出来了:

这个程序实现的思想就是:
第一步:因为这个图案一共5行,而且图案的打印是逐行进行的,所以首先用一共变量i来控制行号的变化。
第二步:因为每行的空格数和星号数都是变化的,所以都要用变量来控制。
第三步:考虑到空格数和星号数都与所在的行号有关联,所以图2中用同一个变量j进行控制。当然也可以用不同的变量。
程序写好以后,我们看到,这个程序执行的时候,首先外层循环的行号i固定为1,接下来就在第一行先打印出4个空格,再打印出一个星号,然后换行,准备第二行的打印。
接着行号i变成2,于是在第二行打印3个空格,3个星号。如此循环而已。
所以类似程序的编写思想应该是:
1:先观察这个图形有多少行,并用一个变量来控制行号的变化。
2:再考察要打印的图形中的图案(空格、星号等)与行数的关联,并用相应的变量进 行控制。
按照这种思路,编写类似的程序应该就不会太困难了。