IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カシオ計算機株式会社の特許一覧

特開2025-8449数式処理装置、数式処理方法およびプログラム
<>
  • 特開-数式処理装置、数式処理方法およびプログラム 図1
  • 特開-数式処理装置、数式処理方法およびプログラム 図2
  • 特開-数式処理装置、数式処理方法およびプログラム 図3
  • 特開-数式処理装置、数式処理方法およびプログラム 図4
  • 特開-数式処理装置、数式処理方法およびプログラム 図5
  • 特開-数式処理装置、数式処理方法およびプログラム 図6
  • 特開-数式処理装置、数式処理方法およびプログラム 図7
  • 特開-数式処理装置、数式処理方法およびプログラム 図8A
  • 特開-数式処理装置、数式処理方法およびプログラム 図8B
  • 特開-数式処理装置、数式処理方法およびプログラム 図8C
  • 特開-数式処理装置、数式処理方法およびプログラム 図9
  • 特開-数式処理装置、数式処理方法およびプログラム 図10
  • 特開-数式処理装置、数式処理方法およびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025008449
(43)【公開日】2025-01-20
(54)【発明の名称】数式処理装置、数式処理方法およびプログラム
(51)【国際特許分類】
   G06F 15/02 20060101AFI20250109BHJP
【FI】
G06F15/02 315L
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023110630
(22)【出願日】2023-07-05
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】柳澤 正明
【テーマコード(参考)】
5B019
【Fターム(参考)】
5B019HC07
5B019HC10
5B019HE09
5B019HE20
(57)【要約】
【課題】階層構造を有する数式の入力操作を容易に行なうこと。
【解決手段】数式の数式要素(数字、記号、演算記号、関数記号など)が1文字入力される毎に、入力された数式要素に対応付けて、数式要素が乗除算の項またはそれ以外の項に属するかを数値で示す項階層レベルと括弧または関数に掛かる項に属するかを数値で示す括弧階層レベルとを設定して数式要素リストデータ(14d)として順次追加(更新)して記憶させる。また設定された項階層レベルと括弧階層レベルとに基づき、入力済みの数式要素も含めて数式要素に対応付ける表示階調(表示形態)を決定し、数式要素リストデータ(14d)に順次追加(更新)して記憶させる。入力された数式要素を決定された表示階調(表示形態)で順次更新して表示させる。各数式要素は項階層レベルと括弧階層レベルとに基づきグループ化(分類)された数式要素毎に異なる表示形態で識別表示される。
【選択図】 図8C
【特許請求の範囲】
【請求項1】
第1のユーザ操作により入力中の数式に新たな数式要素が追加されるのに応じて、前記新たな数式要素を前記数式の構造に基づき複数のグループのいずれかに分類するとともに、前記新たな数式要素以外の入力済みの数式要素が属するグループを更新する更新処理と、
前記入力中の数式を表示部に表示させる表示処理と、
前記更新されたグループの分類に基づいた前記入力中の数式の表示に係る第1処理と、
を実行する制御部を備える数式処理装置。
【請求項2】
前記第1処理は、前記新たな数式要素が追加されるのに応じて、前記入力中の数式に含まれる複数の数式要素を、前記グループの分類に基づいて前記表示部に識別して表示させる処理である、
請求項1に記載の数式処理装置。
【請求項3】
前記第1処理は、前記表示部に表示させた前記数式の新たな数式要素を追加する位置または前記入力済みの数式要素を編集する位置を指定する指定位置を、第2のユーザ操作に応じて移動させる処理である、
請求項1に記載の数式処理装置。
【請求項4】
前記更新処理は、前記入力済みの数式要素のうちの第1条件を満たす数式要素が属するグループを変更する処理を含む、
請求項1に記載の数式処理装置。
【請求項5】
前記制御部は、前記更新処理において、
前記新たな数式要素を前記数式の構造に基づき複数のグループに分類する場合には、前記新たな数式要素の次に入力される数式要素が、前記数式の入力を完了させるための必要最小限の数式要素であると仮定することにより前記新たな数式要素をグループに分類し、
前記新たな数式要素以外の入力済みの数式要素が属するグループを更新する場合には、入力済みの数式要素をグループに分類した際の前記仮定とは異なる数式要素が前記新たな数式要素として入力されたことを前記第1条件として入力済みの数式要素が属するグループを更新する、
請求項4に記載の数式処理装置。
【請求項6】
前記制御部は、
数式の入力が完了したことを指示する第3のユーザ操作に応じて、前記表示部に表示されている数式であって入力が完了した数式に従った演算処理を実行し、演算結果を前記表示部に表示させ、
前記第1処理は、前記第3のユーザ操作が行われる前に、前記第1のユーザ操作に応じて逐次実行される処理である、
請求項1に記載の数式処理装置。
【請求項7】
前記グループの分類は、演算の優先順位に対応した数式の階層構造および前記入力中の数式における複数の数式要素の入力順序に基づき行なわれる、
請求項1に記載の数式処理装置。
【請求項8】
前記複数の数式要素を、前記グループの分類に基づいて前記表示部に識別して表示させる処理は、前記分類されたグループ毎に決められた表示形態で表示させる処理である、
請求項2に記載の数式処理装置。
【請求項9】
前記数式の位置を指定する指定位置を、ユーザ操作に応じて移動させる処理は、前記分類されたグループ単位で移動させる処理である、
請求項3に記載の数式処理装置。
【請求項10】
前記グループの分類は、括弧で入力される数式要素の前記数式の階層構造に対応した分類を示す括弧レベルと、乗除算または加減算の演算子で入力される数式要素の前記数式の項に対応した分類を示す項レベルと、に基づいて行なわれる、
請求項1または請求項7に記載の数式処理装置。
【請求項11】
前記制御部は、
前記入力中の数式に新たな数式要素が追加されて行くのに応じて、前記新たな数式要素に対して、前記括弧レベルと前記項レベルとを設定する処理を実行し、
前記設定された前記括弧レベルと前記項レベルの何れかが切り替わった位置で、前記入力中の数式に含まれる複数の数式要素を識別できるように前記表示部に表示させる、
請求項10に記載の数式処理装置。
【請求項12】
前記制御部は、
前記数式に新たに追加した数式要素の位置に対応する数式要素と、前記数式の編集する数式要素の位置に対応する数式要素とを、特定の表示形態で前記表示部に識別表示させる処理を実行する、
請求項1または請求項3に記載の数式処理装置。
【請求項13】
前記第1条件は、前記新たな数式要素が乗除算の演算子であり且つ前記新たな数式要素の手前で入力済みの数式要素が加減算の数式要素に属するグループであることであり、
前記更新処理は、前記手前で入力済みの数式要素が属するグループを、前記乗除算の数式要素に属するグループに変更する処理である、
請求項4または請求項5に記載の数式処理装置。
【請求項14】
前記制御部は、
前記指定位置の数式要素に対応させてカーソルを表示させる処理を実行する、
請求項3または請求項9に記載の数式処理装置。
【請求項15】
数式処理装置の制御部により、
第1のユーザ操作により入力中の数式に新たな数式要素が追加されるのに応じて、前記新たな数式要素を前記数式の構造に基づき複数のグループのいずれかに分類するとともに、前記新たな数式要素以外の入力済みの数式要素が属するグループを更新する更新処理と、
前記入力中の数式を表示部に表示させる表示処理と、
前記更新されたグループの分類に基づいた前記入力中の数式の表示に係る第1処理と、
を行なうようにする数式処理方法。
【請求項16】
数式処理装置の制御部を、
第1のユーザ操作により入力中の数式に新たな数式要素が追加されるのに応じて、前記新たな数式要素を前記数式の構造に基づき複数のグループのいずれかに分類するとともに、前記新たな数式要素以外の入力済みの数式要素が属するグループを更新する更新処理と、
前記入力中の数式を表示部に表示させる表示処理と、
前記更新されたグループの分類に基づいた前記入力中の数式の表示に係る第1処理と、
を実行するように機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、数式処理装置、数式処理方法およびプログラムに関する。
【背景技術】
【0002】
従来の電子計算機において、入力された数式に含まれる複数の数式要素を、演算の優先順位に従って識別表示することで、入力した数式の計算順序を容易に確認できるようにした技術が知られている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011-107772号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
先行技術文献に開示された電子計算機では、既に入力を完了した階層構造を有する数式の計算順序を容易に確認することができるものの、入力中にある階層構造を有する数式の入力操作をサポートすることはできない。
【0005】
本発明が解決しようとする課題は、階層構造を有する数式の入力操作を容易に行なうことが可能になる数式処理装置、数式処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の数式処理装置は、第1のユーザ操作により入力中の数式に新たな数式要素が追加されるのに応じて、前記新たな数式要素を前記数式の構造に基づき複数のグループのいずれかに分類するとともに、前記新たな数式要素以外の入力済みの数式要素が属するグループを更新する更新処理と、前記入力中の数式を表示部に表示させる表示処理と、前記更新されたグループの分類に基づいた前記入力中の数式の表示に係る第1処理と、を実行する制御部を備える。
【発明の効果】
【0007】
本発明の数式処理装置によれば、階層構造を有する数式の入力操作を容易に行なうことが可能になる。
【図面の簡単な説明】
【0008】
図1】本発明の数式処理装置、数式処理方法およびプログラムの実施形態に係る関数電卓10の外観構成を示す正面図。
図2】関数電卓10において入力された数式と当該数式の各数式要素に対応して設定された項階層レベル(項レベル)および括弧階層レベル(括弧レベル)との関係を示す図。
図3】関数電卓10において入力された図2の数式に含まれる各数式要素を当該各数式要素に設定された項レベルと括弧レベルとに基づきグループ化して識別表示させた状態を示す図。
図4】関数電卓10の電子回路の構成を示すブロック図。
図5】関数電卓10の電卓制御プログラム14aに従った数式表示処理を示すフローチャート。
図6】関数電卓10の数式表示処理に含まれる階層レベル設定処理(S3)を示すフローチャート。
図7】関数電卓10の数式表示処理に含まれる階調決定処理(S4)を示すフローチャート。
図8A】関数電卓10の数式表示処理に従った数式の入力に伴い生成される数式要素リストデータ(14d)の内容(その1)を示す図。
図8B】関数電卓10の数式表示処理に従った数式の入力に伴い生成される数式要素リストデータ(14d)の内容(その2)を示す図。
図8C】関数電卓10の数式表示処理に従った数式の入力に伴い生成される数式要素リストデータ(14d)の内容(その3)を示す図。
図9】関数電卓10の数式表示処理に従った数式の入力に伴う表示動作(遷移状態(1)~(25))を示す図。
図10】関数電卓10において入力された数式に対するカーソルCrの移動状態を示す図。
図11】本発明の数式処理装置、数式処理方法およびプログラムの他の実施形態に係る数式処理システムの構成を示す図。
【発明を実施するための形態】
【0009】
以下図面を参照して本発明の実施の形態について説明する。
【0010】
(実施形態の構成)
図1は、本発明の数式処理装置、数式処理方法およびプログラムの実施形態に係る関数電卓10の外観構成を示す正面図である。
数式処理装置は、関数電卓10に限定されるものではなく、数式入力機能、数式表示機能、および演算機能を有した他の電子機器も含まれる。
【0011】
関数電卓10は、その携帯性の必要からユーザが片手で十分把持し片手で操作可能な小型サイズからなり、関数電卓10の本体正面にはキー入力部11、表示部12が設けられる。
キー入力部11には、数値や数式を入力したり計算の実行を指示したりするための数値・演算記号キー群111、各種の関数を入力したりメモリ機能を立ち上げたりするための関数機能キー群112、各種動作モードのメニュー画面を表示させたり動作モードの設定を指示したりするためのモード設定キー群113、表示部12に表示されたカーソルの移動操作やデータ項目の選択操作などを行なうためのカーソルキー114が備えられる。
【0012】
数値・演算記号キー群111としては、[0]~[9](数値)キー、[+][-][×][÷](四則記号)キー、[Ans][=](実行)キー、[AC](クリア)キーなどが配列される。
関数機能キー群112としては、[x-1](-1乗;逆数)キーをはじめ、[√□](ルート)キー、[□/□](分数)キー、[sin](サイン)キー、[cos](コサイン)キー、[tan](タンジェント)キーなどが配列される。
モード設定キー群113としては、[MODE](モード)キー、[SHIFT](シフト)キー113S、[ALPHA](アルファベット)キー、[ON](電源オン)キーなどが配列される。
カーソルキー114(操作部)は、[↑](上)キー、[↓](下)キー、[←](左)キー、[→](右)キーを含む。
【0013】
なお、数値・演算記号キー群111や関数機能キー群112のキーは、[SHIFT]キー113Sが操作された後に続けて操作されることで、そのキートップに記載されたキー機能ではなく、そのキーの上方に記載されたキーとして機能できるようになっている。例えば、[SHIFT]キー113Sの操作後に[AC]キーが操作(以下、[SHIFT]+[AC]キー等と記す。)されると[OFF](電源オフ)キーとなる。[SHIFT]+[OPTN]キーは[ID/通信]キーとなり、[SHIFT]+[RCL]キーは[STO](メモリ登録)キーとなる。また、[SHIFT]+カーソルキーはカーソルCrを目的の位置まで素早く移動させるためのカーソルジャンプキーとなる。
【0014】
表示部12は、ドットマトリクス型の液晶表示ユニットからなり、表示対象の画素(ドット)を時分割で電圧制御して駆動することにより、特有の駆動回路を設けることなく、色彩を多階調(実施形態では、グレースケール)で表現する多階調表示機能を有する。なお、階調の数とその色彩は限定されない。また表示部12は、カラー液晶表示ユニットであってもよい。
【0015】
実施形態の関数電卓10は、少なくとも以下(a)~(k)の機能を有する。
(a)キー入力部11の1回のキー操作が行なわれる毎に、キー操作に応じて入力される文字、数字、記号(演算記号、関数記号を含む)を、所定の表示形態で表示部12に表示させる機能。
(b)キー入力部11のキー操作に応じて数式を入力する機能。
(c)入力中の数式に含まれる数式要素について、数式要素リストデータ(14d:図8A図8C参照)を生成して管理し、新たな数式要素の追加に応じて更新する機能。
(d)新たな数式要素の追加に応じて、追加された数式要素を含む数式の階層構造および数式要素の入力順序に基づき、新たな数式要素の階層変数(階層レベル:項階層レベルと括弧階層レベルを含む)を設定し、設定した階層レベルに応じて複数の数式要素をグループ化する機能。実施形態において、数式要素の階層とは、当該数式要素が属する「項」または「加減算」または「乗除算」または「括弧」または「関数」などに基づき括られる(グループ化される)例えば演算の優先順位に対応した階層を意味する。ここでは、数式要素の項階層レベルと括弧階層レベルは、演算の優先順位に従った階層レベルを設定することを基本とするが、演算の優先順位には対応しない階層レベルを設定して複数の数式要素をグループ化してもよい。
(e)特定の数式要素(実施形態では、乗算・除算記号)が追加された場合、既に入力されている入力済みの数式要素に設定されている項階層レベルに基づいて、当該入力済みの数式要素の項階層レベルの変更が必要か否かを判定し、変更が必要と判定された項階層レベルを変更する機能。
(f)各数式要素の階層レベルおよび数式(数式要素)の入力中(編集中)か否かの状態に応じて、各数式要素の表示形態(表示階調や表示色を含む)を決定する機能。
(g)表示形態の変化可能な数(階調数や色数)に応じて、数式要素の階層レベルと表示形態との対応関係を変化させる機能。
(h)数式要素の追加に応じて入力済み(表示済み)の数式要素を含めて数式全体の表示形態を更新する機能。
(i)入力された数式の数式要素を編集する機能。
(j)数式の編集において、編集対象の数式要素の位置を指定するカーソルCrの位置(指定位置)を、数式要素に設定された階層レベルに応じた単位で移動させる機能。
(k)数式に対しカーソルCrの位置(指定位置)を移動させる単位を、数式要素である1文字(数字、記号)単位か、階層レベルに応じてグループ化したグループ単位か、の何れかにユーザ操作に応じて選択的に切り替える機能。
【0016】
図2は、関数電卓10において入力された数式と当該数式の各数式要素に対応して設定された項階層レベル(項レベル)および括弧階層レベル(括弧レベル)との関係を示す図である。
例えば、図2に示すような数式「123+…+543」が入力された場合、括弧レベルは、数式入力の遷移状態(3)~(13)に対応して括弧「( )」が掛かる各数式要素に括弧レベル“1”、遷移状態(19)~(23)に対応して関数「sin」が掛かる各数式要素に括弧レベル“2”、それ以外の各数式要素に括弧レベル“0”が設定される。また項レベルは、遷移状態(6)~(10)に対応して乗算「×」が掛かる各数式要素と、遷移状態(14)(15)に対応して乗算「×」が掛かる各数式要素とに、同じ項レベル“1”、それ以外の各数式要素に項レベル“0”が設定される。
これにより、図2に示す数式は、括弧レベル“2”に属する各数式要素が優先順位1位の数式要素、括弧レベル“1”で且つ項レベル“1”に属する各数式要素が優先順位2位の数式要素、括弧レベル“1”で且つ項レベル“0”に属する各数式要素が優先順位3位の数式要素、括弧レベル“0”で且つ項レベル“1”に属する各数式要素が優先順位4位の数式要素、括弧レベルおよび項レベルともに“0”に属する各数式要素が何れも同じ優先順位5位の数式要素としてグループ化される。
【0017】
図3は、関数電卓10において入力された図2の数式に含まれる各数式要素を当該各数式要素に設定された項レベルと括弧レベルとに基づきグループ化して識別表示させた状態を示す図である。
図3の(A)は、図2の数式のグループ化された各数式要素を、括弧階層レベル(括弧レベル)と項階層レベル(項レベル)とが切り替わる位置で表示階調を変化させて識別表示させた場合を示している。
図3の(B)は、図2の数式のグループ化された各数式要素を、括弧階層レベル(括弧レベル)が切り替わる位置で表示階調を変化させて識別表示させた場合を示している。
【0018】
図3の(A)と(B)とに示す何れの場合も、グループ化される各数式要素それぞれの表示階調を変化して識別表示させることで、ユーザは、数式の入力中は勿論、一旦入力した数式を編集する際も、数式の構造が分かり難くなることなく、長い数式であっても容易に入力操作を行なうことができる。
また、グループ化される各数式要素それぞれの表示階調は、例えば、入力(編集)中の項に対応する各数式要素を最大の階調とし、設定された階層レベルに基づき判定される演算の優先順位に従って順に階調を下げて変化させることで、数式の構造がより分かり易い状態で容易に入力操作を行なうことができる。
なお、グループ化される各数式要素それぞれを識別表示させるための表示形態の変化は、表示階調の変化に限らず、網掛けや太字などの文字修飾の変化、表示色の変化、あるいはその組み合わせであってよい。
【0019】
図4は、関数電卓10の電子回路の構成を示すブロック図である。
関数電卓10の電子回路は、キー入力部11、表示部12に加えて、コンピュータである制御部(CPU:central processing unit)13と、記憶部14と、記録媒体読取部15と、Bluetooth(登録商標)などの近距離無線通信部16と、を備えている。制御部13は、少なくとも一つのプロセッサを有している。
制御部13は、記憶部14に記憶されている電卓制御プログラム14aに従い回路各部の動作を制御し、キー入力部11からのキー入力信号および外部から通信部16を介して受信される受信信号に応じた各種の演算処理を実行する。
【0020】
電卓制御プログラム14aは、少なくとも前述の機能(a)~(k)を実行するためのプログラムを含む。
電卓制御プログラム14aは、記憶部14に予め記憶されていてもよいし、あるいはメモリカードなどの外部記録媒体Mから記録媒体読取部15を介して記憶部14に読み込まれて記憶されたものでもよいし、あるいは外部の通信ネットワークN上のWebサーバ(ここではプログラムサーバ)20から通信部16を介して記憶部14にダウンロードされ記憶されたものであってもよい。電卓制御プログラム14aは、ユーザがキー入力部11の操作によって書き換えできないようになっている。
【0021】
記憶部14には、さらに、数式データ記憶領域14b、階層変数データ記憶領域14c、数式要素リストデータ記憶領域14d、表示データ記憶領域14e、カーソル位置データ記憶領域14fおよび作業データ記憶領域14gなどの各種のデータ記憶領域が確保される。
数式データ記憶領域14bには、キー入力部11の操作に応じて入力された数式のデータ、演算結果のデータなどが記憶される。
階層変数データ記憶領域14cには、キー入力部11の操作に応じて数式の数式要素となる文字(数字、記号を含む)が1文字入力(追加)される毎に、当該追加された数式要素に対し設定する項階層変数(項階層レベル)または括弧階層変数(括弧階層レベル)のデータが記憶される。
数式要素リストデータ記憶領域14dには、数式要素が1文字入力(追加)される毎に、入力(追加)された数式要素と、当該追加された数式要素に対し設定される階層変数データ記憶領域14cに記憶された項階層レベル(項レベル)および括弧階層レベル(括弧レベル)と、入力済みの数式要素も含めた各数式要素に対し決定される表示階調と、を対応付けて一覧に生成した数式要素リストデータが記憶される(図8A図8C参照)。
なお、実施形態で説明する一例では、後述の動作説明にて詳述するが、新たに入力(追加)された数式要素が乗算記号または除算記号であって且つ階層変数データ記憶領域14cに記憶されている項階層レベル(項レベル)が“0”である(すなわち新たな数式要素の手前で入力された数式要素が乗除算記号である新たな数式要素と同じグループに属さなくなる)という予め定められた条件が満たされた場合、階層変数データ記憶領域14cの項階層レベル(項レベル)を“1”に変更し、入力(追加)された数式要素に対し項階層レベル(項レベル)“1”を設定すると共に、入力(追加)された数式要素(乗算記号または除算記号)の手前で入力された演算子(演算記号)の数式要素に掛かる全ての数値(数字)の数式要素に対し設定されている項階層レベルを+1して更新する。
表示データ記憶領域14eには、数式の数式要素が入力(追加)される毎に数式要素リストデータ記憶領域14dに記憶される入力済みの数式要素も含めた各数式要素とその表示階調に基づき生成された表示部12に表示させるための数式の表示データが記憶される。
カーソル位置データ記憶領域14fには、表示部12の表示画面(数式を入力する場合はその数式要素)に対する入力位置または編集位置に対応付けられて表示されるカーソルCrの位置(指定位置)を示すデータが記憶される。
作業データ記憶領域14gには、制御部13による各部の動作の制御に応じて生成または取得される各種のデータが必要に応じて一時的に記憶される。
【0022】
このように構成された関数電卓10(数式処理装置)は、制御部13が電卓制御プログラム14aに記述された命令に従い回路各部の動作を制御し、ソフトウエアとハードウエアとが協働して動作することにより、後述の動作説明で述べるような各種の機能を実現する。
【0023】
(実施形態の動作)
次に、実施形態の関数電卓10(数式処理装置)の動作について説明する。
<数式表示処理(第1処理)>
図5は、関数電卓10の電卓制御プログラム14aに従った数式表示処理を示すフローチャートである。
例えば[ON](電源オン)キーまたは[AC](クリア)キーの操作に応じて数式表示処理が起動されると、制御部13は、階層変数データ記憶領域14cに記憶される項階層変数(項階層レベル)および括弧階層変数(括弧階層レベル)を何れも“0”に初期化する(ステップS1)。
制御部13は、キー入力部11に対する数式入力のためのユーザ操作(第1のユーザ操作)に応じたキーの入力を待機し(ステップS2)、1文字(数字、記号を含む)入力される毎に(ステップS2(Yes))、入力された文字に応じて数式要素の階層レベルを設定する階層レベル設定処理(ステップS3:図6参照)と、設定された階層レベルに基づき数式要素の表示階調を決定する階調決定処理(ステップS4:図7参照)と、を実行する。
階層レベル設定処理(ステップS3)では、当該階層レベル設定処理を行なう都度、入力された数式要素の階層レベルを設定するが、これに伴い、予め定められた条件が満たされる場合には、入力済みの数式要素に設定されている階層レベルの設定し直し(更新)を行なう。
階調決定処理(ステップS4)では、当該階調決定処理を行なう都度、入力済みの全ての数式要素を含めた各数式要素の表示階調を改めて決定する。
制御部13は、決定された表示階調に応じて表示部12に数式要素を表示させ、入力された数式を構成する数式要素を順に表示させる(ステップS5)。
ステップS2~S5の処理が繰り返されることで複数の数式要素を含むユーザ任意の数式が入力されて表示され、入力の完了を示す[=](実行)キーが操作されると(第3のユーザ操作)(ステップS6(Yes))、制御部13は、表示された数式に従った演算処理を実行し、演算結果を表示部12に表示させる(ステップS7)。
【0024】
図6は、関数電卓10の数式表示処理に含まれる階層レベル設定処理(S3)を示すフローチャートである。
図7は、関数電卓10の数式表示処理に含まれる階調決定処理(S4)を示すフローチャートである。
図8Aは、関数電卓10の数式表示処理に従った数式の入力に伴い生成される数式要素リストデータ(14d)の内容(その1)を示す図である。
図8Bは、関数電卓10の数式表示処理に従った数式の入力に伴い生成される数式要素リストデータ(14d)の内容(その2)を示す図である。
図8Cは、関数電卓10の数式表示処理に従った数式の入力に伴い生成される数式要素リストデータ(14d)の内容(その3)を示す図である。
図9は、関数電卓10の数式表示処理に従った数式の入力に伴う表示動作(遷移状態(1)~(25))を示す図である。
ここでは、実施形態の一例として、ユーザが、図9に示すような数式「123+…+543」を入力する場合を仮定する。また、表示部12において表示可能な階調数を5階調(階調レベル4[黒]>階調レベル3[濃いグレー]>階調レベル2[グレー]>階調レベル1[薄いグレー]>階調レベル0[白])と仮定する。
また、図8A図8Cに示す数式要素リストデータ(14d)のセルにおいて、左端の「項階層変数」と「括弧階層変数」のセルの数値は、階層変数データ記憶領域14cに記憶される項階層レベル(項レベル)と括弧階層レベル(括弧レベル)を示している。
【0025】
<階層レベル設定処理(図6)>
制御部13は、ユーザ操作に応じて1文字入力された入力文字(数式要素)について、入力順が初回入力または入力順が2回目以降で入力文字の種類が前回の入力文字と同じであるか(ステップS31)、そうでない場合(ステップS31(No))、入力文字が括弧記号または関数付き括弧記号であるか(ステップS32)、そうでない場合(ステップS32(No))、入力文字が乗算記号(乗算演算子)または除算記号(除算演算子)であるか(ステップS33)、そうでない場合(ステップS33(No))、入力文字が加算記号(加算演算子)または減算記号(減算演算子)であるか(ステップS34)、を判定する。
【0026】
入力文字(数式要素)が初回入力または入力文字の種類が前回の入力文字と同じであると判定された場合(ステップS31(Yes))、または、入力文字(数式要素)が括弧記号または関数付き括弧記号、乗算記号または除算記号、加算記号または減算記号の何れでもないと判定された場合(ステップS32~S34(No))、制御部13は、入力文字(数式要素)に対応付けて、階層変数データ記憶領域14cに記憶されている項階層レベル(項レベル)と括弧階層レベル(括弧レベル)とを設定し、数式要素リストデータ(14d)に記憶させる(ステップS35)。
【0027】
入力文字(数式要素)が括弧記号または関数付き括弧記号であると判定された場合(ステップS32(Yes))、制御部13は、階層変数データ記憶領域14cに記憶されている括弧階層レベル(括弧レベル)を、開き括弧記号であれば+nして変更し、閉じ括弧記号であれば-nして変更する(通常の括弧記号の場合n=1、関数付き括弧記号の場合n=2以上)(ステップS39)。
そして制御部13は、開き括弧記号である場合(ステップS310(No))、入力文字(数式要素)(開き括弧記号)に対応付けて、階層変数データ記憶領域14cに記憶されている項階層レベル(項レベル)と括弧階層レベル(括弧レベル)とを設定し、数式要素リストデータ(14d)に記憶させる(ステップS35)。
一方、閉じ括弧記号である場合(ステップS310(Yes))、入力文字(数式要素)(閉じ括弧記号)に対応付けて、階層変数データ記憶領域14cに記憶されている項階層レベル(項レベル)と、ステップS39にて-n(減算)する前の括弧階層レベル(括弧レベル)とを設定し、数式要素リストデータ(14d)に記憶させる(ステップS311)。
【0028】
入力文字(数式要素)が乗算記号または除算記号であると判定された場合(ステップS33(Yes))、制御部13は、階層変数データ記憶領域14cに記憶されている項階層レベル(項レベル)が“0”であれば“1”に変更する。そして、入力文字(乗算記号または除算記号)の手前で入力された演算子(演算記号)に掛かる数値(数字)以降の全ての数式要素に対応付けられた項階層レベルを+1して設定し、数式要素リストデータ(14d)に記憶させる(ステップS38)。
【0029】
入力文字が加算記号または減算記号であると判定された場合(ステップS34(Yes))、制御部13は、階層変数データ記憶領域14cに記憶されている項階層レベルが“0”より大きい(“1”以上)か否かを判定する(ステップS36)。
ここで、階層変数データ記憶領域14cに記憶されている項階層レベルが“0”である場合には(ステップS36(No))、制御部13は、入力文字(数式要素)(加算記号または減算記号)に対応付けて、階層変数データ記憶領域14cに記憶されている項階層レベル(項レベル)と括弧階層レベル(括弧レベル)とを設定し、数式要素リストデータ(14d)に記憶させる(ステップS35)。
一方、階層変数データ記憶領域14cに記憶されている項階層レベルが“0”より大きい(“1”以上である)場合には(ステップS36(Yes))、制御部13は、当該階層変数データ記憶領域14cに記憶されている項階層レベルを-1して変更し(ステップS37)、入力文字(数式要素)(加算記号または減算記号)に対応付けて、階層変数データ記憶領域14cに記憶されている項階層レベル(項レベル)と括弧階層レベル(括弧レベル)とを設定し、数式要素リストデータ(14d)に記憶させる(ステップS35)。
【0030】
すなわち、階層レベル設定処理(ステップS31~S311)では、新たな数式要素の次に入力される数式要素が、入力中の数式の少なくとも1グループの数式要素の入力を完了させるための必要最小限の数式要素(演算子の次の1つの数値、閉じ括弧「)」、「=」など)であると仮定することにより、新たな数式要素の属すべきグループの階層レベルを設定する。また、新たな数式要素が仮定とは異なり手前で入力された数式要素を被演算数として同じグループに属すべき数式要素(乗除算記号)として入力されたことを条件に、入力済みの数式要素に設定されている階層レベルを新たな数式要素の属すべきグループの階層レベルに更新する。
【0031】
このような階層レベル設定処理(ステップS3)に基づいて、例えば図9に示すような数式「123+…+543」を入力した場合、各数式要素に対応付けられて設定される項階層レベル(項レベル)と括弧階層レベル(括弧レベル)とは、図8A図8Cに示すように生成される数式要素リストデータ(14d)に記憶される。
【0032】
遷移状態(1)として、数式要素[123]が入力されると(ステップS31(Yes))、図8Aに示すように、階層変数データ記憶領域14cに初期設定されて記憶されている項階層レベル“0”と括弧階層レベル“0”とが、入力された数式要素[123]のそれぞれに対応付けて数式要素リストデータ(14d)に記憶される(ステップS35)。
遷移状態(2)として、数式要素[+](加算記号)が入力されると(ステップS34(Yes)、階層変数データ記憶領域14cに記憶されている項階層レベル“0”と括弧階層レベル“0”とが、入力された数式要素[+]に対応付けて数式要素リストデータ(14d)に記憶される(ステップS36(No)→S35)。
遷移状態(3)として、数式要素[(](開き括弧記号)が入力されると(ステップS32(Yes))、階層変数データ記憶領域14cに記憶されている括弧階層レベルが+n(n=1)されて“1”に変更され(ステップS39)、入力された数式要素[(]に対応付けて、項階層レベル“0”と括弧階層レベル“1”とが数式要素リストデータ(14d)に記憶される(ステップS35)。
遷移状態(4)として、数式要素[456]が入力されると、ステップS31~S34(No)により、また、遷移状態(5)として、数式要素[+](加算記号)が入力されると、ステップS34(Yes)により、また、遷移状態(6)として数式要素[7]が入力されると、ステップS31~S34(No)により、何れの数式要素[456][+][7]にも、階層変数データ記憶領域14cに記憶されている項階層レベル“0”と括弧階層レベル“1”とを対応付けて、数式要素リストデータ(14d)に記憶される(ステップS35)。
【0033】
遷移状態(7)として、数式要素[×](乗算記号)が入力されると(ステップS33(Yes))、階層変数データ記憶領域14cに記憶されている項階層レベル“0”が+1されて“1”に変更されると共に、図8Aの符号aに示すように、数式要素リストデータ(14d)において、手前(遷移状態(5))で入力された演算子(演算記号)[+]に掛かる数値(数字)以降の全ての数式要素(ここでは[7][×])に対応付けて項階層レベル“1”と括弧階層レベル“1”とが設定されて記憶される(ステップS38)。
【0034】
遷移状態(8)として、数式要素[8]が入力されると、ステップS31~S34(No)により、また、遷移状態(9)として、数式要素[×](乗算記号)が入力されると、ステップS38により、また、遷移状態(10)として数式要素[9]が入力されると、ステップS31~S34(No)により、何れの数式要素[8][×][9]にも、図8Bに示すように、階層変数データ記憶領域14cに記憶されている項階層レベル“1”と括弧階層レベル“1”とを対応付けて、数式要素リストデータ(14d)に記憶される(ステップS35)。
遷移状態(11)として、数式要素[-](減算記号)が入力されると(ステップS34(Yes))、階層変数データ記憶領域14cに記憶されている項階層レベル“1”が-1されて“0”に変更され(ステップS36(Yes)→S37)、図8Bに示すように、入力された数式要素[-]に対応付けて、項階層レベル“0”と括弧階層レベル“1”とが数式要素リストデータ(14d)に記憶される(ステップS35)。
遷移状態(12)として、数式要素[987]が入力されると、ステップS31~S34(No)により、何れの数式要素[987]にも、図8Bに示すように、階層変数データ記憶領域14cに記憶されている項階層レベル“0”と括弧階層レベル“1”とを対応付けて、数式要素リストデータ(14d)に記憶される(ステップS35)。
遷移状態(13)として、数式要素[)](閉じ括弧記号)が入力されると(ステップS32(Yes))、図8Bに示すように、階層変数データ記憶領域14cに記憶されている括弧階層レベルが-n(n=1)されて“0”に変更され(ステップS39)、入力された数式要素[)]に対応付けて、項階層レベル“0”と減算(変更)前の括弧階層レベル“1”とが数式要素リストデータ(14d)に記憶される(ステップS310(Yes)→S311)。
【0035】
遷移状態(14)として、数式要素[×](乗算記号)が入力されると(ステップS33(Yes))、図8Bに示すように、階層変数データ記憶領域14cに記憶されている項階層レベル“0”が+1されて“1”に変更され、数式要素リストデータ(14d)において、入力された数式要素[×]に対応付けて項階層レベル“1”と括弧階層レベル“0”とが設定されて記憶される(ステップS38)。
【0036】
遷移状態(15)~(18)として、数式要素[654][-][321][-]が入力されると、前述同様の階層レベル設定処理に従い、図8Bに示すように、数式要素リストデータ(14d)には、入力された数式要素[654]に対応付けて項階層レベル“1”と括弧階層レベル“0”とが設定されて記憶され、また、入力された数式要素[-][321][-]に対応付けて、何れも項階層レベル“0”と括弧階層レベル“0”とが設定されて記憶される。
【0037】
遷移状態(19)として、数式要素[sin(](関数付き括弧記号)が入力されると(ステップS32(Yes))、図8Bに示すように、階層変数データ記憶領域14cに記憶されている括弧階層レベルが+n(n=2)されて“2”に変更され(ステップS39)、入力された数式要素[sin(]に対応付けて、項階層レベル“0”と括弧階層レベル“2”とが数式要素リストデータ(14d)に記憶される(ステップS35)。
なお、数式要素の関数記号[sin]と括弧記号[(]とは、実際には別々にキー入力されるが、ここでは説明の便宜上1回でキー入力されたと仮定している。
【0038】
遷移状態(20)~(22)として、数式要素[7][+][1]が入力されると、前述同様の階層レベル設定処理に従い、図8Cに示すように、数式要素リストデータ(14d)には、入力された数式要素[7][+][1]に対応付けて、何れも階層変数データ記憶領域14cに記憶されている項階層レベル“0”と括弧階層レベル“2”とが設定されて記憶される。
【0039】
遷移状態(23)として、数式要素[)](関数付き閉じ括弧記号)が入力されると(ステップS32(Yes))、図8Cに示すように、階層変数データ記憶領域14cに記憶されている括弧階層レベルが-n(n=2)されて“0”に変更され(ステップS39)、入力された数式要素[)]に対応付けて、項階層レベル“0”と減算(変更)前の括弧階層レベル“2”とが数式要素リストデータ(14d)に記憶される(ステップS310(Yes)→S311)。
遷移状態(24)(25)として、数式要素[+][543]が入力されると、前述同様の階層レベル設定処理に従い、数式要素リストデータ(14d)には、入力された数式要素[+][543]に対応付けて、何れも階層変数データ記憶領域14cに記憶されている項階層レベル“0”と括弧階層レベル“0”とが設定されて記憶される。
【0040】
このように、階層レベル設定処理に従い、入力される数式「123+…+543」に対応する数式要素リストデータ(14d)が生成されることで、括弧「( )」が掛かる各数式要素に括弧レベル“1”、関数「sin」が掛かる各数式要素に括弧レベル“2”、それ以外の各数式要素に括弧レベル“0”を設定できる。また、乗算「×」が掛かる各数式要素に、項レベル“1”、それ以外の各数式要素に項レベル“0”が設定できる。
従って、図9に示す数式「123+…+543」は、括弧レベル“2”に属する各数式要素を優先順位1位の数式要素、括弧レベル“1”で且つ項レベル“1”に属する各数式要素を優先順位2位の数式要素、括弧レベル“1”で且つ項レベル“0”に属する各数式要素を優先順位3位の数式要素、括弧レベル“0”で且つ項レベル“1”に属する各数式要素を優先順位4位の数式要素、括弧レベルおよび項レベルともに“0”に属する各数式要素を何れも同じ優先順位5位の数式要素としてグループ化できる。
【0041】
<階調決定処理(図7)>
階調決定処理(S4)では、数式要素の入力(1文字入力:ステップS2)に応じて階層レベル設定処理(図6:S3)により入力された数式要素の階層レベルが設定される毎に、入力済みの数式要素を含めた各数式要素を対象として表示階調を決定する。
階調決定処理に移行されると、制御部13は、入力中の数式内での最大の括弧レベルBmaxを取得する。また、括弧レベルの階調範囲となる階調幅Wを、表示部12の最大階調(ここでは5階調)から[黒]に相当する1階調分と[白]に相当する1階調分とを引いた階調幅W(=3)として決める(ステップS41)。
制御部13は、数式要素の入力(1文字入力)に応じて階層レベル設定処理(S3)により入力された数式要素の階層レベルが設定される毎に、以下のステップS42~S47に係る処理を、数式要素リストデータ(14d)に記憶されている入力済みの数式要素を含めた各数式要素の1つ1つに対して繰り返し実行する。
【0042】
制御部13は、入力済みの数式要素を含めた各数式要素を対象として、カーソルCrが位置する入力中の項または選択中の項に属する場合(ステップS42(Yes))、最大階調(階調レベル4[黒])を設定し(ステップS43)、表示階調を“4”(特定の表示形態)に決定して図8A図8Cで示した数式要素リストデータ(14d)の該当する数式要素に対応付けて記憶させる(ステップS47)。
【0043】
対象とする数式要素が入力中の項または選択中の項に属さない場合(ステップS42(No))、制御部13は、数式要素リストデータ(14d)に記憶された該当する数式要素の括弧レベルが、入力中の項の数式要素に対応付けられた括弧レベルより上か否かを判定する(ステップS44)。
対象とする数式要素に対応付けられた括弧レベルが、入力中の項の数式要素に対応付けられた括弧レベル以下であり(ステップS44(No))、且つ入力中の項の括弧レベル“2”のときで対象とする数式要素の括弧レベルが“1”以上ではない場合(ステップS44a(No))、制御部13は、最低階調(階調レベル1[薄いグレー])を設定し(ステップS45)、表示階調を“1”に決定して図8A図8Cで示した数式要素リストデータ(14d)の該当する数式要素に対応付けて記憶させる(ステップS47)。
【0044】
対象とする数式要素が入力中の項または選択中の項に属さず(ステップS42(No))、且つ、対象とする数式要素に対応付けられた括弧レベルが、入力中の項の数式要素に対応付けられた括弧レベルより上である場合(ステップS44(Yes))、または、入力中の項の数式要素に対応付けられた括弧レベル以下であるが入力中の項の括弧レベルが“2”のときで対象とする数式要素の括弧レベルが“1”以上ある場合(ステップS44(No)→S44a(Yes))、制御部13は、入力中の数式内での最大の括弧レベルBmaxと、対象とする自分の数式要素の括弧レベルとを比較する(ステップS46)。
入力中の数式内での最大の括弧レベルBmaxと、対象とする自分の数式要素の括弧レベルとの間にレベル差が存在し、且つ、階調幅W(ここではW=3)が2階調以上あれば、当該階調幅W(1:薄いグレー/2:グレー/3:濃いグレー)の間でレベル差に応じた表示階調を設定し(ステップS46)、数式要素リストデータ(14d)の該当する数式要素に対応付けて記憶させる(ステップS47)。
【0045】
例えば、図8Cで示したように、入力中の数式内での最大の括弧レベルBmax(=2)であって、対象とする自分の数式要素の括弧レベルが“1”である場合、そのレベル差は“-1”となるので、階調幅W(=3)のうち最大の括弧レベルBmaxの数値要素に設定すべき表示階調(階調レベル3[濃いグレー])から1階調引き下げた表示階調(階調レベル2[グレー])を設定する。
なお、入力中の数式内での最大の括弧レベルBmaxが、対象とする自分の数式要素の括弧レベルと等しい場合、階調幅W(=3)のうち最大の括弧レベルBmaxの数値要素に設定すべき表示階調(階調レベル3[濃いグレー])を設定する。
また、入力中の数式内での最大の括弧レベルBmaxが階調幅Wを上回る場合、表示階調の設定のみでは、括弧レベルに応じた数式要素の識別表示は行ない切れないので、例えば、より高い括弧レベルの設定を要する関数付きの括弧に属する数式要素については、他の表示形態を設定して識別表示する構成としてもよい。
【0046】
このような階調決定処理(図7:S4)に基づいて、図9で示したように数式「123+…+543」を入力した場合、数式要素を入力(1文字入力)する毎に、入力済みの数式要素も含めた各数式要素に対応付けられて決定される表示階調は、図8A図8Cに示すように、数式要素リストデータ(14d)に記憶され、決定された表示階調に従い数式中の各数式要素が順次更新されながら表示される(図5:ステップS5)。
【0047】
すなわち、遷移状態(1)(2)として、数式要素[123][+]が入力された状態では、図8Aに示すように、入力された数式要素[123][+]のそれぞれに対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。制御部13は、図9に示すように、入力された数式(数式要素)「123+」を表示階調4の[黒](特定の表示形態)で表示部12に表示させる(ステップS5)。
遷移状態(3)として、数式要素[(]が入力された状態では、入力済みの数式要素[123][+]のそれぞれに対応付けて最低階調(階調レベル1[薄いグレー])が設定され(ステップS44,S44a(No)→S45)、また入力された数式要素[(]に対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。制御部13は、図9に示すように、入力済みの数式要素「123+」を表示階調1の[薄いグレー]で、また入力された数式要素[(]を表示階調4の[黒]で表示部12に表示させる(ステップS5)。
遷移状態(4)~(13)として、数式要素[456][+]…[987][)]が順次入力されて行く状態でも、遷移状態(3)の場合と同様に、図8A図8Bに示すように、入力済みの数式要素のうち入力中の項に属さない数式要素に対応付けて最低階調(階調レベル1[薄いグレー])が設定され(ステップS44,S44a(No)→S45)、入力中の項に属する数式要素に対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。
制御部13は、図9に示すように、遷移状態(4)~(13)の各々において、入力中の項に属する各数式要素「456+」「7×8×9」「-987」「)」を表示階調4の[黒]で順次表示させて行くと共に、その項以前で入力済みの各数式要素「123+(」「123+(456+」「123+(456+7×8×9」「123+(456+7×8×9-987」を表示階調1の[薄いグレー]で順次表示させて行く(ステップS5)。
【0048】
遷移状態(14)として、数式要素[×]が入力された状態では、図8Bに示すように、入力済みの数式要素のうち、入力中の項ではなく括弧レベルが“0”である数式要素[123][+]のそれぞれに対応付けて最低階調(階調レベル1[薄いグレー])が設定され(ステップS44,S44a(No)→S45)、また入力中の項(数式要素[×])の括弧レベル“0”より上の括弧レベル“1”である数式要素[(][456][+]…[-][987][)]のそれぞれに対応付けて階調レベル3[濃いグレー]が設定され(ステップS44(Yes)→S46)、また入力された数式要素[×]に対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。
制御部13は、図9に示すように、入力済みの数式要素「123+」を表示階調1の[薄いグレー]で、入力済みの数式要素「(456+7×8×9-987)」を表示階調3の[濃いグレー]で、入力された数式要素[×]を表示階調4の[黒]で表示部12に表示させる(ステップS5)。
【0049】
遷移状態(15)~(18)として、数式要素[654][-][321][-]が順次入力されて行く状態でも、遷移状態(14)の場合と同様に、図8Bに示すように、入力済みの数式要素のうち入力中の項に属さず且つ入力中の項の括弧レベル以下の数式要素に対応付けて最低階調(階調レベル1[薄いグレー])が設定され(ステップS44,S44a(No)→S45)、入力中の項の括弧レベルより上の数式要素に対応付けて階調レベル3[濃いグレー]が設定され(ステップS44(Yes)→S46)、入力中の項に属する数式要素に対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。
制御部13は、図9に示すように、遷移状態(15)~(18)の各々において、入力中の項に属する各数式要素「×654」「-321」「-」を表示階調4の[黒]で順次表示させて行くと共に、その項以前で入力済みの各数式要素「123+」と「×654-321-」とを表示階調1の[薄いグレー]で、括弧で括られた各数式要素「(456+7×8×9-987)」を表示階調3の[濃いグレー]で順次表示させて行く(ステップS5)。
【0050】
遷移状態(19)として、数式要素[sin(]が入力された状態では、図8Bに示すように、入力済みの数式要素「123+」と「×654-321」のそれぞれに対応付けて最低階調(階調レベル1[薄いグレー])が設定され(ステップS44,S44a(No)→S45)、入力済みの数式要素「(456+7×8×9-987)」のそれぞれに対応付けて階調レベル2[グレー]が設定され(ステップS44,S44a(Yes)→S46)、入力中の項に属する数式要素「-sin(」に対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。
制御部13は、図9に示すように、入力済みの数式要素「123+」と「×654-321」とを表示階調1の[薄いグレー]で、括弧で括られた各数式要素「(456+7×8×9-987)」を表示階調2の[グレー]で、入力中の項に属する数式要素「-sin(」を表示階調4の[黒]で表示部12に表示させる(ステップS5)。
【0051】
遷移状態(20)(21)として、数式要素[7][+]が入力された状態では、図8Cに示すように、入力済みの数式要素のうち、入力中の項ではなく括弧レベルが“0”である数式要素[123+][×654-321-]のそれぞれに対応付けて最低階調(階調レベル1[薄いグレー])が設定され(ステップS44,S44a(No)→S45)、入力中の項(数式要素[7+])の括弧レベル“2”のときで括弧レベル“1”である数式要素[(456+…-987)]のそれぞれに対応付けて階調レベル2[グレー]が設定される(ステップS44(No)→S44a(Yes)→S46)。また、入力中の項(数式要素[7][+])の括弧レベル“2”のときで括弧レベル“1”以上である数式要素[sin(]に対応付けて階調レベル3[濃いグレー]が設定され(ステップS44(No)→S44a(Yes)→S46)、入力中の項(数式要素[7][+])に対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。
制御部13は、図9に示すように、入力済みの数式要素「123+」と「×654-321-」とを表示階調1の[薄いグレー]で、入力済みの括弧で括られた数式要素「(456+7×8×9-987)」を表示階調2の[グレー]で、入力済みの関数の数式要素「sin(」を表示階調3の[濃いグレー]で、入力された数式要素[7][+]を表示階調4の[黒]で表示部12に表示させる(ステップS5)。
【0052】
遷移状態(22)~(25)として、数式要素[1][)][+][543]が順次入力されて行く状態でも、遷移状態(21)の場合と同様に、図8Cに示すように、入力済みの数式要素のうち入力中の項に属さず且つ入力中の項の括弧レベル以下の数式要素に対応付けて最低階調(階調レベル1[薄いグレー])が設定され(ステップS44,S44a(No)→S45)、入力中の項の括弧レベル“2”のときで括弧レベル“1”以上である数式要素に対応付けて階調レベル2[グレー]と階調レベル3[濃いグレー]とが設定され(ステップS44(No)→S44a(Yes)→S46)、入力中の項に属する数式要素に対応付けて最大階調(階調レベル4[黒])が設定される(ステップS42(Yes)→S43)。
制御部13は、図9に示すように、遷移状態(22)~(25)の各々において、入力中の項に属する各数式要素「+1」「)」「+543」を表示階調4の[黒](特定の表示形態)で順次表示させて行くと共に、その項以前で入力済みの各数式要素「123+」と「×654-321-」とを表示階調1の[薄いグレー]で、括弧で括られた各数式要素「(456+7×8×9-987)」を表示階調2の[グレー]で、関数に掛かる各数式要素「sin(7+1)」を表示階調3の[濃いグレー]で順次表示させて行く(ステップS5)。
【0053】
このように、制御部13は、ユーザが数式を入力する過程において、その数式要素が入力(1文字入力)される毎に、階層レベル設定処理(S3)に従いグループ化される各数式要素に対応付けて、階調決定処理(S4)に従い階層レベルに応じた表示階調を決定し、当該グループ化された各数式要素を、例えば演算の優先順位に対応して識別表示させる。ユーザは、長い数式であっても数式の構造が分かり難くなることなく、容易に入力操作を行なうことができる。
【0054】
<数式上でのカーソル移動処理(図10:第1処理)>
図10は、関数電卓10において入力された数式に対するカーソルCrの移動状態を示す図である。
関数電卓10の階層レベル設定処理(図6:S3)および階調決定処理(図7:S4)に従い、ユーザ操作に応じて入力された数式「123+…-321」が、例えば図10に示すように表示部12に表示されていると仮定する。
図10(A)では、ユーザが数式「123+…-321」の入力を終えて、カーソルCrが当該数式の末尾から外れた位置まで移動し、数式の全体が同じ表示階調(例えば、階調レベル4[黒])で表示された状態を示している。
【0055】
図10(A)において、数式を編集する場合に、[SHIFT]+カーソルキー(ここでは[←](左))(カーソルジャンプキー)を操作すると、制御部13は、図10(B)~図10(E)に示すように、カーソルジャンプキー([SHIFT]+[←])が操作される(第2のユーザ操作)毎に、当該数式に対応して生成されている数式要素リストデータ(14d)の各数式要素の階層レベル(項レベルと括弧レベル)に基づいて、カーソルCrの指定位置を各数式要素のグループ単位(ここでは項単位)で数式の末尾側から先頭側へ順次ジャンプして移動させる。カーソルジャンプキー([SHIFT]+[→](右))が操作されると、カーソルCrの指定位置を各数式要素のグループ単位(項単位)で数式の先頭側から末尾側へ順次ジャンプして移動させる。
カーソルCrが数式内の数式要素の位置に表示されている状態では、前述したように、数式要素リストデータ(14d)の各数式要素に対応付けられた表示階調に従って、数式内の各数式要素は、グループ化された数式要素毎に識別表示される。
【0056】
なお、[SHIFT]キー113Sの操作を加えることなく、カーソルキー114を単独で操作した場合、カーソルCrの指定位置は数式内の数式要素を1文字単位で移動して表示されるのは言うまでもない。ユーザは、カーソルキー114を操作する前に[SHIFT]キー113Sの操作を加えるか否かにより、数式に対しカーソルCrを移動させる単位を選択的に切り替えることができる。
【0057】
このような数式表示処理(図5図7)とカーソル移動処理(図10)により、ユーザは、数式の構造が分かり難くなることなく、容易に入力操作を行なうことができるばかりでなく、数式を編集する際には、対象とする数式要素の位置までカーソルCrを素早く移動させて効率的に編集操作を行なうことができる。
【0058】
(実施形態のまとめ)
実施形態の関数電卓10(数式処理装置)によれば、制御部13は、数式の数式要素(数字、記号、演算記号、関数記号など)が1文字ずつ入力される毎に、入力された数式要素に対応付けて、当該数式要素が、乗除算の項またはそれ以外の項に属するかを数値で示す項階層レベルと括弧または関数に掛かる項に属するかを数値で示す括弧階層レベルとを設定して数式要素リストデータ記憶領域14dに順次追加(更新)して記憶させる。また設定された項階層レベルと括弧階層レベルとに基づき、入力済みの数式要素も含めて当該数式要素に対応付ける表示階調(表示形態)を決定し、数式要素リストデータ(14d)に順次追加(更新)して記憶させる。そして、入力された数式要素を決定された表示階調(表示形態)に従った表示形態で表示部12に順次追加(更新)して表示させる。
これにより、表示部12に順次追加されながら表示される各数式要素は、項階層レベルと括弧階層レベルとに基づきグループ化(分類)された数式要素毎に異なる表示形態で識別表示される。
【0059】
また、制御部13は、表示部13において入力(または編集)の対象となる数式中の数式要素の位置を示すカーソルCrを、[SHIFT]キー113S+カーソルキー114([←]または[→])(カーソルジャンプキー)の操作に応じて、各数式要素のグループ単位で左の方向(数式の末尾から先頭に向かう方向)または右の方向(数式の先頭から末尾に向かう方向)へ移動して表示させる。
これにより、数式を編集する際には、対象とする数式要素の位置までカーソルCrを素早く移動させて効率的な編集操作を行なえる。
ユーザは、数式の入力中は勿論、一旦入力した数式を編集する際も、数式の構造が分かり難くなることなく、長い数式であっても容易に入力操作を行なうことができる。
【0060】
また、実施形態の関数電卓10(数式処理装置)によれば、制御部13は、グループ化される各数式要素それぞれの表示階調を、例えば、入力(編集)中の項に対応する各数式要素を最大の階調とし、設定された階層レベルに基づき判定される演算の優先順位に従って順に階調を下げて変化させることで、ユーザは、数式の構造がより分かり易い状態で容易に入力操作を行なうことができる。
【0061】
よって、実施形態の関数電卓10(数式処理装置)によれば、階層構造を有する数式の入力操作を容易に行なうことが可能になる。
【0062】
(他の実施形態)
図11は、本発明の数式処理装置、数式処理方法およびプログラムの他の実施形態に係る数式処理システムの構成を示す図である。
前述した実施形態では、関数電卓10あるいは数式入力機能、数式表示機能、および演算機能を有した他の電子機器(数式処理装置)に電卓制御プログラム(14a)、階層変数データ(14c)、数式要素リストデータ(14d)およびカーソル位置データ(14f)を記憶させ、電子機器(10)の単体で、数式表示機能、階層レベル設定機能、階調決定機能およびカーソル移動機能を含む各種の機能を実現する構成とした。
これに限らず、例えば図11の数式処理システムに示すように、通信ネットワークN上に設けた数式処理サーバ30(数式処理装置)のデータベースDBに前述した電卓制御プログラム(14a)、階層変数データ(14c)、数式要素リストデータ(14d)およびカーソル位置データ(14f)を記憶させ、通信ネットワークNに接続可能なタブレット端末40やPC50などの通信端末(ユーザ端末)から数式処理サーバ30に通信接続し、前述した実施形態と同様の各種の機能を実現する構成としてもよい。
この場合、例えばタブレット端末40のタッチパネル表示部12には、数式処理サーバ30により関数電卓10のエミュレータ画面Emが表示される。ユーザは、前述した実施形態と同様の操作により、数式の入力、表示および演算を行なうことができる。
【0063】
以上の各実施形態において記載した関数電卓10(数式処理装置)による各処理の手法、すなわち、図5のフローチャートに示す数式表示処理、図6のフローチャートに示す階層レベル設定処理、図7のフローチャートに示す階調決定処理、図10の表示動作に示すカーソル移動処理などの各手法は、何れもコンピュータに実行させることができるプログラムとして、メモリカード(ROMカード、RAMカードなど)、磁気ディスク(フロッピ(登録商標)ディスク、ハードディスクなど)、光ディスク(CD-ROM、DVDなど)、半導体メモリなどの外部記録装置の媒体に格納して配布することができる。そして、数式処理装置(電子機器)の制御部(CPU)は、この外部記録装置の媒体に記録されたプログラムを記憶装置に読み込み、この読み込んだプログラムによって動作が制御されることにより、各実施形態において説明した各種の機能を実現し、前述した手法による同様の処理を実行することができる。
【0064】
また、各手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク(N)上を伝送させることができ、この通信ネットワーク(N)に接続されたコンピュータ装置(プログラムサーバ)から、前記プログラムのデータを数式処理装置(電子機器)に取り込んで記憶装置に記憶させ、前述した各種の機能を実現することもできる。
【0065】
なお、本発明は、実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【0066】
10 …関数電卓(数式処理装置)
11 …キー入力部
12 …表示部
13 …制御部(CPU)
14 …記憶部
14a…電卓制御プログラム
14b…数式データ記憶領域
14c…階層変数データ記憶領域
14d…数式要素リストデータ記憶領域
14e…表示データ記憶領域
14f…カーソル位置データ記憶領域
20 …Webサーバ
30 …数式処理サーバ(数式処理装置)
Em …関数電卓エミュレータ画面
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図8C
図9
図10
図11