APP下载

C语言编程实现可移动的“字母金字塔”程序教学探讨

2018-11-08

信息记录材料 2018年11期
关键词:终值空格字符

江 军

(电子科技大学成都学院 四川 成都 611731)

1 引言

程序的效果是要在屏幕上产生一个如图1所示的“字母金字塔”在屏幕上完成从左至右的移动的动态过程。

图1

这个问题的解决,我们按照下面几个步骤来完成:

2 首先按照先易后难的原则,编程完成一个静态的“字母金字塔”

可以用循环及循环的嵌套来实现。

(1)首先这个金字塔是由26行组成,可设一个循环变量i来控制行的变化,i依次由1循环变到26,这是一个外层循环,i增加1,就输出打印出一行的全部内容。

(2)当行i确定后,每一行里又是由若干个空格和若干个字符组成,这可用二个内层循环来实现。假设用j来控制每一行里的空格数,用k来控制每一行里的字符数,下面我们列表来分析一下,当行i确定以后,每一行里最大空格数、最大字符数、字符对应的ASCII码的变化规律C。

行数i 空格数j 字符数k 字符的ASCII码1 25 1 65 2 24 3 66 3 23 5 67…………26 0 51 90

显然当外层循环i值确定后,内层空格j循环的终值为26-i,内层字符数k循环的终值为2*i-1,对应同行上的字符的ascii码值为:65+i-1即64+i。这样我们就可以方便地写出实现这个静态的“字母金字塔”的C程序的源代码如下:

3 完成可在屏幕上向右移动的“字母金字塔”

可以这样来考虑,每执行一次上面的循环可完成一个“字母金字塔”。我们可再设计一个更外层的循环,每循环一次将“字母金字塔”整体向右移动一个空格,也就是每一行的空格数增加一个,然后将前面一个“金字塔”清屏删除掉,为产生下一个向右整体移动一格的“字母金字塔”做准备。

因此我们在上面的源程序i循环变量的外面再设计一个循环变量kk来控制“字母金字塔”向右移动的空格数,例如移动100个空格,这样我们可以让kk从1变到100,终值为100,kk每循环一次,上面的循环执行一次。完成一次kk循环后,就会生成一个完整的“字母金字塔”,然后我们要清屏删除掉(可用Dos的清屏命令来实现:system(“cls”);),以便供下一个整体向右移动一格的“字母金字塔”生成。最后整个“字母金字塔”在屏幕上就完成了向右移动的过程。

实现这个功能的源程序代码如下:

4 结语

通过这个程序的实现,可以让学生体会C语言的循环及循环的嵌套功能非常强大,它能实现很多意想不到的功能,“只有你想不到的,没有它做不到的”,从而提高学生学习C语言的积极性,为今后编程打下坚实的基础。

猜你喜欢

终值空格字符
趣填成语
空格填数
你来补缺的数
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
欧元区4月服务业PMI和综合PMI均创六年最佳
0.3%,欧元区11月份综合PMI终值环比增长