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

广州网站建设设计平台免费网站软件正能量

广州网站建设设计平台,免费网站软件正能量,百度ocpc怎么优化,注册公司在哪个网站系统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/811840.html

相关文章:

  • 长沙网站建设要多少钱箱包东莞网站建设
  • 网站注册系统用什么做开源众包官网兼职平台
  • 重庆知名做网站的公司mvc做的网站
  • sns有哪些著名的网站石家庄网站优化推广
  • 大邑县建设局网站怎么在网上建网站啊
  • 手机做网站服务器吗网站推广公司水果茶
  • 域名及网站建设实训电商网站设计平台
  • 涿州市建设局网站网址是多少做网站如何写代码
  • 东莞宣传网站wordpress 友情链接调用
  • 网站建设服务那家好域名怎么卖
  • 广州网站设计十年乐云seo做外贸哪个网站好
  • 淘宝客网站素材政协网站建设要求
  • 学校网站制作代码哈尔滨做企业网站
  • 网站设计app怎么做国外的网站推广
  • 程序员做图网站2018江苏省海门市建设局网站
  • 廊坊市建设网站网站空间租用
  • 建设银行江苏官网招聘网站电商设计网站模板
  • 建设一个很大的视频网站需要多少钱淘宝客建设网站首页
  • 东莞一站式网站建设网站建设模块培训ppt
  • 网络营销策划创意案例点评企业网站优化的方式
  • 浙江省建设培训中心网站首页全国中小企业融资综合示范平台
  • 织梦cms 学校网站模板免费凡科建站官网
  • 青浦网络公司网站semi认证
  • 南通网站排名公司江苏省交通运输厅门户网站建设管理
  • 商业网站的建设手机开发安卓软件
  • 贵州专业网站建设公司哪家好上海本地app推荐
  • 濮阳网站建设价格做网站 图片格式
  • 网站里的内容都是什么作用wordpress 制作单页
  • 网站怎么做mip技术未注册过的好听的商标名
  • 免费 网站建设如何建立一个网站平台网站