杨辉三角形图形打印定位法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
杨辉三角形图形打印定位法   摘要:在教学时,经常会遇到一些图形的打印,如平行四边形、正三角形、倒三角形、菱形和杨辉三角形等的打印。其中杨辉三角形比较特殊,如何进行杨辉三角形的打印,其关键就在于如何进行打印定位的问题。   关键词:图形打印;杨辉三角形;定位   中图分类号:TP37文献标识码:A文章编号:1009-3044(2009)27-7758-02      在教学时,经常会遇到一些图形的打印,如平行四边形、正三角形、倒三角形、菱形和杨辉三角形等的打印。其中杨辉三角形比较特殊,如何进行杨辉三角形的打印,其关键就在于如何进行打印定位的问题。查阅了不少参考书籍,对如何定位问题总是叙述清。开始教学时,根据书上的范例程序,边读程序边写输出结果,果真输出的图形是杨辉三角形的格式。但对于程序中的定位函数中的表达式是如何考虑出来的,却不知如何解释(见范例程序)。学生问起来也难以回答清楚。经过一段时间的思考,终于悟出了定位函数表达式的推导原理。并且可以推广到一般图形的打印上去,也可以完成更复杂图形的打印定位公式的推导。   程序要求:编一程序,在屏幕上打印如图1所示。(杨辉三角形)   范例程序:   DIMA(8,8)   FOR I=1 TO 8   FOR J=1 TO I   IF J=1 OR I=J THEN A(I,J)=1 ELSE A(I,J)=A(I-1,J)+A(I-1,J-1)   NEXT J   NEXT I   FOR I=1 TO 8   FOR J=1 TO I    PRINTTAB(36-4*I+8*J);A(I,J);   NEXT J   PRINT   NEXT I   END   程序的上部分是通过定义一个数组,并给数组的左下三角形赋值,使值与杨辉三角形的数值一致。程序的左下角为杨辉三角形的值,程序的右上角未赋值,默认初值为0。   程序的下部分是通过双重循环配合TAB()函数来进行定位输出。其中内循环之外的空PRINT语句起到换行作用。而TAB()函数的中表达式确不知为何而来。   认真读程序,写结果,发现最上面的“1”打印在第40位置,然后每一行向前4位,同一行的后一个数向后8格。即第二行的第一个“1”打印在第36位置,第二个“1”打印在第44位置,以此类推。可以分析出,当I增加1,应使表达式的值减少4,随着J的值增大1,表达式的值增加8。可以分析出上面表达式乘以4和8的原因。但对表达式还是很难理解,为什么会这样考虑的?   笔者进行了仔细的分析,总结出一套对付图形打印定位的方法,既通用又易于理解分析,具体介绍如下。   要写表达式,即要找出如下关系:   当 I=1 J=1 时位置为40    I=2 J=1 时位置为36    J=2 时位置为44    I=3 J=1 时位置为32    J=2 时位置为40    J=3 时位置为48   分析步骤:   步骤1:   为满足第一行的条件:首先写出一个与I,J=1时无关的,且值为40的表达式。   TAB(40-(I-1)* __-(J-1)*__)   该表达式的特点:根据分析与I,J相关的一定要乘以一个数,这样才能拉开距离,至于乘以几,下一步再考虑,但不论乘以几,均不会影响表达式为40这个值。   该表达式中均用的是减号,有人要问为什么用减号,改两个加号不也是恒等于40吗?,为什么不考虑用加号呢?其实加减号也不是这一步来考虑的,只不过是先写减号,如根据后面的分析,需要改加号只要再添加一竖即可,而不擦倒再写。   步骤2:紧接着考虑使其第二行成立。此时,I=2,J=1,由于,J=1最后一项值恒为零,只要考虑乘以一个什么样的值,由于I的变化会引起4倍关系的变化,一定是乘以4,再确定一下前面是加号还是减号即可,根据分析,应为减号。   步骤3:紧接着考虑使其第三行成立。此时,I=2,J=2,前面的值已经确定,后面一项乘以一个什么样的值,由于J的变化会引起8倍关系的变化,一定是乘以8,经分析前面应该用加号,在减号上增加一竖即可。   此时函数为TAB(40-(I-1)*4+(J-1)*8)   步骤4:继续用此公式来验证I=3时,J=1,2,3的情况,看看是否成立,成立即可确定。   事实,若将表达式进一步化简则可以得到TAB(36-4*I+8*J),但未化简的表达式有着它特别的含义,表达式中的40指出了第一行,第一个的打印位置,设置成40,则可以打印在屏幕的中央,如数值减小则偏左,数值增加则偏右,在打印时,可以根据用的实际需要来确定打印的位置。将乘以4和乘以8改为乘以5和10,则打印得更宽松,而改为3和6则打印得更紧凑。但应注意后者是前者的两倍,否

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档