(57)【特許請求の範囲】
【請求項１】
グラフ式を入力するための入力手段と、
前記入力されたグラフ式に文字定数が含まれるか否かを判定し、含まれる場合に当該文字定数に対して、仮の値を設定する設定手段と、
この設定手段により設定された文字定数の値に基づいて作成されるグラフが予め定められた表示座標範囲内にあるか否かを判別し、この表示座標範囲内にあると判別した際に、前記文字定数の値に基づいてグラフを作成するグラフ作成手段と、
前記グラフ作成手段により作成されたグラフを表示する表示手段と、
グラフ上の座標を表示する際に、当該グラフに対応するグラフ式に文字定数が含まれる場合には、当該文字定数を含む文字式によって座標を表示する座標表示手段と、
を備えることを特徴とするグラフ表示機能付き電子機器。
【請求項２】
請求項１に記載のグラフ表示機能付き電子機器において、ポインタをグラフに沿って移動させるトレース手段を更に備え、前記座標表示手段は、前記ポインタの座標を文字式によって表示することを特徴とするグラフ表示機能付き電子機器。
【請求項３】
請求項１に記載のグラフ表示機能付き電子機器において、
利用者がグラフ上の位置を指定するための指定手段を更に備え、
前記座標表示手段は、前記指定手段により指定された位置の座標を文字式によって表示することを特徴とするグラフ表示機能付き電子機器。
【請求項４】
請求項１に記載のグラフ表示機能付き電子機器において、
前記入力手段により入力されたグラフ式に含まれる１の変数の値を入力するための値入力手段を更に備え、
前記座標表示手段は、前記値入力手段により入力された前記１の変数の値に対応する前記グラフ上の座標を、文字式によって表示することを特徴とするグラフ表示機能付き電子機器。
【請求項５】
請求項１に記載のグラフ表示機能付き電子機器において、
前記表示手段が複数のグラフを表示した際に、当該複数のグラフの交点を算出する交点算出手段を更に備え、
前記座標表示手段は、前記交点算出手段により算出された交点の座標を、文字式によって表示することを特徴とするグラフ表示機能付き電子機器。
【請求項６】
請求項１に記載のグラフ表示機能付き電子機器において、
座標軸に対する前記グラフ式の切片を算出する切片算出手段を更に備え、
前記座標表示手段は、前記切片算出手段により算出された切片の座標を、文字式によって表示することを特徴とするグラフ表示機能付き電子機器。
【請求項７】
グラフ式に基づいてグラフを作成して表示する装置に、
グラフ式に文字定数が含まれるか否かを判定し、含まれる場合に当該文字定数に対して、仮の値を設定する設定機能と、
この設定機能により設定された文字定数の値に基づいて作成されるグラフが予め定められた表示座標範囲内にあるか否かを判別し、この表示座標範囲内にあると判別した際に、前記文字定数の値に基づいてグラフを作成するグラフ作成機能と、
前記グラフ作成機能により作成されたグラフを表示するグラフ表示機能と、
グラフ上の座標を表示する際に、当該グラフに対応するグラフ式に文字定数が含まれる場合には、当該文字定数を含む文字式によって座標を表示する座標表示機能と、
を実現させるためのプログラム。
【請求項８】
グラフ式に基づいてグラフを作成して表示するグラフ表示方法であって、
グラフ式に文字定数が含まれるか否かを判定し、含まれる場合に当該文字定数に対して、仮の値を設定する設定工程と、
この設定手段により設定された文字定数の値に基づいて作成されるグラフが予め定められた表示座標範囲内にあるか否かを判別し、この表示座標範囲内にあると判別した際に、前記文字定数の値に基づいてグラフを作成するグラフ作成工程と、
前記グラフ作成行程により作成されたグラフを表示する表示工程と、
グラフ上の座標を表示する際に、当該グラフに対応するグラフ式に文字定数が含まれる場合には、当該文字定数を含む文字式によって座標を表示する座標表示工程と、
を含むことを特徴とするグラフ表示方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、グラフ表示機能付き電子機器に関するものであって、特に、数式処理機能を有するものに関する。
【０００２】
【従来の技術】
従来には、数式処理機能を有する計算機が存在する。数式処理とは、未知定数を含む関数式について、未知定数を文字によって表現し、係る文字を残したままで展開や因数分解などの演算を行う処理である。例えば、ｙ＝（ｘ−Ａ）2＋Ｂといった「Ａ」や「Ｂ」の文字を含む数式が入力され、更にこれを展開する指示が入力された場合には、ｙ＝ｘ2−２Ａｘ＋Ａ2＋Ｂを表示する、といった処理である。
【０００３】
また、近年では、グラフ表示機能を有するグラフ関数電卓の開発が進んでいる。グラフ関数電卓とは、グラフ式を数値的に処理してグラフを作成するものである。例えば、変数ｘとｙを含むグラフ式に対して、変数ｘに適当な数値を代入し、対応するｙの値を算出する。係る処理をｘの変域について、所定の間隔Δｘ毎に順次実行し、算出した個々の座標（ｘ，ｙ）をｘｙ座標系に順次表示することによってグラフを描画している。
【０００４】
【発明が解決しようとする課題】
上述のように、グラフ関数電卓では、グラフ式を数値的に扱うことでグラフを作成する。このため、文字を含む、すなわち未知定数を含む数式のグラフを表示することはできなかった。例えば、ｙ＝Ａｘのグラフを表示するためには、利用者によって未知定数Ａの値が指定されなければ、ｘ座標に対するｙの値を特定できず、グラフを作成することができない。故に、値が指定されていない文字を含む数式が入力された場合には、「エラー」を表示して、再度文字の値を指定して、数式を入力するよう利用者に督促するものが多かった。また、中には、入力された数式に変数以外の定数が含まれる場合には、係る定数にゼロを代入してグラフを作成するものもある。しかし、定数にゼロを代入したのでは、その数式の特徴を示すグラフを表示することができない場合もある。
【０００５】
ところで、数式処理によれば、未知定数を文字によって表現することで関数を抽象的に扱い、関数の変換や演算などを簡潔に示すことが可能である。例えば、定数Ａを含むｙ＝（ｘ−Ａ）2といった数式を展開する場合、Ａに特定の数値を当てはめて計算したときと比較して、展開前後の関係をより明瞭に示すことができる。故に、教育の現場などでは、定数を文字で示し、式を一般化して扱うことがよくある。また、授業などでは、数式の一般的なイメージを説明するために、文字を残したままで、すなわち未知定数に具体的な数値を当てはめることなく、グラフを作図することがままある。
【０００６】
グラフ関数電卓は、グラフ表示機能が利用者の数式の把握を支援するものとして、教育の現場で広く採用されているが、上述のように定数を含む数式をグラフ化できないという点で改良の余地があった。
【０００７】
本発明の課題は、グラフ表示機能付き電子機器において、算数・数学の学習者にとって有効な形で、数式処理機能をグラフ表示機能に取り込むことである。
【０００８】
【課題を解決するための手段】
請求項１に記載の発明は、グラフ式（例えば、本実施の形態における数式）を入力するための入力手段（例えば、図２に示す入力部１１もしくはタブレット１２・位置検出回路１３）と、前記入力されたグラフ式に文字定数が含まれるか否かを判定し、含まれる場合に当該文字定数に対して、仮の値を設定する設定手段（例えば、図２に示すＣＰＵ１０；図６に示す数式グラフ実行処理のＳ４〜Ｓ１９）と、この設定手段により設定された文字定数の値に基づいて作成されるグラフが予め定められた表示座標範囲内（例えば、図８に示す表示座標範囲３０）にあるか否かを判別し、この表示座標範囲内にあると判別した際に、前記文字定数の値に基づいてグラフ、グラフを作成するグラフ作成手段（例えば、図２に示すＣＰＵ１０；図６に示す数式グラフ実行処理のＳ１０〜Ｓ２０）と、前記グラフ作成手段により作成されたグラフを表示する表示手段（例えば、図２に示す表示部１４）と、グラフ上の座標を表示する際に、当該グラフに対応するグラフ式に文字定数が含まれる場合には、当該文字定数を含む文字式によって座標を表示する座標表示手段（例えば、図２に示すＣＰＵ１０；図１６に示すトレース処理、図２４に示すＸ−ＣＡＬ処理）と、を備えることを特徴とする。
【００１１】
この請求項１に記載の発明によれば、グラフ式に基づいてグラフを作成する際に、文字定数が含まれる場合には、当該文字定数に対して値を仮に設定する。そして設定された文字定数の値に基づいて作成されるグラフが予め定められた表示座標範囲内にあるか否かを判別し、この表示座標範囲内にあると判別した際に、前記文字定数の値に基づいてグラフを作成する。そしてグラフ式に文字定数が含まれる場合には、グラフ上の座標を表示する際に、当該文字定数を含む文字式によって適切に座標を表示する。故に、文字定数を含むグラフ式と、グラフ上の座標との関連を適切に把握することができ、教育の現場などで用いられるような文字定数を用いたグラフ表示を電子機器においても実現することが可能となる。
【００２３】
例えば、請求項２に記載の発明のように、請求項１に記載のグラフ表示機能付き電子機器において、ポインタをグラフに沿って移動させるトレース手段（図２に示すＣＰＵ１０；図１６に示すトレース処理のＳ４７〜Ｓ５１）を更に備え、前記座標表示手段は、前記ポインタの座標を文字式によって表示する（例えば、図１６に示すトレース処理のＳ４６）こととしてもよい。
【００２４】
この請求項２に記載の発明によれば、トレース対象となるグラフが、文字定数を含むグラフ式に基づいて作成されたグラフである場合には、ポインタの座標を、グラフ式に含まれる文字定数を含む文字式によって表現する。このため、利用者は、文字定数を含むグラフ式と、そのグラフ上におけるポインタの座標とを対応付けて、グラフの位置関係を把握することが可能となる。
【００３４】
【発明の実施の形態】
〔第１の実施の形態〕
本発明の特徴の１つは、グラフ表示機能付き電子機器において、未知定数を含む数式が入力された場合に、その未知定数に仮の値を設定してグラフを作成し、表示することである。以下に、図１〜図２８を参照して本第１の実施の形態について詳細に説明する。
【００３５】
図１は、本第１の実施の形態におけるグラフ表示機能付き電子機器（以下、単に電子機器という）１の外観例を示す斜俯瞰図である。同図によれば、電子機器１は、表示画面２、入力キー３、入力ペン４が、電子機器１本体に備えて構成されている。電子機器１は、入力キー３から入力される情報に従って各種処理を実行し、その処理の結果を表示画面２に表示する。すなわち、利用者は、入力キー３によって数式（関数）や統計情報を入力したり、各種処理の指示を入力する。そして、その入力した内容や処理の結果を表示画面２によって確認することとなる。また、表示画面２にはタブレット１２が一体的に構成されており、入力ペン４による押下入力を検知できるようになっている。
【００３６】
図２は、電子機器１の内部構成の一例を示す図である。
同図によれば、電子機器１は、ＣＰＵ１０と、入力部１１と、タブレット１２と、位置検出回路１３と、表示部１４と、表示駆動回路１５と、ＲＡＭ１６と、ＲＯＭ１７と、記憶装置１８と、記憶媒体１９と、から主に構成されている。
【００３７】
ＣＰＵ１０は、入力部１１やタブレット１２を介して入力される指示に基づいて、ＲＯＭ１７または記憶媒体１９から所定のプログラムを読み出してＲＡＭ１６に一時記憶し、当該プログラムに基づく各種処理を実行して電子機器１の各部を集中制御する。すなわち、ＣＰＵ１０は、読み出した所定プログラムに基づいて各種処理を実行し、その処理結果をＲＡＭ１６内のワークメモリに格納すると共に、表示駆動回路１５を介して表示部１４に表示させる。また、入力部１１やタブレット１２を介して入力される指示に従って、前記処理結果を記憶装置１８を介して記憶媒体１９に保存させる。
【００３８】
入力部１１は、図１に示した入力キー３群から主に構成されている。具体的には、数字入力キー、文字入力キー、各種演算キー、方向キー（「↑」・「↓」・「→」・「←」）、グラフ表示を指示するためのグラフキー、各種機能を選択指示するための選択キー、各種機能の実行を指示するための実行キー、から主に構成されている。なお、入力部１１は、押下されたキーの押下信号をＣＰＵ１０に出力する。
【００３９】
タブレット１２および位置検出回路１３は、利用者により入力ペン４によって指定された位置を検知し、その座標を決定する装置である。タブレット１２は、表示部１４の表示画面２と一体的になっており、換言すれば、利用者は、タブレット１２を介して表示画面２を見ることとなる。利用者が入力ペン４を用いて表示画面２上の、すなわち、タブレット１２の任意の位置を指示すると、位置検出回路１３がその位置を検出し、座標を特定する。位置を検出する方法としては、電磁誘導方式、磁気歪式、感圧式等の方法があるが、ここではいずれの方法を用いてもかまわない。なお、位置検出回路１３は、検出した座標データをＣＰＵ１０に出力する。
【００４０】
表示部１４は、図１に示した電子機器１の表示画面２を含むものであり、表示駆動回路１５から入力される制御信号に応答して画像を表示するものである。なお、表示部１４を構成するものとしては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイなどがあるが、いずれのものを用いてもかまわない。また、表示駆動回路１５は、ＣＰＵ１０から入力される駆動信号に基づいて表示部１４の表示制御を行う。
【００４１】
ＲＡＭ１６は、ＣＰＵ１０がプログラムを実行する際に展開するプログラム展開エリア、入力部１１やタブレット１２から入力される入力データ、各種処理結果などを一次的に記憶するワークエリアを有する。また、ＲＡＭ１６は、図３に示すように、入力部１１から入力される数式を一次的に記憶するための数式記憶エリア１６ａと、数式に含まれる定数に代入する数値を記憶するための定数記憶エリア１６ｂと、数式記憶エリア１６ａおよび定数記憶エリア１６ｂに記憶された情報に基づいてグラフを作成する際に利用されるグラフ作成エリア１６ｃとを含む。
【００４２】
ＲＯＭ１７は、読出し専用の半導体メモリであり、本発明に係る電子機器１が実行する基本プログラムを格納している。すなわち、電子機器１の電源がＯＮ状態にされたときに実行する初期表示プログラム、メニュー表示プログラム、定数データ、などを記憶する。また、ＲＯＭ１７には、後述する各種処理を実行するためのプログラムが記憶される。例えば、図４に示すように、グラフ描画プログラム１７ａ、数式処理プログラム１７ｂ、関数演算プログラム１７ｃ、関数データ１７ｄ、数式グラフ実行プログラム１７ｅ、トレース処理プログラム１７ｆ、関連グラフプログラム１７ｇ、積分グラフプログラム１７ｈ、座標算出プログラム１７ｉ、等を記憶する。
【００４３】
ここで、グラフ描画プログラム１７ａとは、ＣＰＵ１０が入力された数式に基づいてグラフを作成して表示画面２に表示するためのプログラムである。また、数式処理プログラム１７ｂとは、ＣＰＵ１０が、数式に含まれる定数を文字として残したままで各種演算を実行するためのプログラムである。関数演算プログラム１７ｃとは、入力部１１あるいは位置検出回路１３から入力される信号に従って関数演算を実行するためのプログラムである。例えば、関数ｆ（ｘ）について積分や微分をする処理、接線や法線、逆関数を算出する処理、複数のグラフの交点を算出したり、極値を算出する処理、などを実行するためのプログラムである。関数データ１７ｄとは、入力された数式に基づくグラフを作成する際に必要となるデータであって、例えば、一次関数や二次関数、三角関数、円などのグラフを作成するための基本情報が含まれる。
【００４４】
また、数式グラフ実行プログラム１７ｅとは、ＣＰＵ１０が後述する数式グラフ実行処理を行うためのプログラムである。トレース処理プログラム１７ｆとは、ＣＰＵ１０が、後述するトレース処理を実行するためのプログラムである。関連グラフプログラム１７ｇとは、ＣＰＵ１０が既に表示したグラフに関連するグラフを作成するためのプログラムであり、例えば、入力された数式に基づいて法線や接線、逆関数の関数を算出し、係る関数のグラフを描画するためのプログラムである。積分グラフプログラム１７ｈとは、ＣＰＵ１０が後述する積分グラフ処理を実行するためのプログラムである。座標算出プログラム１７ｉとは、ＣＰＵ１０が、既に表示したグラフについて、利用者により指定された座標を算出して表示するためのプログラムであり、例えば、複数のグラフの交点や、各軸に対する切片、利用者により指定されたｙ座標に対応するｘ座標、極値、などを算出して表示するためのプログラムである。
【００４５】
記憶装置１８は、プログラムやデータ等を記憶する記憶媒体１９を有しており、この記憶媒体１９は磁気的、光学的記憶媒体、若しくは半導体メモリにより構成されている。この記憶媒体１９は記憶装置１８に固定的に設けたもの、若しくは着脱自在に装着するものであり、この記憶媒体１９には、電子機器１に対応する各種処理プログラム、および各種処理プログラムに基づいて処理されたデータ、等を記憶する。
【００４６】
なお、この記憶媒体１９に記憶するプログラムやデータ等は、通信回線（不図示）を介して接続された他の機器から受信して記憶する構成にしてもよく、更に、記憶媒体１９および記憶装置１８を備える他の機器から通信回線を介してプログラムやデータを転送して使用するように構成してもよい。
【００４７】
さて、本第１の実施の形態における電子機器１は、未知定数を含む数式についてグラフを作成して表示することを特徴としている。すなわち、ＣＰＵ１０は、入力部１１から未知定数、すなわち、定数を含む数式が入力され、更にその数式についてグラフを描画する指示が入力されると、係る数式に含まれる定数に適当な値を代入してグラフを作成する。なお、以下では、数式に含まれる未知定数を定数Ａ，Ｂ，Ｃ，Ｄ、…、によって示し、変数をｘおよびｙによって表現する。すなわち、定数といった場合には、未知定数を意味し、逆に、ｘやｙといった場合には、変数を意味する。
【００４８】
また、以下では、グラフを描画するための略連続的な座標系をグラフ座標系（ｘ，ｙ）といい、表示画面２上の各ドットの位置関係を示す離散的な座標系を画面座標系（Ｘ，Ｙ）という。すなわち、ＣＰＵ１０は、グラフ座標系における所与の表示座標範囲のグラフを作成し、これを画面座標系の所定の表示範囲に変換することで画像データを作成し、表示画面２に表示する。
【００４９】
図５は、本第１の実施の形態における電子機器１の表示画面２による表示例を示す図である。（ａ）〜（ｃ）は、それぞれ利用者入力に応答して表示する表示画面２の表示例を示す図である。なお、図５によれば、表示画面２は、上下２つに分割され、上の分割画面２ａには数式を表示し、下の分割画面２ｂにはグラフを表示する。なお、グラフ表示モードでは、下の分割画面２ｂには、常にｘ軸２０と、ｙ軸２１を表示する。すなわち、利用者は、上の分割画面２ａに表示されるカーソルに合わせて入力キー３により数式を入力し、下の分割画面２ｂに表示されるグラフを見ることとなる。以下では、グラフが表示される下の分割画面２ｂを、グラフ表示画面２ｂという。
【００５０】
図５（ａ）は、利用者が数式を入力する際の表示画面２の一表示例を示す図である。同図によれば、上の分割画面２ａに１つの数式「ｙ1＝ｘ2−Ａｘ−４Ａ」が表示されている。係る数式には、未知定数Ａが含まれており、定数Ａには取りたてて値が指定されていない。
【００５１】
図５（ｂ）は、利用者がグラフ描画実行指示を入力した際の表示画面２の一表示例を示す図である。利用者は、入力ペン４によって、表示画面２に表示される「グラフ描画実行」のアイコン２２を押下入力する。タブレット１２および位置検出回路１３は、入力ペン４によって押下された位置を検出し、ＣＰＵ１０は、位置検出回路１３から入力される信号に基づいてグラフ描画実行指示が入力されたことを判定する。なお、利用者がグラフ描画実行指示を入力する方法については、この入力ペン４によるペンタッチ入力に限定する必要はなく、図１に示した入力キー３によって指示できるように設定しても良いことは勿論である。
【００５２】
図５（ｃ）は、（ａ）にて入力された数式「ｙ1＝ｘ2−Ａｘ−４Ａ」について、ＣＰＵ１０がグラフを作成して表示した一例を示す図である。ＣＰＵ１０は、入力された数式に定数が含まれるか否かを判定し、定数が含まれる場合には、係る定数に適当な値を設定してグラフを作成する。
【００５３】
なお、ＣＰＵ１０は、複数の数式が入力された場合には、数式１つ１つのグラフを作成し、それぞれを重ねて表示する。その際、描画した各グラフがグラフ表示画面２ｂの中央に表示されるようにスケーリングする。また、ＣＰＵ１０は、１の数式についてグラフを作成する際には、まず、ｙ切片を構成する定数の値を決定する。このとき、必ず座標の原点周辺にグラフが描画されるように定数の値を設定する。次いで、変数ｘの各係数に含まれる定数の値を決定する。
【００５４】
以下に、ＣＰＵ１０による、定数を含む数式のグラフを作成する処理（数式グラフ実行処理）について、図６，図７に示すフローチャートに基づいて詳細に説明する。
ＣＰＵ１０は、入力部１１から数式が入力されると（ステップＳ１）、係る数式をＲＡＭ１６内の数式記憶エリア１６ａに記憶する。このとき、複数の数式が入力された場合には、数式１つ１つを識別可能な形態で記憶する。更に、図５（ｂ）に示したように、入力ペン４により「グラフ描画実行」のアイコン２２が押下されると（ステップＳ２）、ＣＰＵ１０は、グラフ描画処理を開始する。
【００５５】
まず、ＣＰＵ１０は、数式記憶エリア１６ａに記憶された数式の中から１の数式を選択する。更に、その選択した数式の中から定数を抽出する（ステップＳ３）。すなわち、変数ｘ，ｙの係数や、変数ｘ，ｙを含まない独立項を抽出する。例えば、
ｙ＝Ａｘ5＋Ｂｘ4＋Ｃｘ3＋８ｘ2＋Ｄｘ＋４Ａ−Ｅ＋Ｆ  …（１）
といった数式が入力された場合には、定数Ａ，Ｂ，Ｃ，８，Ｄ，４Ａ，−Ｅ，Ｆを抽出する。そして、抽出した定数の中に未知定数、すなわち、定数が存在するか否かを判定する（ステップＳ４）。このとき、定数が存在しない場合には、ステップＳ２０に移行して、係る数式に基づいてグラフを描画する。一方、定数が含まれる場合には、その抽出した定数１つ１つに対して値を設定する。
【００５６】
前述の通り、ＣＰＵ１０は、まず、ｙ切片を構成する定数の値を決定する。すなわち、変数ｘ，ｙを含まない独立項の定数の値を決定する。そのために、ＣＰＵ１０は、数式中の変数ｘにゼロを代入し（ステップＳ５）、ｙが数値か否かを判定する（ステップＳ６）。例えば、ｙ＝Ａｘといった数式の場合には、ｘ＝０のときｙ＝０となる。あるいは、ｙ＝Ａｘ2＋５の場合には、ｘ＝０のときｙ＝５となる。係る場合には、ｙ切片の値は既に決定されているものとして、ステップＳ１３に移行し、未知の係数の値を設定する処理を開始する。
【００５７】
一方、ｘにゼロを代入したとき、ｙが定数を含む場合がある。例えば、式（１）に対して、ｘにゼロを代入すると、
ｙ＝４Ａ−Ｅ＋Ｆ  …（２）
が得られる。このようにｙ切片を構成する定数が複数存在する場合には、定数１つ１つに対して、すなわち、式（２）によれば、Ａ，Ｅ，Ｆの１つ１つに対して値を設定する。ＣＰＵ１０は、まず、１の定数を読み出して（例えば、式（１）における定数Ａに対して）、
｛1/2+(-1)＾Gn｝（ｙmax−ｙmin）／２０  …（３）
を代入する（ステップＳ７）。
【００５８】
ここでGnとは、グラフ番号を意味する。すなわち、１番目に選択したグラフの場合には、Gn＝１となる。２番目に選択したグラフの場合には、Gn＝２となる。また、ｙmax，ｙminとは、グラフを作成する際のデフォルトの表示座標範囲を意味する。図８は、デフォルトの表示座標範囲３０の一例を示す図である。同図によれば、デフォルトの表示座標範囲３０は、−１０≦ｘ≦１０，ｙmin≦ｙ≦ｙmaxの範囲が該当する。
【００５９】
すなわち、ＣＰＵ１０は、表示座標範囲３０におけるｙの最大から最小までを２０マスに分割した際の、±(1/2)マスの値を定数に代入する。例えば、ｙmax＝１０，ｙmin＝−１０の場合には、式（１）における定数Ａは、Ａ＝(1/2)となる。あるいは、ｙmax＝２０，ｙmin＝−２０の場合には、Ａ＝１となる。
【００６０】
このようにして、第１番目の定数に入力する値を決定すると、まだ他に定数が存在するか否かを判定する（ステップＳ８）。このとき、ｙ切片を構成する定数のうち、未設定の定数が存在する場合には、ステップＳ７に戻って同様に定数の値を設定する。例えば、式（１）によれば、定数Ｅ，Ｆが未設定である。このため、ステップＳ７に戻って定数Ａと同様に値を設定する。
【００６１】
ｙ切片を構成する全ての定数に代入する数値を決定すると、それらの定数に与えた数値に基づいてｙ切片の値を算出する（ステップＳ９）。例えば、上記式（１）の場合には、ｙ切片の式（２）におけるＡ，Ｅ，Ｆの各定数に設定した値を代入して、ｙ切片の値を算出する。ＣＰＵ１０は、算出したｙ切片の値が表示座標範囲ｙmin≦ｙ≦ｙmaxに含まれるか否かを判定する（ステップＳ１０）。
【００６２】
ステップＳ１０にて、ｙ切片の値が表示座標範囲に含まれない場合には、各定数の値を修正する（ステップＳ１１）。修正方法については、如何なる方法であってもかまわないが、例えば、各定数の値に１未満の数値を乗算し、ｙ切片の絶対値が小さくなるように修正する。そして、修正した各定数の値に基づいて、新たにｙ切片の値を算出し、表示座標範囲に含まれるか否かを判定する（ステップＳ１０）。含まれない場合には、ステップＳ１１に移行して、処理を繰り返す。一方、ｙ切片の値が表示座標範囲に含まれる場合には、各定数に設定した値を代入して、ＲＡＭ１６の数式記憶エリア１６ａに記憶された数式を更新する（ステップＳ１２）。このとき、ＣＰＵ１０は、定数記憶エリア１６ｂに、定数を含む数式と、各定数と、その定数に代入する値とを対応付けて記憶する。
【００６３】
さて、ｙ切片を構成する各定数の値を設定すると、次に、係数に含まれる定数の値を決定する。例えば、上記式（１）において、各係数に含まれる定数は、Ａ，Ｂ，Ｃ，Ｄの４つである。このうち定数Ａについては設定済みであるため、残るＢ，Ｃ，Ｄの値を決定する。ＣＰＵ１０は、これらの未設定の定数について、順に値を決定する。
【００６４】
まず、ＣＰＵ１０は、未設定の定数をカウントするための引数ｎに１を代入する（ステップＳ１３）。そして、数式に未設定の定数が存在するか否かを判定する（ステップＳ１４）。未設定の定数が存在する場合には、その未設定の定数のうち、ｎ番目の定数を読み出す。そして、引数ｎが３の倍数か否かを判定する（ステップＳ１５）。引数ｎが３の倍数でない場合には（Ｎ）、ｎ番目の定数に１を代入する（ステップＳ１６）。一方、引数ｎが３の倍数である場合には（Ｙ）、ｎ番目の定数に(-2/3)を代入する（ステップＳ１７）。更に、ｎに１を加算し（ステップＳ１８）、ステップＳ１４に戻る。すなわち、ＣＰＵ１０は、数式に未設定の定数が含まれるか否かを判定し（ステップＳ１４）、含まれる場合（Ｙ）には、ステップＳ１５に移行して処理を繰り返す。一方、ステップＳ１４にて、数式に未設定の定数が含まれない場合（Ｎ）には、各定数に設定した値に基づいて、ＲＡＭ１６の数式記憶エリア１６ａに記憶された数式を更新する（ステップＳ１９）。このとき、ＣＰＵ１０は、定数記憶エリア１６ｂに、定数を含む数式と、各定数と、その値とを対応付けて記憶する。
【００６５】
ＣＰＵ１０は、数式に含まれる全ての定数について値を設定すると、係る数式に基づいてグラフデータ３１を生成する（ステップＳ２０）。グラフデータ３１とは、ｘ座標の値に対するｙ座標の値を算出して、ｘ座標とｙ座標とをそれぞれ対応付けたデータである。具体的には、ＣＰＵ１０は、表示座標範囲内の所定間隔Δｘ毎のｘ座標を数式に代入してｙの値を算出し、ｘ座標の値と対応付けて随時記憶する。図９は、グラフデータ３１の一例を示す図である。同図に示すグラフデータ３１は、ｘの変域−１０≦ｘ≦１０をｍ等分し、個々のｘの値を数式に代入してｙ座標を算出し、ｘの値と対応付けて記憶したものである。なお、ｍは、表示画面２におけるＸ軸方向のドット数に等しい。
【００６６】
ＣＰＵ１０は、１の数式に基づくグラフデータ３１が完成すると、ＲＡＭ１６の数式記憶エリア１６ａに記憶された全ての数式について処理を実行したか否かを判定する（ステップＳ２１）。このとき、ＲＡＭ１６内に未処理の数式が存在する場合には（Ｎ）、ＲＡＭ１６の数式記憶エリア１６ａから次の数式を読み出して、すなわち、描画グラフを切り換えて（ステップＳ２２）、ステップＳ３に戻って処理を繰り返す。
【００６７】
さて、ＣＰＵ１０は、全ての数式に対するグラフデータ３１を作成すると、各グラフが偏ることなくグラフ表示画面２ｂの表示範囲に表示されるように、表示座標範囲を修正する。換言すれば、画面座標系に対するグラフ座標系内の表示座標範囲のスケールを修正する。ただしこのとき、ｘの変域は変更せず、ｙの表示座標範囲のみを修正する。
【００６８】
以下、スケーリング処理について説明する。
全ての数式についてグラフデータ３１を作成すると（ステップＳ２１；Ｙ）、作成した全てのグラフデータ３１の中からｙの最大値と最小値を抽出する（ステップＳ２３）。ただし、ｙの最大値と最小値は、デフォルトの表示座標範囲（−１０≦ｘ≦１０，ｙmin≦ｙ≦ｙmax）の中から決定する。例えば、図１０（ａ）に示す例によれば、二次関数３２の最大値は、変域−１０≦ｘ≦１０に存在する極大値３４が該当し、最小値は、ｘ＝−１０の境界線と二次関数３２の交点３３が該当する。
【００６９】
ＣＰＵ１０は、ｙ座標の最大値と最小値を決定すると、最大値と最小値の差を算出し、係る差がゼロか否かを判定する（ステップＳ２４）。最大値−最小値≠０の場合には（Ｎ）、グラフ表示画面２ｂの表示範囲をｙ軸方向に対して中央（8/10）相当領域にｙの最大値から最小値までの範囲が表示されるようにスケールを決定する。以下、この(8/10)相当領域を表示範囲という。図１１は、表示範囲（ (8/10)相当領域）を説明する図である。同図において、斜線部分が表示範囲２ｂ´に該当する。ＣＰＵ１０は、表示範囲２ｂ´に最小値≦ｙ≦最大値が表示されるようにスケールを決定する。
【００７０】
具体的には、表示座標範囲におけるｙmaxの値を、（最大値−最小値）／８に最大値を加算した値に変更する（ステップＳ２５）。ｙminの値を最小値の値から（最大値−最小値）／８を減算した値に変更する（ステップＳ２６）。例えば、図１０（ａ）に示した二次関数３２によれば、最大値（極大値３４の値）が、デフォルトの座標表示範囲におけるｙmaxの値よりも十分に小さいために、図１０（ｂ）に示すように、ｙ軸方向に対して引き伸ばされて表示されることとなる。逆に、図１２（ａ）に示すグラフ３５のように、最大値（極大値３６）がデフォルトのｙmax近傍に存在し、最小値（極小値３７）がデフォルトのｙmin近傍に存在する場合には、グラフ表示画面２ｂに表示する際には、図１２（ｂ）に示すようにグラフ３５は、ｙ軸方向に対して縮小されて表示されることとなる。
【００７１】
ところで、ステップＳ２４において、最大値−最小値＝０であった場合（Ｙ）、すなわち、入力された数式に変数ｘが含まれない（ｙ＝定数）場合、ＣＰＵ１０は、次のようにスケールを決定する。まず、最大値が正または０であるか否かを判定する（ステップＳ２７）。このとき、正もしくは０である場合（Ｙ）には、ｙmaxの値を、最大値に(1.1)を乗算した値に変更する（ステップＳ２８）。一方、最大値が負である場合（Ｎ）には、ｙmaxの値を、最大値に(1/1.1)を乗算した値に変更する（ステップＳ２９）。
【００７２】
また、ＣＰＵ１０は、最小値が正または０か否かを判定する（ステップＳ３０）。このとき、最小値が正あるいは０である場合（Ｙ）には、ｙminの値を、最小値に(1/1.1)を乗算した値に変更する（ステップＳ３１）。一方、最小値が負である場合には、ｙminの値を、最小値に(1.1)を乗算した値に変更する（ステップＳ３２）。
【００７３】
以上のように、ｙ軸方向の表示座標範囲ｙmin≦ｙ≦ｙmaxをデフォルト値から修正すると、グラフデータ３１に基づいて新たに決定した表示座標範囲内の各グラフを描画する（ステップＳ３３）。すなわち、グラフデータ３１に記憶した座標の中から、修正した表示座標範囲に含まれる座標を順次読み出して描画する。その際、グラフ座標系の表示座標範囲と、画面座標系と、を対応付け、グラフデータ３１に記憶されるグラフ座標系の座標から、画面座標系に変換して、グラフをグラフ表示画面２ｂに表示する。ＣＰＵ１０は、グラフの表示が完了すると、本処理を終了する。
【００７４】
このように処理することで、グラフを座標系の原点近傍に表示することができると共に、デフォルトの表示座標範囲におけるグラフの最大値から最小値までの範囲をグラフ表示画面２ｂの表示範囲における中央近傍に表示することが可能となる。故に、定数を含む数式が入力された場合であっても、適当な数値を設定して確実にグラフを表示することが可能となる。
【００７５】
ただし、上記処理方法によれば、グラフ表示画面２ｂの表示範囲にグラフのｙ切片を表示することが可能となるが、必ずしもグラフの特徴的な部分を表示できるとは限らない。
図１３は、関数の特徴的な部分が表示されない例を示す図である。（ａ）は、グラフの座標系における３次関数と表示座標範囲を示す図である。（ａ）によれば、三次関数４０の極大値４１と極小値４２とがｘの変域に含まれるものの、ｙの表示座標範囲ｙmin≦ｙ≦ｙmaxには含まれない。この場合、上記処理に基づくスケーリングを施しても、極大値４１および極小値４２がグラフ表示画面２ｂに表示される保証はなく、例えば、図１３（ｂ）に示すように、３つの曲線が切れ切れに表示される恐れがある。
【００７６】
また、図１４は、二次関数４３の極値が表示座標範囲３０の変域にもｙ軸方向の範囲にも含まれない場合の一例を示す図である。（ａ）は、上に凸の二次関数４３と表示座標範囲３０とを示す図である。（ａ）によれば、二次関数４３の極大値４４のｘ座標は、変域（−１０≦ｘ≦１０）の範囲内になく、また、ｙ座標は、（ｙmin≦ｙ≦ｙmax）の範囲内に存在しない。故に、係るグラフをグラフ表示画面２ｂに表示すると、（ｂ）に示すように、二次関数の特徴を示さないグラフが表示されてしまう。
【００７７】
これらの問題を解消するために、極値が存在する場合には、その極値がグラフ表示画面２ｂに表示されるように、表示座標範囲を修正するように設定してもよい。具体的には、まず、数式について極値の存在有無を判定する。すなわち、入力された数式ｙ＝ｆ（ｘ）についてｘで微分し、 (d/dx)ｙ＝(d/dx)ｆ（ｘD）＝０なるｘDの存在有無を判定する。このとき、定数の値を設定した上で、極値の存在有無を判定し、表示座標範囲のスケールおよび位置を決定してもよい。あるいは、定数の値を決定する前に、極値の存在有無を判定し、極値が存在する場合には、極値が所定の表示座標範囲に含まれるように定数の値を決定するようにしてもよい。また、極値が存在する場合には、個々の極値の平均位置がグラフ表示画面２ｂの中心位置に位置するように、グラフ座標系の表示座標範囲を決定するようにしてもよい。なお、入力された数式（関数）の種類に応じてこれらの処理の実行有無を決定するようにしてもよい。
【００７８】
なお、図６および図７に示す数式グラフ実行処理では、ｙ軸方向に対してのみスケーリングすることとして説明したが、これに限定する必要はなく、ｘ軸方向に対してスケーリングしても良いことは勿論である。ただし、その場合には、ｘ軸方向に対するデフォルトの表示座標範囲よりも大きい範囲のグラフデータを作成するとよい。
【００７９】
以上が本第１の実施の形態における基本的な処理である。
ところで、従来のグラフ関数電卓には、入力された式に基づくグラフを作成して表示するだけでなく、表示したグラフについて更に様々な機能表示を行うものがある。これらの機能を、上記数式グラフ実行処理により表示した定数を含む数式のグラフに適用して、様々な機能表示を行っても良いことは勿論である。以下に、定数を含む数式のグラフに対して機能表示を行う方法について詳細に説明する。
【００８０】
（１）トレース処理
トレースとは、グラフ上にポインタを表示し、利用者による入力指示に応答してポインタをグラフ上に移動させる処理である。すなわち、利用者が、左右キーなどによってポインタの移動方向を指定すると、ＣＰＵ１０は、指定された方向にポインタをグラフに沿って移動させる。
【００８１】
従来のグラフ関数電卓には、トレース移動に伴って随時ポインタの座標を表示させるものがある。しかし、本第１の実施の形態における電子機器１は、数式に含まれる定数に、適当な数値を仮設定してグラフを描画するものである。このため、トレース時におけるポインタの座標を表示する際、グラフ座標系に基づく数値をそのまま表示したのでは、定数を含む抽象的な数式の形態とは無関係な、突飛な数値が表示されるような印象を与える恐れがある。すなわち、利用者が、ポインタの位置と、入力された数式とを無関係なものとして認識する恐れがある。
【００８２】
そこで、本第１の実施の形態では、ポインタの座標を、グラフ座標系に基づく数値によって表現するのではなく、利用者により入力された数式に含まれる定数を用いた文字式によって表現する。
【００８３】
図１５は、トレース処理における各処理段階の表示例を示す図である。
図１５（ａ）は、上記数式グラフ実行処理（図６、図７参照）に基づいて「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフを作成して表示した一例を示す図である。（ｂ）は、（ａ）に示す表示状態において、利用者により入力ペン４にて、「トレース実行」のアイコン４５が押下された一例を示す図である。位置検出回路１３は、入力ペン４にて押下されたタブレット１２上の位置を検出して、ＣＰＵ１０に押下信号を出力する。ＣＰＵ１０は、位置検出回路１３から入力される押下信号に基づいて、トレース処理の実行有無を判定する。
【００８４】
図１５（ｃ）は、トレースのポインタ４６を表示した一例を示す図である。（ｃ）によれば、ポインタ４６は、ｘ＝０のグラフ上の位置に表示されている。更に、グラフ表示画面２ｂの下方には、（ｘ＝０,ｙ＝−４Ａ）が表示されている。係る座標は、ｘ＝１を、利用者により入力された数式「ｙ＝ｘ2−Ａｘ−４Ａ」に代入して得られる値であり、ポインタ４６の座標を示している。また、（ｄ）は、ｘ＝０の位置からｘ＝１の位置にポインタ４６を移動させた場合の一例を示している。このとき、グラフ表示画面２ｂの下方には、座標（ｘ＝１,ｙ＝１−５Ａ）が表示されている。すなわち、ＣＰＵ１０は、数式グラフ実行処理にて仮設定した定数の値に基づいて、ポインタの表示位置を決定すると共に、数式処理によって、数式に含まれる定数を用いた文字式によってポインタの座標を表示する。
【００８５】
以下、本第１の実施の形態におけるトレース処理について、図１６に示すフローチャートを用いて詳細に説明する。ただし以下では、左右キーの押下信号によってのみポインタの移動方向を指定できるものとする。すなわち、ＣＰＵ１０は、左右キーの入力に応答してポインタをｘ軸方向に対して所定間隔で移動させる。
【００８６】
また、図１６のフローチャートにおいて、数式処理が必要な処理段階には、「数式処理」と表示し、従来の処理との違いを明瞭にした。ここで、数式処理とは、数式に含まれる定数を文字として残したままで、すなわち、未知定数に数値を代入することなく関数演算を実行したり、変数ｙの値を求める処理を意味する。
【００８７】
ＣＰＵ１０は、まず、数式グラフ実行処理を行う（ステップＳ４０）。すなわち、入力された数式に定数が含まれる場合には、その定数に適当な数値を代入して、グラフを作成する。そして、グラフを作成すると、係るグラフをグラフ表示画面２ｂに表示する（ステップＳ４１）。
【００８８】
次いで、図１５（ｂ）に示したように、利用者により入力ペン４にて「トレース実行」のアイコンが押下されると（ステップＳ４２）、トレース用のポインタを表示する。その際、まず、ポインタの移動間隔Δｘを決定する（ステップＳ４３）。すなわち、１回の左右キーの押下に対してｘ軸方向に対してポインタを移動させる量を決定する。具体的には、ｘの変域（ｘmax−ｘmin）/144の値をΔｘとする。ここで、144という数値は、グラフ表示画面２ｂのｘ軸方向に対するドット数（画素数）を示している。すなわち、ＣＰＵ１０は、左右キーが入力されると、ポインタを指定された方向に１ドット分移動させる。
【００８９】
続いて、ｘ座標の初期位置を決定する（ステップＳ４４）。ｘ座標の初期位置は、ｘの変域の中心位置とする。すなわち、（ｘmax−ｘmin）/2の位置をポインタのｘ座標（ｘ１）とする。
【００９０】
さて、ｘ座標の初期位置を決定すると、数式処理によって、グラフ座標系におけるポインタの座標を算出する（ステップＳ４５）。具体的には、ＣＰＵ１０は、ＲＡＭ１６の定数記憶エリア１６ｂに記憶される、定数を含む数式ｆ（ｘ）を読み出して、ｘ座標（ｘ１）を代入する。この場合、得られるｙ座標（ｙ１）には、定数が含まれることとなる。
【００９１】
ポインタの座標を算出すると、係る座標（ｘ１，ｙ１）を数値化して、ポインタの表示位置を決定する（ステップＳ４６）。具体的には、ステップＳ４５にて数式処理によって算出したポインタの座標（ｘ１，ｙ１）に含まれる定数に、上記数式グラフ実行処理にて仮設定した値を代入して、グラフ座標系における数値による座標を算出する。更に、ＣＰＵ１０は、算出したグラフ座標系における座標を画面座標系に変換して、表示位置（Ｘ１，Ｙ１）を決定する。
【００９２】
そして、ＣＰＵ１０は、ステップＳ４５にて決定したポインタの座標（ｘ１，ｙ１）をグラフ表示画面２ｂに表示すると共に、画面座標系における位置（Ｘ１，Ｙ１）にポインタを表示する。
【００９３】
ポインタをグラフ上に表示すると、入力部１１からポインタを移動させる指示が入力されたか否かを判定する（ステップＳ４７）。入力部１１から右キー「→」が入力された場合（Ｙ）には、グラフ座標系におけるポインタのｘ座標（ｘ１）を、ｘ１＋Δｘの位置に変更し（ステップＳ４９）、ステップＳ４５に戻って、処理を繰り返す。一方、右キーが入力されず（Ｎ）、左キー「←」が入力された場合には（ステップＳ５０）、グラフ座標系におけるポインタのｘ座標（ｘ１）を、ｘ１−Δｘの位置に変更し（ステップＳ５１）、ステップＳ４５に戻って、処理を繰り返す。
【００９４】
一方、ステップＳ４７にて、ポインタの移動指示が入力されない場合（Ｎ）には、入力ペン４によるペンタッチ入力があるか否かを判定する（ステップＳ５２）。すなわち、入力ペン４にて、グラフ上の位置が押されたか否かを判定する。具体的には、入力ペン４にて押下された画面座標系の位置を、グラフ座標系の座標（ｘ，ｙ）に変換し、グラフ上の位置と一致するか否かを判定する。グラフ上の位置である場合（ステップＳ５２；Ｙ）には、グラフ座標系におけるポインタの（ｘ，ｙ）座標を文字式（ｘ１，ｙ１）に変換し、グラフ表示画面２ｂに表示する（ステップＳ５３）。すなわち、数式処理によって、ｘ座標（ｘ＝ｘ１）を、定数を含む数式に代入して、ｙ座標（ｙ１）を決定する。次いで、入力ペン４にて押下された位置にポインタを表示し（ステップＳ５４）、ステップＳ４７に戻って処理を繰り返す。
【００９５】
なお、ステップＳ５２にて、入力ペン４にて押下された位置がグラフ上でない場合、あるいは、入力ペン４にて押下されなかった場合、あるいは、入力部１１から本処理を終了する指示が入力された場合などには、本処理を終了する。
【００９６】
以上のように、トレース処理において、ポインタの座標を、数式処理によって算出し、数式に含まれる定数を用いた文字式によって表現する。一方、算出したポインタの座標に含まれる定数に対して、数式グラフ設定処理にて仮設定した値を代入することで、ポインタの座標を数値化し、ポインタの表示位置を決定する。故に、ポインタの座標は、入力された数式と等しい形態で表示することができ、また、ポインタの表示位置は、描画したグラフ上に矛盾なく表示することができる。
【００９７】
（２）関連グラフ作成処理
関連グラフ作成処理とは、表示したグラフに関連するグラフを作成する処理である。例えば、従来のグラフ関数電卓には、入力された数式について、法線や接線、逆関数などを算出する機能を有するものがある。更に、算出した法線や接線、逆関数などの関数に基づくグラフを作成し、元の数式のグラフ上に重ねて表示するものもある。上述の通り、グラフを作成するためには、数式に基づいてｘｙ座標系の点１つ１つを算出して描画しなければならない。すなわち、法線や接線、逆関数といった関数のグラフを作成するためには、係る関数が定数を含まない具体的な定数（数値）によって構成される必要がある。
【００９８】
そこで、本第１の実施の形態では、数式グラフ実行処理にて仮設定された定数の値を用いて、法線や接線、逆関数などの関数のグラフを作成する。また、係る関数を、元の数式に含まれる定数を用いた形態で表現する。
【００９９】
以下に、関連グラフ作成処理の一例として、法線を算出する場合を説明する。
図１７は、法線算出処理における各処理段階の表示例を示す図である。
図１７（ａ）は、処理内容を選択するためのメニュー画面５０の一例を示す図である。メニュー画面５０には、「normal（法線）」、「tangent（接線）」、「inverse（逆関数）」などの項目が表示されている。また、グラフ表示画面２ｂには「ｙ＝ｘ2−Ａｘ−４Ａ」と「ｙ＝ｘ−１」のグラフが表示されている。（ｂ）は、（ａ）にて、「normal（法線）」が選択されたときの表示画面２の一例を示す図である。利用者は、入力ペン４によって、グラフを選択すると共に、法線を求めるグラフ上の位置を指定する。（ｂ）によれば、グラフ「ｙ＝ｘ2−Ａｘ−４Ａ」が選択されている。
【０１００】
図１７（ｃ）は、図１７（ｂ）にて指定されたグラフ上の位置に法線を表示した一例を示す図である。グラフ表示画面２ｂの下方には、法線の式が表示されている。ＣＰＵ１０は、指定されたグラフ（数式）について、指定された座標上を通る法線を算出する。その際、数式に定数が含まれる場合には、数式処理によって、すなわち、その定数を文字として残したままで法線の式を算出する。そして、算出した法線の式に基づいて法線グラフを作成する。その際、法線の式に含まれる定数に対して、上述の数式グラフ実行処理にて仮設定した値を代入してグラフを作成する。
【０１０１】
図１８は、法線算出処理を説明するためのフローチャートである。ただし、フローチャートにおいて、数式処理が必要な処理段階には、「数式処理」と表している。
ＣＰＵ１０は、まず、数式グラフ実行処理を行って、定数を含む数式のグラフを作成する（ステップＳ６０）。そして、作成したグラフをグラフ表示画面２ｂに表示する（ステップＳ６１）。また、入力部１１から入力される指示に応答して、図１７（ａ）に示したようなメニュー画面５０を表示し、入力部１１（あるいは位置検出回路１３）から入力される信号に基づいて、実行する処理を決定する（ステップＳ６２）。ここでは、利用者により「法線」を算出する処理が選択されたこととする。
【０１０２】
「法線」を表示する指示が入力されると、いずれのグラフの法線を表示するかについて判定する。具体的には、まず、グラフ表示画面２ｂに複数のグラフが表示されているか否かを判定する（ステップＳ６３）。このとき、表示されているグラフが１つである場合（Ｎ）には、ステップＳ６５に移行する。一方、複数のグラフが表示されている場合（Ｙ）には、入力部１１（あるいは位置検出回路１３）から入力される信号に応答して、処理対象となるグラフを１つ決定する（ステップＳ６４）。
【０１０３】
続いて、決定したグラフについて、法線の式を算出する。そのために、まず、法線を求めるグラフ上の位置を決定する。法線を求める位置は、利用者による入力ペン４の押下位置に基づいて決定する。具体的には、位置検出回路１３から入力される位置信号に応じて、画面座標系における位置を判定し、係る位置にポインタを表示する（ステップＳ６５）。そして、判定したポインタの座標を、画面座標系からグラフ座標系に変換して、法線を求める座標（α，β）を決定する（ステップＳ６６）。このとき、ステップＳ６４にて選択されたグラフの数式を読出し、係る数式にポインタのｘ座標αを代入してｙ座標βを算出してもよい。ただし、数式は、ＲＡＭ１６内の定数記憶エリア１６ｂに記憶された数式を読み出して行う。すなわち、座標（α，β）は、文字式により表現される座標である。
【０１０４】
次いでＣＰＵ１０は、法線の傾きＡとｙ切片Ｂを算出する。まず、定数を含む数式ｙ＝ｆ（ｘ）をｘで微分し、更に、微分して得られた関数(d/dx)ｙ＝(d/dx)ｆ（ｘ）に、ｘ＝αの値を代入して、位置（α，β）におけるグラフの接線の傾きε´を算出する（ステップＳ６７）。そして、ε´に基づいて法線の傾きεを決定する；ε＝１／ε´（ステップＳ６８）。また、算出した傾きεと、座標（α，β）に基づいて法線のｙ切片ρを求める；ρ＝β−εα（ステップＳ６９）。これらの処理によって、法線の式ｙ＝εｘ＋ρを決定する（ステップＳ７０）。ここで、重要なことは、ステップＳ６７〜Ｓ７０までの処理は、全て数式処理によって成されることである。すなわち、法線の傾きεと、ｙ切片ρには、定数が含まれる可能性がある。
【０１０５】
ＣＰＵ１０は、法線ｙ＝εｘ＋ρを算出すると、係る法線に含まれる定数に、数式グラフ実行処理にて仮設定した値を代入し、法線のグラフを作成する（ステップＳ７１）。そして、作成した法線のグラフをグラフ表示画面２ｂに追加表示し（ステップＳ７２）、更に、ステップＳ７０にて決定した定数を含む法線の式ｙ＝εｘ＋ρを表示して（ステップＳ７３）、本処理を終了する。
【０１０６】
すなわち、ＣＰＵ１０は、まず、数式処理によって、元の数式に含まれる定数を文字として残したままで、法線の式を算出し、これをグラフ表示画面２ｂに表示する。また、係る法線のグラフを表示するために、数式グラフ実行処理にて仮設定した定数の値を、法線の式に代入して、法線グラフを作成する。このように、数式処理と、定数に値を仮設定する処理（仮設定処理）とを併用することにより、元の数式に含まれる定数を用いた矛盾のない法線の式を表示することができると共に、先に表示したグラフと矛盾を来すことなく法線グラフを表示することが可能となる。
【０１０７】
なお、数式処理によって入力された数式に基づく所与の関数を算出し、更に、算出した関数に含まれる定数に、仮設定処理によって設定された値を代入することで係る関数のグラフを作成する、といった処理を行えば、法線だけでなく、接線や逆関数にも適用することが可能である。
【０１０８】
図１９は、接線算出処理における各処理段階の画面例を示す図である。
図１９（ａ）は、メニュー画面５０の一例を示す図である。グラフ表示画面２ｂには、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフと「ｙ＝ｘ−１」のグラフが表示されている。（ｂ）は、（ａ）にて、「tangent（接線）」が選択されたときの表示画面２の一例を示す図である。利用者は、入力ペン４によって、グラフと、接線を求める位置と、を指定する。（ｂ）によれば、グラフ「ｙ＝ｘ2−Ａｘ−４Ａ」が選択されている。（ｃ）は、（ｂ）にて指定されたグラフ上の位置に接線を表示した一例を示す図である。グラフ表示画面２ｂの下方には、接線の式が表示されている。
【０１０９】
ＣＰＵ１０は、図１８に示した法線算出処理とほぼ同様の処理を行うことによって、定数を含む接線の式と、接線のグラフを表示することができる。ただし、図１８に示したフローチャートによれば、元の数式ｙ＝ｆ（ｘ）をｘで微分した関数(d/dx)ｙ＝(d/dx)ｆ（ｘ）にｘ＝αを代入した値ε´に基づいて、法線の傾きε＝１／ε´を算出することとして説明した。しかし、接線の場合には、値ε´そのものが接線の傾きである。故に、ｙ切片ρ´は、ρ´＝β−ε´αにより算出され、接線の式ｙ＝ε´ｘ＋ρ´を算出することができる。
【０１１０】
図２０は、逆関数算出処理における各処理段階の表示例を示す図である。
図２０（ａ）は、メニュー画面５０の一例を示す図である。また、グラフ表示画面２ｂには、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフと「ｙ＝ｘ−１」のグラフが表示されている。利用者は、入力ペン４にて、メニュー画面５０に表示される項目の中から「inverse（逆関数）」を選択する。また、グラフ表示画面２ｂに表示されるグラフのうち、処理対象となるグラフを入力ペン４にて選択する。（ｂ）は、選択されたグラフの逆関数を表示した一例を示す図である。グラフ表示画面２ｂには、逆関数のグラフが追加表示され、また、グラフ表示画面２ｂの下方には、逆関数の式「ｘ＝ｙ2−Ａｙ−４Ａ」が表示されている。
【０１１１】
すなわち、ＣＰＵ１０は、指定されたグラフの数式の逆関数を求めると共に、そのグラフを描画して表示する。その際、指定された数式に定数が含まれる場合には、数式処理によって、すなわち、定数を文字として残したままで逆関数を算出する。また、グラフを作成する際には、数式グラフ実行処理にて仮設定された値を、算出した逆関数に代入してグラフを作成する。
【０１１２】
より詳細には、図１８に示した法線算出処理と同様に、まず、数式グラフ実行処理により利用者により入力された数式のグラフを作成し、表示する。そして、入力部１１から入力される指示に従ってメニュー画面５０を表示し、「逆関数」を表示する指示が入力されると、処理対象となるグラフを決定する。そして、係るグラフについて、数式処理により、定数を文字として残したままで逆関数の式を算出し、これをグラフ表示画面２ｂの下方に表示する。更に、算出した逆関数の式に含まれる定数に対して、数式グラフ実行処理にて仮設定した値を代入し、グラフを作成し、表示する。
【０１１３】
なお、以上の処理は、法線や接線、逆関数を導出する場合に限定する必要はなく、１の数式に基づいて異なる数式を導出するタイプの関数演算であれば、如何なるものにも適用可能である。例えば、変数ｘについて微分した関数のグラフを表示する場合にも適用可能である。具体的には、微分演算を数式処理により定数を文字として残したままで実行し、微分後の数式をグラフ表示画面２ｂの下方に表示する。更に、微分後の数式に含まれる定数に対して、数式グラフ実行処理にて仮設定した値を代入して、グラフを描画して表示する。このように、数式処理と仮設定処理とを併用することにより、他の関数演算にも適用することが可能である。
【０１１４】
（３）積分グラフ処理
積分グラフ処理とは、グラフ表示画面２ｂに表示したグラフについて、利用者により指定された範囲の積分を実行し、その解を表示する機能である。その際、グラフ上の積分範囲を塗り潰して表示する。本第１の実施の形態では、積分対象となる数式が、定数を含むものである場合には、その積分結果を文字式によって表示する。
【０１１５】
図２１は、積分グラフ処理における各処理段階の画面例を示す図である。
図２１（ａ）は、メニュー画面５１の一例を示す図である。また、グラフ表示画面２ｂには、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフと、「ｙ＝ｘ−１」のグラフが表示されている。利用者は、入力ペン４によりメニュー画面５１に表示される項目の中から「∫dx（積分）」を押下入力する。位置検出回路１３は、入力ペン４にて押下されたタブレット１２上の位置を判定し、その位置信号をＣＰＵ１０に出力する。ＣＰＵ１０は、位置検出回路１３から入力される位置信号に基づいて実行する処理を決定する。
【０１１６】
図２１（ｂ）は、積分範囲の下端を指定する際の画面例を示す図である。利用者は、入力ペン４にて、グラフ上の所望の箇所を積分範囲の下端６０として押下入力する。（ｃ）は、積分範囲の上端を指定する際の画面例を示す図である。利用者は、入力ペン４にて、グラフ上の所望の箇所を積分範囲の上端６１として押下入力する。位置検出回路１３は、入力ペン４にて押された位置を検出し、その位置信号をＣＰＵ１０に出力する。ＣＰＵ１０は、位置検出回路１３から入力される位置信号に基づいて、積分範囲の下端および上端を決定する。
【０１１７】
図２１（ｄ）は、実行した積分範囲を塗り潰して表示した一例を示す図である。ＣＰＵ１０は、指定された積分範囲について積分を実行すると共に、その解をグラフ表示画面２ｂの下方に表示する。ただしその際、積分対象となる数式に定数が含まれる場合には、積分結果を文字式によって表示する。
【０１１８】
なお、積分範囲を指定する方法としては、図２１に示したように、ペンタッチ入力により指定する方法に限らず、例えば、プロット入力や、カーソル入力などにより指定する方法を用いてもかまわない。ここで、プロット入力とは、利用者が積分範囲として具体的な座標を入力する方法である。この場合には、利用者が座標を入力するための入力領域を表示画面２に表示し、利用者は、入力キー３や入力ペン４などにより座標を入力する。また、カーソル入力とは、グラフ上にポインタ（カーソル）を表示し、左右キーなどの押下入力に応答してポインタをグラフ上に移動させて、積分範囲を指定する方法である。以下では、カーソル入力の方法により積分範囲を決定する場合を例に説明する。
【０１１９】
図２２は、積分グラフ処理を説明するためのフローチャートである。
図２２では、数式処理が必要な処理段階に、「数式処理」と表示した。
まず、ＣＰＵ１０は、数式グラフ実行処理を実行して、定数を含む数式のグラフを作成する（ステップＳ８０）。そして作成したグラフをグラフ表示画面２ｂに表示する（ステップＳ８１）。更に、ＣＰＵ１０は、入力部１１から入力される信号に応答して、図２１（ａ）に示したようなメニュー画面５１を表示する。そして、入力部１１（もしくは、位置検出回路１３）から入力される信号に基づいて、実行する処理を判定する（ステップＳ８２）。ここでは、「∫dx（積分）」の処理が選択されたこととする。
【０１２０】
さて、ＣＰＵ１０は、「∫dx（積分）」処理を実行する前に、積分対象となるグラフを特定する。具体的には、グラフ表示画面２ｂに複数のグラフが表示されているか否かを判定する（ステップＳ８３）。このとき、表示されているグラフが１つである場合には、ステップＳ８５に移行する。一方、複数のグラフが表示されている場合には、入力部１１（もしくは、位置検出回路１３）から入力される信号に応答して１のグラフを決定する（ステップＳ８４）。
【０１２１】
積分対象となるグラフを決定すると、ＣＰＵ１０は、ポインタと、最小値シンボルと、座標値を表示する（ステップＳ８５）。ここで、ポインタは、左右キーなどの入力に応答してグラフ上を移動する表示体である。また、最小値シンボルとは、係るポインタが積分の最小値（下端）を指定するためのポインタであることを示す標識である。また、座標値とは、ここでは、グラフ座標系におけるポインタのｘ座標を示すものである。
【０１２２】
入力部１１から左右キーの押下信号が入力されると、ＣＰＵ１０は、その入力に応答して、ポインタをグラフ上に移動させる。その際、移動後のポインタのｘ座標を算出し、グラフ表示画面２ｂに表示したポインタのｘ座標を更新する（ステップＳ８６）。そして、入力部１１からポインタの位置について確定する指示が入力されると（ステップＳ８７）、係るポインタの位置を判定して、積分範囲の下端を決定し、ポインタを退避させる（ステップＳ８８）。
【０１２３】
積分範囲の下端を決定すると、上端を決定すべく、ポインタと、最大値シンボルと、座標値を表示する（ステップＳ８９）。ここで、ポインタとは、上述のポインタと同様に、左右キーなどの入力に応答してグラフ上を移動する表示体である。また、最大値シンボルとは、係るポインタが積分の最大値（上端）を指定するためのポインタであることを示すためのシンボルである。また、座標値とは、グラフ座標系におけるポインタのｘ座標を示すものである。
【０１２４】
入力部１１から左右キーの押下信号が入力されると、ＣＰＵ１０は、その入力に応答して、ポインタをグラフ上に移動させる。その際、ポインタを移動させる毎に、ポインタのｘ座標を算出し、グラフ表示画面２ｂに表示した値を更新する（ステップＳ９０）。そして、入力部１１からポインタの位置について確定する指示が入力されると（ステップＳ９１）、係るポインタの位置を判定して、積分範囲の上端を決定し、ポインタを退避させる（ステップＳ９２）。
【０１２５】
積分範囲を決定すると、数式処理によって、指定された数式の積分を実行する（ステップＳ９３）。具体的には、ＣＰＵ１０は、ＲＡＭ１６の定数記憶エリア１６ｂに記憶される定数を含む数式を読み出して、定数を文字として残したままで積分を実行する。そして、決定した下端と上端のｘの値を、積分後の定数を含む数式に代入して積分の解を求める。更に、指定された積分範囲を塗り潰して表示する（ステップＳ９４）。具体的には、下端のｘ座標（ｘL）と、上端のｘ座標（ｘU）と、に囲まれる範囲（ｘL≦ｘ≦ｘU）における、グラフとｘ軸とに囲まれる範囲を塗り潰す。そして、下端と上端のｘ座標と、積分結果をグラフ表示画面２ｂに表示して、本処理を終了する。
【０１２６】
なお、積分範囲を指定する方法としては、上述のように、ペンタッチ入力やカーソル入力による指定方法に限らず、プロット入力による指定方法を用いてもよい。すなわち、利用者が直接座標を入力できるようにしてもよい。その際、積分範囲の下端と上端を、未知定数（定数）を含む文字式によって指定できるようにしてもよい。例えば、未知定数ｂが入力された場合には、係る入力が上端を指定するものか、下端を指定するものかを判定する。そして、ｘの表示座標範囲ｘmin≦ｘ≦ｘmaxにおける適当な位置を選択して、定数ｂに値を仮設定し、積分範囲を決定する。このように、積分範囲の指定についても定数の使用を可能とすることにより、教育の現場における電子機器１の利用価値を高めることができる。
【０１２７】
（４）座標算出処理
座標算出処理とは、表示したグラフ上の特定の座標を算出する処理を意味する。例えば、従来のグラフ関数電卓には、任意のｙ座標に対応するグラフ上のｘ座標を算出する機能（Ｘ−ＣＡＬ機能）や、複数のグラフの交点を算出する機能や、グラフのｙ切片やｘ切片を算出する機能（Ｙ−ＣＡＬ機能）や、グラフの極値（極大値、極小値）を算出する機能、などを有するものがある。また、算出した座標にポインタを表示して、グラフ上の位置を明瞭に示すものもある。これらの座標は数式に基づいて算出されるものであり、係る数式に含まれる定数は、従来のグラフ関数電卓によれば、具体的な数値により構成される必要があった。
【０１２８】
本第１の実施の形態では、数式処理によって、各座標、すなわち、任意のｙ座標に対応するｘ座標や、複数グラフの交点、ｙ切片、ｘ切片、極値、などの座標を、定数を文字として残したままで算出する。また、ポインタの表示位置は、上記数式グラフ実行処理にて仮設定された定数の値を、算出した各座標に代入して、決定する。
【０１２９】
以下に、座標算出処理の一例として、Ｘ−ＣＡＬ処理を説明する。
図２３は、Ｘ−ＣＡＬ処理における各処理段階の表示例を示す図である。
図２３（ａ）は、利用者が処理内容を選択するためのメニュー画面５２の一例を示す図である。また、グラフ表示画面２ｂには、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフと、「ｙ＝ｘ−１」のグラフが表示されている。利用者は、入力ペン４により、所望の処理を選択する。（ｂ）は、Ｘ−ＣＡＬ機能が選択された場合の画面例を示す図である。利用者は、入力ペン４により処理対象となるグラフを選択する。
【０１３０】
図２３（ｃ）は、利用者がｙ座標を入力するための入力画面７０（ポップアップ表示）の一例を示す図である。利用者は、係る入力画面７０にｙ座標の値を入力する。このとき、利用者は、具体的な数値だけでなく、文字式を入力してもよい。（ｃ）によれば、ｙ座標として、「Ｂ2−ＡＢ−４Ｂ」が入力されている。定数Ｂは、未知定数である。なお、ｙ座標を入力する方法としては、入力キー３により数値や定数を入力する方法に限らず、ペンタッチ入力により行っても良いし、カーソル入力（ポインタの移動表示）により位置を指定するようにしてもよい。
【０１３１】
図２３（ｄ）は、入力されたｙ座標の値に対応するグラフ上のｘ座標を算出し、該当する位置にポインタ７１を表示した一例を示す図である。同図によれば、ｘ座標の値として「Ｂ」が、ｙ座標の値として「Ｂ2−ＡＢ−４Ｂ」が、それぞれグラフ表示画面２ｂに表示されている。すなわち、ＣＰＵ１０は、数式処理によって、入力されたｙ座標に対応するｘ座標を算出して表示し、また、未知定数Ｂに適当な値を代入してポインタの表示位置を決定する。
【０１３２】
以下に、図２４に示すフローチャートを用いて、Ｘ−ＣＡＬ処理について詳細に説明する。
まず、ＣＰＵ１０は、数式グラフ実行処理を行って、定数を含む数式のグラフを作成する（ステップＳ１００）。そして、作成したグラフをグラフ表示画面２ｂに表示し（ステップＳ１０１）、入力部１１から入力される指示に応答して図２３（ａ）に示したようなメニュー画面５２を表示する。更に、ＣＰＵ１０は、入力部１１（もしくは、位置検出回路１３）から入力される信号に応答して実行する処理を決定する（ステップＳ１０２）。ここでは、Ｘ−ＣＡＬ処理が選択されたこととする。
【０１３３】
さて、ＣＰＵ１０は、Ｘ−ＣＡＬ処理が選択されると、処理対象となるグラフを特定する。具体的には、グラフ表示画面２ｂに複数のグラフが表示されているか否かを判定する（ステップＳ１０３）。このとき、表示されているグラフが１つである場合には、ステップＳ１０５に移行する。一方、複数のグラフが表示されている場合には、入力部１１（もしくは、位置検出回路１３）から入力される信号に応答して１のグラフを決定する（ステップＳ１０４）。
【０１３４】
処理対象となるグラフを決定すると、ｙ座標を特定するための入力画面７０を表示する；ポップアップ表示（ステップＳ１０５）。入力画面７０にｙ座標が入力されると（ステップＳ１０６）、入力されたｙ座標が文字式か否か、換言すれば、未知定数が含まれるか否かを判定する（ステップＳ１０７）。このとき、文字式でない場合には、入力された値をｙ座標としてそのまま採用する（ステップＳ１０８）。
【０１３５】
一方、入力されたｙ座標が文字式である場合には、ｙ座標として適当な数値を設定する（ステップＳ１０９）。具体的には、ｙの表示座標範囲（ｙmin≦ｙ≦ｙmax）の中から乱数によって適当な数値を決定する。あるいは、表示座標範囲内のｙの値域からｙ座標を決定してもよい。すなわち、表示座標範囲全体には、グラフのｙ座標が含まれない範囲が存在する可能性がある。例えば、上に凸な二次関数を表示した場合、グラフはｙ極大値より大きいｙ座標を持たない。係る場合には、表示座標範囲からｙの値域を抽出し、その抽出したｙの値域の中からｙ座標を選択するようにしてもよい。
【０１３６】
ｙ座標を決定すると、ＣＰＵ１０は、数式処理によって、グラフ座標系における対応するｘ座標を算出する（ステップＳ１１０）。このとき、数式に含まれる定数を文字として残したままでｘ座標を算出する。なお、ｙ座標の値として文字式が入力された場合には、係るｙ座標の定数をも残したままでｘ座標を算出する。具体的には、ＲＡＭ１６の定数記憶エリア１６ｂから、定数を含む数式を読み出す。そして、ステップＳ１０６にて利用者入力されたｙ座標の値をそのまま（すなわち、定数が含まれるか否かに拘わらず）数式に代入し、ｘ座標を算出する。そして、その算出したｘ座標と、ｙ座標とを、グラフ座標系におけるポインタの座標とする。
【０１３７】
続いて、ＣＰＵ１０は、ステップＳ１１０にて算出したポインタの座標（ｘ，ｙ）を数値化して、ポインタの表示位置を決定する（ステップＳ１１１）。具体的には、ポインタの座標（ｘ，ｙ）に含まれる定数に、上記数式グラフ実行処理にて仮設定した値を代入する。なお、定数の値は、ＲＡＭ１６内の定数記憶エリア１６ｂに記憶される値を読み出して用いる。また、利用者により入力されたｙ座標が文字式である場合には、ステップＳ１０９にて設定したｙ座標の値から定数の値を逆算して、代入する。係る処理により、グラフ座標系におけるポインタの具体的な座標を決定すると、その座標を画面座標系に変換して、ポインタの表示位置を決定する。
【０１３８】
ＣＰＵ１０は、決定した画面座標系の位置にポインタを表示し（ステップＳ１１２）、更に、ステップＳ１１０にて算出したポインタの定数を含む座標を表示する（ステップＳ１１３）。そして、まだ解が存在するか否かを判定し（ステップＳ１１４）、存在する場合には、ステップＳ１１２に戻って、ポインタを表示する。一方、全ての解を表示し、入力部１１（あるいは、位置検出回路１３）から解除もしくは処理を終了する指示が入力されると（ステップＳ１１５）、本処理を終了する。
【０１３９】
このように、座標を算出する際には、数式処理により定数を文字として残したままで指定された座標を算出し、グラフ座標系における座標を決定する。その上で、数式グラフ実行処理にて仮設定した定数の値を代入して具体的な座標を算出し、ポインタの表示位置を決定する。故に、入力された数式との矛盾を来すことなく、ポインタの座標を表示することができると共に、既に表示したグラフとの位置関係に矛盾を来すことなく、ポインタを表示することが可能となる。
【０１４０】
なお、上記説明では、Ｘ−ＣＡＬ処理により、利用者により指定されたｙ座標に対応するｘ座標を求める処理について説明したが、これに限定する必要はない。例えば、利用者により指定されたｘ座標に対応するグラフ上のｙ座標の値を求める処理（Ｙ−ＣＡＬ処理）に適用しても良いことは勿論である。
【０１４１】
なお、定数を含む数式が入力された場合に、数式処理により所与の座標を算出し、更に、仮設定した定数の値を算出した座標に代入してポインタの表示位置を決定する、といった処理方法は、Ｘ−ＣＡＬ処理に限定する必要はなく、他の座標を表示する処理にも適用可能である。例えば、交点を算出する処理や、グラフのｙ切片、ｘ切片を算出する処理、極値を算出する処理、などにも適用可能である。
【０１４２】
図２５は、交点算出処理における各処理段階の画面例を示す図である。
図２５（ａ）は、表示したグラフについて実行する処理を利用者が選択するためのメニュー画面５３の一例を示す図である。利用者は、例えば、入力ペン４などによりメニュー画面５３に表示された項目の中から交点算出処理を選択する。また、（ａ）によれば、グラフ表示画面２ｂには、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフと、「ｙ＝ｘ−１」のグラフが２つの交点を持つように描画されている。
【０１４３】
ＣＰＵ１０は、入力部１１から交点を算出する指示が入力されると、グラフ表示画面２ｂに３つ以上のグラフが表示されているか否かを判定する。３つ以上のグラフが表示されている場合には、交点を算出すべく処理対象となる２つのグラフを利用者に指定させる。グラフを決定すると、対応する数式を読み出し、数式処理によって、グラフの交点を算出する。すなわち、数式に定数が含まれる場合には、係る定数を文字として残したままで交点の座標を算出する。すなわち、交点の座標には、定数が含まれることとなる。
【０１４４】
定数を含む交点の座標を算出すると、その算出した座標をグラフ表示画面２ｂの下方に表示する。また、ＣＰＵ１０は、グラフ上の交点の位置にポインタを表示する。その際、交点の座標に定数が含まれる場合には、数式グラフ実行処理にて仮設定した定数の値を交点の座標に代入し、グラフ座標系におけるポインタ（交点）の具体的な座標を算出する。更に、その算出した座標を、画面座標系に変換し、ポインタの表示位置を決定する。
【０１４５】
図２５（ｂ）は、（ａ）に示した二次関数と一次関数の一方の交点にポインタ７２を表示した一例を示す図である。（ｂ）によれば、グラフ表示画面２ｂの下方にポインタ７２の座標、すなわち、交点の座標が表示されている。この交点の座標には、数式「ｙ＝ｘ2−Ａｘ−４Ａ」に含まれる定数Ａが含まれる。このように、数式処理によって定数を文字として残したままで交点の座標を算出し、ポインタ７２を表示する際には、係る交点の座標に仮設定した定数の値を代入することで表示位置を決定する。故に、数式との関係に矛盾を来すことなく交点の座標を表示し、また、グラフの表示に矛盾を来すことなく、交点位置にポインタ７２を表示することができる。
【０１４６】
図２６は、ｙ切片算出処理における各処理段階の表示例を示す図である。
図２６（ａ）は、メニュー画面５３の一例を示す図である。同図によれば、グラフ表示画面２ｂには、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフと、「ｙ＝ｘ−１」のグラフが表示されている。利用者は、メニュー画面５３に表示された各項目の中から入力ペン４によってｙ切片算出処理を選択する。また、利用者は、入力ペン４にて、処理対象となるグラフを選択する。
【０１４７】
ＣＰＵ１０は、利用者によりｙ切片を算出する処理が選択されると、グラフ表示画面２ｂに複数のグラフが表示されているか否かを判定し、複数のグラフが表示されている場合には、処理対象となるグラフを利用者に選択させる。そして、選択されたグラフの数式を読み出す。数式に定数が含まれる場合には、数式処理によってｙ切片を算出する。具体的には、数式にｘ＝０を代入してｙ切片の値を算出する。
【０１４８】
ｙ切片の座標を算出すると、ＣＰＵ１０は、グラフ上のｙ切片の位置にポインタを表示する。その際、ｙ切片の値に定数が含まれる場合には、数式グラフ実行処理にて仮設定した定数の値を代入し、ｙ切片の具体的な座標（数値）を決定する。図２６（ｂ）は、指定されたグラフのｙ切片７３を表示した一例を示す図である。また、グラフ表示画面２ｂの下方には、ｙ切片７３の座標が表示されている。係る座標は、文字式により表示される。
【０１４９】
図２７は、ｘ切片算出処理における各処理段階の表示例を示す図である。
図２７（ａ）は、メニュー画面５３の一例を示す図である。また、グラフ表示画面２ｂには、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフと、「ｙ＝ｘ−１」のグラフとが表示されている。利用者は、入力ペン４によりメニュー画面５３に表示される項目の中からｘ切片算出処理を選択する。ＣＰＵ１０は、処理が指定されると、処理対象となるグラフを利用者に特定させる。（ｂ）は、グラフが指定された場合の一例を示す図であり、数式「ｙ＝ｘ2−Ａｘ−４Ａ」が利用者により選択された場合を示している。なお、グラフ上のポインタ７４が、係るグラフが選択されたことを示している。
【０１５０】
ＣＰＵ１０は、処理対象となるグラフが選択されると、対応する数式を読み出す。そして、数式処理により、読み出した数式にｙ＝０を代入し、係る方程式を満たすｘの値を、定数を文字として残したままで算出する。さて、ｘの解が得られると、係るｘ座標の値をグラフ表示画面２ｂに表示すると共に、ｘ座標に含まれる定数に、上記数式グラフ実行処理にて仮設定した値を代入し、ｘ切片の具体的な座標を算出する。また、算出したグラフ座標系におけるｘ切片の座標を、画面座標系に変換してポインタの表示位置を決定し、ポインタを表示する。図２７（ｃ）は、一方のｘ切片にポインタ７５を表示し、更にポインタ７５の座標をグラフ表示画面２ｂの下方に表示した一例を示す図である。（ｃ）によれば、ポインタ７５の座標には、定数Ａが含まれる。
【０１５１】
図２８は、極値算出処理における各処理段階の表示例を示す図である。
図２８（ａ）は、数式グラフ実行処理により、数式「ｙ＝ｘ2−Ａｘ−４Ａ」のグラフを表示した一例を示す図である。利用者は、入力ペン４や入力キー３によって極値を求める指示、極大値のみを求める指示、あるいは、極小値のみを求める指示、などを入力する。（ｂ）は、利用者により極小値を表示する指示が入力された際のグラフ表示画面２ｂの一例を示す図である。（ｂ）によれば、「ＭＩＮ」という表示領域７６がポップアップ表示されている。（ｃ）は、ＣＰＵ１０が係る数式について極小値を算出し、ポインタ７７を表示した一例を示す図である。グラフ表示画面２ｂの下方には、極小値のｙ座標が表示されており、係る座標は、Ａの文字式によって表示されている。
【０１５２】
ＣＰＵ１０は、処理対象となるグラフが選択されると、係るグラフの数式を読み出す。数式に定数が含まれる場合には、数式処理によって、数式ｙ＝ｆ（ｘ）の一階微分および二階微分の式を算出する。まず、一階微分（d/dx)ｙ＝（d/dx)ｆ（ｘD）＝０なるｘDの存在有無を判定する。（d/dx)ｙの値をゼロにするｘDが存在する場合には、そのｘDの値を確保する。更に、二階微分（d/dx)2ｙ＝（d/dx)2ｆ（ｘD）の符号を判定する。二階微分が正であれば、ｘDはｙの極大位置であるし、負であれば、ｘDはｙの極小位置となる。しかし、数式に定数が含まれる場合には、符号を判定できない場合がある。係る場合には、数式グラフ実行処理にて仮設定した値を代入して符号を判定する。
【０１５３】
算出した極値について極大か極小かを判別すると、数式処理によって、すなわち、定数を含む元の数式ｙ＝ｆ（ｘ）に極値のｘ座標ｘDを代入して、ｙ座標ｙDを算出する。係る文字式による極値の座標（ｘD，ｙD）をグラフ表示画面２ｂに表示する。更に、算出した極値の座標（ｘD，ｙD）に含まれる定数に、数式グラフ実行処理にて仮設定した定数の値を代入して、ポインタの表示位置を決定する。
【０１５４】
以上のように、グラフ上の特定の座標を算出する際には、数式処理によって係る座標を算出し、グラフ上にポインタを表示する際には、数式グラフ実行処理にて仮設定した値を算出した座標に含まれる各定数に代入する。故に、仮に作成して表示したグラフについても、従来と同様の機能表示をすることが可能となる。すなわち、グラフと数式との間に矛盾を来すことなく、グラフ上にポインタを表示し、更に、座標を文字式によって表示することが可能となる。
【０１５５】
〔第２の実施の形態〕
従来のグラフ関数電卓には、式（関数）に基づいてグラフを描画する機能だけでなく、ペンタッチ入力などにより入力された座標に基づいてグラフを作成する機能を有するものがある。例えば、中心点の座標と半径とが入力されると、係る座標に基づいて円を描画するものがある。あるいは、２次元座標上に２点の座標が入力されると、係る２点を結ぶ直線（一次関数）を描画するものもある。ところで、教育の現場では、取りたてて座標を特定せずに円や一次関数を描き、各軸に対する切片や中心点の座標などを定数によって表現する場合がある。しかし、従来のグラフ関数電卓では、利用者により具体的な座標値が入力されなければグラフを作成することができなかった。
【０１５６】
本第２の実施の形態におけるグラフ表示機能付き電子機器（以下、単に電子機器という）は、表示するグラフについて切片や中心点の座標を表示する際、文字式を用いて表示する。例えば、表示した座標系について利用者がペンタッチ入力により座標を指定した場合、電子機器は、表示した座標系に基づく具体的な座標値によって係る指定位置を表示することが可能であるが、本第２の実施の形態では、敢えて文字式によって座標を表示する。また、利用者により座標を文字式によって入力された場合には、係る定数に具体的な数値を仮設定してグラフを作成し、一方で、座標は入力された定数を用いて表現する。
【０１５７】
なお、本第２の実施の形態における電子機器の外観構成および内部構成は、図１および図２に示した構成とほぼ同等である。故に、以下では、各部の詳細な説明を省略し、同一の機能部は同一の符号で表す。
【０１５８】
ただし、本実施の形態におけるＲＯＭ１７には、第１の実施の形態にて説明したプログラムの他、ＣＰＵ１０が後述する円描画処理を実行するための円描画プログラムが格納される。すなわち、ＲＯＭ１７は、電子機器１の電源がＯＮ状態にされたときに実行する初期表示プログラム、メニュー表示プログラム、定数データ、などの他、図２９に示すように、グラフ描画プログラム１７ａ、数式処理プログラム１７ｂ、関数演算プログラム１７ｃ、関数データ１７ｄ、円描画プログラム１７ｊ、を記憶する。
【０１５９】
図３０は、円描画処理における各処理段階の表示例を示す図である。
図３０（ａ）は、利用者が処理内容を指定するためのメニュー画面５４の表示例を示す図である。利用者は、入力ペン４や入力キー３によってメニュー画面５４に表示される項目の中から円描画処理を選択する。（ｂ）は、円の中心点の座標（ｘ，ｙ）および半径ｒを入力するための入力画面８０の一例を示す図である。（ｂ）によれば、円の中心座標として、定数Ａを含む座標（１，Ａ）が、円の半径としてｒ＝２がそれぞれ入力されている。ＣＰＵ１０は、係る定数Ａに適当な数値を代入して中心点の座標を決定する。
【０１６０】
図３０（ｃ）は、中心点の座標と、半径位置を表示した一例を示す図である。ＣＰＵ１０は、入力された定数Ａに適当な数値を代入し、座標（１，Ａ＋２）の位置８１と、座標（１，Ａ）の位置８２にポインタを表示する。また、ＣＰＵ１０は、設定した座標に基づいて円を描画する。（ｄ）は、円を描画して表示した一例を示す図である。同図によれば、座標（１，Ａ＋２）の位置８３にポインタを表示している。また、表示画面２の下方には、定数Ａを含む円の方程式「（ｘ−１）2＋（ｙ−Ａ）2＝４」が表示されている。すなわち、ＣＰＵ１０は、入力された定数に適当な数値を代入してグラフを作成する一方で、定数を文字として残したままで円の方程式を作成してグラフ表示画面２ｂに表示する。また、グラフの下方に、円の中心点の座標を文字式によって表示する。
【０１６１】
図３０を用いて利用者が座標を直接入力するプロット入力の場合について説明したが、ペンタッチ入力により中心点の座標や半径を入力できるようにしてもよい。係る場合には、ペンタッチにより指定された位置の座標を文字式に置き換えて表示する。
【０１６２】
以下に、円描画処理について、図３１に示すフローチャートを用いて詳細に説明する。
まず、ＣＰＵ１０は、図３０（ａ）に示したように、メニュー画面５４を表示する。そして、メニュー画面５４の中から円描画処理が選択され（ステップＳ１２０）、更に、処理を実行する指示が入力されると（ステップＳ１２１）、座標の入力方法を利用者に特定させる（ステップＳ１２２）。すなわち、ペンタッチ入力による座標入力を行うか、プロット入力により座標入力を行うかについて利用者に選択させる。
【０１６３】
ステップＳ１２２にて、入力部１１（もしくは、位置検出回路１３）からペンタッチ入力により処理を実行する指示が入力された場合には、ＣＰＵ１０は、ペンタッチ入力による処理モードに移行し、中心座標および半径を決定する。
【０１６４】
まず、ＣＰＵ１０は、ペンタッチ入力により指定される位置に基づいて、円の中心点の座標を決定する。具体的には、位置検出回路１３から座標信号が入力されると、係る指定座標位置にポインタを表示する（ステップＳ１２３）。表示したポインタ位置について、確定する指示が入力部１１（もしくは位置検出回路１３）から入力されると（ステップＳ１２４）、確定された位置（α，β）を円の中心座標として確保する（ステップＳ１２５）。ただし、座標（α，β）は、具体的な数値である。
【０１６５】
続いて、ＣＰＵ１０は、ペンタッチ入力により指定される位置に基づいて円の半径を決定する。具体的には、位置検出回路１３から入力される座標信号に基づいて、指定座標位置にポインタを表示する（ステップＳ１２６）。表示したポインタ位置について、確定する指示が入力部１１（もしくは位置検出回路１３）から入力されると（ステップＳ１２７）、確定された位置（γ，δ）を円の半径の位置として確保する（ステップＳ１２８）。ただし、座標（γ，δ）は、具体的な数値である。
【０１６６】
更に、ＣＰＵ１０は、円の中心座標（α，β）と、半径位置（γ，δ）の座標に基づいて円の半径ｒを算出する（ステップＳ１２９）。すなわち、ｒ＝√｛（α−γ）2＋（β−δ）2｝を計算し、半径ｒを決定する。ただし、半径ｒは、具体的な数値である。
【０１６７】
一方、ステップＳ１２２にて、入力部１１（もしくは、位置検出回路１３）からプロット入力により処理を実行する指示が入力された場合には、ＣＰＵ１０は、プロット入力による処理モードに移行し、円の中心座標および半径を決定する。
【０１６８】
まず、ＣＰＵ１０は、入力部１１から入力される信号に基づいて、円の中心座標を決定する。具体的には、図３０（ｂ）に示したような入力画面８０を表示する。そして、中心座標（Ａ，Ｂ）が入力されると（ステップＳ１３０）、係る座標に定数が含まれるか否かを判定する（ステップＳ１３１）。定数が含まれない場合には、ステップＳ１３３に移行する。一方、入力された座標（Ａ，Ｂ）が文字式である場合には、中心点の座標を所定範囲からランダムに決定する（ステップＳ１３２）。例えば、表示座標範囲よりも小さい原点近傍の座標範囲（ｘF1≦ｘ≦ｘF2，ｙF1≦ｙ≦ｙF2）の中からランダムに中心点の座標（Ａ，Ｂ）の値（α，β）を決定する。
【０１６９】
続いて、ＣＰＵ１０は、入力部１１から入力される信号に基づいて半径を決定する。具体的には、入力画面８０に半径Ｒが入力されると（ステップＳ１３３）、係る半径Ｒが文字式か否かを判定する（ステップＳ１３４）。文字式でない場合、すなわち、特定の数値が入力されている場合には、ステップＳ１３６に移行する。一方、入力された半径Ｒが文字式である場合には、所定の範囲からランダムに半径Ｒの値を決定する（ステップＳ１３５）。例えば、表示座標範囲よりも小さい範囲（ＲF1≦Ｒ≦ＲF2）からランダムに半径Ｒの値ｒを決定する。
【０１７０】
さて、ＣＰＵ１０は、中心点の座標（α，β）と半径ｒの値を決定すると、定数Ａ，Ｂ，Ｒを含む円の方程式（√｛（ｘ−Ａ）2＋（ｙ−Ｂ）2｝＝Ｒ）に代入して（ステップＳ１３６）、円を描画する。更に、描画した円をグラフ表示画面２ｂに表示し（ステップＳ１３７）、また、定数を含む円の方程式（√｛（ｘ−Ａ）2＋（ｙ−Ｂ）2｝＝Ｒ）を表示する（ステップＳ１３８）。このとき、ペンタッチ入力のモードで処理を実行した場合には、定数を全て定数によって表現する。一方、プロット入力のモードで処理を実行した場合には、数値が入力された定数に関しては、その数値を用い、文字式が入力された定数に関しては、係る文字式を用いて、円の方程式を表示する。以上の処理が終了すると、ＣＰＵ１０は、円描画処理を終了する。
【０１７１】
このように、ペンタッチ入力により座標が入力された場合には、係る座標を定数によって表現する。また、プロット入力において、文字式によって座標が入力された場合には、係る定数に適当な数値を代入してグラフを描画し、また、数式や座標を表示する際には、入力された定数を用いて表現する。故に、教育の現場で見られる、一般性を備えるグラフ表示が可能となる。
【０１７２】
なお、上記定数表示の処理は、円の描画に限定する必要はなく、他のグラフの作成に適用してもかまわないことは勿論である。例えば、ペンタッチ入力により指定された座標間を結ぶ直線を描画する処理（直線描画処理）等に適用してもよい。
【０１７３】
図３２は、直線描画処理における各処理段階の表示例を示す図である。
図３２（ａ）は、メニュー画面５５の表示例を示す図である。利用者は、入力ペン４もしくは入力キー３によってメニュー画面５５に表示される項目の中から所望の処理を選択する。このとき、利用者が、「line描画」を選択すると共に、入力方法としてペンタッチ入力を選択した場合には、ＣＰＵ１０は、ペンタッチ入力に基づいて直線を描画するための処理を開始する。
【０１７４】
図３２（ｂ）は、利用者が入力ペン４によって、座標上に点を指定した一例を示す図である。（ｂ）によれば、位置８４と、位置８５が入力ペン４により指定されている。ＣＰＵ１０は、これらの指定されたグラフ座標系における座標を判定する。そして、これら２つの座標を通過する直線の方程式を算出すると、係る直線のグラフを作成する。一方で、入力された座標をそれぞれ定数に置き換えて、定数を用いて直線の方程式を表示する。例えば、一方の座標８４を（Ｃ，Ｄ）とし、他方の座標８５を（Ｅ，Ｆ）として方程式を表示する。あるいは、傾きやｙ切片の座標を定数によって表現してもよい。
【０１７５】
図３２（ｃ）は、ペンタッチ入力された座標に基づいてグラフを作成し、表示した一例を示す図である。同図によれば、グラフ表示画面２ｂの下方には、直線の方程式が定数を含む形態で表示されている； y=Ax+B。なお、数式を表示する際には、座標（Ｃ，Ｄ），（Ｅ，Ｆ）を用いて次のように表現してもよい；y=[(D-F)x+(C-E)D-(D-F)C]/(C-E)。このように、指定された座標に基づいてグラフを作成する際、その指定された座標を定数に置き換えて、方程式や各種座標を表示することで、実際の教育の現場でのグラフ作成の授業態様に沿ったグラフ表示が可能となり、電子機器１の商品価値を向上させることができる。
【０１７６】
【発明の効果】
この請求項１に記載の発明によれば、グラフ式に基づいてグラフを作成する際に、文字定数が含まれる場合には、当該文字定数に対して値を仮に設定する。そして設定された文字定数の値に基づいて作成されるグラフが予め定められた表示座標範囲内にあるか否かを判別し、この表示座標範囲内にあると判別した際に、前記文字定数の値に基づいてグラフを作成する。そしてグラフ式に文字定数が含まれる場合には、グラフ上の座標を表示する際に、当該文字定数を含む文字式によって適切に座標を表示する。故に、文字定数を含むグラフ式と、グラフ上の座標との関連を適切に把握することができ、教育の現場などで用いられるような文字定数を用いたグラフ表示を電子機器においても実現することが可能となる。
【０１８２】
請求項２に記載の発明によれば、トレース対象となるグラフが、文字定数を含むグラフ式に基づいて作成されたグラフである場合には、ポインタの座標を、グラフ式に含まれる文字定数を含む文字式によって表現する。このため、利用者は、文字定数を含むグラフ式と、そのグラフ上におけるポインタの座標とを対応付けて、グラフの位置関係を把握することが可能となる。
【図面の簡単な説明】
【図１】本実施の形態における電子機器の外観斜俯瞰図である。
【図２】電子機器の内部構成の一例を示す図である。
【図３】ＲＡＭの格納形式の一例を示す図である。
【図４】ＲＯＭの格納形式の一例を示す図である。
【図５】数式グラフ実行処理における各処理段階の表示画面例を示す図である。
【図６】数式グラフ実行処理のフローチャートである（ステップＳ１〜Ｓ２０）。
【図７】数式グラフ実行処理のフローチャートである（ステップＳ２１〜Ｓ３３）。
【図８】表示座標範囲の一例を示す図である。
【図９】グラフデータの一例を示す図である。
【図１０】グラフのスケール変化の一例を示す図である。
【図１１】表示範囲の一例を示す図である。
【図１２】グラフのスケール変化の一例を示す図である。
【図１３】グラフの特徴的な部分が表示されない例を示す図である。
【図１４】グラフの特徴的な部分が表示されない一例を示す図である。
【図１５】トレース処理における各処理段階の表示画面例を示す図である。
【図１６】トレース処理を説明するフローチャートである。
【図１７】法線算出処理における各処理段階の表示画面例を示す図である。
【図１８】法線算出処理を説明するフローチャートである。
【図１９】接線算出処理における各処理段階の表示画面例を示す図である。
【図２０】逆関数算出処理における各処理段階の表示画面例を示す図である。
【図２１】積分グラフ処理における各処理段階の表示画面例を示す図である。
【図２２】積分グラフ処理を説明するフローチャートである。
【図２３】Ｘ−ＣＡＬ処理における各処理段階の表示画面例を示す図である。
【図２４】Ｘ−ＣＡＬ処理を説明するフローチャートである。
【図２５】交点算出処理における各処理段階の表示画面例を示す図である。
【図２６】ｙ切片算出処理における各処理段階の表示画面例を示す図である。
【図２７】ｘ切片算出処理における各処理段階の表示例を示す図である。
【図２８】極値算出処理における各処理段階の表示例を示す図である。
【図２９】第２の実施の形態におけるＲＯＭの格納形式の一例を示す図である。
【図３０】円描画処理における各処理段階の表示例を示す図である。
【図３１】円描画処理を説明するフローチャートである。
【図３２】直線描画処理における各処理段階の表示例を示す図である。
【符号の説明】
１    電子機器
２    表示画面
３    入力キー
４    入力ペン
１０  ＣＰＵ
１１  入力部
１２  タブレット
１３  位置検出回路
１４  表示部
１５  表示駆動回路
１６  ＲＡＭ
１７  ＲＯＭ
１８  記憶装置
１９  記憶媒体
【図１】
0003988506.tif 000002
【図２】
0003988506.tif 000003
【図３】
0003988506.tif 000004
【図４】
0003988506.tif 000005
【図５】
0003988506.tif 000006
【図６】
0003988506.tif 000007
【図７】
0003988506.tif 000008
【図８】
0003988506.tif 000009
【図９】
0003988506.tif 000010
【図１０】
0003988506.tif 000011
【図１１】
0003988506.tif 000012
【図１２】
0003988506.tif 000013
【図１３】
0003988506.tif 000014
【図１４】
0003988506.tif 000015
【図１５】
0003988506.tif 000016
【図１６】
0003988506.tif 000017
【図１７】
0003988506.tif 000018
【図１８】
0003988506.tif 000019
【図１９】
0003988506.tif 000020
【図２０】
0003988506.tif 000021
【図２１】
0003988506.tif 000022
【図２２】
0003988506.tif 000023
【図２３】
0003988506.tif 000024
【図２４】
0003988506.tif 000025
【図２５】
0003988506.tif 000026
【図２６】
0003988506.tif 000027
【図２７】
0003988506.tif 000028
【図２８】
0003988506.tif 000029
【図２９】
0003988506.tif 000030
【図３０】
0003988506.tif 000031
【図３１】
0003988506.tif 000032
【図３２】
0003988506.tif 000033