shell语言打印矩形、三角形、平行四边形、梯形、菱形、空心菱形等

   日期:2020-10-07     浏览:231    评论:0    
核心提示:shell语言打印三角形、平行四边形、梯形、菱形等这是一个循序渐进的过程,请从第一个开始看1.打印 ***** ;line="";ch="\x2a" # "\x2a"表示星号*for((i=0;i<5;i++));do line=$line$chdoneecho -e $line2.打印 5*5矩形for((j=0;j<5;j++));do line="";ch="\x2a" for((i=0;i<5;i++));do line=$line$ch d

shell语言打印三角形、平行四边形、梯形、菱形等

这是一个循序渐进的过程,请从第一个开始看

1.打印 ***** ;

line="";ch="\x2a"   # "\x2a"表示星号*
for((i=0;i<5;i++));do 
	line=$line$ch
done
echo -e $line

2.打印 5*5矩形

for((j=0;j<5;j++));do
	line="";ch="\x2a"
	for((i=0;i<5;i++));do
		line=$line$ch
	done
	echo -e $line
done

3.四种等腰直角三角形

  1. 直角在左下

     for((y=0;y<5;y++));do
       line="";ch="\x2a"
       for((x=0;x<=y;x++));do   # 看斜线的坐标
         line=$line$ch
       done
       echo -e $line
     done
    
  2. 直角在左上

     for((y=0;y<5;y++));do
       line="";ch="\x2a"
       for((x=0;x+y<5;x++));do   # 看斜线的坐标
         line=$line$ch
       done
       echo -e $line
     done
    
  3. 直角在右上

     for((y=0;y<5;y++));do
       line="";ch="\x20"   # \x20是空格符
       for((x=0;x<5;x++));do
         if((x==y));then   # 当x=y后,空格由星号替代
           ch="\x2a"
         fi
         line=$line$ch
       done
       echo -e $line
     done
    
  4. 直角在右下

     for((y=0;y<5;y++));do
       line="";ch="\x20"
       for((x=0;x<5;x++));do
         if((x+y==4));then  #过斜线以后 空格由星号替代
           ch="\x2a"
         fi
         line=$line$ch
       done
       echo -e $line
     done
    

4.等腰三角形

 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x-y<5;x++));do   # 控制右边界
     if((x+y==4));then		# 控制左边界
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
 done

5.等腰三角形(距左一定距离)

 left=40;right=40  #左边界顶点位置与右边界顶点位置
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left--));((right++)) #控制幅度 也可以写成left-=n;
 done

6.等腰梯形

 left=35;right=45  #等腰三角形左右边界顶点位置不同则变成了等腰梯形
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do 
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left--));((right++))
 done

7.普通三角形(或普通梯形,只需修改left与right不等)

 left=40;right=40;ldlt=-2;rdlt=4  #ldlt rdlt 可以理解成左右边界的斜率
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left+=ldlt));((right+=rdlt))
 done

8.平行四边形

 left=40;right=50;ldlt=-4;rdlt=-4
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left+=ldlt));((right+=rdlt))
 done

9.菱形

 left=40;right=40;ldlt=-3;rdlt=3;maxy=9
 for((y=0;y<maxy;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   if((y==maxy/2));then
     ((ldlt*=-1));((rdlt*=-1))
   fi
   ((left+=ldlt));((right+=rdlt))
 done

10.空心菱形

 left=40;right=40;ldlt=-3;rdlt=3;maxy=9
 for((y=0;y<maxy;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left||x==right));then
       ch="\x2a"
     else
       ch="\x20"
     fi
     line=$line$ch
   done
   echo -e $line
   if((y==maxy/2));then
     ((ldlt*=-1));((rdlt*=-1))
   fi
   ((left+=ldlt));((right+=rdlt))
 done

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服