(57)【特許請求の範囲】
【請求項１】
入力装置と表示装置と記憶装置を備えたコンピュータにおいて、計算式が計算命令と数値の組によって構成されて入力されるときに、記憶されたデータを表示しながら、この表示に対する入力を行わせて計算を行う方法であって、
表示装置上の入力域を用いて、計算命令と数値が入力位置とともに入力される入力ステップと、
計算命令又は数値が入力された場合に、記憶装置において、計算命令又は数値が入力位置に対応する記憶位置に記憶される記憶ステップと、
表示装置において、一組の計算命令と数値で構成された表示単位を縦に並べた表示形式を用いて、計算命令又は数値が、記憶位置に対応する表示位置に表示される表示ステップと、
計算命令が数値を出力する計算命令である場合に、記憶された計算式の先頭からこの計算命令の前の位置までに記憶された計算命令と数値を計算して導かれる数値を入力として、この計算命令に対応する処理が行われて出力された数値が、次に入力された数値とみなされて上記の表示ステップと記憶ステップが行われる計算実行ステップと、
上記入力ステップにおいて、四則演算命令が入力された状態で、四則演算命令の次に入力される数値が関数の計算命令によって入力される場合に、この四則演算命令と関数の計算命令を結合した関数の計算命令を作成するステップと
を有することを特徴とする計算の処理方法。
【請求項２】
入力装置と表示装置と記憶装置を備えたコンピュータにおいて、計算式が計算命令と数値の組によって構成されて入力されるときに、記憶されたデータを表示しながら、この表示に対する入力を行わせて計算を行う方法であって、
表示装置上の入力域を用いて、計算命令と数値が入力位置とともに入力される入力ステップと、
計算命令又は数値が入力された場合に、記憶装置において、計算命令又は数値が入力位置に対応する記憶位置に記憶される記憶ステップと、
表示装置において、一組の計算命令と数値で構成された表示単位を縦に並べた表示形式を用いて、計算命令又は数値が、記憶位置に対応する表示位置に表示される表示ステップと、
計算命令が数値を出力する計算命令である場合に、記憶された計算式の先頭からこの計算命令の前の位置までに記憶された計算命令と数値を計算して導かれる数値を入力として、この計算命令に対応する処理が行われて出力された数値が、次に入力された数値とみなされて上記の表示ステップと記憶ステップが行われる計算実行ステップと、
上記入力ステップにおいて、一個の変数の入力を要する関数の計算命令が入力された場合に、入力装置によってそれまでに入力されていた数値を変数として、この関数の計算命令を作成するステップと
を有することを特徴とする計算の処理方法。
【請求項３】
入力装置と表示装置と記憶装置を備えたコンピュータにおいて、計算式が計算命令と数値の組によって構成されて入力され、さらに、注釈も入力されるときに、記憶されたデータを表示しながら、この表示に対する入力を行わせて計算を行う方法であって、
表示装置上の入力域を用いて、計算命令と数値と注釈が入力位置とともに入力される入力ステップと、
計算命令、数値又は注釈が入力された場合に、記憶装置において、計算命令、数値又は注釈が入力位置に対応する記憶位置に記憶される記憶ステップと、
記憶された注釈によって示される計算式が計算されて出力された数値が、対応する行の数値として入力されるステップと、
表示装置において、一組の計算命令と数値と少なくとも一つの注釈で構成された表示単位を縦に並べた表示形式を用いて、計算命令、数値又は注釈が、記憶位置に対応する表示位置に表示される表示ステップと、
計算命令が数値を出力する計算命令である場合に、記憶された計算式の先頭からこの計算命令の前の位置までに記憶された計算命令と数値を計算して導かれる数値を入力として、この計算命令に対応する処理が行われて出力された数値が、次に入力された数値とみなされて上記の表示ステップと記憶ステップが行われる計算実行ステップと
を有することを特徴とする計算の処理方法。
【請求項４】
入力装置と表示装置と記憶装置を備えたコンピュータにおいて、計算式が計算命令と数値の組によって構成されて入力されるときに、記憶されたデータを表示しながら、この表示に対する入力を行わせて計算を行う方法であって、
表示装置上の入力域を用いて、計算命令と数値が入力位置とともに入力される入力ステップと、
計算命令又は数値が入力された場合に、記憶装置において、計算命令又は数値が入力位置に対応する記憶位置に記憶される記憶ステップと、
表示装置において、一組の計算命令と数値で構成された表示単位を縦に並べた表示形式を用いて、計算命令又は数値が、記憶位置に対応する表示位置に表示される表示ステップと、
計算命令が数値を出力する計算命令である場合に、記憶された計算式の先頭からこの計算命令の前の位置までに記憶された計算命令と数値を計算して導かれる数値を入力として、この計算命令に対応する処理が行われて出力された数値が、次に入力された数値とみなされて上記の表示ステップと記憶ステップが行われる計算実行ステップと、
上記記憶装置は、さらに、所要の数値を含む所定のデータを多数記憶する記憶部を有し、入力装置によって所定のデータが複数個選択された場合に、選択されたデータが順次読み出され、前記選択され読み出されたデータに含まれる所要の数値が順次入力された数値とみなされるとともに、加算の計算命令が前記各数値の次の記憶位置に作成・付加されて、上記の記憶ステップと表示ステップが行われるステップと
を有することを特徴とする計算の処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナル・コンピュータ等における計算の処理方法に関する。
【０００２】
【従来の技術】
電卓は、簡単なため、すぐに使える。しかし、表示が一行しかないために、入力しながら、入力の過程を頭に記憶する必要があって、ムリがある。さらに、ムラも出れば、ムダもある。途中で分からなくなったら、最初からやり直し。検算では、答えのメモまでしてやり直しである。
簡単という点では、横書に計算式を入力する方法も悪くはない。しかし、縦のものを横にするときや、一定の幅を越えるときは、入力もチェックもムリがあって、ミスが生じやすい。特に、数値が相互に離れているため、数字の確認がしずらい。
数字の確認という点では、やはり、縦方向に順に右にそろうようにして並ぶことが好ましい。これは、表計算ソフト等の方法を使うと可能である。しかし、これらの方法は簡単とはいえない。変数等を用いて、計算方法を別途指定する仕組みになっている。そして、その指定には、かなりの知識と経験と時間が必要である。このため、電卓のほうが簡単で早い、という結果になりがちである。
さらに、電卓以外の方法は、携帯電話のような小さな電子機器には適用が困難である。これらで多様な計算をムリなく行うには、広い表示域が必要だからである。
【０００３】
【発明が解決しようとする課題】
本発明の課題は、多様な計算について、相対的に小さな表示域で表現しつつ、入力とチェックの手間を最小限にして、簡単に正解を出すことである。
具体的には、例えば、入力が楽で、検算が無用の電卓や電卓ソフトを提供することを目的とする。
【０００４】
【課題を解決するための手段】
上記及びその他の目的は、請求項に示した計算の処理方法とそのためのプログラムによって達成される。
入力は、計算命令と数値を一組としてこれらが計算式を構成するように入力することを原則とする。この原則が計算の定義等の前工程を省略する。計算命令としては、四則演算命令、「＝」、平方根などの関数（以下、関数の計算命令を「関数命令」という。）、その他が考えられる。実際にコンピュータに入力できる計算命令の範囲は広いほうが望ましい。なお、表示におけるこれらの記号は限定されるものではない。
【０００５】
入力された計算命令と数値は、入力位置に対応する記憶位置に記憶する。入力は、記憶位置を指定することにより行うことが原則であるが、指定の操作は必須ではない。例えば、入力順と記憶順が一致する場合は単に追加すれば良い。
【０００６】
表示については、一組の計算命令と数値で構成された表示単位を縦に並べた表示形式を用いる。表示単位においてそれらの配置や大きさなどは自由に設計できる要素である。ところで、普通の計算式は左から右に書かれるが、この原則を加えたものが理解しやすい。図１と図２は、この意味で好ましい表示形式である。表示単位の数については、縦に並べるため二以上が必要である。計算式全体が表示できる数が望ましいが、スクロール等の公知の技術が適用できるため表示域は小さくできる。
表示の方法としては、入力された計算命令又は数値を記憶位置に対応する表示位置に表示する。所定の場所に記憶する前に表示することも可能である。
【０００７】
入力された計算式の計算については、「＝」や関数命令などの数値を出力する計算命令によって行われる。
計算の処理としては、まず先頭からその計算命令の前の位置までに記憶された計算式を記憶順に読んで計算し、その計算式の中間的な答を導く。このとき、計算の順序を計算命令に応じて内部的に変更しても良い。既にこの計算が行われている場合は、その結果を利用することもできる。
次に、その中間的な答を入力として、その計算命令に対応する処理を行う。例えば、「＝」の場合には、その中間的な答をそのまま数値として出力すれば良い。関数命令であれば、その中間的な答を入力とする関数計算を実行して得られた数値を出力する。
最後に、その計算命令の出力をその計算命令の次に入力された数値とみなして上記の記憶方法と表示方法により処理する。ここで、出力された数値はその位置での計算の答であり、所望する計算の最終的な答もこうして得られる。
【０００８】
計算をこのように行う理由は計算結果をさらに利用するためである。例えば、図１の計算は、「６」という答えに続けて「＋４＝」と入力したものである。図１２の計算は、５％の計算を行った後その結果を加算している。仮に、計算結果を利用させないとすれば、例えば、答をメモして初期化することになる。このような手順は入力とチェックを難しくする。計算の表現が所望する計算とかけ離れるためである。そこで、本発明では答を入力された数値とみなすことで多様な計算を表現できるようにした。
【０００９】
以上により、所望する多様な計算が行われ、結果が表示される。なお、以上の説明において、記憶と表示と計算のステップが働く順序は一つではない。記憶と表示の順序はどちらが先でも良いし、計算は記憶のステップのみを前提としているからである。
【００１０】
請求項１以下は、計算対象等に応じて、計算の処理方法を最適化したものである。いずれもキータッチ数を減らす等の効果があるため、コンピュータとして全ての機能を備えることが望ましい。
請求項１に示す本発明の態様は、四則演算命令の次に入力する数値を関数命令によって入力する場合に、四則演算命令と関数命令を結合した関数命令を作成して入力する。この場合の関数命令は単なる転送命令であっても良い。
請求項２に示す本発明の態様は、変数を一つ持つ関数命令の入力に関して、通常の計算と同じ入力順でこの関数の入力ができて、しかも、あとでチェックをしやすくする。
なお、請求項１と請求項２以外の関数についても使用可能であって、その方法も説明されている。
【００１１】
請求項３に示す本発明の態様は、計算の表示域に注釈の表示域を加えたものである。注釈の表示域の位置については、数値との対応が直感的に理解できるものが望ましい。例えば、図１と図２において左右の余白を用いると良い。図１３は図１の右側を注釈の表示域として使用した例である。そして、例えば、注釈に横書の計算式が記述された場合には、その計算式を計算して得られる答を数値として入力する。このように本発明にいう注釈は、処理対象としての性格も持つ。なお、注釈が示す計算式の形式は限定されるものではない。その形式は変換手段に基づくからである。
【００１２】
請求項４に示す本発明の態様は、メモリやファイルに保存された複数のデータの数値を集計する。多種多様なデータの数値を集計できるが、好ましい例として、実施例３では、本発明による計算の保存データを取り上げ、複数の計算の答を集計する。
【００１３】
【発明の実施の形態】
【実施例】
以下、この発明の実施例を図面を用いて詳述するが、以下の実施例は、あらゆる点で単なる例示にすぎず、本発明を限定するものではない。表示形式については図１のものを選択して説明する。
【００１４】
実施例１
実施例１は、計算命令キーの入力によって、数値の入力完了を認識して改行するコンピュータの例である。このコンピュータは電卓と同じキー操作で計算ができる。
図３は、本発明を実施するためのハードウェア構成である。１は計算式の入力等を行うためのキーボード、２は計算式を表示する表示装置、３は計算式の編集処理と計算処理を行うためのプロセッサ、４は計算式を記憶するための記憶装置である。
【００１５】
キーボード１は、数値、計算命令、文字などを入力する。計算命令キーは、四則演算命令の他、平方根等の関数を入力するキーよりなる。また、各種処理要求を行うキーも備えているものとする。キーの入力については、マウス等による代替手段を用いても良い。
表示装置２については、小さな画面で十分である。大きな画面を用いる場合には、例えば、ウィンドウ型のディスク・オペレーティング・システムを用いて複数の画面を表示すると良い。
記憶装置４は、計算式の記憶域等を有し、その内容は図４に示される。図４において、１１は計算式格納部であり、計算命令と数値を一組として一行に格納する。注釈も同様である。１２は制御情報域であり、計算における中間的な答（以下、「ＩＡ」という。）、入力中の数値を格納する数値バッファなどを備える。ここで、少なくともＩＡはレジスタを用いることができる。なお、フロッピー・ディスク等の外部記憶装置については、計算の保存等を考慮して備えることが望ましい。
【００１６】
以上のように構成されたコンピュータにおいて、キーボードを用いて「１＋２＋３＝＋４＝」と入力した場合の表示例を図１に示す。「１」と入力した時点で１行目が表示される。次に「＋」と入力した時点で改行して「＋」が表示され、同様に「２」が同じ行に表示される。この動作を繰り返した後、「＝」の入力を契機としてコンピュータが計算を行い、答の「６」を表示する。以下同様にして図１の状態となる。
最後の行に「＞」が表示されているが、これは入力待の状態を含む処理中の行（以下、「現在行」という。）を示すものである。この行に四則演算命令や関数命令を入力すれば、答の「１０」を利用した計算を追加することができる。数字を入力すれば、新たな計算を追加することができる。
【００１７】
次に本実施例の制御について図面を交えて説明する。なお、以下の説明とフローチャートにおいて、特にことわらない限り、「表示」とは表示上の現在行に表示することを意味する。また、「格納」又は「読む」とは計算式格納部１１の現在行に格納すること又は読むことを意味する。
【００１８】
図５において、プログラムが起動されたとき処理の流れが始まる。最初に画面やメモリなど必要なデータを初期設定する（ステップ２０）。初期設定では、第一行を現在行とし、計算式格納部１１の計算命令をすべて空白とする（以下、この空白の命令を「ＳＰ命令」といい、計算式の開始を示す計算命令として取り扱う。）。この後、キーボード１よりキーが押し下げられたかどうかを判定する（ステップ２２）。入力がない場合、ステップ２２に戻り、入力を待つ。
【００１９】
数字又は小数点のキーが押し下げられた場合、判定（ステップ２４）後、数値バッファ内の数字列に右から追加するように累積する。そして、累積された数値を表示装置２の現在行に表示する（ステップ２６）。この後、再びステップ２２に戻り、このループを繰り返すことで所望の数値を入力する。
【００２０】
計算命令のキーが押し下げられた場合、計算命令を判定したうえで（ステップ２８、３２、４２）、計算命令に応じて以下の処理を行う。
（１）四則演算命令の場合
計算命令処理を呼ぶ（ステップ３０）。計算命令処理は、数値を格納後改行して、四則演算命令の格納と表示を行う。次に、ステップ２２に戻り、入力を
待つ。
（２）「＝」の場合
計算命令処理を呼ぶ（ステップ３４）。計算命令処理は、数値を格納後改行して、「＝」の格納と表示を行う。次に、計算処理を呼び（ステップ３６）、現在行に計算結果を格納させ、その数値を表示する（ステップ３８）。この数値は、入力した計算式を計算した答である。そして、次の行を現在行とし、現在行を示す「＞」を表示することで改行を示す（ステップ４０）。この後、ス
テップ２２に戻り、入力を待つ。
【００２１】
（３）関数命令の場合
関数命令の処理は図６に示される。図６においてＵ型命令とＩ型命令の判定（ステップ４４、５０）があるが、これらの命令は関数命令の一種であり、詳細については後述する。平方根等の通常の関数命令は、これらとは異なるのでステップ３４へ行き、「＝」の場合と同じ処理を行う。ただし、ステップ３８において表示される数値は、関数計算を行って得られた数値である。なお、Ｕ型命令又はＩ型命令の場合も、入力の部分が異なるだけで、後の処理は通常の関数命令と同じである。
【００２２】
計算命令処理について説明する。
計算命令処理（ステップ６８）は、計算命令が入力されたときに呼び出され、フローチャートは図９に示される。まず、数値が入力されているかどうか判定する（ステップ７０）。数値バッファに累積された数値があれば、その数値を格納する（ステップ７２）。そして、次の行を現在行とし、現在行を示す「＞」を表示する（ステップ７４）。計算命令は、追加した次の行において表示と格納が行われ（ステップ７６）、呼出し元に戻る（ステップ７８）。ステップ７０において数値が入力されていなかった場合は、単に計算命令の表示と格納を行う（ステップ７６）。この後、同様に呼出し元に戻る（ステップ７８）。
【００２３】
計算処理について説明する。
計算処理（ステップ８０）は、「＝」等の入力によって呼び出され、フローチャートは図１０に示される。まず、必要な初期設定を行い（ステップ８２）、計算式格納部１１の先頭の行を計算処理における現在行とする（ステップ８４）。この後、現在行から計算命令と数値を読む（ステップ８６）。計算命令を判定したうえで（ステップ８８、９２、９６、１００）、計算命令に応じて以下の処理を行う。
【００２４】
（１）ＳＰ命令の場合
計算式の開始であるから、数値をＩＡにセットする（ステップ９０）。
（２）四則演算命令の場合
計算命令に応じてＩＡと数値の演算を行い、演算の結果をＩＡにセットする（ステップ９４）。例えば、「＋」の場合の処理をプログラムに近い表現で示
せば、「ＩＡ＝ＩＡ＋数値」となる。
（３）「＝」の場合
ＩＡが答であるから、ＩＡを格納する（ステップ９８）。
（４）関数命令の場合
ＩＡを変数の値とした関数計算を行い、その出力をＩＡにセットし、格納する（ステップ１０２）。例えば、関数が平方根でＩＡが４であれば、２がＩＡ
の値となり、格納される。
【００２５】
以上のようにして現在行の処理が終わったら、現在行が格納された計算式の最終行かどうか判定する（ステップ１０４）。最終行でなければ、次の行を現在行として（ステップ１０６）、ステップ８６へ戻る。このループを繰り返すことで入力された全ての行について計算を行う。現在行が最後であれば、呼出し元に戻る（ステップ１０８）。
なお、計算処理において桁あふれなどの計算に固有のエラーが発生した場合には、プログラムを終了させる必要はない。むしろ、エラーを表示後編集処理に戻り、訂正して再度計算できるようにしたほうが良い。
【００２６】
制御の基本部分は以上のとうりである。図１の計算例であれば、以上の部分だけで実現できる。次に好ましい変形例について述べる。
ステップ２６等における数値の表示方法は、電卓のものに限定されない。むしろ、小数点の位置を固定した書式のほうが良い場合が多い。また、「＄」などの記号を含む数値を取り扱うことも可能である。利用者が計算の内容に応じてこれらの表示方法を適宜選択できることが望ましい。
【００２７】
ＳＰ命令については、数値が入力されたものだけを計算の開始とすることができる。この場合、途中に空白の行があっても計算に影響しないので、訂正などの自由度が増す。
ステップ４０と７４において次の行を現在行とするが、現在行が表示域の下限である場合には、自動的にスクロールさせると良い。表示域を追加しても良い。例えば、列の追加なども可能である。
【００２８】
計算については、通常のアルゴリズム又はプログラムを利用しても良い。利用者が、例えば「１＋２×２」と入力して掛け算を先に計算することを望むのであれば、有効である。
計算の応答時間を短くするため計算を分割して行うこともできる。即ち、計算を行った最終の行番号とＩＡの値を記憶し、次回はそこから計算を開始するようにすれば、計算処理にて毎回同じ計算をしなくとも済む。これに加えて、計算命令の入力等を契機として計算処理を呼出しても良い。ただし、今日のハードウェアを用いる限り、通常の計算では無視できるような効果しかない。ＣＰＵ等の処理速度が十分に早いからである。
【００２９】
関数命令について以下に述べる。
一般に、計算命令の機能と表示を定義できれば、あとは特定のキーにこの計算命令を割当てるだけで計算命令を増やすことができる。例えば、ステップ４２と１００の判定とステップ１０２の処理を加えれば良い。
【００３０】
関数命令は、平方根のような単純な関数には限定されない。
例えば、入力した数値の平均値を求める関数は、本発明においては平均値をさらに計算に利用するということが簡単なため、使いやすい関数である。さらに、出力が数値に限定されないため、それらの数値の構成比をパーセントで表現して数値の注釈として表示することも可能である。コマンドや言語命令等によって実現される機能も本発明の関数とすることができる。例えば、計算式全体の小数の取扱いや後述する実施例３の指示を関数命令を用いて行うことが想定できる。前者は誤差の情報として、後者は計算式間の整合性をとるための情報としても利用できるためである。このように計算式自体が手続とデータという二重の性格を有するため、関数命令又は計算命令として考えられる範囲は広い。数値を出力しないものや計算式の計算が不要なものであっても良い。従って、関数の性質によりステップ１０２の表現や位置は変更される場合がある。また、入力における計算順序を内部的に変更できるようにして入力位置を限定しないほうが良いものもある。例えば、四捨五入等の指示である。
【００３１】
関数命令の入力に関しては、関数の性質に応じて特殊な処理を行うほうがより良くなる場合がある。
電卓で用いられる「Ｍ＋」、「Ｍ−」又は「ＭＣ」は、専用の記憶域の値を変更する機能を持つ。そして、これらの関数命令は、変更後の値を専用の表示域に表示する処理を含むと良い。専用の表示域は、例えば、図１１において下段に示されるものである。使用時に内容を呼び出して確認する手間が省けるので使いやすくなる。また、複数の「Ｍ＋」の表示行が小計を示す場合に、専用の表示域が小計の合計を示すという効果もある。なお、これらの関数命令は、本発明の効果として基本的に使いやすくなっていることに留意されたい。
これらの関数命令を追加する方法は、上記に示したとうりである。そして、「Ｍ＋」の場合は、ステップ１０２においてＩＡを専用の記憶域に加算するが、この後で変更後の値を専用の表示域に表示するようにすれば良い。
【００３２】
数値を関数命令により入力することが可能であるが、四則演算命令の次に入力する数値を関数命令により入力する場合には、四則演算命令と関数命令を結合した一つの関数命令を作成して入力すると良い（以下、結合を行う関数命令を「Ｕ型命令」という）。この例として、電卓で用いる「ＭＲ」（又は、「ＲＭ」）とパーセントに係る関数命令があげられる。図１１の５行目は、「＋」を入力後に「ＭＲ」を入力した場合に、「＋ＭＲ」として入力することを示している。図１２の２行目は、５％の値を計算して出力する関数であって、「５％」と表示する関数命令の場合である。
結合された関数命令は、数値の意味が明確なため使いやすい。計算式の他の部分を訂正して再計算をする場合に、この関数命令により入力した数値が自動的に訂正されるという効果もある。また、結合する方法は、結合に係る関数命令を予め全て用意しておく方法よりも入力しやすい。
【００３３】
Ｕ型命令が入力された場合の処理フローを図６に示す。ステップ４４でキーを判定してＵ型命令であった場合に以下の処理を行う。まず格納された計算命令を読み（ステップ４５）、四則演算命令かどうか判定する（ステップ４７）。四則演算命令であった場合、四則演算命令と関数を結合した関数命令を作成する（ステップ４８）。そして、ステップ３４へ飛び、計算命令処理以下、通常の関数命令と同じ処理を行う。ステップ４７で四則演算命令が格納されていなかった場合には、結合を行わず、ステップ３４へ飛び、通常の関数命令として処理を行う。結合後の関数は、数値の入力に加えて演算を行う。例えば、単なる「ＭＲ」であればステップ１０２において専用の記憶域の値をＩＡにセットするが、「＋ＭＲ」であればＩＡに加算することになる。関数の５％の場合は、ＩＡの５％の値を計算する点を除けば「ＭＲ」と同じである。なお、「ＭＲ」を普通に入力するのであれば、専用の記憶域を読めれば良いので、計算処理を呼ばずに格納と表示を行うことができる。ただし、計算式の途中に挿入する場合には、以上のとうりである。
【００３４】
複数の変数を持つ関数でも、変数の値を入力することで、平方根などの一変数の関数と同じにできる。例えば、Ｆ（ｘ、ｙ、ｚ）なる関数の場合、ｘとｙの値を入力し、ＩＡをｚとして用いる関数命令を作成する。ｚも入力して、数値の入力にのみに利用することも可能である（以下、変数の値を入力する関数命令を「Ｉ型命令」という）。なお、Ｉ型命令がＵ型命令であっても良く、四則演算命令を変数とすればＵ型命令はＩ型命令にもなる。このように使い易さに応じて型を選択することが可能である。
【００３５】
Ｉ型命令が入力された場合の処理フローを図６に示す。ステップ５０でキーを判定してＩ型命令であった場合に以下の処理を行う。まず変数の値を入力する（ステップ５１）。方法としては、例えば、変数の入力画面を表示して行う。次に、変数の値に基づく関数命令を作成する（ステップ５２）。作成される関数命令は、例えば、Ｆ（１、１、ｚ）である。以下は、ステップ３４へ飛び、通常の処理を行う。関数命令の実行については、ステップ１０２において、入力された変数の値を読む処理が加わるだけで、後は平方根などの関数と同じことである。
【００３６】
実用的な例として、「ｘ％」という関数命令がある。例えば、ｘの値として「５」を入力すれば、上記に示した「５％」なる関数命令が作成される。この関数命令が変数の値を記号中の文字として記憶するとすれば、ステップ１０２において、この文字を読んでから関数計算を行う。また、ステップ１００の判定方法は、「計算命令が、記号中に「％」を含むか」となる。この他の実用的な関数としては、金利やローンに係る関数があげられよう。
なお、「ｘ％」については、Ｕ型命令でもあるので、ステップ５２の後ステップ４５へ飛ぶと良い。また、ステップ５１の変数の値の入力については、変数の入力画面を使わない方法もある。例えば、「ｘ％」の例では、「＋５」と普通に入力し、「％」の入力を契機として「＋５％」なる関数命令を作成できる。この場合には、ステップ５１にて数値バッファの「５」を読み出した後、数値バッファの内容とその表示をクリアする必要がある。
【００３７】
以上のＵ型命令とＩ型命令の説明に基づき、関数をさらに拡張することが可能である。即ち、変数は計算式であっても良く、また、関数自体が計算式であっても良い。例えば、「ｓｑｒｔ２」を２の平方根を入力する命令とすることができる。ただし、その拡張は、直観的に意味が理解できる範囲にすべきであり、表示域の大きさの制限にも関わる。
【００３８】
本実施例における入力済みの計算命令又は数値の訂正について以下に述べる。本発明においては計算式が全て記憶されているため、部分的に訂正することができる。単なる誤りの訂正のほか、数値を変化させて合計値を目標値に近付ける場合にも役立つ。
訂正の流れは図７に示すとうりである。訂正要求がされた場合、ステップ５４でキーを判定して、計算命令又は数値の訂正を行う（ステップ５６）。そして、訂正が終了したら、計算処理を呼び（ステップ５８）、計算をやり直す。再計算が終わったら、ステップ２２へ飛び、通常の状態に戻る。訂正と再計算を繰り返してから戻っても良い。
【００３９】
ステップ５６の訂正の方法については、画面のスクロール等も含めてありふれたもので良い。例えば、ワープロソフトで使う方法がとれる。記憶された計算式は、文書とみなすこともできるからである。訂正の終了については、例えば、専用のキーを設けて行う。
項目又は行単位で修正する場合は、電卓のＣキーをこの目的で使用することができる。例えば、上下の矢印キーにより訂正する行を指定してＣキーを押下し、訂正する。この行が最終の行でない場合をこの訂正要求とし、訂正後に上下の矢印キーにより別の行に制御を移す契機を訂正の終了とする。この方式は、修正に要するキーの数が少なく単純なところが良い。
【００４０】
注釈について以下に述べる。
その表示例は図１３に示される。注釈が必要とされるのは、例えば、保存して後で見る場合である。印刷等の別の処理のインタフェース・データとして注釈を利用することも可能である。好ましくは、一行を注釈のみの行とする計算命令も備えると良い。特定の行の位置を調整するという用途もある。
注釈の入力の処理フローを図８に示す。図８においてステップ６０で注釈入力要求キーかどうか判定する。注釈入力要求キーであった場合に、文字を入力し、文字の表示と格納を行う（ステップ６２）。そして、注釈入力の完了を契機にステップ２２へ戻る。以上により、各行に注釈が入力される。なお、注釈の記憶域については、入力を契機として確保されるものであっても良い。
【００４１】
注釈の内容として横書の計算式又は計算式に変換できるデータを記述し、その計算式を計算させて得られた答を数値として入力させることができる。
具体例は同じ図１３に示されている。図１３において、２行目は、「２×２」の入力によりその答の「４」を入力する。４行目は、「２ｉｎｃｈ」の入力によりセンチメートルに換算した「５．０８」を入力する。同様に単価と数量を入力すれば一行に単価と数量と金額が並ぶ形式になる。従って、必要な機能を付加することにより伝票入力システム等に利用することも可能である。以上の説明で明らかなように、この部分の計算については既存のプログラムの対応部分を利用することができる。なお、カッコ等を含む複雑な計算式を計算する場合は、基本部分よりもこの計算を利用するほうがチェック等が楽で良い。
【００４２】
処理フローを図８に示す。処理は計算入力要求キーを押すことによって実行される。図８において、ステップ６４で計算入力要求キーかどうか判定し、計算入力要求キーであった場合に、注釈として入力した計算式を計算し、その答を数値として入力し、表示と格納を行う（ステップ６６）。そして、数値の入力の完了を契機にステップ２２へ戻る。なお、ステップ６４とステップ６６の間で、ステップ６２を呼び、計算式を注釈として入力しても良い。
【００４３】
図８のステップ６４の下に破線が示されているが、これは、その他の処理を呼び出すことができることを示す。例えば、計算式の保存と読み込み、画面のスクロール、複写による数値や注釈の入力、実施例３に示す処理等が考えられる。関数命令のところでも述べたように、計算式自体が手続とデータという二重の性格を有する。従って、本発明と組み合わせることができる機能は、一般に知られている多くのソフトウェアの機能と一致する。
【００４４】
実施例２
実施例２は、数値と計算命令をそれぞれ独立の項目として入力を行うコンピュータの例である。即ち、実施例１における入力項目間の移動に係る制御を変更したものである。例えば、図４の計算式格納部１１をそのまま入力画面とするシステムを想定すると良い。この場合、四角い枠の入力欄の一つ一つに計算命令と数値を入力する。そして、計算を指示して計算結果を表示させる。このように訂正を含む入力制御の部分はありふれたもので良いので、入力制御を除く部分を中心にして、以下に詳細に説明する。
【００４５】
実施例２のハードウェア構成は、実施例１と同じであって図３に示される。
次に本実施例の特徴をなす動作について、図１４を交えて説明する。
図１４において、プログラムが起動されたときに処理の流れが始まり、最初にメモリなど必要なデータを初期設定する（ステップ１１０）。表示装置２に複数行の入力域を表示し、計算式を入力させる（ステップ１１２）。以上の部分は普通のプログラムである。そして、入力完了や計算の指示を契機に入力域から計算式格納部１１に計算式を格納し（ステップ１１４）、計算処理を呼ぶ（ステップ１１６）。最後に、計算処理の完了を契機に、計算式格納部１１に基づいて、答を含む計算式を表示する（ステップ１１８）。かくして、本発明に基づく計算が達成される。なお、入力域と計算式格納部１１が一致する場合にはステップ１１４は省略可能である。また、実施例１にて説明した関数命令等の機能も本実施例に適用できる。個々の機能は、入力項目間の移動に係る制御には依存しないからである。
【００４６】
本実施例を伝票の入力システムに応用することができる。必要とされる計算を表現でき、訂正と再計算が可能だからである。この方法によれば、伝票の種類が多数あっても計算に係る部分は一つのプログラムで対処する。従って、コンピュータの資源が節約され、システムの開発も簡単である。また、各伝票の入力の方法等が統一されるので使いやすく実用的である。一般のシステムでは計算を中心として制御することはないが、計算を独立させて制御できるのであれば、実施例１を利用しても良い。
【００４７】
ワープロソフトの下で本発明を利用しても良い。例えば、文章の中に計算式を記述後、カーソルなどで計算式の範囲を指定し、本発明により計算させる。そして、計算結果をワープロソフトで編集する。この場合、ワープロソフトとの間で機能分担が行われているが、全体としては本実施例に含まれる。
計算式を文章と同様に自由に記述できるようにする場合には、ステップ１１４にて計算式格納部１１へ位置調整しながら複写する必要がある。数値と計算命令を１文字づつ探すことによって検出し、複写すれば良い。文字の検索方法によっては改行せずに横書に入力することも可能である。一方、ステップ１１８の処理結果は、入力時の形式にかかわらず本発明に基づいて縦書に表示する。入力時の形式を変更することになってもこの結果は好ましい。一般的な縦書の計算の表現は本発明の表示形式とは異なるが、計算命令の削除程度の簡単な編集で一致させることができるからである。
このような編集において、計算命令を表示に限定して削除する機能は有用である。計算命令が計算式格納部１１に保存されていれば、後の訂正などが容易になるからである。この意味において、計算命令を必要に応じて表示される書式情報のように扱うことが好ましい。
【００４８】
実施例３
実施例３は、指定した複数の数値を、間接的に指定した計算命令とともに入力するプログラムの例である。好ましい適用例として、大量の数値を分割して集計する例を示す。全体の流れは以下のとうりである。
（１）計算対象を適当な単位に分割し、実施例１又は２を用いて集計する。計算して得られた計算式についてはそれぞれファイルに保存する。
（２）ファイル中のこれらの計算式を指定し、それぞれの答の値を読ませ、集計させる。そして、実施例１又は２に戻る。
この流れは、分割して集計とチェックを行う実務に即している。さらに、集計を積重ねる場合の手順が、単なる繰返しであり、簡単である点が好ましい。
【００４９】
本実施例に関する部分は（２）であり、以下に詳細に説明する。
ハードウエア構成に関しては、他の実施例と同じく図３に示される。ただし、記憶装置４は、（１）でふれたファイルを記憶する。ファイルのレコードは、データの名前と計算式格納部１１を項目として持つものとする（以下、このデータを図４のデータと区別して「Ｆデータ」という。）。
なお、Ｆデータを分散して入力する場合には、ホストと端末で構成されるシステムであっても良い。つまり、図３のキーボード１と表示装置２は端末のものであり、プロセッサ３と記憶装置４はホストのものとみなすことができる。
【００５０】
次に本実施例の特徴をなす動作について、図１５を交えて説明する。
図１５のプログラムは、実施例１のプログラムの下で動作し、集計を要求するキーにより起動されるものとする。例えば、図８のステップ６４の判定の後で、当該キーの入力を検出したときに起動されるものとする。
処理としては、まずメモリなどの初期設定を行う。必要ならファイルのオープンも行う（ステップ１２０）。そして、複数のＦデータを指定する（ステップ１２２）。
【００５１】
以上の前処理の後、Ｆデータの検索を始める。まず、ファイルの最後の検出などの条件を用いて、Ｆデータの検索が完了しているかどうかを判定する（ステップ１２４）。未検索のＦデータがあれば、Ｆデータを１件読込み（ステップ１２６）、指定されたＦデータかどうか判定する（ステップ１２８）。指定されたＦデータでなければ、ステップ１２４に戻り、次のＦデータを読む。指定されたＦデータであれば、その計算式の答を数値として格納する（ステップ１３０）。即ち、Ｆデータの計算式の最後尾の数値を得て、それを入力された数値として格納する。さらに、次の行を現在行とし（ステップ１３２）、計算命令に「＋」を格納する（ステップ１３４）。そして、ステップ１２４に戻り、このループを繰返すことでＦデータを全て処理する。
【００５２】
検索が完了したら、現在行の計算命令の「＋」を「＝」に置換える（ステップ１３６）。集計の計算式が格納されたので、計算処理を呼び、集計値を格納させる（ステップ１３８）。この後、計算式を表示装置２に表示してから（ステップ１４０）、呼出し元に戻る（ステップ１４２）。仮に、３個のＦデータが集計され、それぞれの答が１、２、３のときは、図１と同じ画面が表示され、実施例１に戻ることになる。
【００５３】
ステップ１２２で複数のＦデータを指定するが、選択条件の入力などの公知の技術が適用できる。本発明においては、計算式の表示域が基本的に小さいため、表示画面が大きければ、複数の計算式を同時に表示させることができる。この場合には、それらをマウスなどで指定できることが望ましい。
【００５４】
ステップ１３０で、Ｆデータの名前を注釈として数値とともに入力しても良い。チェックに役立つ。
ステップ１３０では、会計帳票にならい、行位置や注釈の文字によって、入力するＦデータ内の数値を得て入力することもできる。例えば、ステップ１２２でこの指示をし、ステップ１３０で、Ｆデータの計算式から、この指示に基づく数値を得て入力する。これで、税抜きの金額や消費税など、計算式の中にある数値の集計にも対応できる。
【００５５】
集計される数値は、本発明と無関係なデータであっても良い。例示したＦデータは、計算式の保存を目的としたデータであるが、Ｆデータの構成に応じて、集計する数値を得ることができさえすれば、上記の処理としては十分である。例えば、別の業務システムのデータを、Ｆデータの代わりに用いても、実質的に同じ処理を用いて、そのデータに応じた選択と集計ができる。また、表形式のデータの行又は列をＦデータの代わりとする場合も同様である。
【図面の簡単な説明】
【図１及び図２】  本発明に基づく計算の表示例
【図３】  本発明が適用されるハードウェア構成図
【図４】  記憶域の説明図
【図５から図９まで】  実施例１の編集処理を示すフローチャート
【図１０】  実施例１、２、３の計算処理を示すフローチャート
【図１１】  Ｕ型命令を用いた計算の表示例
【図１２】  Ｉ型命令を用いた計算の表示例
【図１３】  注釈の計算式を用いて数値を入力する計算の表示例
【図１４】  実施例２の編集処理を示すフローチャート
【図１５】  実施例３の編集処理を示すフローチャート
【符号の説明】
１  キーボード
２  表示装置
３  プロセッサ
４  記憶装置
【図１】
0003940771.tif 000002
【図２】
0003940771.tif 000003
【図３】
0003940771.tif 000004
【図４】
0003940771.tif 000005
【図５】
0003940771.tif 000006
【図６】
0003940771.tif 000007
【図７】
0003940771.tif 000008
【図８】
0003940771.tif 000009
【図９】
0003940771.tif 000010
【図１０】
0003940771.tif 000011
【図１１】
0003940771.tif 000012
【図１２】
0003940771.tif 000013
【図１３】
0003940771.tif 000014
【図１４】
0003940771.tif 000015
【図１５】
0003940771.tif 000016