shell下的基础程序题练习
2016-06-19 22:14
295 查看
1.简单的进度条程序
lable数组 相当于进度条前进时,那个刷新的圆圈,进度条前进时显示进度,用count%显示
程序运行结果:
2.1-100之间的求和
1>用while实现 2>用for in 实现
程序运行结果:
3>递归实现
digui
function add()
{
local val=$1
local sum=0
local add1=0
local add2=0
if [ $val -eq 1 ];then
echo 1
return
fi
add1=$val
let val--
add2=$(add $val)
let sum=$add1+$add2
echo $sum
}
function main()
{
read n
add $n
}
main
程序运行结果:
4>利用seq 和bc 进行求和
seq n :生成到这个数的所有数
|bc:利用|bc可以求和
例如:
所以1-100求和可以这样写:
其中tr表示替换,seq出来的所有数都有换行符,通过tr将'\n'替换为'+'。后面的sed 是将最后一个'+'号替换为'\n',再通过bc进行求和。
3.求第n个斐波那契数
1>非递归实现
local 修饰的变量是局部变量
86 function fib()
87 {
88 local val=$1
89 while [ $val -eq 0 -o $val -eq 1 ]
90 do
91 echo 1
92 return
93 done
94 i=1
95 j=1
96 while [ $val -ge 2 ]
97 do
99 let fibn=$i+$j
100 i=$j
101 j=$fibn
102 ((val--))
103 done
105 }
106 function main()
107 {
108 read n
109 fib $n
110 echo $fibn
112 }
113 main
2>递归实现
思想:当n=1或者n=0时,return 1。因为第n个斐波那契数是第n-1个和第n-2个数之和,所以对传过来的n值先减1在递归保存值,再对n减1递归保存值,第n个就是两个保存者之和。
115 function fib()
116 {
117 local val=$1
118 local fib1=0
119 local fib2=0
120 fibc=0
121 if [ $val -eq 0 -o $val -eq 1 ];then
122 echo 1
123 return
124 fi
125 let val--
126 fib1=$(fib $val)
127 let val--
128 fib2=$(fib $val)
129 let fibc=$fib1+$fib2
130 echo $fibc
131
132 }
133
134 function main()
135 {
136 read n
137 fib $n
138
139 }
140 main
程序运行结果:
4.读取另外一文件里的数值,求出最大值、最小值、和、平均值
cat $name 将其重定向到name文件中,然后通过行读取参数,进行判断和运算。
lable数组 相当于进度条前进时,那个刷新的圆圈,进度条前进时显示进度,用count%显示
程序运行结果:
2.1-100之间的求和
1>用while实现 2>用for in 实现
程序运行结果:
3>递归实现
digui
function add()
{
local val=$1
local sum=0
local add1=0
local add2=0
if [ $val -eq 1 ];then
echo 1
return
fi
add1=$val
let val--
add2=$(add $val)
let sum=$add1+$add2
echo $sum
}
function main()
{
read n
add $n
}
main
程序运行结果:
4>利用seq 和bc 进行求和
seq n :生成到这个数的所有数
|bc:利用|bc可以求和
例如:
所以1-100求和可以这样写:
其中tr表示替换,seq出来的所有数都有换行符,通过tr将'\n'替换为'+'。后面的sed 是将最后一个'+'号替换为'\n',再通过bc进行求和。
3.求第n个斐波那契数
1>非递归实现
local 修饰的变量是局部变量
86 function fib()
87 {
88 local val=$1
89 while [ $val -eq 0 -o $val -eq 1 ]
90 do
91 echo 1
92 return
93 done
94 i=1
95 j=1
96 while [ $val -ge 2 ]
97 do
99 let fibn=$i+$j
100 i=$j
101 j=$fibn
102 ((val--))
103 done
105 }
106 function main()
107 {
108 read n
109 fib $n
110 echo $fibn
112 }
113 main
2>递归实现
思想:当n=1或者n=0时,return 1。因为第n个斐波那契数是第n-1个和第n-2个数之和,所以对传过来的n值先减1在递归保存值,再对n减1递归保存值,第n个就是两个保存者之和。
115 function fib()
116 {
117 local val=$1
118 local fib1=0
119 local fib2=0
120 fibc=0
121 if [ $val -eq 0 -o $val -eq 1 ];then
122 echo 1
123 return
124 fi
125 let val--
126 fib1=$(fib $val)
127 let val--
128 fib2=$(fib $val)
129 let fibc=$fib1+$fib2
130 echo $fibc
131
132 }
133
134 function main()
135 {
136 read n
137 fib $n
138
139 }
140 main
程序运行结果:
4.读取另外一文件里的数值,求出最大值、最小值、和、平均值
1 #!/bin/bash 2 3 max=0 4 min=0 5 count=0 6 sum=0 7 read name 8 cat $name | while read line 9 do 10 [ $count -eq 0 ] &&{ 11 echo 'count' 12 max=$line 13 min=$line 14 15 } 16 [ $max -lt $line ] &&{ 17 max=$line 18 } 19 20 [ $min -gt $line ] &&{ 21 min=$line 22 } 23 let count++ 24 let sum=sum+line 25 echo "max=$max" "min=$min" "sum=$sum" 26 let avg=${sum}/${count} 27 echo "avg=$avg" 28 done程序运行结果:
cat $name 将其重定向到name文件中,然后通过行读取参数,进行判断和运算。
相关文章推荐
- jquery彩色投票进度条简单实例演示
- jquery模拟进度条实现方法
- PHP设置进度条的方法
- jquery实现模拟百分比进度条渐变效果代码
- js ajax加载时的进度条代码
- javascript实现简单的进度条
- js插件YprogressBar实现漂亮的进度条效果
- ajax 异步上传带进度条视频并提取缩略图
- 基于jquery步骤进度条源码分享
- jquery插件NProgress.js制作网页加载进度条
- jQuery实现进度条效果代码
- jQuery简单实现提交数据出现loading进度条的方法
- jquery实现加载进度条提示效果
- jQuery.Uploadify插件实现带进度条的批量上传功能
- jQuery实现页面顶部显示的进度条效果完整实例
- jQuery实现文件上传进度条特效
- jQuery实现简单的文件上传进度条效果
- 自己动手制作基于jQuery的Web页面加载进度条插件
- 分享8款优秀的 jQuery 加载动画和进度条插件
- 自定义刻度jQuery进度条及插件