.\" .\" dc.1 - the *roff document processor source for the dc manual .\" .\" This file is part of GNU dc. .\" Copyright (C) 1994, 1997, 1998, 2000 Free Software Foundation, Inc. .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License , or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; see the file COPYING. If not, write to: .\" The Free Software Foundation, Inc. .\" 59 Temple Place, Suite 330 .\" Boston, MA 02111 USA .\" .\" %FreeBSD: src/contrib/bc/doc/dc.1,v 1.3.2.1 2001/03/04 09:34:56 kris Exp % .\" .\" $FreeBSD$ .\" .TH DC 1 "1997-03-25" "GNU Project" .ds dc \fIdc\fP .ds Dc \fIDc\fP .SH 名称 dc \- 任意精度の計算機 .SH 書式 dc [-V] [--version] [-h] [--help] [-e scriptexpression] [--expression=scriptexpression] [-f scriptfile] [--file=scriptfile] [file ...] .SH 解説 .PP \*(dc は、逆ポーランド形式の無限精度の計算が行える卓上計算機です。 この電卓は、定義やマクロ呼び出しも行えます。 普通、\*(dc は標準入力から読み込みます。 コマンドライン引数が与えられた時は、それはファイル名となり、 \*(dc はそのファイルを読み込み、ファイルの内容を実行した後で、 標準入力から入力を取ります。 通常の出力はすべて標準出力へ、エラー出力はすべて標準エラー出力へ 送られます。 .PP 逆ポーランド記法計算機は、数字をスタックに保存します。 数字を入力すると、それをスタックに積み上げます。 計算操作は、引数をスタックから取り出し、結果をスタックに積み上げます。 .PP 数字を .IR dc に入力するためには、数字 (小数点が有っても構いません) を入力します。 指数表現はサポートされていません。 負の数字を入力するためには、``_'' で始まる数字を入力します。 ``-'' は減算の二項演算子として使われているので、 このために利用することはできません。 引き続いて 2 つの数字を入力するためには、あいだに空白文字か改行文字を 入力します。 これらは、コマンドとしての意味はありません。 .SH オプション \*(dc は、次のコマンドラインオプション付きで起動可能です: .TP .B -V .TP .B --version 実行される \*(dc のバージョンと著作権情報を表示し、終了します。 .TP .B -h .TP .B --help これらのコマンドラインオプションを短くまとめたメッセージと バグ報告アドレスを表示し、終了します。 .TP .B -e \fIscript\fP .TP .BI --expression= script .I script 中のコマンドを、入力処理中に実行するコマンド集合に追加します。 .TP .B -f \fIscript-file\fP .TP .BI --file= script-file ファイル .I script-file 中のコマンドを、入力処理中に実行するコマンド集合に追加します。 .PP 上記オプションの処理後にコマンドラインパラメータが残った場合、 これらのコマンドラインパラメータは処理対象の入力ファイル名として 解釈されます。 ファイル名 .B - は、標準入力ストリームを指します。 ファイル名を指定しないと、標準入力が処理されます。 .PD .SH 表示コマンド .TP .B p スタックを変更することなく、スタックの先頭の値を表示します。 改行文字が、値の後に表示されます。 .TP .B n スタックの先頭の値を表示し、スタックから取り出します。 改行文字は、後に表示されません。 .TP .B P スタックの先頭の値をスタックから取り出します。 値が文字列の場合、末尾の改行を付けずに、単に表示します。 そうでない場合、これは数値であり、数値の絶対値の整数部分が、 \&"基数 (UCHAR_MAX+1)" のバイトストリームとして表示されます。 ここで (UCHAR_MAX+1) は 256 を仮定すると (ほとんどのマシンでは 8 ビットバイトなので)、文字列 \fBKSK 0k1/ [_1*]sx d0>x [256~aPd0 r スタックから 2 つの値を取り出し、それらを数と仮定して比較し、 もともとのスタックの先頭が大きい場合、レジスタ .I r の内容を実行します。 したがって、 .B 1 2>a は、レジスタ .BR a の内容を実行しますが、 .B 2 1>a では実行しません。 .TP .BI !> r 似ていますが、もともとのスタックの先頭が 2 番目の値よりも大きくない場合 (2 番目の値以下である場合)、マクロを起動します。 .TP .BI < r 似ていますが、もともとのスタックの先頭が小さい場合にマクロを実行します。 .TP .BI !< r 似ていますが、もともとのスタックの先頭が 2 番目の値よりも小さくない場合 (2 番目の値以上である場合)、マクロを起動します。 .TP .BI = r 似ていますが、2 つの取り出された値が等しい場合にマクロが実行されます。 .TP .BI != r 似ていますが、2 つの取り出された値が等しくない場合にマクロが実行されます。 .ig これは、2 つの文字列の等価性を比較するためにも使うことができます。 .. .TP .B ? 端末から行を読み込み、実行します。 このコマンドは、ユーザからの入力を要求するためのマクロで使えます。 .TP .B q マクロを終了し、それを呼び出したマクロからも終了します。 一番上のレベルか、一番上のレベルから直接呼ばれたマクロから呼ばれると、 .B q コマンドは \*(dc を終了します。 .TP .B Q スタックから値を取り出し、それを終了すべきマクロレベル数として、 その数のマクロを終了します。 したがって、 .B 3Q は、3 つのレベルを終了します。 .B Q コマンドでは、\*(dc を終了することはありません。 .SH 状態の問い合わせ .TP .B Z スタックから値を取り出し、その桁数 (文字列の場合は、文字数) を計算し、 その値をスタックに積みます。 .TP .B X スタックから値を取り出し、その小数点以下の桁数を計算し、 その値をスタックに積みます。文字列の場合、スタックには .\" -1. 0 が積まれます。 .TP .B z 現在のスタックの深さを、スタックに積みます。 スタックの深さとは、 .B z コマンドが実行される前のスタックのデータ数です。 .SH その他のさまざまなこと .TP .B ! 行の末尾までをシステムコマンドとして実行します (シェルエスケープ) 。 .\"(訳注)シェルエスケープは、訳者が付け足しました。 .\" 2.2.1R 対象(1997/05/04) Takeshi MUTOH コマンド !<, !=, !> のパーズが優先しますので、<, =, > で開始する コマンドを起動したい場合には、! の後に空白を加える必要があります。 .TP .B # 行の末尾までをコメントとして取り扱います。 .TP .BI : r スタックから 2 つの値を取り出します。 スタックの先頭だった値で配列 .IR r をインデックスし、スタックの先頭から 2 番目だった値をそこに保存します。 .TP .BI ; r スタックから値を取り出し、配列 .IR r のインデックスとして利用します。 配列から選ばれた値は、その後でスタックに積まれます。 .SH バグ .PP バグ報告は、 .BR bug-dc@gnu.org に電子メールでお願いします。 単語 ``dc'' を ``Subject:'' フィールドのどこかに入れておいてください。