
bcコマンドで計算をしよう 2
概要
bcコマンドで少しだけ複雑なことをしてみましょう.
「bcコマンドで計算をしよう 1」は,まだ存在していません.申し訳ありません.
円周率 PI
$ bc -l
pi=4*a(1)
pi
3.14159265358979323844
s(pi/2)
1.00000000000000000000
これは,bcのマニュアルに載っている方法です
階乗
$ bc
define factorial(n){ if( n<=1 ){return 1;}else{return n*factorial(n-1);} }
factorial(7)
5040
注意: 引数に負の数を入れたときに(エラーにならずに)1が返されてしまいます。ちゃんとやるなら 以下↓の様に.
define factorial(n){ if( n<0 ){ print "error. factorial(",n,").\n"; halt; }else{ if( n<=1 ){return 1;}else{return n*factorial(n-1);} } }
factorial(-3)
error. factorial(-3).
tan
$ bc -l
define tan(a){ return s(a)/c(a); }
pi=4*a(1)
tan(pi/4)
.99999999999999999998
これは紹介するまでもないでしょう.
対数
$ bc -l
define log(a,b){ return l(a)/l(b); }
log(256,2)
8.00000000000000000007
これも紹介するまでもないでしょう.
累乗
$ bc -l
define pow(a,b){ return e(b*l(a)); }
pow(2,8)
255.99999999999999998518
これも紹介するまでもないでしょう.
min, max
$ bc -l
define min(a,b){ if(a<b){ return a; }else{ return b; }}
define max(a,b){ if(a<b){ return b; }else{ return a; }}
min(3,4)
3
max(3,4)
4
これも紹介するまでもないですが,プログラミングのサンプルに.