1.问题提出
Raptor中,有时候我们要求在控制台输出一些符号图形,如符号三角形,符号菱形等等。如下图所示:
-
三角形
-
菱形
这篇教程中,我给出一个我的实现思路和一个拓展应用,打印三角形的QQ表情,像下面这样:
2.实现思路及结果展示
- 三角形
我们以打印n=10层三角形为例子
-
首先我们考虑这个图形一定要用到循环结构的,我们定义一个循环变量i,i从1到10,每一层的个数为2i-1个
-
同时我们发现,从第10行开始看,最左边的*距离控制台最左边为0个空格,第九行最左边的*距离控制台最左侧为1个空格,……,第一行最左边的*距离控制台最左侧为9个空格,因此我们得到一个关系,第i行前面空格应该有10-i个
-
这样我们就知道了,对于没一行来说,前面应该输出10-i个空格,紧接着应该输出2i-1个,然后再输出一个换行
-
为了简化程序流程,我们编写一个子程序print_string(in num, in str),把str这个字符串重复打印num次,实现如下:
5.然后就是在主程序里面调用了,我们看一下流程图和结果
- 菱形
- 数学上的表达式是这样的|x|+|y|=n,我们x-y平面能得到-n<=x<=n, -n<=y<=n的一个菱形,如下图所示:
- 在Raptor中,我们形式的表示x-y轴,因为输出是从上到下,从左到右的,我们假定从上到下是从y轴正半轴过渡到负半轴,从左到右是从x轴负半轴过渡到正半轴,如下图所示:
-
因此,我们的外层循环就应该代表y轴,内层循环就应该代表x轴
-
满足条件的我们打印*,不满足的打印空格
-
程序如下:
第一部分:
第二部分:
- QQ表情
-
这个原理跟打印三角形的是一样的,只不过把*改成QQ表情的代码就好了,表情代码这样看
-
我们使用/xyx来替代*,并把前面填充的替换成相应个数的空格就好
-
我们把控制台上的结果复制到QQ中
-
然后就能发送给别人了,注意,手机屏幕比较小,如果行数太多的话,可能不能正常显示,在电脑上显示如下:
-
程序如下:
以上就是关于在Raptor控制台中打印符号图形的教学,如果需要程序,需要代做或者有其他什么问题请联系QQ545030769