Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ bc(1) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dc(1)

BC(1)  —  NEWS-OS Programmer’s Manual

名称

bc − 任意精度演算言語

形式

bc [ −c ] [ −l ] [ file ...  ]

解説

bc は、 C に似た言語を処理する対話型演算処理プログラムであり、 任意に演算精度を指定する機能を備えています。 bc は指定された file から入力を取り込み、 次に標準入力を読み取ります。

オプション

−c コンパイルのみ。 bc は、 実際には、 dc(1) のプリプロセッサであり、 −c オプション(コンパイルだけ)がない限り、 dc(1) を自動的に呼び出します。 −c オプションがあると、 dc の入力は、代わりに標準出力へ送られます。

−l 任意の精度を持つ数学ライブラリの名前を意味します。

文法

bc プログラムの構文は、次のとおりです。 L は a から z までの文字を、 E は式を、 そして S は文を意味します。

コメント
/∗ と ∗/ で囲みます。

名前
単純変数: L
配列要素: L [ E ]
ワード: ibase、 obase、 scale

その他のオペランド
オプションの符号と小数点の付いた任意の桁数の数字
( E )
sqrt ( E )
length ( E ) 10 進数の有効桁数
scale ( E ) 小数点の右側の桁数
L ( E , ... , E )

演算子
+  −  ∗  /  %  ^ (% は剰余で ^ はべき乗)

++  −− (プレフィックスとポストフィックス; 名前に適用する)

==  <=  >=  !=  < >
=  +=  −=  ∗=  /=  %=  ^=

文
E
if ( E ) S
while ( E ) S
for ( E ; E ; E ) S
空文
break
quit

関数定義

define L ( L , ... , L ) {
auto L , ... , L
S; ... S
return ( E )
}

−l 数学ライブラリの関数

s(x) 正弦関数

c(x) 余弦関数

e(x) 指数関数

l(x) 対数関数

a(x) 逆正接関数

j(n,x) ベッセル関数

すべての関数の引数は値で渡されます。

式となっている文の値は、 主演算子が代入でない場合に表示されます。 文の区切りには、セミコロンか復帰改行のいずれかを用います。 scale への代入は、 dc(1) の方式による算術演算で保持される桁数に影響を及ぼします。 ibase または obase への代入が行われると、 それぞれ、入力および出力基数が設定されます。

同一文字を同時に配列、関数、 および単純変数として使用することができます。 すべての変数は、 プログラムに対してグローバルです。 「自動変数」は、関数の呼び出し中にプッシュダウンされます。 配列を関数の引数として用いる場合、 または自動変数として定義する場合には、 配列名のあとに空の大かっこ [ ] を付けなければなりません。

例

次の関数は、指数関数の近似値を計算するものです。

scale = 20
define e(x) {
auto a, b, c, i, s
a = 1
b = 1
s = 1
for (i = 1; 1 == 1; i++) {
a = a ∗ x
b = b ∗ i
c = a / b
if (c == 0) return (s)
s = s + c
}
}

次の例は、最初の 10個の整数の指数関数の近似値を表示するものです。

for (i = 1; i <= 10; i++) e(i)

関連ファイル

/usr/lib/lib.b数学ライブラリ
dc(1)卓上計算機プログラム

関連事項

dc(1)
L. L. Cherry and R. Morris, BC − An arbitrary precision desk-calculator languaguage

バグ

演算子 &&、 ||、 !  は使用できません。
for 文は 3 個の E すべてを必要とします。
quit は実行時ではなく、読取り時に解釈されます。

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026