以下図面を参照して本発明の一実施形態を説明する。
なお本実施形態では、前記中等教育課程における数学教育を対象とし、後期中等教育課程における数学教育で用いられる虚数、複素数の概念は数の範囲に含めないものとする。したがって、最終的な方程式の解が平方根号「√(n)」(nは実数)を含むとき、「n≧0」、且つ「√(n)≧0」とする。
(実施形態の構成)
図1は、本発明の一実施形態に係る関数電卓10の電子回路の機能構成を示すブロック図である。
図2は、上記関数電卓10の外観構成を示す正面図である。
関数電卓10は、コンピュータの主構成要素となる制御部(CPU)11を備えている。
制御部(CPU)11は、フラッシュメモリで構成されるROM12に予め記憶されているシステムプログラム及び計算機制御プログラムに従い、RAM17を作業用メモリ(ワークメモリ)として関数電卓10全体の動作を制御する。、
上記ROM12のシステム領域に記憶される計算機制御プログラムは、外部記憶媒体であるメモリカード13からI/Oポート14を介して入力されるか、あるいはI/Oポート14から外部パーソナルコンピュータ(PC)15を経由して接続される通信ネットワークN上のWebサーバ(プログラムサーバ)16からダウンロードされて入力されるものも含む。
上記ROM12に記憶されたシステムプログラムやそのシステム領域に記憶された計算機制御プログラムは、キーボード18からのキー入力信号、あるいは後述するタッチ入力部21でのタッチ入力信号に応じて起動される。
なお、上記ROM12に記憶される計算機制御プログラムには、本関数電卓10の全動作中に渡ってその計算、表示動作の制御を行なうための基本処理プログラムが含まれており、入力された数値、記号、計算式の表示、計算式の演算、演算結果の表示、グラフの描画表示、カーソル(ポインタ)の表示が制御される。
また、上記計算機制御プログラムには、後述する入力式判定処理プログラム12a(図3及び図4参照)を1つのサブルーチンとして含む。
上記RAM17には、制御部(CPU)11による上記入力式判定処理プログラム12a実行時に、式データ記憶部17a、対象方程式記憶部17b、対象方程式solve結果記憶部17c、置換式記憶部17d、置換式値記憶部17e、混合式値記憶部17f、及び変形式solve結果記憶部17gの各記憶部が設けられる。
式データ記憶部17aは、ユーザが入力する、検証の対象となる任意の方程式や、その方程式に対する変形式等、入力途中の式に関するデータを記憶する。
対象方程式記憶部17bは、検証の対象となる任意の方程式を記憶する。
対象方程式solve結果記憶部17cは、対象方程式の解の値を記憶する。
置換式記憶部17dは、ユーザにより入力された、置換変数を対象の方程式の元変数の数式として記述した置換式を記憶する。
置換式値記憶部17eは、上記置換式の仮の解の値を記憶する。
混合式値記憶部17fは、対象の方程式を置換変数と元変数とで記述した混合方程式の仮の解の値を記憶する。
変形式solve結果記憶部17gは、変形式の解の値を記憶する。
上記制御部(CPU)11には、上記ROM12、メモリカード13、I/Oポート14、RAM17、キーボード18が接続される他に、液晶駆動回路19を介して液晶表示部(LCD)20が接続される。
液晶表示部(LCD)20は、例えばバックライトを有するドットマトリックスタイプの半透過型液晶表示パネルとそれらの駆動回路とで構成され、各種方程式や関数のグラフ等を表示する。
また、液晶表示部(LCD)20には、例えば電子式の透明タッチパネルによるタッチ入力部21が一体に構成される。液晶表示部(LCD)20で表示されるキーボードや各種アイコン等の位置に応じてユーザが直接表示内容を指示するようにタッチ入力部21でタッチ操作すると、そのタッチ入力信号は座標入力部22に送られる。
座標入力部22は、タッチ入力部21からのタッチ入力信号により、ユーザによるタッチ操作を時系列状の2次元の座標信号に変換して上記制御部(CPU)11へ出力する。
上記キーボード18は、図2に示すように、各種関数の指定や計算形式の指定などを行なう関数・機能キーと共に、演算子キー、テンキー、カーソルキーなどの種々のキーを設ける。
次に、上記実施形態の動作について説明する。
(実施形態の第1の動作例)
図3及び図4は、ベリファイ(Verify:検証)機能とも呼称する、入力式の変形に係る判定処理の詳細な内容を示すサブルーチンのフローチャートであり、上記ROM12が記憶する入力式判定処理プログラム12aを制御部(CPU)11が実行することにより実現される。
図5乃至図7は、第1の動作例でのキー操作と表示画面の変移を示す図である。
その当初には、ユーザが処理対象となる方程式をキーボード18及びタッチ入力部21での操作により入力するのを待機する(ステップS101)。
図5(A)は、処理対象となる4次方程式
「x4−5x2+6=0」 …(1)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作した場合に液晶表示部(LCD)20で表示される内容を示す。液晶表示部(LCD)20では、入力された方程式と、次行にさらなる入力を促すカーソルCとを表示している。
制御部(CPU)11により、対象の方程式が入力される過程で入力データが式データ記憶部17aに順次入力され、上記「EXE」キーが操作された時点で、入力が確定したものとしてその時点で記憶している方程式のデータを対象方程式記憶部17bに転送して記憶させる(ステップS102)。
制御部(CPU)11は、対象方程式記憶部17bに記憶した方程式中の変数(ここではxしかないので無条件にxとなる)を特定し、その特定した変数について自動的にソルブ(solve)機能と称される、変数の値を求める計算を、ROM12が記憶する計算機制御プログラムに基づいて実行する(ステップS103)。
ここでは、上記(1)式を解くことで解「x=±√(2),±√(3)」が得られるもので、制御部(CPU)11は得た解を元変数の正しい解として対象方程式solve結果記憶部17cに記憶させる(ステップS104)。
次いで、RAM17の式データ記憶部17aに記憶した処理対象の方程式で記号「√」内に変数xが含まれた式があるか否かを判別する(ステップS105)。
上記(1)式では記号「√」内に変数xが含まれていないため、これを判別すると、次にユーザが処理対象となる方程式を変形した変形式、または処理対象となる方程式の一部を別の変数に置換した置換式がキーボード18またはタッチ入力部21での操作により入力されるのを待機する(ステップS107)。
図5(B)は、ユーザが上記(1)式の置換式として
「♯a:=x2」 …(2)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作した場合を示す。式当初の記号「♯」は、それ以降で入力する式が置換式であることを宣言する、予め設定された記号とする。この(2)式の場合は、上記(1)式中の「x2」を変数「a」に置換することを宣言している。
式入力後に上記「EXE」キーが操作された時点で、制御部(CPU)11は入力されたのが置換式であるか否かを、その式当初に記号「♯」があるか否かにより判別する(ステップS108)。
ここで入力されたのが置換式であると判別すると、次いでその入力されて置換式をRAM17の置換式記憶部17dに記憶させる(ステップS109)。
これと共に、対象方程式solve結果記憶部17cに記憶される元変数の解を置換式に代入して置換式の値を計算し、計算結果を記憶する(ステップS110)。
上記(2)式の場合、対象方程式solve結果記憶部17cに記憶される各解に対応する置換式の値は「a=2,3」となり、制御部(CPU)11はこの置換式値を置換式値記憶部17eに記憶させる。
その後、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図5(C)に示すように、ユーザが置換式に用いた変数「a」のみによる式
「a2+5a+6=0」 …(3)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力が置換式ではないと判別すると、制御部(CPU)11は次いで入力された式が元変数と置換式とを用いた処理対象の方程式に対する変形式であるか否かを、元変数「x」と置換式に用いた変数「a」の双方で記述された式であるか否かにより判別する(ステップS111)。
ここで上記(3)式が元変数と置換式とを用いた処理対象の方程式に対する変形式ではないと判別すると、次に、入力された式が置換式を用いた処理対象の方程式に対する変形式であるか否かを、置換式に用いた変数「a」のみで記述された式であるか否かにより判別する(ステップS115)。
上記(3)式に用いられている変数は置換式に用いた変数「a」のみであるため、変形式を置換変数についてソルブ(solve)機能を実行し、上記(3)式を解くことで解「a=−3,−2」を得て、得た解を変形式の仮の解として変形式solve結果記憶部17gに記憶させる(ステップS116)。
次いで置換式が記号「√」を含んでいるか否かを判別する(ステップS117)。上記(2)式では記号「√」を含んでいないため、これを判別すると、次に上記ステップS116で変形式solve結果記憶部17gに記憶させた仮の解が、置換式値記憶部17eに記憶させた置換式値と一致するか否かを判別する(ステップS119)。
ここで変形式solve結果記憶部17gに記憶させた仮の解「a=−3,−2」と置換式値記憶部17eに記憶させた置換式値「a=2,3」とは一致しないため、上記(3)式は処理対象の方程式を置換式を用いて置換したものではないとして、エラーメッセージを液晶表示部(LCD)20で表示させると共に、その確認を待って誤った式入力の前の位置までカーソルCの表示位置を戻した上で(ステップS122)、上記ステップS107からの処理に戻る。
図5(C)では液晶表示部(LCD)20において、上記(3)式の下部にエラーメッセージのウィンドウW1を表示した状態を示す。同図(B)では、文字によるエラーメッセージ
「ERROR!」
「Sorry,not equivalent」
と共に、間違った変形式であることを視覚的に示す顔のシンボルF1と、間違った変形式であることをユーザが理解した場合の確認を促す「OK?」の文字とを表示している。
このウィンドウW1での表示に伴って図5(D)に示すようにユーザがキーボード18で確認のための「EXE」キーを操作すると、液晶表示部(LCD)20上では上記(3)式の先頭位置までカーソルCの表示位置を戻した上で(ステップS114)、上記ステップS107からの処理に戻る。
次にユーザが処理対象となる方程式を変形した変形式、または処理対象となる方程式の一部を別の変数に置換した置換式がキーボード18またはタッチ入力部21での操作により入力されるのを待機する(ステップS107)。
図6(A)に示すように、上記(3)に代えてユーザが置換式に用いた変数「a」のみによる式
「a2−5a+6=0」 …(4)
をあらためて入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
上記ステップS107でこの入力を受付け、続く上記ステップS108で入力が置換式ではないこと、上記ステップS111で元変数と置換式とを用いた変形式ではないことを続けて判別する。その後、上記ステップS115で置換変数を用いた変形式であることをを判別すると、上記ステップS116で上記(4)式を解いて解「a=2,3」を得、得た解を変形式solve結果記憶部17gに記憶させる。
次いで上記ステップS117で上記(2)式が記号「√」を含んでいないことを判別した後、ステップS119で変形式solve結果記憶部17gに記憶させた仮の解が、置換式値記憶部17eに記憶させた置換式値と一致すると判別する。
この場合、制御部(CPU)11は変形式solve結果記憶部17gに仮の解を記憶させていることを確認した後(ステップS120)、この変形式solve結果記憶部17gに記憶させた仮の解が置換式値記憶部17eに記憶させた置換式値と一致することをあらためて確認し(ステップS121)、入力が正しかったものとして、上記ステップS117の処理に戻り、次の入力を待機する。
図6(A)では、液晶表示部(LCD)20において上記(4)式の入力後、置換による式の変形が正しかったものとして、次の入力を促すべく、上記(4)式の次行位置にカーソルCを表示している。
その後、図6(B)に示すようにユーザが上記(4)式を因数分解した式
(a−2)(a−3)=0 …(5)
をあらためて入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
上記ステップS107でこの入力を受付け、続く上記ステップS108で入力が置換式ではないこと、上記ステップS111で元変数と置換式とを用いた変形式ではないことを続けて判別する。その後、上記ステップS115で置換変数を用いた変形式であることを判別すると、上記ステップS116で上記(5)式を解いて解「a=2,3」を得、得た解を変形式solve結果記憶部17gに記憶させる。
次いで上記ステップS117で置換式である上記(2)式が記号「√」を含んでいないことを判別した後、ステップS119で変形式solve結果記憶部17gに記憶させた仮の解が、置換式値記憶部17eに記憶させた置換式値と一致すると判別する。
この場合、制御部(CPU)11は変形式solve結果記憶部17gに仮の解を記憶させていることを確認した後(ステップS120)、この変形式solve結果記憶部17gに記憶させた仮の解が置換式値記憶部17eに記憶させた置換式値と一致することをあらためて確認し(ステップS121)、入力が正しかったものとして、上記ステップS107の処理に戻り、次の入力を待機する。
図6(B)では、液晶表示部(LCD)20において上記(5)式の入力後、置換による式の変形が正しかったものとして、次の入力を促すべく、上記(5)式の次行位置にカーソルCを表示している。
さらに、図6(C)に示すようにユーザが上記(5)式の因数分解から導出した置換式の解を
a=2 or a=3 …(6)
として入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ここでも上記ステップS107でこの入力を受付け、続く上記ステップS108で入力が置換式ではないこと、上記ステップS111で元変数と置換式とを用いた変形式ではないことを続けて判別する。その後、上記ステップS115で置換変数を用いた変形式であることを判別すると、上記ステップS116で上記(6)式が解「a=」の形式であるので、solve機能として(6)式をそのまま解として使用して変形式solve結果記憶部17gに記憶させる。
次いで上記ステップS117で置換式である上記(2)式が記号「√」を含んでいないことを判別した後、ステップS119で変形式solve結果記憶部17gに記憶させた仮の解が、置換式値記憶部17eに記憶させた置換式値と一致すると判別する。
この場合、制御部(CPU)11は変形式solve結果記憶部17gに仮の解を記憶させていることを確認した後(ステップS120)、この変形式solve結果記憶部17gに記憶させた仮の解が置換式値記憶部17eに記憶させた置換式値と一致することをあらためて確認し(ステップS121)、入力が正しかったものとして、上記ステップS107の処理に戻り、次の入力を待機する。
図6(C)では、液晶表示部(LCD)20において上記(6)式の入力後、置換式の解が正しかったものとして、次の入力を促すべく、上記(6)式の次行位置にカーソルCを表示している。
図7(A)に示すように上記(6)式中の置換変数「a」に元の上記(2)式を代入した置換変数の解を表す
x2=2 or x2=3 …(7)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
上記ステップS107でこの入力を受付け、続く上記ステップS108で入力が置換式ではないこと、上記ステップS111で元変数と置換式とを用いた変形式ではないことを続けて判別する。その後、上記ステップS115で置換変数を用いた変形式でもないことを判別すると、次に元変数「x」を用いた変形式であるか否かを判別する(ステップS123)。
ここでは元変数のみを用いた変形式であるものと判別する。上記(7)式中の「x2=2」についてsolve機能を実行することで、仮の解「x=±√(2)」を得ると共に、同(7)式の「x2=3」について上記ソルブ機能を実行することで、仮の解「x=±√(3)」を得、これら得た解を変形式solve結果記憶部17gに記憶させる(ステップS124)。
その後、変形式solve結果記憶部17gに記憶させた仮の解が、対象方程式solve結果記憶部17cに記憶させた元変数の正しい解と一致するか否か判別する(ステップS125)。
この場合、制御部(CPU)11は入力された元変数の変形式の解が、対象方程式solve結果記憶部17cに記憶させた元変数の正しい解と一致すると判別し、上記(7)式の入力が正しかったものとして、上記ステップS107の処理に戻り、次の入力を待機する。
図7(A)では、液晶表示部(LCD)20において上記(7)式の入力後、置換式の解が正しかったものとして、次の入力を促すべく、上記(7)式の次行位置にカーソルCを表示している。
図7(B)に示すように、上記(7)式の入力が正しかったことを受けてユーザは、上記(7)式から導出する元変数の解を表す
x=√(2) or x=−√(2) or
x=√(3) or x=−√(3) …(8)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
上記ステップS107でこの入力を受付け、続く上記ステップS108で入力が置換式ではないこと、上記ステップS111で元変数と置換式とを用いた変形式ではないことを続けて判別する。その後、上記ステップS115で置換変数を用いた変形式でもないことを判別し、さらに上記ステップS123で元変数「x」を用いた変形式でもないことを判別する。
次いで、入力された式が元変数の解を表すものであるか否か、すなわち「x=(数値)」の形式で記述された式であるか否かを判別する(ステップS127)。
ここで元変数の解を表す式であると判別すると、入力された解の値が、対象方程式solve結果記憶部17cに記憶させた元変数の正しい解と一致するか否かを判別する(ステップS128)。
この場合、制御部(CPU)11は入力された解の値が対象方程式solve結果記憶部17cに記憶させた元変数の正しい解の値と一致すると判別し、上記(8)式の入力が正しかったものとして、正解マーク及び正解メッセージを表示し(ステップS130)、上記ステップS107の処理に戻り、次の入力を待機する。
図7(B)に示すように液晶表示部(LCD)20では、このとき正解メッセージのウィンドウW2を例示する。同図(B)に示すようにこのウィンドウW2では、正解メッセージ
「Right!」
の文字を、正解したことを視覚的に示す顔のシンボルF2と共に表示している。
このように、対象となる方程式とユーザが入力した置換式が異なった場合にその旨を示すメッセージやシンボル等を表示した後、さらに正しい置換式を入力して解を導き出した場合には、正解である旨の表示を行なうものとしたため、ユーザのモチベーションを上げて教育効果を高めることができる。
(実施形態の第2の動作例)
なお、上記第1の動作例と同様に図3及び図4のフローチャートを用いて説明する。
図8乃至図13は、第2の動作例でのキー操作と表示画面の変移を説明する図である。
その当初には、ユーザが処理対象となる方程式をキーボード18及びタッチ入力部21での操作により入力するのを待機する(ステップS101)。
図8(A)は、処理対象となる方程式
「√(x−1)=x−3」 …(11)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作した場合に液晶表示部(LCD)20で表示される内容を示す。
制御部(CPU)11により、対象の方程式が入力される過程で、入力データは式データ記憶部17aに順次入力され、上記「EXE」キーが操作された時点で、入力が確定したものとしてその時点で記憶している方程式のデータを対象方程式記憶部17bに転送して記憶させる(ステップS102)。
制御部(CPU)11は、対象方程式記憶部17bに記憶した方程式中の変数(ここではxしかないので無条件にxとなる)を特定し、その特定した変数について自動的にソルブ(solve)機能と称される、変数の値を求める計算を、ROM12が記憶する計算機制御プログラムに基づいて実行する(ステップS103)。
ここでは、上記(11)式を解くことで正しい解「x=5」が得られるもので、制御部(CPU)11は得た正しい解を対象方程式solve結果記憶部17cに記憶させる(ステップS104)。
次いで、RAM17の式データ記憶部17aに記憶した処理対象の方程式で記号「√」内に変数xが含まれた式があるか否かを判別する(ステップS105)。
上記(11)式では記号「√」内に変数xが含まれているため、これを判別すると、次に上記(11)式の両辺を二乗して記号「√」を外した変形式を生成し、その式でソルブ機能を実行して、得た結果を仮の解として対象方程式solve結果記憶部17cに追加して記憶させる(ステップS106)。
上記(11)式の両辺を二乗すると
「x−1=(x−3)2」 …(12)
となり、この(12)式を解くことで仮の解「x=2,5」のうちの正しい解「x=5」でない仮の解「x=2」が得られるもので、制御部(CPU)11は得た仮の解を上記ステップS104で記憶した正しい解に加えて対象方程式solve結果記憶部17cに記憶させる。
その後、ユーザが処理対象となる方程式を変形した変形式、または処理対象となる方程式の一部を別の変数に置換した置換式がキーボード18またはタッチ入力部21での操作により入力されるのを待機する(ステップS107)。
図8(B)は、ユーザが上記(11)式の置換式として
「♯a:=√(x−1)」 …(13)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作した場合を示す。式当初の記号「♯」は、それ以降で入力する式が置換式であることを宣言するための予め設定された記号とする。この(13)式の場合は、上記(11)式中の左辺全体「√(x−1)」を変数「a」に置換することを宣言している。
式入力後に上記「EXE」キーが操作された時点で、制御部(CPU)11は入力されたのが置換式であるか否かを、その式当初に記号「♯」があるか否かにより判別する(ステップS108)。
ここで入力された上記(13)式が置換式であると判別すると、次いでその入力されて置換式をRAM17の置換式記憶部17dに記憶させる(ステップS109)。
これと共に、対象方程式solve結果記憶部17cに記憶される元変数の解を置換式に代入して置換式の値を計算し、計算結果を置換式値記憶部17eに記憶する(ステップS110)。
上記(13)式の場合、対象方程式solve結果記憶部17cに記憶される正しい解「x=5」に対応する置換式の値は「a=2」となる。また、仮の解「x=2」に対応する置換式の仮の値は「a=−1」となる。制御部(CPU)11はこれら置換式の正しい値、及び仮の値を置換式値記憶部17eに記憶させた後、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図8(B)に示すように液晶表示部(LCD)20では、上記(13)式の入力後、置換式が正しかったものとして、次の入力を促すべく、上記(13)式の次行位置にカーソルCを表示している。
図8(C)に示すようにユーザは、上記(11)式に上記(13)式を代入した、置換式に用いた変数「a」と元変数「x」の双方を用いた式
「a=x−3」 …(14)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力が置換式ではないと判別すると、制御部(CPU)11は次いで入力された式が元変数と置換式とを用いた処理対象の方程式に対する変形式であるか否かを、元変数「x」と置換式に用いた変数「a」の双方で記述された式であるか否かにより判別する(ステップS111)。
ここで上記(14)式が元変数と置換式の双方を用いた処理対象の方程式に対する変形式であると判別すると、制御部(CPU)11は対象方程式solve結果記憶部17cに記憶させた正しい解「x=5」、及びこれに対応して置換式値記憶部17eに記憶させた置換式の値「a=2」を読出して上記(14)式に代入して左辺及び右辺の各値を算出する(ステップS112)。
その結果、上記(14)式が変形式として正しいか否かを、等号が成立するか否かで判別する(ステップS113)。
ここでは、上記(14)式に「x=5」、「a=2」を代入した結果、両辺共に「2」となって等号が成立するために、上記(14)式は変形式として正しいと判別し、上記ステップS107からの処理に戻る。
図8(C)に示すように液晶表示部(LCD)20では、置換式による対象方程式の変形式である上記(14)式の入力が正しかったものとして、次の入力を促すべく、上記(14)式の次行位置にカーソルCを表示している。
図8(D)に示すように、ユーザが上記(14)式を変形したと思われる、置換式に用いた変数「a」と元変数「x」の双方を用いた式
「a=(x−1)+2」 …(15)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた処理対象の方程式に対する変形式であると判別すると、制御部(CPU)11は上記ステップS112において、対象方程式solve結果記憶部17cに記憶させた正しい解「x=5」、及びこれに対応して置換式値記憶部17eに記憶させた置換式の値「a=2」を読出して上記(15)式に代入して左辺及び右辺の各値を算出する。
ここでは上記(15)式に「x=5」、「a=2」を代入した結果、左辺が「2」、右辺が「6」となって等号が成立しないために、上記ステップS113で上記(15)式は変形式として正しくないものと判別し、エラーメッセージを液晶表示部(LCD)20で表示させると共に、その確認を待って誤った式入力の前の位置までカーソルCの表示位置を戻した上で(ステップS114)、上記ステップS107からの処理に戻る。
図8(D)では液晶表示部(LCD)20において、上記(15)式の下部にエラーメッセージのウィンドウW1を表示した状態を示す。同図(D)では、文字によるエラーメッセージ
「ERROR!」
「Sorry,not equivalent」
と共に、間違った変形式であることを視覚的に示す顔のシンボルF1と、間違った変形式であることをユーザが理解した場合の確認を促す「OK?」の文字とを表示している。
このウィンドウW1での表示に伴って図9(A)に示すようにユーザがキーボード18で確認のための「EXE」キーを操作すると、液晶表示部(LCD)20上では上記(115)式の先頭位置までカーソルCの表示位置を戻した上で(ステップS114)、上記ステップS107からの処理に戻る。
図9(B)に示すように、ユーザが再び上記(14)式を変形したと思われる、置換式に用いた変数「a」と元変数「x」の双方を用いた式
「a=(x−1)−2」 …(16)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた処理対象の方程式に対する変形式であると判別すると、制御部(CPU)11は上記ステップS112において、対象方程式solve結果記憶部17cに記憶させた正しい解「x=5」、及びこれに対応して置換式値記憶部17eに記憶させた置換式の値「a=2」を読出して上記(16)式に代入して左辺及び右辺の各値を算出する。
ここでは上記(16)式に「x=5」、「a=2」を代入した結果、両辺共に「2」となり、等号が成立するために、上記ステップS113で上記(16)式は変形式として正しいと判別し、上記ステップS107からの処理に戻る。
図9(B)に示すように液晶表示部(LCD)20では、置換式を含んだ対象方程式の変形式である上記(16)式の入力が正しかったものとして、次の入力を促すべく、上記(16)式の次行位置にカーソルCを表示している。
図9(C)に示すように、ユーザは次いで置換式に用いた変数「a」を用いた式
「a=a2−2」 …(17)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式であると判別する。この判別により制御部(CPU)11は、上記ステップS116において、変形式を置換変数についてソルブ機能を実行し、置換変数の値を算出し、算出結果を変形式solve結果記憶部17gに記憶する。
ここでは上記(17)式を解くことで、置換変数の解「a=−1,2」が得られる。
さらに上記置換式記憶部17dに記憶する置換式が記号「√」を含む式であるか否かを判別する(ステップS117)。
ここで置換式記憶部17dに記憶される、上記(13)式の置換式は記号「√」を含んでいるため、ステップS117でそれを判別して、置換変数の解から定義域に外れた解を置換変数の仮の解とする処理を実行する(ステップS118)。
ここでは、置換変数の解「a=−1,2」のうち、上記(13)式の右辺が記号「√(x−1)」であるので、左辺「a」の定義域は「a>0」となり、定義域を外れた「a=−1」を仮の値として用いることとする。
その後、変形式solve結果記憶部17gに記憶した置換変数の値が、置換式値記憶部17eに記憶する置換式の値と一致するか否かを判別する(ステップS119)。
ここで変形式solve結果記憶部17gに記憶した置換変数の値は「a=−1,2」であり、一方の置換式値記憶部17eに記憶した置換式の値も、元変数の正しい解「x=5」に対応する置換式の正しい値が「a=2」、元変数の仮の解「x=2」に対応する置換式の仮の値は「a=−1」となるので、それぞれ一致するものと判別し、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図9(C)に示すように液晶表示部(LCD)20では、置換式の変形式である上記(17)式の入力が正しかったものとして、次の入力を促すべく、上記(17)式の次行位置にカーソルCを表示している。
次に、図10(A)に示すようにユーザは上記(17)式のさらなる変形式として、変数「a」を用いた式
「a2+a−2=0」 …(18)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式であると判別する。この判別により制御部(CPU)11は、上記ステップS116において、変形式を置換変数についてソルブ機能を実行し、置換変数の値を算出し、算出結果を変形式solve結果記憶部17gに記憶する。
ここでは上記(18)式を解くことで、置換変数の解「a=−2,1」が得られる。
さらに上記置換式記憶部17dに記憶する置換式が記号「√」を含む式であるか否かを判別する(ステップS117)。
ここで置換式記憶部17dに記憶される、上記(13)式の置換式は記号「√」を含んでいるため、ステップS117でそれを判別して、置換変数の解から定義域に外れた解を置換変数の仮の解とする処理を実行する(ステップS118)。
ここでは、置換変数の解「a=1,−2」のうち、上記(13)式の右辺が記号「√(x−1)」であるので、左辺「a」の定義域は「a>0」となり、定義域を外れた「a=−2」を仮の値として用いることとする。
その後、変形式solve結果記憶部17gに記憶した置換変数の値が、置換式値記憶部17eに記憶する置換式の値と一致するか否かを判別する(ステップS119)。
ここで変形式solve結果記憶部17gに記憶した置換変数の値は「a=1(正),−2(仮)」であり、一方の置換式値記憶部17eに記憶した置換式の値は、元変数の正しい解「x=5」に対応する置換式の正しい値が「a=2」、元変数の仮の解「x=2」に対応する置換式の仮の値が「a=−1」となるので、共に一致しないと判別し、エラーメッセージを液晶表示部(LCD)20で表示させると共に、その確認を待って誤った式入力の前の位置までカーソルCの表示位置を戻した上で(ステップS122)、上記ステップS107からの処理に戻る。
図10(A)では液晶表示部(LCD)20において、上記(18)式の下部にエラーメッセージのウィンドウW1を表示した状態を示す。同図(A)では、文字によるエラーメッセージ
「ERROR!」
「Sorry,not equivalent」
と共に、間違った変形式であることを視覚的に示す顔のシンボルF1と、間違った変形式であることをユーザが理解した場合の確認を促す「OK?」の文字とを表示している。
このウィンドウW1での表示に伴って図10(B)に示すようにユーザがキーボード18で確認のための「EXE」キーを操作すると、液晶表示部(LCD)20上では上記(18)式の先頭位置までカーソルCの表示位置を戻した上で、上記ステップS107からの処理に戻る。
図10(C)に示すようにユーザは上記(17)式のあらたな変形式として、変数「a」を用いた式
「a2−a−2=0」 …(19)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式であると判別する。この判別により制御部(CPU)11は、上記ステップS116において、変形式を置換変数についてソルブ機能を実行し、置換変数の値を算出し、算出結果を変形式solve結果記憶部17gに記憶する。
ここでは上記(19)式を解くことで、置換変数の解「a=−1,2」が得られる。
さらに上記置換式記憶部17dに記憶する置換式が記号「√」を含む式であるか否かを判別する(ステップS117)。
ここで置換式記憶部17dに記憶される、上記(13)式の置換式は記号「√」を含んでいるため、ステップS117でそれを判別して、置換変数の解から定義域に外れた解を置換変数の仮の解とする処理を実行する(ステップS118)。
ここでは、置換変数の解「a=−1,2」のうち、上記(13)式の右辺が記号「√(x−1)」であるので、左辺「a」の定義域は「a>0」となり、定義域を外れた「a=−1」を仮の値として用いることとする。
その後、変形式solve結果記憶部17gに記憶した置換変数の値が、置換式値記憶部17eに記憶する置換式の値と一致するか否かを判別する(ステップS119)。
ここで変形式solve結果記憶部17gに記憶した置換変数の値は「a=2(正),−1(仮)」であり、一方の置換式値記憶部17eに記憶した置換式の値も、元変数の正しい解「x=5」に対応する置換式の正しい値が「a=2」、元変数の仮の解「x=2」に対応する置換式の仮の値は「a=−1」となるので、それぞれ一致するものと判別し、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図10(C)に示すように液晶表示部(LCD)20では、置換式の変形式である上記(19)式の入力が正しかったものとして、次の入力を促すべく、上記(19)式の次行位置にカーソルCを表示している。
図11(A)に示すようにユーザは上記(19)式を因数分解した変形式として、変数「a」を用いた式
「(a+1)・(a−2)=0」 …(20)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式であると判別する。この判別により制御部(CPU)11は、上記ステップS116において、変形式を置換変数についてソルブ機能を実行し、置換変数の値を算出し、算出結果を変形式solve結果記憶部17gに記憶する。
ここでは上記(20)式を解くことで、置換変数の解「a=−1,2」が得られる。
さらに上記置換式記憶部17dに記憶する置換式が記号「√」を含む式であるか否かを判別する(ステップS117)。
ここで置換式記憶部17dに記憶される、上記(13)式の置換式は記号「√」を含んでいるため、ステップS117でそれを判別して、置換変数の解から定義域に外れた解を置換変数の仮の解とする処理を実行する(ステップS118)。
ここでは、置換変数の解「a=−1,2」のうち、上記(13)式の右辺が記号「√(x−1)」であるので、左辺「a」の定義域は「a>0」となり、定義域を外れた「a=−1」を仮の値として用いることとする。
その後、変形式solve結果記憶部17gに記憶した置換変数の値が、置換式値記憶部17eに記憶する置換式の値と一致するか否かを判別する(ステップS119)。
ここで変形式solve結果記憶部17gに記憶した置換変数の値は「a=2(正),−1(仮)」であり、一方の置換式値記憶部17eに記憶した置換式の値も、元変数の正しい解「x=5」に対応する置換式の正しい値が「a=2」、元変数の仮の解「x=2」に対応する置換式の仮の値は「a=−1」となるので、それぞれ一致するものと判別し、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図11(A)に示すように液晶表示部(LCD)20では、置換式の変形式である上記(20)式の入力が正しかったものとして、次の入力を促すべく、上記(20)式の次行位置にカーソルCを表示している。
図11(B)に示すようにユーザは上記(20)式を解いた変形式として、変数「a」を用いた式
「a=−1 or a=2 …(21)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式であると判別した制御部(CPU)11は、上記ステップS116において、変形式を置換変数についてソルブ機能を実行し、置換変数の値を算出し、算出結果を変形式solve結果記憶部17gに記憶する。
ここでは上記(21)式自体が置換変数の解を表す記述となっているので、そのまま置換変数の解「a=−1,2」が得られる。
さらに上記置換式記憶部17dに記憶する置換式が記号「√」を含む式であるか否かを判別する(ステップS117)。
ここで置換式記憶部17dに記憶される、上記(13)式の置換式は記号「√」を含んでいるため、ステップS117でそれを判別して、置換変数の解から定義域に外れた解を置換変数の仮の解とする処理を実行する(ステップS118)。
ここでは、置換変数の解「a=−1,2」のうち、上記(13)式の右辺が記号「√(x−1)」であるので、左辺「a」の定義域は「a>0」となり、定義域を外れた「a=−1」を仮の値として用いることとする。
その後、変形式solve結果記憶部17gに記憶した置換変数の値が、置換式値記憶部17eに記憶する置換式の値と一致するか否かを判別する(ステップS119)。
ここで変形式solve結果記憶部17gに記憶した置換変数の値は「a=2(正),−1(仮)」であり、一方の置換式値記憶部17eに記憶した置換式の値も、元変数の正しい解「x=5」に対応する置換式の正しい値が「a=2」、元変数の仮の解「x=2」に対応する置換式の仮の値は「a=−1」となるので、それぞれ一致するものと判別し、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図11(B)に示すように液晶表示部(LCD)20では、置換式の変形式である上記(21)式の入力が正しかったものとして、次の入力を促すべく、上記(21)式の次行位置にカーソルCを表示している。
図12(A)に示すように、ユーザは上記(21)式から置換を外した変形式として、元変数「x」を用いた式
「√(x−1)=−1 or √(x−1)=2 …(22)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式でもないと判別する。続くステップS123で、制御部(CPU)11は元変数「x」のみを用いた変形式であるか否かを判別する。
元変数のみを用いた変形式であると判別すると制御部(CPU)11は、変形式を元変数についてソルブ機能を実行して、元変数の解を算出し、算出結果を変形式solve結果記憶部17gに記憶する(ステップS124)。
このとき、式「√(x−1)=−1」に対してソルブ機能を実行した場合、本実施形態では虚数の概念を解から除外するものとする。そのため、解を求めることはせず、結果は「No Solution(解なし)」として取扱う。
また、式「√(x−1)=2」に対してソルブ機能を実行した場合、結果として「x=5」となる。したがって、解を算出することができた結果として「x=5」のみを変形式solve結果記憶部17gに記憶させる。
この場合、上述したように変形式の一部でソルブ機能を実行した結果、「No Solution(解なし)」となった場合でも、他の変形式で解が算出できている場合には、あえてエラー表示等の処理は行なわない。
制御部(CPU)11は、変形式solve結果記憶部17gに記憶した変形式の解を対象方程式solve結果記憶部17cに記憶する内容と一致するか否か判別する(ステップS125)。
ここでは上記ステップS103により対象方程式solve結果記憶部17cに記憶した正しい解「x=5」と一致するため、制御部(CPU)11がそれを判別し、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図12(A)に示すように液晶表示部(LCD)20では、元変数の変形式である上記(22)式の入力が正しかったものとして、次の入力を促すべく、上記(22)式の次行位置にカーソルCを表示している。
次に図12(B)に示すように、ユーザは上記(22)式から、「√(n)<0」(nは実数)となる数の排除するべく、変形式として、元変数「x」を用いた式
「√(x−1)=2 …(23)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式でもないと判別する。
続くステップS123で元変数「x」のみを用いた変形式であると判別すると制御部(CPU)11は、変形式を元変数についてソルブ機能を実行して、元変数の解を算出し、算出結果を変形式solve結果記憶部17gに記憶する(ステップS124)。
式「√(x−1)=2」に対してソルブ機能を実行した場合、結果として「x=5」となる。したがって、解の算出結果「x=5」を変形式solve結果記憶部17gに記憶させる。
制御部(CPU)11は、変形式solve結果記憶部17gに記憶した変形式の解を対象方程式solve結果記憶部17cに記憶する内容と一致するか否か判別する(ステップS125)。
ここでは上記ステップS103により対象方程式solve結果記憶部17cに記憶した正しい解「x=5」と一致するため、制御部(CPU)11がそれを判別し、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図12(B)に示すように液晶表示部(LCD)20では、元変数の変形式である上記(23)式の入力が正しかったものとして、次の入力を促すべく、上記(23)式の次行位置にカーソルCを表示している。
次に図13(A)に示すように、ユーザは上記(23)式の両辺を二乗して記号「√()」を外す解法のセオリーに基づき、変形式として、元変数「x」を用いた式
「x−1=4 …(24)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式でもないと判別する。
続くステップS123で元変数「x」のみを用いた変形式であると判別すると制御部(CPU)11は、変形式を元変数についてソルブ機能を実行して、元変数の解を算出し、算出結果を変形式solve結果記憶部17gに記憶する(ステップS124)。
式「x−1=4」に対してソルブ機能を実行した場合、結果として「x=5」となる。したがって、解の算出結果「x=5」を変形式solve結果記憶部17gに記憶させる。
制御部(CPU)11は、変形式solve結果記憶部17gに記憶した変形式の解を対象方程式solve結果記憶部17cに記憶する内容と一致するか否か判別する(ステップS125)。
ここでは上記ステップS103により対象方程式solve結果記憶部17cに記憶した正しい解「x=5」と一致するため、制御部(CPU)11がそれを判別し、上記ステップS107からの処理に戻って、さらなる式の入力を待機する。
図13(A)に示すように液晶表示部(LCD)20では、元変数の変形式である上記(24)式の入力が正しかったものとして、次の入力を促すべく、上記(24)式の次行位置にカーソルCを表示している。
次に図13(B)に示すように、ユーザは上記(24)式左辺の「−1」を右辺に移項して、元変数「x」を用いた解の記述形式による式
「x=5」 …(25)
を入力し、入力を確定するべくキーボード18の「EXE」キーを操作する。
ステップS107でこの入力を受付け、続くステップS108で入力された式が置換式ではないと判別する。続くステップS111で、入力された式が元変数と置換式とを用いた変形式でもないと判別し、次のステップS115で置換変数のみを用いた変形式でもないと判別する。
続くステップS123で元変数「x」のみを用いた変形式でもないと判別すると制御部(CPU)11は、次に入力された式が元変数の解を表すものであるか否か、すなわち「x=(数値)」の形式で記述された式であるか否かを判別する(ステップS127)。
ここで元変数の解を記述する式でもないと判別した場合、制御部(CPU)11はその他の入力内容に対応した適切な処理を行なうが、本実施形態とは関連しないものとしてその説明については省略する。
一方、上記ステップS127で元変数の解を記述する形式であると判別すると制御部(CPU)11は、入力された解が対象方程式solve結果記憶部17cに記憶させた元変数の正しい解と一致するか否かを判別する(ステップS128)。
この場合、制御部(CPU)11は入力された解の値が対象方程式solve結果記憶部17cに記憶させた元変数の正しい解の値と一致すると判別し、上記(25)式の入力が正しかったものとして、正解マーク及び正解メッセージを表示し(ステップS130)、上記ステップS107の処理に戻り、次の入力を待機する。
図13(B)に示すように液晶表示部(LCD)20では、このとき正解メッセージのウィンドウW2を例示する。同図(B)に示すようにこのウィンドウW2では、正解メッセージ
「Right!」
の文字を、正解したことを視覚的に示す顔のシンボルF2と共に表示している。
このように、対象となる方程式とユーザが入力した置換式が異なった場合にその旨を示すメッセージやシンボル等を表示した後、さらに正しい置換式を入力して解を導き出した場合には、正解である旨の表示を行なうものとしたため、ユーザのモチベーションを上げて教育効果を高めることができる。
なお、上記ステップS125で、入力された元変数を用いた変形式のソルブ結果が対象方程式solve結果記憶部17cに記憶した元変数の解と一致しなかったと判別した場合には、エラーメッセージを液晶表示部(LCD)20で表示させると共に、その確認を待って誤った式入力の前の位置までカーソルCの表示位置を戻した上で(ステップS126)、上記ステップS107からの処理に戻る。
同様に、上記ステップS128で、入力された元変数の解が対象方程式solve結果記憶部17cに記憶した元変数の解と一致しなかったと判別した場合にも、エラーメッセージを液晶表示部(LCD)20で表示させると共に、その確認を待って誤った式入力の前の位置までカーソルCの表示位置を戻した上で(ステップS129)、上記ステップS107からの処理に戻る。
(実施形態の効果)
以上第1及び第2の動作例でも詳述した如く本実施形態によれば、任意の演算式を入力した上で、その式の変形途中の特に置換式に対する正誤を随時判定することが可能となる。そのため、処理対象となる方程式が各種複雑な構成を有する場合にそれを簡略化するような置換式の設定の仕方を気軽に試行錯誤しながら学んで習得することができる。
また上記第2の動作例で詳述した如く、処理対象の方程式中の少なくとも一方の辺で平方根号内に元変数を含んでいる場合には、式の両辺を二乗した式について解を算出することで、平方根号を含む方程式の解を得るようにしたため、ユーザにより置換式を用いて方程式の解を求める場合においても対応できる。
加えて上記実施形態では、置換変数と元変数とが混在した混合方程式に対しても対処可能としたことで、方程式の変形により柔軟に対応して解を導き出すことが可能となる。
また上記実施形態では、処理対象の方程式と元変数とを用いた変形式や最終的な元変数の解が入力された場合にも、その変形式についての正誤の判別を行ない、判別結果に応じて即時表示を行なうようにしたため、ユーザが入力する変形式や最終的な解に対して即時その正誤をユーザに認識させることができ、効率的な学習に寄与できる。
なお上記実施形態では、正しい変形式や置換式を入力した場合に、液晶表示部(LCD)20の画面上では単に次の入力を促すべく、その前に入力した式の次行位置にカーソルCを移動して表示させるものとして説明したが、本発明はこれに限らず、正しい式の入力に対して、画面端部で「OK?」や「○」のような簡易なシンボルを一定時間、例えば1秒間だけ表示させるなど、なんらかの正しい入力である旨の確認の表示を行なうものとしてもよい。
また上記実施形態の図3及び図4のフローチャートに記載した入力式判定処理の手法は、いずれもコンピュータに実行させることができるプログラムとして、メモリカードや磁気ディスク(フロッピディスク(登録商標)装置やハードディスク装置)、光ディスク(CD−ROM、MOディスク、DVD等)、半導体不揮発性メモリ等の外部記憶媒体に格納して配布することができる。
さらに本実施形態は本発明を関数電卓に適用した場合について説明したが、本発明はそれに限ることなく、小型PC、PDA(Personal Digital Assistants:個人向け情報携帯端末)、携帯電話端末、携帯音楽プレーヤ、電子ブックなど種々の電子機器であるコンピュータ端末で、外部記憶媒体(13)に記憶されたプログラムを内部メモリ(12)に記憶させ、この記憶させたプログラムを読出して動作を実行させることにより、上記実施形態において説明した入力式判定処理と同様の処理を実行させることができる。
また上記手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク(インターネット)N上を伝送させることができ、この通信ネットワーク(インターネット)Nに接続されたコンピュータ端末(プログラムサーバ)16から上記プログラムデータを取込み、上述した入力式判定処理を実現することもできる。
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。