(57)【要約】【課題】自然表示形式で表示された数式内で適切に編集対象位置を移動させる。【解決手段】関数電卓１においては、ディスプレイ３に自然表示形式の数式とカーソルＣＲとが表示される（図（ａ））。この状態で方向キー２４が操作された場合には、数式内で適切にカーソルＣＲが移動する（図（ｂ）〜（ｄ））。【選択図】図１０
2007264765.tif 000002
【特許請求の範囲】
【請求項１】
入力された数式を、当該数式の数式構成要素ごとに配置し編集可能に自然表示する数式編集装置であって、
自然表示された数式上に編集対象位置を表示する編集対象位置表示手段と、
ユーザ操作により、編集対象位置の数式構成要素ごとの移動方向を入力する移動方向入力手段と、
この移動方向入力手段の操作に応答して、前記自然表示された数式中の各数式構成要素との対応位置のうち、移動元の編集対象位置に対して前記移動方向に位置し、かつ、移動元の前記編集対象位置に対して前後方向で最も近接する最適移動先位置を検出する最適移動先位置検出手段と、
前記最適移動先位置に前記編集対象位置を移動表示させる編集対象位置移動表示手段と、
を有することを特徴とする数式編集装置。
【請求項２】
請求項１記載の数式編集装置において、
前記最適移動先位置検出手段は、
前記自然表示された数式中の各数式構成要素との対応位置のうち、移動元の前記編集対象位置とは異なる計算処理単位に対応し、移動元の前記編集対象位置に対して前記移動方向に位置し、かつ、移動元の前記編集対象位置に対して前後方向で最も近接する最適移動先位置を検出することを特徴とする数式編集装置。
【請求項３】
請求項２記載の数式編集装置において、
前記最適移動先位置検出手段は、
前記自然表示された数式中の各数式構成要素との対応位置のうち、移動元の前記編集対象位置とは異なる計算処理単位に対応し、かつ、移動元の前記編集対象位置に対して前記移動方向に位置する何れか１つの対応位置を仮の移動先位置として設定した後、
前記自然表示された数式中の各数式構成要素との対応位置のうち、前記何れか１つの対応位置とは異なり、移動元の前記編集対象位置とは異なる計算処理単位に対応し、移動元の前記編集対象位置に対して前記移動方向に位置し、かつ、設定済みの前記仮の移動先位置よりも移動元の前記編集対象位置に対して前後方向で近接する、との位置移動条件を満たす対応位置を、前記仮の移動先位置として順次設定し直すことにより、
最終的に設定される前記仮の移動先位置を、前記最適移動先位置として検出することを特徴とする数式編集装置。
【請求項４】
請求項１〜３の何れか一項に記載の数式編集装置において、
前記最適移動先位置検出手段は、前記最適移動先位置として、前記自然表示された数式中の文字または変数との対応位置を検出することを特徴とする数式編集装置。
【請求項５】
請求項１〜４の何れか一項に記載の数式編集装置において、
移動元の前記編集対象位置に基づいて、前記最適移動先位置検出手段による前記最適移動先位置の検出範囲を設定する検出範囲設定手段を備えることを特徴とする数式編集装置。
【請求項６】
請求項５記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が積分演算における式部分である場合に、
前記移動方向が上方向または左方向のときには、前記自然表示された数式における積分演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における積分演算の下限値部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における積分演算部分よりも右側の部分を前記検出範囲とすることを特徴とする数式編集装置。
【請求項７】
請求項５または６記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が積分演算における下限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における積分演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における積分演算部分以外の部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における積分演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における積分演算の式部分を前記検出範囲とすることを特徴とする数式編集装置。
【請求項８】
請求項５〜７の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が積分演算における上限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における積分演算部分以外の部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における積分演算の下限値部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における積分演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における積分演算の式部分を前記検出範囲とすることを特徴とする数式編集装置。
【請求項９】
請求項５〜８の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における式部分である場合に、
前記移動方向が上方向または左方向のときには、前記自然表示された数式における総和演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算の下限値部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算部分よりも右側の部分を前記検出範囲とすることを特徴とする数式編集装置。
【請求項１０】
請求項５〜９の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における変数部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における総和演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算部分以外の部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における総和演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算の下限値部分を前記検出範囲とすることを特徴とする数式編集装置。
【請求項１１】
請求項５〜１０の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における下限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における総和演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算部分以外の部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における総和演算の変数部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算の式部分を前記検出範囲とすることを特徴とする数式編集装置。
【請求項１２】
請求項５〜１１の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における上限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における総和演算部分以外の部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算の下限値部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における総和演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算の式部分を前記検出範囲とすることを特徴とする数式編集装置。
【請求項１３】
請求項１〜１２の何れか一項に記載の数式編集装置において、
前記最適移動先位置検出手段は、
前記最適移動先位置が移動元の前記編集対象位置よりも前側である場合には、この最適移動先位置と対応する数式構成要素の直後に前記編集対象位置を移動させることを特徴とする数式編集装置。
【請求項１４】
入力された数式を、当該数式の数式構成要素ごとに配置し編集可能に自然表示するコンピュータに、
自然表示された数式上に編集対象位置を表示する編集対象位置表示機能と、
ユーザ操作により、編集対象位置の数式構成要素ごとの移動方向を入力する移動方向入力機能と、
この移動方向入力機能の操作に応答して、前記自然表示された数式中の各数式構成要素のうち、移動元の編集対象位置に対して前記移動方向に位置し、かつ、移動元の前記編集対象位置に対して前後方向で最も近接する最適移動先位置を検出する最適移動先位置検出機能と、
前記最適移動先位置に前記編集対象位置を移動表示させる編集対象位置移動表示機能と、
を実現させることを特徴とする数式編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数式編集装置及び数式編集プログラムに関する。
【背景技術】
【０００２】
従来から、入力される各種数式の演算を実行して演算結果を表示する電卓（電子卓上計算機）として、四則演算の他に三角関数や対数関数などの演算を行うことができる関数電卓と呼ばれるものがある。
【０００３】
このような関数電卓においては、入力した数式を表示する形式として、少ない行数での表示形式（以下、「１行表示形式」とする）と、一般的な教科書や書籍などに表されている表示形式（以下、「自然表示形式」とする）とがある。例えば、ａの２乗を表す場合に、１行表示形式では「ａ＾２」と表示され、自然表示形式では「ａ2」と表示される（例えば、特許文献１参照）。
【０００４】
ところで、関数電卓に既に入力した数式を編集する場合には、カーソルによって示される編集対象位置を所望の位置まで移動させる必要がある。
【特許文献１】特開平４−２５２３５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、自然表示形式で表示された数式内でカーソル（編集対象位置）を所望の方向、特に上下方向に移動させようとしても、実際には１行の数式データを対象として処理を行うため、編集対象位置が適切に移動されない場合がある。
【０００６】
本発明の課題は、自然表示形式で表示された数式内で適切に編集対象位置を移動させることのできる数式編集装置及び数式編集プログラムを提供することである。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、入力された数式を、当該数式の数式構成要素ごとに配置し編集可能に自然表示する数式編集装置（例えば、図１の関数電卓１）であって、
自然表示された数式上に編集対象位置を表示する編集対象位置表示手段（例えば、図２の表示部１２；図５のステップＳ３）と、
ユーザ操作により、編集対象位置の数式構成要素ごとの移動方向を入力する移動方向入力手段（例えば、図１の方向キー２４及びシフトキー２６；図５のステップＳ４〜ステップＳ５（Ｙｅｓ））と、
この移動方向入力手段の操作に応答して、前記自然表示された数式中の各数式構成要素との対応位置のうち、移動元の編集対象位置に対して前記移動方向に位置し、かつ、移動元の前記編集対象位置に対して前後方向で最も近接する最適移動先位置を検出する最適移動先位置検出手段（例えば、図２のＣＰＵ８及び数式編集プログラム６０；図６のステップＳ１０〜ステップＳ２３）と、
前記最適移動先位置に前記編集対象位置を移動表示させる編集対象位置移動表示手段（例えば、図２の表示部１２；図６のステップＳ２４）と、
を有することを特徴とする。
【０００８】
ここで、数式構成要素とは、数式を構成する要素であり、例えば数字や変数、演算記号などである。
また、自然表示するとは、自然表示形式で表示することである。
また、編集対象位置とは、数式構成要素の削除や変更、追加（入力）等の行われる位置である。
また、前後方向とは、数式の先頭と末尾とを結ぶ方向であり、一般には左右方向である。
【０００９】
請求項２記載の発明は、請求項１記載の数式編集装置において、
前記最適移動先位置検出手段は、
前記自然表示された数式中の各数式構成要素との対応位置のうち、移動元の前記編集対象位置とは異なる計算処理単位に対応し、移動元の前記編集対象位置に対して前記移動方向に位置し、かつ、移動元の前記編集対象位置に対して前後方向で最も近接する最適移動先位置を検出することを特徴とする。
【００１０】
ここで、計算処理単位とは、計算処理の行われる単位であり、例えば数字や変数、分数の分母及び分子のほか、積分演算における式部分、上限値部分及び下限値部分、総和演算における式部分、上限値部分、変数部分及び下限値部分、三角関数部分などである。但し、計算処理単位は、計算処理の行われる最小単位でなくても良い。例えば、複数の最小単位の計算処理単位が括弧で括られている場合などには、当該括弧内の部分全体を１つの計算処理単位としても良い。また、積分演算部分や総和演算部分の全体を１つの計算処理単位としても良い。
【００１１】
請求項３記載の発明は、請求項２記載の数式編集装置において、
前記最適移動先位置検出手段は、
数式中の数式構成要素との対応位置のうち、移動元の前記編集対象位置とは異なる計算処理単位に対応し、かつ、移動元の前記編集対象位置に対して前記移動方向に位置する何れか１つの対応位置を仮の移動先位置として設定した後、
数式中の数式構成要素との対応位置のうち、前記何れか１つの対応位置とは異なり、移動元の前記編集対象位置とは異なる計算処理単位に対応し、移動元の前記編集対象位置に対して前記移動方向に位置し、かつ、設定済みの前記仮の移動先位置よりも移動元の前記編集対象位置に対して前後方向で近接する、との位置移動条件を満たす対応位置を、前記仮の移動先位置として順次設定し直すことにより、
最終的に設定される前記仮の移動先位置を、前記最適移動先位置として検出することを特徴とする。
【００１２】
請求項４記載の発明は、請求項１〜３の何れか一項に記載の数式編集装置において、
前記最適移動先位置検出手段は、前記最適移動先位置として、前記自然表示された数式中の文字または変数との対応位置を検出することを特徴とする。
【００１３】
請求項５記載の発明は、請求項１〜４の何れか一項に記載の数式編集装置において、
移動元の前記編集対象位置に基づいて、前記最適移動先位置検出手段による前記最適移動先位置の検出範囲を設定する検出範囲設定手段（例えば、図２の検索範囲テーブル６１；図６のステップＳ１５）を備えることを特徴とする。
【００１４】
請求項６記載の発明は、請求項５記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が積分演算における式部分である場合に、
前記移動方向が上方向または左方向のときには、前記自然表示された数式における積分演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における積分演算の下限値部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における積分演算部分よりも右側の部分を前記検出範囲とすることを特徴とする。
【００１５】
請求項７記載の発明は、請求項５または６記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が積分演算における下限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における積分演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における積分演算部分以外の部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における積分演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における積分演算の式部分を前記検出範囲とすることを特徴とする。
【００１６】
請求項８記載の発明は、請求項５〜７の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が積分演算における上限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における積分演算部分以外の部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における積分演算の下限値部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における積分演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における積分演算の式部分を前記検出範囲とすることを特徴とする。
【００１７】
請求項９記載の発明は、請求項５〜８の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における式部分である場合に、
前記移動方向が上方向または左方向のときには、前記自然表示された数式における総和演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算の下限値部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算部分よりも右側の部分を前記検出範囲とすることを特徴とする。
【００１８】
請求項１０記載の発明は、請求項５〜９の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における変数部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における総和演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算部分以外の部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における総和演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算の下限値部分を前記検出範囲とすることを特徴とする。
【００１９】
請求項１１記載の発明は、請求項５〜１０の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における下限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における総和演算の上限値部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算部分以外の部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における総和演算の変数部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算の式部分を前記検出範囲とすることを特徴とする。
【００２０】
請求項１２記載の発明は、請求項５〜１１の何れか一項に記載の数式編集装置において、
前記検出範囲設定手段は、
移動元の前記編集対象位置が総和演算における上限値部分である場合に、
前記移動方向が上方向のときには、前記自然表示された数式における総和演算部分以外の部分を前記検出範囲とし、
前記移動方向が下方向のときには、前記自然表示された数式における総和演算の下限値部分を前記検出範囲とし、
前記移動方向が左方向のときには、前記自然表示された数式における総和演算部分よりも左側の部分を前記検出範囲とし、
前記移動方向が右方向のときには、前記自然表示された数式における総和演算の式部分を前記検出範囲とすることを特徴とする。
【００２１】
請求項１３記載の発明は、請求項１〜１２の何れか一項に記載の数式編集装置において、
前記最適移動先位置検出手段は、
前記最適移動先位置が移動元の前記編集対象位置よりも前側である場合には、この最適移動先位置と対応する数式構成要素の直後に前記編集対象位置を移動させることを特徴とする。
【００２２】
請求項１４記載の発明は、数式編集プログラム（例えば、図２の数式編集プログラム６０）であって、
入力された数式を、当該数式の数式構成要素ごとに配置し編集可能に自然表示するコンピュータ（例えば、図１の関数電卓１）に、
自然表示された数式上に編集対象位置を表示する編集対象位置表示機能（例えば、図５のステップＳ３）と、
ユーザ操作により、編集対象位置の数式構成要素ごとの移動方向を入力する移動方向入力機能（例えば、図５のステップＳ４〜ステップＳ５（Ｙｅｓ））と、
この移動方向入力機能の操作に応答して、前記自然表示された数式中の各数式構成要素のうち、移動元の編集対象位置に対して前記移動方向に位置し、かつ、移動元の前記編集対象位置に対して前後方向で最も近接する最適移動先位置を検出する最適移動先位置検出機能（例えば、図６のステップＳ１０〜ステップＳ２３）と、
前記最適移動先位置に前記編集対象位置を移動表示させる編集対象位置移動表示機能（例えば、図６のステップＳ２４）と、
を実現させることを特徴とする。
【発明の効果】
【００２３】
請求項１，１４記載の発明によれば、自然表示された数式中の各数式構成要素との対応位置のうち、移動元の編集対象位置とは異なり、移動元の編集対象位置に対して移動方向に位置し、かつ、移動元の編集対象位置に対して前後方向で最も近接する最適移動先位置が検出されるので、１行の数式データを対象として処理を行う場合であっても、自然表示形式で表示される数式内での適切な移動先が検出される。従って、従来と異なり、自然表示形式で表示された数式内で適切に編集対象位置を移動させることができる。
【００２４】
請求項２記載の発明によれば、自然表示された数式中の各数式構成要素との対応位置のうち、移動元の前記編集対象位置とは異なる計算処理単位に対応する最適移動先位置が検出されるので、同一の計算処理単位内で編集対象位置が移動するのを防止し、より適切に編集対象位置を移動させることができる。
【００２５】
請求項３記載の発明によれば、請求項２記載の発明と同様の効果を得ることができる。
請求項４記載の発明によれば、請求項１〜３の何れか一項に記載の発明と同様の効果を得ることができる。
【００２６】
請求項５記載の発明によれば、移動元の編集対象位置に基づいて最適移動先位置の検出範囲が設定されるので、自然表示された数式の全範囲から最適移動先位置を検出する場合と比較して、最適移動先位置の検出を高速化することができる。
【００２７】
請求項６〜１２記載の発明によれば、請求項１〜５の何れか一項に記載の発明と同様の効果を得ることができる。
【００２８】
請求項１３記載の発明によれば、最適移動先位置が移動元の編集対象位置よりも前側である場合には、最適移動先位置と対応する数式構成要素の直後に編集対象位置が移動されるので、移動先の編集対象位置が編集対象の数式構成要素に対して移動元の編集対象位置側となる。従って、より適切に編集対象位置を移動させることができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明に係る数式編集装置の適用された関数電卓について、図を参照しながら説明する。
［１．構成］
［１．１  外観構成］
図１に、この関数電卓１の正面図を示す。
この図に示すように、関数電卓１は、各種キー群２と、ディスプレイ３とを備えている。
【００３０】
各種キー群２は、ユーザから数値や演算記号等の数式構成要素の入力操作を受けたり、各種処理の指示操作を受けたりするためのキー群であり、それぞれ固有の機能を割り当てられた複数のキーを備えている。本実施の形態においては、各種キー群２は、テンキー２０、演算キー２１、ＥＸＥキー２２、ＤＥＬキー２３、方向キー２４、シフトキー２６および電源キー２９等を備えて構成されている。
【００３１】
このうち、テンキー２０は数値の入力操作を受けるキーであり、演算キー２１は各種演算記号の入力操作を受けるキーである。ここで、演算記号には、括弧や四則演算などの一般演算記号のほかに、特殊演算記号が含まれる。特殊演算記号とは、本実施の形態においては、式部分と式部分以外の数式構成要素とに基づいて行われる演算の記号であり、例えば、式部分と上限値及び下限値とに基づいて行われる演算である積分演算の記号「∫」や、式部分と変数、上限値及び下限値とに基づいて行われる演算である総和演算の記号「Σ」などがある。
【００３２】
ＥＸＥキー２２は、関数電卓１に対し処理の実行や決定の指示操作を受けるキーであり、例えば数式の入力後には演算処理の実行を指示するキーとして機能するようになっている。ＤＥＬキー２３は、ディスプレイ３に表示されている数値や演算子、括弧などの数式構成要素の削除操作を受けるキーである。
【００３３】
方向キー２４は、ディスプレイ３に表示されている数式中で編集対象位置を示すカーソルＣＲを所定の移動方向に数式構成要素ごとに移動させたり、機能を選択したりする場合等に押下されるキーであり、本実施の形態においては、上下左右の４方向について入力可能に構成されている。
【００３４】
シフトキー２６は、他のキーと組み合わせて押下する際に利用するキーであり、本実施の形態においては、方向キー２４と組み合わせて押下されることにより、後述の特殊移動処理処理（図６参照）の実行を指示するようになっている。電源キー２９は、関数電卓１の電源を投入／切断するためのキーである。
【００３５】
ディスプレイ３は、各種キー群２の押下に応じた文字や符号、数式、演算結果などの他、関数電卓１を使用するために必要な各種データが表示される部分である。このディスプレイ３は、各種キー群２を介して入力された数式を、当該数式の各数式構成要素ごとに配置して自然表示形式で表示し、更に、自然表示された数式上にカーソルＣＲを表示するようになっている。なお、以下の説明においては、説明の便宜上、ディスプレイ３の左右方向をＸ方向、上下方向をＹ方向とする。また、本実施の形態におけるディスプレイ３は、ドットマトリクス液晶で構成されているものとして説明するが、例えば、ＴＦＴ（Thin Film Transistor）液晶であったり、ＰＤＰ（Plasma Display Panel）であったり他の表示装置でも良いことは勿論である。
【００３６】
［１．２  機能構成］
続いて、関数電卓１の機能構成について説明する。
図２は、関数電卓１の機能構成を示すブロック図である。この図に示すように、関数電卓１は入力部１１、表示部１２、テキストバッファメモリ１３、ＲＯＭ（Read Only Memory）６、ＲＡＭ（Random Access Memory）７及びＣＰＵ（Central Processing Unit）８等の機能部を備えており、各機能部はバス１０で接続されている。
【００３７】
［１．２．１  入出力部等］
入力部１１は、上述の各種キー群２を備えており、押下されたキーの信号をＣＰＵ８に出力するようになっている。
表示部１２は、上述のディスプレイ３を備えており、ＣＰＵ８からの信号に基づいて各種情報をディスプレイ３に表示するようになっている。
【００３８】
［１．２．２  記憶装置］
テキストバッファメモリ１３は、図３（ｂ）に示すように、ディスプレイ３に表示される数式の数式データを１文字ごとにメモリアドレスと対応付けた状態で記憶するものであり、より詳細には、数式データを１文字ごとに文字コードとして記憶するようになっている。
【００３９】
ここで、数式データには、数字や変数、演算記号などの数式構成要素のデータの他、前後の数式構成要素を区別するための区切り記号のデータが含まれる。また、本実施の形態においては、区切り記号として「，」（図中、メモリアドレス「１０」等参照）が用いられている。
なお、図３（ｂ）では、カーソルＣＲに対応するメモリアドレス（以下、カーソル対応アドレスとする）「２８」を網掛けして示している。
【００４０】
ＲＯＭ６は、図２に示すように、関数電卓１におけるメニュー表示処理や各種設定処理、各種演算処理等の動作に係る各種プログラムや、関数電卓１の備える種々の機能を実現するためのプログラム等を格納しており、本実施の形態においては、本発明に係る数式編集プログラム６０と、検索範囲テーブル６１とを記憶している。
【００４１】
数式編集プログラム６０は、後述の数式編集処理（図５参照）をＣＰＵ８に実行させるためのプログラムである。
検索範囲テーブル６１は、数式編集処理における後述の特殊移動処理（図６参照）においてカーソル移動先の検索対象範囲、より詳細には、テキストバッファメモリ１３内で検索対象となるメモリアドレスの領域（以下、検索範囲アドレスとする）を設定するためのテーブルであり、本実施の形態においては、図４に示すように、特殊演算の種類と、現在のカーソル位置と、方向キー２４により指定される移動方向と、カーソル移動先の検索対象範囲とを対応付けている。
【００４２】
この検索範囲テーブル６１によれば、例えば現在のカーソル位置が特殊演算「積分」の「上限値部分」であり、移動方向が「下」である場合には、積分演算の下限値部分と対応する検索範囲アドレスが検索対象範囲として設定される。
【００４３】
ＲＡＭ７は、図２に示すように、ＣＰＵ８が実行する各種プログラムや、これらのプログラムの実行に係るデータ等を一時的に保持する随時書き込み可能なメモリであり、本実施形態においては、移動元情報記憶領域７０及び仮移動先情報記憶領域７１を有している。
【００４４】
移動元情報記憶領域７０は、現在のカーソル位置情報を記憶する領域であり、本実施の形態においては、方向キー２４の操作によってカーソルＣＲの移動が指示された場合に、移動元（現在）のカーソル位置情報を記憶するようになっている。ここで、カーソル位置情報は、ディスプレイ３におけるカーソルＣＲの表示座標と、テキストバッファメモリ１３におけるカーソル対応アドレスとを含んでいる。
【００４５】
仮移動先情報記憶領域７１は、後述の特殊移動処理（図６参照）において、仮移動先のカーソル位置情報を記憶する領域である。
【００４６】
［１．２．３  ＣＰＵ］
ＣＰＵ８は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行うようになっている。具体的には、ＣＰＵ８は、入力部１１から入力される操作信号に応じて、ＲＯＭ６中のプログラムを読み出してＲＡＭ７に展開し、当該プログラムに従って処理を実行する。そして、ＣＰＵ８は、処理結果を表示するための表示制御信号を適宜表示部１２に出力して、対応した表示情報を表示させる。
【００４７】
［２  関数電卓の動作］
続いて、関数電卓１の動作について説明する。図５〜図８は、ＣＰＵ８がＲＯＭ６から数式編集プログラム６０を読み出して実行する数式編集処理の動作を説明するためのフローチャートである。
【００４８】
まず、図５に示すように、各種キー群２の操作によってユーザにより数式が入力されると（ステップＳ１）、ＣＰＵ８は、各数式構成要素を上下左右に配置して表示部１２に数式を自然表示させた後（ステップＳ２）、ユーザ操作に基づいて数式中の所定の位置にカーソルＣＲを表示させる（ステップＳ３）。
【００４９】
この状態でユーザが方向キー２４を操作すると（ステップＳ４）、ＣＰＵ８は、関数電卓１が特殊状態となっているか否か、本実施の形態においてはシフトキー２６が押下されている状態であるか否かを判定する（ステップＳ５）。
【００５０】
このステップＳ５において関数電卓１が特殊状態となっていないと判定した場合（ステップＳ５；Ｎｏ）には、ＣＰＵ８は、カーソルＣＲの通常移動処理として、方向キー２４の指示方向にカーソルＣＲを移動させる処理を行った後（ステップＳ６）、キー群２の操作待機状態となり（ステップＳ８）、数式編集処理を終了する。なお、この通常移動処理としては、従来より公知のカーソル移動処理を用いることができる。
【００５１】
一方、ステップＳ５において関数電卓１が特殊状態となっていると判定した場合（ステップＳ５；Ｙｅｓ）には、ＣＰＵ８は、カーソルＣＲの特殊移動処理を行う（ステップＳ７）。
【００５２】
具体的には、図６に示すように、まずＣＰＵ８は、現在のカーソル位置情報、つまり移動元のカーソル位置情報をＲＡＭ７の移動元情報記憶領域７０に記憶させる（ステップＳ１０）。
【００５３】
次に、ＣＰＵ８は、テキストバッファメモリ１３における数式先頭部分のメモリアドレスを読み込み対象のメモリアドレス（以下、読込対象アドレスとする）とした後（ステップＳ１１）、ＲＡＭ７の仮移動先情報記憶領域７１を初期化する（ステップＳ１２）。
【００５４】
次に、ＣＰＵ８は、移動元情報記憶領域７０内の情報に基づいて、現在のカーソル対応アドレスが特殊演算に使用される数式構成要素の位置であるか否か、つまり特殊演算の使用対象の位置であるか否かを判定する（ステップＳ１３）。
【００５５】
このステップＳ１３において現在のカーソル対応アドレスが特殊演算の使用対象の位置ではないと判定した場合（ステップＳ１３；Ｎｏ）には、ＣＰＵ８は、テキストバッファメモリ１３中で文字コードを記憶している全領域のメモリアドレスをカーソル移動先の検索範囲アドレスとして設定した後（ステップＳ１４）、後述のステップＳ１７の処理に移行する。
【００５６】
一方、ステップＳ１３において現在のカーソル対応アドレスが特殊演算の使用対象の位置であると判定した場合（ステップＳ１３；Ｙｅｓ）には、ＣＰＵ８は、検索範囲テーブル６１（図４参照）に基づいて、テキストバッファメモリ１３の所定領域のメモリアドレスをカーソル移動先の検索範囲アドレスとして設定した後（ステップＳ１５）、この検索範囲アドレス内の先頭部分のアドレスを読込対象アドレスとする（ステップＳ１６）。
【００５７】
次に、ＣＰＵ８は、読込対象アドレスのテキストバッファメモリ１３から１文字分の文字コードを読み込んだ後（ステップＳ１７）、ステップＳ１４またはステップＳ１５で設定された検索範囲アドレスを超えて読み込みしたか否かを判定する（ステップＳ１８）。
【００５８】
このステップＳ１８において検索範囲アドレスを超えて読み込みしていないと判定した場合（ステップＳ１８；Ｎｏ）には、ＣＰＵ８は、ステップＳ１７で読み込んだ文字コードが変数コードまたは数字コードであるか否かを判定し（ステップＳ１９）、変数コードでも数字コードでもないと判定した場合（ステップＳ１９；Ｎｏ）には、テキストバッファメモリ１３の読込対象アドレスに１を加えた後（ステップＳ２０）、上述のステップＳ１７の処理に移行する。また、ステップＳ１９において文字コードが変数コードまたは数字コードであると判定した場合（ステップＳ１９；Ｙｅｓ）には、ＣＰＵ８は、ステップＳ１７におけるテキストバッファメモリ１３の読込対象アドレスの数式構成要素と対応するカーソル位置を計算する（ステップＳ２１）。
【００５９】
次に、ＣＰＵ８は、カーソル移動先の仮決定処理を行う（ステップＳ２２）。
具体的には、図７に示すように、まずＣＰＵ８は、上述のステップＳ１（図５参照）で操作された方向キー２４による移動方向と、移動元情報記憶領域７０、仮移動先情報記憶領域７１及びテキストバッファメモリ１３内の情報等とに基づいて、条件（１）〜条件（３）が満たされるか否かを順に判定する（ステップＳ３０〜ステップＳ３２）。
【００６０】
ここで、条件（１）〜条件（３）は、カーソルＣＲの仮の移動先位置を検出するための条件であり、より詳細には、図９に示すように、ステップＳ３０における条件（１）は、算出されたカーソル位置が現在のカーソル位置に対して移動方向にある、との条件である。また、ステップＳ３１における条件（２）は、既に仮移動先情報記憶領域７１に位置情報の記憶されている仮移動先のカーソル位置よりも、算出されたカーソル位置がＸ方向において現在のカーソル位置に近い、との条件である。また、ステップＳ３２における条件（３）は、算出されたカーソル位置が現在のカーソル位置と異なる計算処理対象に対応している、との条件であり、本実施の形態においては、数式データ内で両カーソル位置の間に区切り記号または演算記号がある、との条件である。
【００６１】
そして、図７に示すように、これらステップＳ３１〜ステップＳ３３において全ての条件が満たされる場合（ステップＳ３１〜ステップＳ３３；Ｙｅｓ）には、ＣＰＵ８は、仮移動先情報記憶領域７１内の仮移動先のカーソル位置情報を、ステップＳ２１で算出されたカーソル位置情報に更新して（ステップＳ３４）、カーソル移動先の仮決定処理（ステップＳ２２）を終了し、上述のステップＳ２０の処理に移行する。また、ステップＳ３１〜ステップＳ３３において何れかの条件が満たされない場合（ステップＳ３１〜ステップＳ３３；Ｎｏ）には、ＣＰＵ８は、仮移動先のカーソル位置情報の更新は行わずにカーソル移動先の仮決定処理（ステップＳ２２）を終了し、上述のステップＳ２０の処理に移行する。
【００６２】
以降、ステップＳ１７〜ステップＳ２２を繰り返すことにより、数式中の変数又は数字との対応位置のうち、現在のカーソル位置とは異なる計算処理対象に対応し、現在のカーソル位置に対して移動方向に位置し、かつ、現在のカーソル位置に対してＸ方向で最も近接する対応位置、つまり適切な移動先のカーソル位置が検出され、そのカーソル位置情報が仮移動先情報記憶領域７１に記憶される。
【００６３】
一方、上述のステップＳ１８において検索範囲アドレスを超えて読み込みしたと判定した場合（ステップＳ１８；Ｙｅｓ）には、ＣＰＵ８は、仮移動先のカーソル位置情報の補正処理を行う（ステップＳ２３）。
【００６４】
具体的には、図８に示すように、まずＣＰＵ８は、移動元情報記憶領域７０及び仮移動先情報記憶領域７１内の情報に基づき、カーソル位置が左方向に移動するか否か、つまり、仮移動先のカーソル位置が現在のカーソル位置よりも左に位置するか否かを判定する（ステップＳ４０）。
【００６５】
このステップＳ４０においてカーソル位置が左方向に移動すると判定した場合（ステップＳ４０；Ｙｅｓ）には、ＣＰＵ８は、仮移動先情報記憶領域７１に記憶されたカーソル位置情報の前記カーソル対応アドレスに１を加えた後（ステップＳ４１）、カーソル位置の補正処理（ステップＳ２３）を終了する。これにより、移動先のカーソル位置が編集対象の数式構成要素に対して現在のカーソル位置側となる。
【００６６】
また、ステップＳ４０においてカーソル位置が左方向に移動しないと判定した場合（ステップＳ４０；Ｎｏ）には、ＣＰＵ８は、そのままカーソル位置の補正処理（ステップＳ２３）を終了する。
【００６７】
そして、図６，図５に示すように、ＣＰＵ８は、仮移動先情報記憶領域７１内の情報に基づいて自然表示形式の数式内に移動先のカーソルＣＲを表示させ（ステップＳ２４）、特殊移動処理（ステップＳ７）を終了した後、キー群２の操作待機状態となり（ステップＳ８）、数式編集処理を終了する。
【００６８】
［２．１  動作例］
続いて、上記の数式編集処理を具体的に説明する。
【００６９】
［２．１．１  動作例（１）］
まず、図１０（ａ）の内容がディスプレイ３に表示されている状態（ステップＳ１〜ステップＳ３）で方向キー２４の左キーとシフトキー２６とが操作されると（ステップＳ４）、ＣＰＵ８は、関数電卓１が特殊状態となっていると判定し（ステップＳ５；Ｙｅｓ）、移動元のカーソル位置情報を移動元情報記憶領域７０に記憶させる（ステップＳ１０）。ここで、図１１（ａ）に示すように、移動元のカーソル位置情報のカーソル対応アドレスとしては、メモリアドレス「２８」が記憶される。
【００７０】
次に、ＣＰＵ８は、数式先頭部分のメモリアドレス「１」を読込対象アドレスとし（ステップＳ１１）、仮移動先情報記憶領域７１を初期化した後（ステップＳ１２）、現在のカーソル対応アドレスが特殊演算の使用対象の位置ではないと判定し（ステップＳ１３；Ｎｏ）、テキストバッファメモリ１３中で文字コードを記憶している全領域のメモリアドレス「１」〜「３８」をカーソル移動先の検索対象アドレスとして設定する（ステップＳ１４）。
【００７１】
次に、ＣＰＵ８は、読込対象アドレス「１」のテキストバッファメモリ１３から文字「１」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「１」の文字コードが数字コードである（ステップＳ１９；Ｙｅｓ）と判定する。
【００７２】
次に、ＣＰＵ８は、読込対象アドレス「１」の数式構成要素「１」と対応するカーソル位置を計算する（ステップＳ２１）。
【００７３】
次に、ＣＰＵ８は、算出されたカーソル位置が現在のカーソル位置に対して移動方向「左」にあり（ステップＳ３０；Ｙｅｓ）、算出されたカーソル位置が仮移動先のカーソル位置（ここでは未設定）よりもＸ方向において現在のカーソル位置に近く（ステップＳ３１；Ｙｅｓ）、算出されたカーソル位置が現在のカーソル位置と異なる計算処理対象に対応している（ステップＳ３２；Ｙｅｓ）と判定した後、図１１（ｂ）に示すように、仮移動先情報記憶領域７１内の仮移動先のカーソル位置情報を算出されたカーソル位置情報に更新して（ステップＳ３４）、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００７４】
次に、ＣＰＵ８は、読込対象アドレス「２」のテキストバッファメモリ１３から文字「＋」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「＋」の文字コードが変数コードでも数字コードでもない（ステップＳ１９；Ｎｏ）と判定し、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００７５】
同様に、ＣＰＵ８は、読込対象アドレス「３」，「４」のテキストバッファメモリ１３から文字「∫」，「（」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「∫」，「（」の文字コードが変数コードでも数字コードでもない（ステップＳ１９；Ｎｏ）と判定し、図１１（ｃ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００７６】
次に、ＣＰＵ８は、読込対象アドレス「５」のテキストバッファメモリ１３から文字「ｘ」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「ｘ」の文字コードが変数コードである（ステップＳ１９；Ｙｅｓ）と判定する。
【００７７】
次に、ＣＰＵ８は、読込対象アドレス「５」の数式構成要素「ｘ」と対応するカーソル位置を計算する（ステップＳ２１）。
【００７８】
次に、ＣＰＵ８は、算出されたカーソル位置が現在のカーソル位置に対して移動方向「左」にあり（ステップＳ３０；Ｙｅｓ）、算出されたカーソル位置が仮移動先のカーソル位置よりもＸ方向において現在のカーソル位置に近く（ステップＳ３１；Ｙｅｓ）、算出されたカーソル位置が現在のカーソル位置と異なる計算処理対象に対応している（ステップＳ３２；Ｙｅｓ）と判定した後、図１１（ｄ）に示すように、仮移動先情報記憶領域７１内の仮移動先のカーソル位置情報を算出されたカーソル位置情報に更新して（ステップＳ３４）、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００７９】
次に、ＣＰＵ８は、読込対象アドレス「６」，「７」のテキストバッファメモリ１３から文字「＾」，「（」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「＾」，「（」の文字コードが変数コードでも数字コードでもない（ステップＳ１９；Ｎｏ）と判定し、図１１（ｅ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００８０】
以降、上記と同様にして、ＣＰＵ８は、メモリアドレス「８」，「１１」，「１３」，「１７」，「２０」，「２３」を仮移動先のカーソル対応アドレスとして、仮移動先情報記憶領域７１内の仮移動先のカーソル情報を順次更新した後（ステップＳ３４）、図１１（ｆ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００８１】
次に、ＣＰＵ８は、読込対象アドレス「２４」，「２５」のテキストバッファメモリ１３から文字「＾」，「（」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「＾」，「（」の文字コードが変数コードでも数字コードでもない（ステップＳ１９；Ｎｏ）と判定し、図１２（ａ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００８２】
次に、ＣＰＵ８は、読込対象アドレス「２６」のテキストバッファメモリ１３から文字「１」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「１」の文字コードが数字コードである（ステップＳ１９；Ｙｅｓ）と判定する。
【００８３】
次に、ＣＰＵ８は、読込対象アドレス「２６」の数式構成要素「１」と対応するカーソル位置を計算する（ステップＳ２１）。
【００８４】
次に、ＣＰＵ８は、算出されたカーソル位置が現在のカーソル位置に対して移動方向「左」にあり（ステップＳ３０；Ｙｅｓ）、算出されたカーソル位置が仮移動先のカーソル位置よりもＸ方向において現在のカーソル位置に近く（ステップＳ３１；Ｙｅｓ）、算出されたカーソル位置が現在のカーソル位置と異なる計算処理対象に対応してはいない（ステップＳ３２；Ｎｏ）と判定した後、図１２（ｂ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００８５】
同様に、ＣＰＵ８は、読込対象アドレス「２７」〜「３１」のテキストバッファメモリ１３から文字「２」，「３」，「４」，「５」，「６」の文字コードを読み込み（ステップＳ１７）、読込対象アドレス「２７」〜「３１」の数式構成要素「２」〜「６」と対応するカーソル位置を計算した後（ステップＳ２１）、算出された各カーソル位置が現在のカーソル位置と異なる計算処理対象に対応してはいない（ステップＳ３２；Ｎｏ）と判定し、図１２（ｃ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００８６】
次に、ＣＰＵ８は、読込対象アドレス「３２」〜「３５」のテキストバッファメモリ１３から文字「）」，「）」，「）」，「＋」の文字コードを読み込み（ステップＳ１７）、読み込んだ文字「）」，「）」，「）」，「＋」の文字コードが変数コードでも数字コードでもない（ステップＳ１９；Ｎｏ）と判定し、図１２（ｄ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００８７】
次に、ＣＰＵ８は、読込対象アドレス「３６」，「３７」，「３８」のテキストバッファメモリ１３から文字「１」，「２」，「３」の文字コードを読み込み（ステップＳ１７）、読込対象アドレス「３６」，「３７」，「３８」の数式構成要素「１」〜「３」と対応するカーソル位置を計算した後（ステップＳ２１）、算出された各カーソル位置が現在のカーソル位置に対して移動方向「左」にない（ステップＳ３０；Ｎｏ）と判定した後、図１２（ｅ）に示すように、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００８８】
次に、ＣＰＵ８は、読込対象アドレス「３９」のテキストバッファメモリ１３から文字「３」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１」〜「３８」を超えて読み込みしており（ステップＳ１８；Ｙｅｓ）、カーソル位置が左方向に移動する（ステップＳ４０；Ｙｅｓ）と判定し、図１２（ｆ）に示すように、仮移動先情報記憶領域７１に記憶されたカーソル対応アドレスに１を加える（ステップＳ４１）。
【００８９】
そして、ＣＰＵ８は、図１０（ｂ）に示すように、仮移動先情報記憶領域７１内の情報に基づいて、メモリアドレス「２４」と対応する位置（ここではメモリアドレス「２３」の文字「２」の後）にカーソルＣＲを表示させた後（ステップＳ２４）、キー群２の操作待機状態となり（ステップＳ８）、数式編集処理を終了する。
【００９０】
なお、上記の動作例と同様にして、図１０（ａ）の内容が表示されている状態で方向キー２４の右キーとシフトキー２６とが操作されると、図１０（ｃ）に示すように、メモリアドレス「２６」と対応する位置にカーソルＣＲが表示されることとなり、方向キー２４の下キーとシフトキー２６とが操作されると、図１０（ｄ）に示すように、メモリアドレス「２４」と対応する位置（ここではメモリアドレス「２３」の文字「２」の後）にカーソルＣＲが表示されることとなる。
【００９１】
［２．１．２  動作例（２）］
まず、図１３（ａ）の内容がディスプレイ３に表示されている状態（ステップＳ１〜ステップＳ３）で方向キー２４の上キーとシフトキー２６とが操作されると（ステップＳ４）、ＣＰＵ８は、関数電卓１が特殊状態となっていると判定し（ステップＳ５；Ｙｅｓ）、移動元のカーソル位置情報を移動元情報記憶領域７０に記憶させる（ステップＳ１０）。ここで、図１４（ａ）に示すように、移動元のカーソル位置情報のカーソル対応アドレスとしては、メモリアドレス「８」が記憶される。
【００９２】
次に、ＣＰＵ８は、数式先頭部分のメモリアドレス「１」を読込対象アドレスとし（ステップＳ１１）、仮移動先情報記憶領域７１を初期化した後（ステップＳ１２）、現在のカーソル対応アドレスが特殊演算の使用対象の位置であると判定する（ステップＳ１３；Ｙｅｓ）。
【００９３】
次に、ＣＰＵ８は、図１４（ｂ）に示すように、検索範囲テーブル６１（図４参照）に基づいて、現在のカーソル位置「（積分演算の）式部分」と、移動方向「上」とに対応する検索範囲アドレスとして、「上限値部分」のメモリアドレス、つまり、積分演算記号「∫」の後の２番目の区切り記号「，」と積分演算の終了記号「ｄｘ」の直前の閉じ括弧「）」との間に位置する数式データのメモリアドレス「１３」を設定した後（ステップＳ１５）、この検索範囲アドレス内の先頭のアドレス「１３」を読込対象アドレスとする（ステップＳ１６）。
【００９４】
次に、ＣＰＵ８は、読込対象アドレス「１３」のテキストバッファメモリ１３から文字「２」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１３」を超えて読み込みしておらず（ステップＳ１８；Ｎｏ）、読み込んだ文字「２」の文字コードが数字コードである（ステップＳ１９；Ｙｅｓ）と判定する。
【００９５】
次に、ＣＰＵ８は、読込対象アドレス「１３」の数式構成要素「２」と対応するカーソル位置を計算する（ステップＳ２１）。
【００９６】
次に、ＣＰＵ８は、算出されたカーソル位置が現在のカーソル位置に対して移動方向「上」にあり（ステップＳ３０；Ｙｅｓ）、算出されたカーソル位置が仮移動先のカーソル位置（ここでは未設定）よりもＸ方向において現在のカーソル位置に近く（ステップＳ３１；Ｙｅｓ）、算出されたカーソル位置が現在のカーソル位置と異なる計算処理対象に対応している（ステップＳ３２；Ｙｅｓ）と判定した後、図１４（ｃ）に示すように、仮移動先情報記憶領域７１内の仮移動先のカーソル位置情報を算出されたカーソル位置情報に更新して（ステップＳ３４）、テキストバッファメモリ１３の読込対象アドレスに１を加える（ステップＳ２０）。
【００９７】
次に、ＣＰＵ８は、読込対象アドレス「１４」のテキストバッファメモリ１３から文字「）」の文字コードを読み込んだ後（ステップＳ１７）、検索範囲アドレス「１３」を超えて読み込みしており（ステップＳ１８；Ｙｅｓ）、カーソル位置が左方向に移動する（ステップＳ４０；Ｙｅｓ）と判定し、図１４（ｄ）に示すように、仮移動先情報記憶領域７１に記憶されたカーソル対応アドレスに１を加える（ステップＳ４１）。
【００９８】
そして、ＣＰＵ８は、図１３（ｂ）に示すように、仮移動先情報記憶領域７１内の情報に基づいて、メモリアドレス「１４」と対応する位置（ここではメモリアドレス「１３」の文字「２」の後）にカーソルＣＲを表示させた後（ステップＳ２４）、キー群２の操作待機状態となり（ステップＳ８）、数式編集処理を終了する。
【００９９】
以上の関数電卓１によれば、図６のステップＳ１７〜ステップＳ２２で示したように、１行の数式データを対象として処理を行う場合であっても、自然表示形式で表示される数式内での適切な移動先を検出することができるため、従来と異なり、自然表示形式で表示された数式内で適切にカーソルＣＲ、つまり編集対象位置を移動させることができる。
【０１００】
また、図７のステップＳ３２や図９の条件（３）で示したように、数式中の各数式構成要素との対応位置のうち、現在のカーソル位置とは異なる計算処理単位に対応するカーソル位置を検出するので、同一の計算処理単位内でカーソルＣＲが移動するのを防止し、より適切にカーソルＣＲを移動させることができる。
【０１０１】
また、図８のステップＳ４１で示したように、仮移動先のカーソル位置が現在のカーソル位置よりも左に位置する場合には、移動先のカーソル位置を編集対象の数式構成要素に対して移動元のカーソル位置側とすることができるため、より適切にカーソルＣＲを移動させることができる。
【０１０２】
また、図６のステップＳ１５や動作例（２）で示したように、現在のカーソル位置に基づいてカーソル移動先の検索範囲アドレスが設定されるので、テキストバッファメモリ１３の全メモリアドレスから適切な移動先のカーソル対応アドレスを検出する場合と比較して、処理を高速化することができる。
【０１０３】
なお、本発明は上記実施形態に限定されることなく、本発明の主旨を逸脱しない範囲において種々の改良及び設計の変更をおこなっても良い。
例えば、上述した実施の形態では、本発明に係る数式編集装置が関数電卓に適用されることとして説明したが、携帯電話やパソコン、電子時計、ＰＤＡ（Personal Digital Assistants）などに適用されることとしても良い。
【０１０４】
また、ステップＳ１３〜ステップＳ１６において、現在のカーソル対応アドレスが特殊演算に使用される数式構成要素の位置である場合に、検索範囲テーブル６１に基づいてカーソル移動先の検索範囲アドレスを設定することとして説明したが、図１５に示すように、現在のカーソル対応アドレスが特殊演算に使用される数式構成要素の位置であるか否かに関わらず、テキストバッファメモリ１３中で文字コードを記憶している全領域のメモリアドレスをカーソル移動先の検索範囲アドレスとして設定することとしても良い。
【０１０５】
また、シフトキー２６によって特殊移動処理の実行を指示することとして説明したが、他のキーによって指示することとしても良い。
【図面の簡単な説明】
【０１０６】
【図１】本発明を適用した関数電卓の概観図である。
【図２】本発明を適用した関数電卓のブロック図である。
【図３】（ａ）はディスプレイに自然表示形式で表示された数式を示す図であり、（ｂ）はテキストバッファメモリ内の数式データを示す図である。
【図４】検索範囲テーブルを示す図である。
【図５】数式編集処理を示すフローチャートである。
【図６】特殊移動処理を示すフローチャートである。
【図７】カーソル移動先の仮決定処理を示すフローチャートである。
【図８】補正処理を示すフローチャートである。
【図９】ステップＳ３０〜ステップＳ３２における条件（１）〜条件（３）を示す図である。
【図１０】動作例（１）におけるディスプレイの表示画面を示す図である。
【図１１】動作例（１）の処理を説明するための図である。
【図１２】動作例（１）の処理を説明するための図である。
【図１３】動作例（２）におけるディスプレイの表示画面を示す図である。
【図１４】動作例（２）の処理を説明するための図である。
【図１５】特殊移動処理の変形例を示すフローチャートである。
【符号の説明】
【０１０７】
１      関数電卓（数式編集装置）
８      ＣＰＵ（最適移動先位置検出手段）
１２    表示部（編集対象位置表示手段、編集対象位置移動表示手段）
２４    方向キー（移動方向入力手段）
２６    シフトキー（移動方向入力手段）
６０    数式編集プログラム
６１    検索範囲テーブル（検索範囲設定手段）
ＣＲ    カーソル（編集対象位置）
【図１】
2007264765.tif 000003
【図２】
2007264765.tif 000004
【図３】
2007264765.tif 000005
【図４】
2007264765.tif 000006
【図５】
2007264765.tif 000007
【図６】
2007264765.tif 000008
【図７】
2007264765.tif 000009
【図８】
2007264765.tif 000010
【図９】
2007264765.tif 000011
【図１０】
2007264765.tif 000012
【図１１】
2007264765.tif 000013
【図１２】
2007264765.tif 000014
【図１３】
2007264765.tif 000015
【図１４】
2007264765.tif 000016
【図１５】
2007264765.tif 000017