VB中巧用Tab格式函数打印图形

上传人:简****9 文档编号:112236740 上传时间:2019-11-05 格式:DOC 页数:4 大小:22.81KB
返回 下载 相关 举报
VB中巧用Tab格式函数打印图形_第1页
第1页 / 共4页
VB中巧用Tab格式函数打印图形_第2页
第2页 / 共4页
VB中巧用Tab格式函数打印图形_第3页
第3页 / 共4页
VB中巧用Tab格式函数打印图形_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《VB中巧用Tab格式函数打印图形》由会员分享,可在线阅读,更多相关《VB中巧用Tab格式函数打印图形(4页珍藏版)》请在金锄头文库上搜索。

1、VB中巧用Tab格式函数打印图形 作者:yineng 时间:2007-06-05 14:23:21 分类:默认分类标签:For循环阅读器在教育科学出版社出版的算法与程序设计(VB)(选修)一书中,有关于打印图形的例题,而书中并没有对此作详细的讲解。为了让学生能更好的理解和掌握双重循环及Tab(x)格式函数的运用,本人结合平时的教学经验,对Tab(x)格式函数的运用进行了归纳和总结,以便使学生能快速地掌握其方法和技巧。关于图形的打印,我们一般采用双重循环,其中外循环控制打印的行数,内循环控制每行打印的字符个数。对于图形中各字符位置的确定,则需要用到Tab(x)格式函数进行定位。如何进行定位,我们

2、可采用两种方法,即“行定位法”和“点定位法”:一、行定位法:方法:确定每行第一个字符所在的位置。通过图形分析找出各行首字符之间的位置关系,即可得出Tab(x)格式函数中x的表达式。其程序模式一般为:For i=1 to A i为外循环变量,A控制打印的行数Print Tab (x ); x为每行首字符所在的位置,可以为常量,也可以为变量或表达式For j=1 to B j为内循环变量,B控制每行打印的字符个数Print “”;Next jPrintNext i对于所打印的图形,我们基本可将它们分为四类:l基于左端对齐的图形(如图1所示):由于各行首字符的位置在同一列上,且各行所有字符依次打印于

3、首字符之后,则此时只有当x为某一常量时,才能保证图形左端对齐。如Tab(20),若A=3,B=4,则打印图形为3行4列的矩形;若此时A=6,B=i,则打印图形为直角三角形(如图1所示)。l基于向左倾斜的图形(如图2所示):由于各行首字符的位置与前一行首字符相比,有向左移动的趋势,即此时x的值逐渐递减,且x每次变化值为1。由于i的值每循环一次递增1,因此x必定是关于i的表达式即x=常量- i,才能使x的值呈递减趋势,从而达到图形左倾的效果。如Tab(20-i),若A=3,B=4,则打印图形为3行4列左倾的平形四边形;若A=6,B=i或B=2*i1的表达式,则打印图形为左倾的直角三角形(如图2所示

4、)或等腰三角形。l基于向右倾斜的图形(如图3所示):由于各行首字符的位置与前一行首字符相比,有向右移动的趋势,即此时x的值逐渐递增,且x每次变化值为1。由于i的值每循环一次递增1,因此x必定是关于i的表达式即x=常量i,才能使x的值呈递增趋势,从而达到图形右倾的效果。如Tab(20i),若A=3,B=4,则打印图形为3行4列右倾的平形四边形;若A=6,B=A1-i或B2*(A1)-(2*i1),则打印图形为倒直角三角形(如图3所示)或倒等腰三角形。l基于上下对称的图形(如图4所示):图形为上下对称,上半部分为正三角形,下半部分为倒三角形,中间一行的字符最多。我们可以设定中间最长的一行的i值为0

5、作为临界值,上半部分图形中i值设为负,下半部分图形中i值设为正,即i的变化范围是从-A,A,A的值可以根据上半部分图形的行数所确定。此时x和B则是关于i的绝对值的表达式,即x=常量-abs(i),B=2*(A1abs(i)-1。若打印如图4的图形效果,则根据图形分析可知i的变化范围为-3,3,x=20-abs(i),B=2*(4-abs(i)-1。由以上四种图形分析可知,对于不对称图形(如图1、2、3)而言,x的常量值(如20)是以每个图形的第一行第一个字符所在位置为基准,各行首字符的位置在此基础上进行加或减的操作,从而使图形出现右倾或左倾;而对于对称图形(如图4)而言,x的常量值(如20)所

6、表示的是图形中最长的一行左边第一个字符所在位置,相对于它所在位置,上下两部分的图形中各行的首字符呈递增趋势,且由于i是由负值变化到正值,故对各行首字符进行绝对值的加操作。在“行定位法”中,Tab (x )格式函数是在外循环和内循环之间,因此每次执行时所确定的是各行第一个字符所在的位置。依照此程序模式所打印的图形存在一定的局限性,即当确定各行首字符位置之后,该行所有字符均按紧凑格式打印其后,且各字符之间排列紧密,无空格,因而本方法只适用于打印紧凑格式的实心图形,如直角三角形或每行为奇数(2*i1)个字符的等腰三角形,而对于如图5所示的各字符间有间隔的图形则不能实现。若要打印图5所示的三角形,我们

7、一般采用第二种方法“点定位法”。二、点定位法:方法:在打印图形时,对每行中的每个字符的位置都进行定位。这一方法使用起来比较灵活,适用于各种图形的打印。其程序模式如下:For i=1 to A i为外循环变量,A控制打印的行数For j=1 to B j为内循环变量,B控制每行所打印的字符个数Print Tab (x );“”; x为每个字符所在的位置,是关于i和j的表达式Next jPrintNext i在此程序中,与“点定位法”不同之处在于,我们把Tab (x )格式函数放置于内循环之中。在图形中,由于i值的变化而使图形呈左倾或右倾的变化趋势,由于j值的变化而使同一行中不同字符的位置发生了变

8、化,因此x是关于i和j的表达式。要实现对每个字符进行精确定位,我们只需将“点定位法”各图形中x的表达式增加一个j值即可。如对以上所分析的四种图形中x的表达式分别为:x=20j(图1),x=20-ij(图2),x=20ij(图3),x=20abs(i)j(图4)。对于以上的四种图形,我们将它们称为紧凑格式的图形,是由于各字符是按紧凑格式依次输出,此时i与j的系数比为1:1。若想拉大各字符间的间距,我们只需同时扩大i和j的倍数即可如图6所示。而对于如图5所示的空心图形,各字符间存在一定的间距,通过各行首字符间的间距及每行中各字符之间的间距来确定i和j的系数比,即可得出x的表达式。若要打印如图5所示

9、的图形,我们可以通过图形分析可知各行首字符间距为1,每行中各字符之间的间距为2,因此x表达式中i与j的系数比为1:2,即可设x=20i2*j。若要扩大每行中各字符之间的间距,则只需同时扩大i和j的倍数。基于以上分析,对于任何一种图形,我们均应先观察图形中各行首字符位置所呈现的变化趋势,根据趋势确定变量i的符号是加还是减;其次观察分析图形中各行首字符间的间距与每行中各字符之间的间距的比值,若为1:1,则两种方法均可使用,若为1:n,则应运用“点定位法”,将Tab(x)格式函数放置于内循环之中,再对图形中的各字符进行逐个定位,方可打印出合适的图形。由于“行定位法”只与i有关,而“点定位法”与i,j

10、两变量有关,因而“点定位法”具有一定的灵活性。因此我们在打印较为复杂的图形时,可运用“点定位法”。附图形及代码如下表:图形行定位法(代码)点定位法(代码)图1For i=1 to 6Print Tab (20 );For j=1 to iPrint “”;Next jPrintNext iIFor i=1 to 6For j=1 to iPrint Tab (20j );“”;Next jPrintNext i图2For i=1 to 6Print Tab (20-i );For j=1 to iPrint “”;Next jPrintNext iFor i=1 to 6For j=1 to

11、iPrint Tab (20-ij);“”;Next jPrintNext i图3For i=1 to 6Print Tab (20i );For j=1 to 7-iPrint “”;Next jPrintNext iFor i=1 to 6For j=1 to 7-iPrint Tab (20ij );“”;Next jPrintNext i图4For i=-3 to 3Print Tab (20abs(i);For j=1 to 7-abs(2*i)Print “”;Next jPrintNext iFor I=-3 to 3For j=1 to 7-abs(2*i)Print Tab(20abs(i)j);“”;Next jPrintNext i图5 For i=1 to 5For j=1 to iPrint Tab (20-i2*j);“”;Next jPrintNext i图6 For i=1 to 4For j=1 to 9-2*iPrint Tab(202*(ij));“”;Next jPrintNext i

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号