当前位置: 首页 > wzjs >正文

南宁模板建站上海做征信服务的公司网站

南宁模板建站,上海做征信服务的公司网站,南京建设人才网站,小程序开发公司制作1.shell编程:编写一个shell脚本,输入一个奇数,打印对应行数的菱形,如输入5,则打印的图片是:(1)题目解析:本题要求用Shell脚本根据输入奇数n打印n行菱形。我认为核心思路是…

1.shell编程:编写一个shell脚本,输入一个奇数,打印对应行数的菱形,如输入5,则打印的图片是:

(1)题目解析:

本题要求用Shell脚本根据输入奇数n打印n行菱形。我认为核心思路是将菱形拆分为上下两个等腰三角形:上半部分行号从1递增至中间行,下半部分从中间行-1递减至1。每行星号数=2×行号-1,空格数=中间行-当前行号。可以通过双重循环分别生成两部分,结合printf和字符串拼接实现格式化输出。

关键点在于输入验证(确保奇数)和对称性控制,涉及Shell算术运算、循环控制及字符串操作等知识点。

(2)程序代码:

#!/bin/bash# 读取输入并验证是否为奇数read -p "您好,请输入一个奇数: " nif ! [[ "$n" =~ ^[0-9]+$ ]] || [ $((n % 2)) -eq 0 ]; thenecho "您的输入有错误:输入必须为正奇数。"exit 1fimid=$(( (n + 1) / 2 ))  # 计算中间行# 生成上半部分菱形for ((i=1; i<=mid; i++)); dospaces=$(( mid - i ))stars=$(( 2*i - 1 ))# 生成空格和星号字符串space_str=$(printf "%*s" $spaces)star_str=$(printf "%0.s*" $(seq 1 $stars))echo "${space_str// / }${star_str}"done# 生成下半部分菱形for ((i=mid-1; i>=1; i--)); dospaces=$(( mid - i ))stars=$(( 2*i - 1 ))space_str=$(printf "%*s" $spaces)star_str=$(printf "%0.s*" $(seq 1 $stars))echo "${space_str// / }${star_str}"done

将上述代码保存为Shell的脚本文件diamond.sh。

  1. 代码解释:

1)输入验证:使用正则表达式和算术运算确保输入为正奇数。

2)菱形结构分解:

  1. 中间行号 mid = (n+1)/2。
  2. 上半部分:从第1行到中间行,每行星号数递增(1,3,5...)。
  3. 下半部分:从中间行-1到第1行,每行星号数递减。

3)字符串构造:

  1. 空格数 = 中间行号 - 当前行号。
  2. 星号数 = 2×当前行号 – 1。
  3. 使用 printf 生成空格,seq 生成重复星号。

(4)程序分析:

1)开始:程序启动。

2)提示输入:显示提示信息,要求用户输入一个奇数。

3)读取输入:捕获用户输入的值。

4)验证是否为数字:

若输入非数字(如字母、符号),则显示错误信息并结束程序。若输入为数字,则进入下一步验证。

5)验证是否为奇数:

若输入为偶数,则显示错误信息并结束程序。若输入为奇数,则计算菱形的中间行号 mid。

6)生成上半部分菱形:

循环从第1行到中间行号 mid。每行计算空格数(mid - 当前行号)和星号数(2×当前行号 - 1)。生成对应数量的空格和星号,拼接后输出。

7)生成下半部分菱形:

循环从中间行号-1递减到第1行。每行计算空格数(mid - 当前行号)和星号数(2×当前行号 - 1)。生成对应数量的空格和星号,拼接后输出。

8)结束:程序执行完毕。

可制作流程图,如下图所示:

(5)运行结果:

1)测试1:

当输入数字为5时,预计输出为5行的菱形,实际输出如下图所示:

2)测试2:

当输入数字为1时,预计输出为单星号,实际输出如下图所示:

3)测试3

当输入数字为7时,预计输出为7行的菱形,实际输出如下图所示:

4)测试4

当输入数字为4时,预计输出错误提示,实际输出如下图所示:

5)测试5

当输入数字为abc时,预计输出错误提示,实际输出如下图所示:

(6)结果分析:

测试用例

输入

预期输出

实际输出

结果

正常输入

5

5行菱形

√ 匹配

通过

边界值

1

单星号

√ 匹配

通过

较大奇数

7

7行菱形

√ 匹配

通过

偶数输入

4

错误提示

√ 匹配

通过

非法字符

abc

错误提示

√ 匹配

通过

由此可知,程序比较好地完成了题目要求。在基于上述测试结果的基础上,对本程序进行总结分析如下:

1)本程序涉及的Linux理论知识点

  1. Shell脚本基础:变量赋值、算术运算 $(( ))、条件判断 [[ ]]。
  2. 字符串操作:printf 格式化输出、参数扩展 ${var//pattern/replacement}。
  3. 循环控制:for 循环语法、C风格循环 ((i=1; i<=n; i++))。
  4. 输入输出:read 命令交互式输入、echo 输出重定向。

2)实现难点

  1. 对称性控制:确保上下半部分空格和星号数量严格对称。
  2. 字符串拼接:Shell中需通过子shell或循环生成重复字符。
  3. 错误处理:对非数字输入和偶数的健壮性验证。
http://www.dtcms.com/wzjs/583440.html

相关文章:

  • 潍坊网站制作公司备案号在哪里查询
  • iis发布网站乱码国内优秀的个人网站
  • 网站开发属于什么部门国外做的比较的ppt网站有哪些方面
  • python做网站青岛新网站设计公司
  • 网站建设岗位将来有什么发展北京互联网公司大厂有哪些
  • 黄石网站建设黄石三亚专业做网站
  • 网站开发合同模版中企动力为什么一直招人
  • 招一个程序员可以做网站吗打开网站 磁盘空间不足
  • 电商网站开发的背景及意义seo电商运营是什么意思
  • 国家企业信用信息没有网站怎么做杭州清风室内设计学校
  • 杭州网站建设推广wordpress建视频网站
  • 黄山市住房城乡建设厅网站百度百科让做网站的超链接吗
  • 电商网站构建预算方案推广网店的途径和方法
  • 网站开发实用技术相关论文建立有效的()
  • 炫酷的网站开发推广公司合同
  • 做外贸网站进行销售 需要纳税吗做网站需要的软件
  • 多模室内设计网站又拍云WordPress 插件
  • 站点和网站的区别wordpress企业营销模板
  • 内蒙古建设住房与城乡厅官方网站网站设计机构有哪些
  • 珠海网站建设工程石狮市
  • 石家庄网站优化公司酒店网站制作公司
  • 做电子商务系统网站做网站用的图片分辨率
  • 搜索引擎优化与推广的产生及发展搜索引擎优化的简称是
  • 苏州网站建设哪家效果好站长工具国色天香
  • 网站制作建设建议兴田德润免费一键生成短链接
  • 建筑网站设置工资单人换了怎么换手机百度2020
  • 手机怎样建立网站网站建设项目需求说明书
  • 怎么样做购物网站wordpress 律所
  • 昆山推广用什么网站比较好江苏省城乡和住房建设厅网站首页
  • 万网云服务器怎么上传网站吗建一个网上商城需要多少钱?