(57)【特許請求の範囲】
【請求項１】
数値を入力する数値入力手段と、
この数値入力手段により入力された数値に含まれる小数値を抽出する小数抽出手段と、
この小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とを設定する大小既約分数設定手段と、
設定された大小２つの既約分数で定められる範囲内に当該２つの既約分数に基づき中間の既約分数を設定する中既約分数設定手段と、
前記小数抽出手段により抽出された小数値が前記中既約分数設定手段により設定された中既約分数と設定された小既約分数で定められる範囲内に存在するのか、該中既約分数と設定された大既約分数で定められる範囲内に存在するのかを判定する分数範囲判定手段と、
この分数範囲判定手段により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を新たな大既約分数として設定し、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を新たな小既約分数として設定する大小既約分数更新設定手段と、
この大小既約分数更新設定手段により設定された新たな大既約分数又は新たな小既約分数に基づき、前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段を繰り返し実行する繰り返し手段と、
この繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数又は大既約分数又は中既約分数を前記小数値を変換した分数として判定する変換分数判定手段と、
この変換分数判定手段により前記小数値を変換した分数として判定された変換分数を表示する表示手段と、
を具備したことを特徴とする電子計算装置。
【請求項２】
前記大小既約分数設定手段は、前記小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とを、当該小数値に基づく計算により設定する大小既約分数設定手段であることを特徴する請求項１に記載の電子計算装置。
【請求項３】
前記大小既約分数更新設定手段は、前記分数範囲判定手段により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな大既約分数を設定し、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな小既約分数を設定する大小既約分数更新設定手段であることを特徴とする請求項１又は請求項２に記載の電子計算装置。
【請求項４】
前記変換分数判定手段は、
変換誤差の最大値を設定する誤差最大値設定手段と、
前記繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数と前記小数値との誤差、新たに設定された大既約分数と前記小数値との誤差、新たに設定された大小既約分数に基づく新たな中既約分数と前記小数値との誤差の何れかの誤差が、前記誤差最大値設定手段により設定された変換誤差の最大値以下か否かを判定する変換誤差判定手段と、
この変換誤差判定手段により前記誤差最大値設定手段により設定された変換誤差の最大値以下と判定された前記新たに設定された小既約分数又は大既約分数又は中既約分数を前記小数値を変換した分数として決定する分数決定手段と、
を備えていることを特徴とする請求項１乃至請求項３の何れか１項に記載の電子計算装置。
【請求項５】
前記誤差最大値設定手段は、
変換誤差の最大値を入力する入力手段と、
この入力手段により入力された変換誤差の最大値を記憶する記憶手段と、
を備えていることを特徴とする請求項４に記載の電子計算装置。
【請求項６】
前記変換分数判定手段は、
分母の最大値を設定する分母最大値設定手段と、
前記繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数と大既約分数に基づく新たな中既約分数の分母が、前記分母最大値設定手段により設定された分母の最大値を越えるか否かを判定する分母判定手段と、
この分母判定手段により前記新たに設定された小既約分数と大既約分数に基づく新たな中既約分数の分母が、前記分母最大値設定手段により設定された分母の最大値を越えると判定された際に、前記新たに設定された小既約分数と大既約分数のうちで前記小数値との誤差が少ない方の既約分数を前記小数値を変換した分数として決定する分数決定手段と、
を備えていることを特徴とする請求項１乃至請求項３の何れか１項に記載の電子計算装置。
【請求項７】
前記分母最大値設定手段は、
分母の最大値を入力する入力手段と、
この入力手段により入力された分母の最大値を記憶する記憶手段と、
を備えていることを特徴とする請求項６に記載の電子計算装置。
【請求項８】
前記変換分数判定手段は、
前記表示手段の表示桁数に応じた分数表示の最大桁数を設定する桁数設定手段と、
前記繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数と大既約分数に基づく新たな中既約分数を基にした全体の分数表示桁数が、前記桁数設定手段により設定された分数表示の最大桁数を越えるか否かを判定する表示桁判定手段と、
この表示桁判定手段により前記新たな中既約分数を基にした全体の分数表示桁数が、前記桁数設定手段により設定された分数表示の最大桁数を越えると判定された際に、当該中既約分数の基である前記新たに設定された小既約分数と大既約分数のうちで前記小数値との誤差が少ない方の既約分数を前記小数値を変換した分数として決定する分数決定手段と、
を備えていることを特徴とする請求項１乃至請求項３の何れか１項に記載の電子計算装置。
【請求項９】
前記変換分数判定手段は、
変換誤差の最大値を設定する誤差最大値設定手段と、
前記繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数と前記小数値との誤差、新たに設定された大既約分数と前記小数値との誤差、新たに設定された大小既約分数に基づく新たな中既約分数と前記小数値との誤差の何れかの誤差が、前記誤差最大値設定手段により設定された変換誤差の最大値以下か否かを判定する変換誤差判定手段と、
この変換誤差判定手段により前記誤差最大値設定手段により設定された変換誤差の最大値以下と判定された前記新たに設定された小既約分数又は大既約分数又は中既約分数を前記小数値を変換した分数として決定する第１の分数決定手段と、
分母の最大値を設定する分母最大値設定手段と、
前記繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数と大既約分数に基づく新たな中既約分数の分母が、前記分母最大値設定手段により設定された分母の最大値を越えるか否かを判定する分母判定手段と、
この分母判定手段により前記新たに設定された小既約分数と大既約分数に基づく新たな中既約分数の分母が、前記分母最大値設定手段により設定された分母の最大値を越えると判定された際に、前記新たに設定された小既約分数と大既約分数のうちで前記小数値との誤差が少ない方の既約分数を前記小数値を変換した分数として決定する第２の分数決定手段と、
前記表示手段の表示桁数に応じた分数表示の最大桁数を設定する桁数設定手段と、
前記繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数と大既約分数に基づく新たな中既約分数を基にした全体の分数表示桁数が、前記桁数設定手段により設定された分数表示の最大桁数を越えるか否かを判定する表示桁判定手段と、
この表示桁判定手段により前記新たな中既約分数を基にした全体の分数表示桁数が、前記桁数設定手段により設定された分数表示の最大桁数を越えると判定された際に、当該中既約分数の基である前記新たに設定された小既約分数と大既約分数のうちで前記小数値との誤差が少ない方の既約分数を前記小数値を変換した分数として決定する第３の分数決定手段と、
を備えていることを特徴とする請求項１乃至請求項３の何れか１項に記載の電子計算装置。
【請求項１０】
前記誤差最大値設定手段は、
変換誤差の最大値を入力する誤差最大値入力手段と、
この入力手段により入力された変換誤差の最大値を記憶する誤差最大値記憶手段とを備え、
前記分母最大値設定手段は、
分母の最大値を入力する分母最大値入力手段と、
この入力手段により入力された分母の最大値を記憶する分母最大値記憶手段と
を備えていることを特徴とする請求項９に記載の電子計算装置。
【請求項１１】
電子計算装置のコンピュータを制御するためのコンピュータ読み込み可能な計算処理プログラムを記憶した記憶媒体であって、
前記コンピュータを、
入力部により入力された数値に含まれる小数値を抽出する小数抽出手段、
この小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とを設定する大小既約分数設定手段、
設定された大小２つの既約分数で定められる範囲内に当該２つの既約分数に基づき中間の既約分数を設定する中既約分数設定手段、
前記小数抽出手段により抽出された小数値が前記中既約分数設定手段により設定された中既約分数と設定された小既約分数で定められる範囲内に存在するのか、該中既約分数と設定された大既約分数で定められる範囲内に存在するのかを判定する分数範囲判定手段、
この分数範囲判定手段により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を新たな大既約分数として設定し、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を新たな小既約分数として設定する大小既約分数更新設定手段、
この大小既約分数更新設定手段により設定された新たな大既約分数又は新たな小既約分数に基づき、前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段を繰り返し実行する繰り返し手段、
この繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数又は大既約分数又は中既約分数を前記小数値を変換した分数として判定する変換分数判定手段、
この変換分数判定手段により前記小数値を変換した分数として判定された変換分数を表示部に表示させる表示手段、
として機能させるための計算処理プログラムを記憶した記憶媒体。
【請求項１２】
前記大小既約分数設定手段は、前記コンピュータを、前記小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とを、当該小数値に基づく計算により設定する大小既約分数設定手段として機能させることを特徴する請求項１１に記載の計算処理プログラムを記憶した記憶媒体。
【請求項１３】
前記大小既約分数更新設定手段は、前記コンピュータを、前記分数範囲判定手段により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな大既約分数を設定し、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな小既約分数を設定する大小既約分数更新設定手段として機能させることを特徴とする請求項１１又は請求項１２に記載の計算処理プログラムを記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、小数を分数に変換する機能を備えた電子計算装置、計算方法、及び計算処理プログラムを記憶した記憶媒体に関する。
【０００２】
【従来の技術】
従来、例えば電卓と称される小型の電子計算装置において、小数を分数に変換する機能としては、変換対象となる小数が循環小数であることに着目したアルゴリズムの小数→分数変換機能が広く用いられている。
【０００３】
すなわち、循環小数をＡ、循環の桁数をｎ、循環する数値をＢとすると、
Ａ×（１０n −１）＝Ｂ      …式(101)
としたときには、その右辺が整数で表わされることになり、
Ａ＝Ｂ／（１０n −１）      …式(102)
とすることで、小数Ａが分数に変換されるものである。
【０００４】
例えば[0.142857142857142857142857 …] なる循環小数Ａが与えられた場合、循環数値Ｂは[142857]、循環桁数ｎは[6] となるので、前記式(102) に従い、その分数は、次のように変換されて求められる。
【０００５】
0003826556.tif 000002
【０００６】
【発明が解決しようとする課題】
しかしながら、前記従来の電子計算装置における小数→分数変換機能では、分数への変換対象として与えられた小数における循環の数値Ｂ及び循環の桁数ｎを認識できないと、分数への変換アルゴリズムが適用できないため、特に、小型の電子計算装置等、内部演算処理に伴なう処理可能桁数が１０桁や１２桁程度の電子計算装置である場合、それよりも循環の桁数Ｂが多い循環小数Ａを分数に変換することはできない問題がある。
【０００７】
本発明は、このような課題に鑑みなされたもので、与えられた小数の循環の数値や循環の桁数を要することなく、あらゆる小数を容易に分数に変換することが可能になる電子計算装置、計算方法、及び計算処理プログラムを記憶した記憶媒体を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明に係わる電子計算装置、計算方法、及び計算処理プログラムを記憶した記憶媒体は、全ての小数は［０／１］〜［１／１］の間に存在する分数に変換され、この最小既約分数［０／１］と最大既約分数［１／１］との各分母同士，各分子同士を加算すると小数［０．５］に相当する中既約分数［１／２］となり、続いてこの中既約分数［１／２］を大既約分数として前記小既約分数［０／１］との間で各分母同士，各分子同士を加算すると小数［０．３３…］に相当する中既約分数［１／３］となり、続いてこの中既約分数［１／３］を大既約分数として前記小既約分数［０／１］との間で各分母同士，各分子同士を加算すると小数［０．２５］に相当する中既約分数［１／４］となり、さらに続いてこの中既約分数［１／４］を大既約分数として前記小既約分数［０／１］との間で各分母同士，各分子同士を加算すると小数［０．２］に相当する中既約分数［１／５］となり、一方で、前記中既約分数［１／２］を小既約分数として前記大既約分数［１／１］との間で各分母同士，各分子同士を加算すると小数［０．６６…］に相当する中既約分数［２／３］となり、続いてこの中既約分数［２／３］を小既約分数として前記大既約分数［１／１］との間で各分母同士，各分子同士を加算すると小数［０．７５］に相当する中既約分数［３／４］となり、さらに続いてこの中既約分数［３／４］を小既約分数として前記大既約分数［１／１］との間で各分母同士，各分子同士を加算すると小数［０．８］に相当する中既約分数［４／５］となるというファレイ分数に基づく特性を利用し、変換対象となる小数［ｘ］を含む小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］との間で前記中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の算出を繰り返してその区間を狭め、該小数［ｘ］と一致あるいは近似した既約分数へと収束させるものである。
【０００９】
すなわち、本発明の請求項１に係わる電子計算装置は、数値を入力する数値入力手段と、この数値入力手段により入力された数値に含まれる小数値を抽出する小数抽出手段と、この小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とを設定する大小既約分数設定手段と、設定された大小２つの既約分数で定められる範囲内に当該２つの既約分数に基づき中間の既約分数を設定する中既約分数設定手段と、前記小数抽出手段により抽出された小数値が前記中既約分数設定手段により設定された中既約分数と設定された小既約分数で定められる範囲内に存在するのか、該中既約分数と設定された大既約分数で定められる範囲内に存在するのかを判定する分数範囲判定手段と、この分数範囲判定手段により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を新たな大既約分数として設定し、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を新たな小既約分数として設定する大小既約分数更新設定手段と、この大小既約分数更新設定手段により設定された新たな大既約分数又は新たな小既約分数に基づき、前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段を繰り返し実行する繰り返し手段と、この繰り返し手段による前記中既約分数設定手段、前記分数範囲判定手段、前記大小既約分数更新設定手段の繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数又は大既約分数又は中既約分数を前記小数値を変換した分数として判定する変換分数判定手段と、この変換分数判定手段により前記小数値を変換した分数として判定された変換分数を表示する表示手段とを具備したことを特徴とする。
【００１０】
つまり、本発明の請求項１に係わる電子計算装置では、入力された数値に含まれる小数値が抽出されると、この小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とが設定され、設定された大小２つの既約分数で定められる範囲内に当該２つの既約分数に基づき中間の既約分数が設定される。前記小数値が設定された中既約分数と設定された小既約分数で定められる範囲内に存在するのか、該中既約分数と設定された大既約分数で定められる範囲内に存在するのかが判定され、この範囲判定により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数が新たな大既約分数として設定され、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数が新たな小既約分数として設定される。そして、この新たな大既約分数又は新たな小既約分数に基づき、前記中既約分数の設定、前記分数範囲の判定、前記大小既約分数の更新設定が繰り返し実行され、この繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数又は大既約分数又は中既約分数が前記小数値を変換した分数として判定されて表示される。これにより、あらゆる小数を容易に分数に変換できることになる。
【００１１】
また、本発明の請求項２に係わる電子計算装置は、前記請求項１に係わる電子計算装置にあって、前記大小既約分数設定手段を、前記小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とを、当該小数値に基づく計算により設定する大小既約分数設定手段としたことを特徴する。
【００１２】
つまり、本発明の請求項２に係わる電子計算装置では、小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とが、当該小数値に基づく計算により設定されるので、大小既約分数を変換初期の段階で予め小数値の近傍に高速に寄せて設定できることになる。
【００１３】
また、本発明の請求項３に係わる電子計算装置は、前記請求項１又は請求項２に係わる電子計算装置にあって、前記大小既約分数更新設定手段を、前記分数範囲判定手段により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな大既約分数を設定し、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな小既約分数を設定する大小既約分数更新設定手段としたことを特徴とする。
【００１４】
つまり、本発明の請求項３に係わる電子計算装置では、分数範囲判定手段により前記小数値が中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな大既約分数が設定され、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな小既約分数が設定されるので、繰り返し更新設定される新たな大小既約分数を前記小数値の方向へより高速に寄せて設定できることになる。
【００１５】
【発明の実施の形態】
以下図面により本発明の実施の形態について説明する。
【００１６】
（第１実施形態）
図１は本発明の実施形態に係わる電子計算装置の電子回路の構成を示すブロック図である。
【００１７】
この電子計算装置は、コンピュータ等からなる制御部（ＣＰＵ）１１を備えている。
【００１８】
制御部（ＣＰＵ）１１は、キー入力部１２によるキー操作信号に応じてＲＯＭ１３に予め記憶されているシステムプログラム、あるいは外部記憶媒体１４に予め記憶されている計算機制御用プログラムを記憶媒体読み取り部１５により読み取らせて起動させ、ＲＡＭ１６をワークＲＡＭとして回路各部の動作の制御を行なうものである。
【００１９】
この制御部（ＣＰＵ）１１には、前記キー入力部１２、ＲＯＭ１３、記憶媒体読み取り部１５、ＲＡＭ１６の他、本計算装置の回路基板上において最大表示桁数Ｎ等の仕様を予め製造元にて設定するためのパッドの設定位置を読み取るパッド読み取り部１７が接続されると共に、表示駆動回路１８を介して液晶表示部１９が接続される。
【００２０】
キー入力部１２には、数値キー，演算子キー，関数キー，記号キー等の各種の数値・文字キー群からなるデータ入力キー１２ａが備えられると共に、この電子計算装置における各種計算モードの選択を行なう操作される「モード」キー１２ｂ、入力された数値データを分数に変換する際に操作される「分数変換」キー１２ｃ、選択されたデータの設定や設定機能の開始，計算処理の実行等を指示する際に操作される「ＥＸＥ」キー１２ｄ、表示画面上でのカーソルの移動やデータ選択を行なう際に操作されるカーソルキー「↑」「↓」「←」「→」１２ｅ等が備えられる。
【００２１】
ＲＯＭ１３には、本電子計算装置の電子回路における全体の処理を司るシステムプログラムデータが予め記憶されると共に、通常計算や関数計算，統計計算等の各種の計算処理にそれぞれ対応するプログラムデータ、及び小数を分数に変換する小数→分数変換処理のプログラムデータが予め記憶される。
【００２２】
ＲＡＭ１６には、表示データメモリ１６ａ、入力データメモリ１６ｂ、整数部データメモリ（Ｘ）１６ｃ、小数部データメモリ（ｘ）１６ｄ、（小）既約分数メモリ（ａ／ｂ）１６ｅ、（大）既約分数メモリ（ｃ／ｄ）１６ｆ、（中）既約分数メモリ「（ａ＋ｃ）／（ｂ＋ｄ）」１６ｇ、第１近似係数メモリ（ｊ）１６ｈ、第２近似係数メモリ（ｋ）１６ｉ、収束条件データメモリ１６ｊ、ワークデータメモリ１６ｋ等のメモリエリアが備えられる。
【００２３】
表示データメモリ１６ａには、液晶表示部１９に表示すべき表示データがビットマップ形式のデータとして展開されて記憶される。
【００２４】
入力データメモリ１６ｂには、キー入力部１２の操作に伴なうキー入力データが文字・記号のコードデータや命令コードのデータとして記憶される。
【００２５】
整数部データメモリ（Ｘ）１６ｃには、前記キー入力部１２の操作に応じて前記入力データメモリ１６ｂに数値データが記憶された際に、その整数部の数値データ［Ｘ］が正又は負の符号と共に抽出されて記憶される。
【００２６】
小数部データメモリ（ｘ）１６ｄには、前記キー入力部１２の操作に応じて前記入力データメモリ１６ｂに数値データが記憶された際に、その小数部の数値データ［ｘ］が正又は負の符号と共に抽出されて記憶される。
【００２７】
（小）既約分数メモリ（ａ／ｂ）１６ｅには、前記キー入力部１２の「分数変換」キー１２ｃの操作に応じて起動される小数→分数変換処理に伴ない変換対象となる小数［ｘ］に対し順次候補設定される既約分数区間の小既約分数［ａ／ｂ］が記憶される。
【００２８】
（大）既約分数メモリ（ｃ／ｄ）１６ｆには、前記キー入力部１２の「分数変換」キー１２ｃの操作に応じて起動される小数→分数変換処理に伴ない変換対象となる小数［ｘ］に対し順次候補設定される既約分数区間の大既約分数［ｃ／ｄ］が記憶される。
【００２９】
（中）既約分数メモリ「（ａ＋ｃ）／（ｂ＋ｄ）」１６ｇには、前記小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］との各分子同士，各分母同士を加算してなる中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］が次回処理ループの小または大既約分数の候補として記憶される。
【００３０】
第１近似係数メモリ（ｊ）１６ｈには、前記キー入力部１２の「分数変換」キー１２ｃの操作に応じて起動される小数→分数（高速）変換処理に伴ない、現在の小及び大既約分数を構成する各数値ａ，ｂ，ｃ，ｄと変換対象である小数値ｘとに基づき算出される、次の候補となる小既約分数［ａ／ｂ］及び大既約分数［ｃ／ｄ］を小数［ｘ］に対し高速に近似させるための係数［ｊ］が記憶される。
【００３１】
第２近似係数メモリ（ｋ）１６ｉには、前記キー入力部１２の「分数変換」キー１２ｃの操作に応じて起動される小数→分数（高速）変換処理に伴ない、現在設定の最大分母表示桁数制限値ｎと現在の小及び大既約分数の各分母を構成する数値ｂ，ｄとに基づき算出される、次の候補となる小既約分数［ａ／ｂ］及び大既約分数［ｃ／ｄ］を最大表示桁数を越えないで小数［ｘ］に対し高速に近似させるための係数［ｋ］が記憶される。
【００３２】
収束条件データメモリ１６ｊには、前記パット読み取り部１７により読み取られた最大表示桁数Ｎに基づき設定されるかあるいはキー入力により設定される最大分母表示桁数制限値ｎ、及び予め設定されるかあるいはキー入力により設定される小数→分数変換処理に伴ない算出される前記小あるいは大既約分数［ａ／ｂ］，［ｃ／ｄ］と小数［ｘ］との誤差最大値δが、それぞれ変換分数の収束条件として複数種類選択可能に記憶される。
【００３３】
この場合、前記分母表示の最大表示桁数制限値ｎとしては、例えば液晶表示部１９の仕様が１０桁表示で分数表示に伴なう分母表示桁数が３桁までに制限される場合、その制限値ｎ（＝１０００）に設定され、小数→分数変換処理に伴ない繰り返し算出される小及び大既約分数［ａ／ｂ］，［ｃ／ｄ］に基づく次の小または大既約分数となるべく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の分母数（ｂ＋ｄ）が制限値ｎ（＝１０００）以上の４桁に達すると判断された際には、その時点で算出されている小または大既約分数［ａ／ｂ］，［ｃ／ｄ］のうちで小数［ｘ］との誤差δが小さい方の分数が選択されて変換分数とされる。
【００３４】
また、前記変換分数と小数［ｘ］との許容の誤差最大値δとしては、例えば「０．０００５」以下とした場合、「５×１０-4」に設定され、小数→分数変換処理に伴ない繰り返し算出される小または大既約分数［ａ／ｂ］，［ｃ／ｄ］の何れかと小数［ｘ］との誤差δabまたはδcdが誤差最大値δ「＝５×１０-4」以下に到達したと判断された際には、当該小または大既約分数［ａ／ｂ］or［ｃ／ｄ］が変換分数とされる。
【００３５】
ワークデータメモリ１６ｋには、各種計算プログラムの実行に応じた制御処理に伴ない制御部（ＣＰＵ）１１により入出力されるデータが一時的に記憶される。
【００３６】
次に、前記構成による電子計算装置の第１実施形態の動作について説明する。
【００３７】
図２は前記電子計算装置における計算データ入力処理を示すフローチャートである。
【００３８】
キー入力部１２のデータ入力キー１２ａの操作により、何等かの数値データが入力されると、入力された数値データは、まず、ＲＡＭ１６内の入力データメモリ１６ｂに数値コードとして記憶され、さらに、この入力された数値データは、数値キャラクタのパターンデータに変換されて表示データメモリ１６ａに書き込まれ、液晶表示部１９に表示される（ステップＳ１→Ｓ２，Ｓ３）。
【００３９】
そして、例えば前記キー入力されて表示された数値データが、小数を含む数値データである場合に、その小数部を分数に変換するために、前記キー入力部１２の「分数変換」キー１２ｃが操作されると、小数→分数変換処理（図３又は図５参照）が起動される（ステップＳ４→ＳＡ（Ｂ））。
【００４０】
図３は前記電子計算装置の第１実施形態による小数→分数変換処理を示すフローチャートであり、同図（Ａ）小数→分数変換処理のメインルーチンを示すフローチャート、同図（Ｂ）は小数→分数変換処理のサブルーチンである簡易型の初期設定処理を示すフローチャートである。
【００４１】
まず、ＲＡＭ１６内の入力データメモリ１６ｂに記憶された数値データのうち、正又は負の符号データと整数部のデータが読み出され、整数［Ｘ］として整数部データメモリ１６ｃに記憶される共とに、小数部のデータが読み出され、小数［ｘ］として小数部データメモリ１６ｄに記憶される（ステップＡ１）。
【００４２】
すると、初期設定処理に移行され（ステップＡＣ）、小既約分数［ａ／ｂ＝０／１］、大既約分数［ｃ／ｄ＝１／１］として初期設定され、ＲＡＭ１６内の小既約分数メモリ１６ｅ及び大既約分数メモリ１６ｆに記憶される（ステップＣ）。
【００４３】
そして、前記小既約分数メモリ１６ｅに記憶された小既約分数［ａ／ｂ＝０／１］と大既約分数メモリ１６ｆに記憶された大既約分数［ｃ／ｄ＝１／１］との各分母同士及び各分子同士が加算されて中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］が算出され、中既約分数メモリ１６ｇに記憶されると共に、前記小数部データメモリ１６ｅに記憶されている小数［ｘ］との大小関係が判断される（ステップＡ２）。
【００４４】
ここで、前記小数［Ｘ］が前記今回の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］より大きく、前記大既約分数［ｃ／ｄ＝１／１］よりも小さいと判断された場合［（ａ＋ｃ）／（ｂ＋ｄ）＜ｘ＜（ｃ／ｄ）］には、当該今回の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］が次の小既約分数［ａ／ｂ＝１／２］として小既約分数メモリ１６ｅに更新記憶されると共に、今回の大既約分数［ｃ／ｄ＝１／１］はそのまま次の大既約分数として設定される（ステップＡ２→Ａ３）。
【００４５】
一方、前記小数［Ｘ］が前記今回の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］より小さく、前記小既約分数［ａ／ｂ＝０／１］よりも大きいと判断された場合［（ａ＋ｂ）＜ｘ＜（ａ＋ｃ）／（ｂ＋ｄ）］には、当該今回の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］が次の大既約分数［ｃ／ｄ＝１／２］として大既約分数メモリ１６ｆに更新記憶されると共に、今回の小既約分数［ａ／ｂ＝０／１］はそのまま次の小既約分数として設定される（ステップＡ２→Ａ４）。
【００４６】
そして、前記ステップＡ２〜Ａ４において算出された次の小既約分数［ａ／ｂ］と小数［ｘ］との誤差δab［＝ｘ−（ａ／ｂ）］又は次の大既約分数［ｃ／ｄ］と小数［ｘ］との誤差δcd［＝ｘ−（ｃ／ｄ）］が、ＲＡＭ１６内の収束条件データメモリ１６ｊに設定記憶されている誤差最大値δ以下に到達したか▲１▼、又は、前記次の小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］とに基づく次の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の分母数［ｂ＋ｄ］が、収束条件データメモリ１６ｊに設定記憶されている分母表示の桁数制限値ｎ以上に達するか▲２▼、が条件判断される（ステップＡ５）。
【００４７】
ここで、前記次の大小既約分数［ａ／ｂ］又は［ｃ／ｄ］に対する小数［ｘ］との誤差が誤差最大値δ以下に到達せず、しかもこの大小既約分数に基づく分母数［ｂ＋ｄ］がその桁数制限値ｎ以上には達しないと判断される状態、つまり、前記▲１▼▲２▼の何れの条件も満たさないと判断された場合には、前記ステップＡ２〜Ａ５の処理が繰り返し実行され、小既約分数［ａ／ｂ］及び大既約分数［ｃ／ｄ］がそれぞれ次第に小数［ｘ］へ近付けられる（ステップＡ５→Ａ２〜Ａ５）。
【００４８】
この後、ステップＡ５において、次の大小既約分数［ａ／ｂ］又は［ｃ／ｄ］に対する小数［ｘ］との誤差が誤差最大値δ以下に到達したと判断されるか、又は、この大小既約分数に基づく分母数［ｂ＋ｄ］がその桁数制限値ｎ以上に達すると判断された場合、つまり、前記▲１▼又は▲２▼の何れかの条件を満たしたと判断された場合には、当該小既約分数［ａ／ｂ］と小数［ｘ］との誤差δab［＝ｘ−（ａ／ｂ）］に対し当該大既約分数［ｃ／ｄ］と小数［ｘ］との誤差δcd［＝ｘ−（ｃ／ｄ）］の何れが小さいか判断される（ステップＡ５→Ａ６）。
【００４９】
ここで、小既約分数［ａ／ｂ］と小数［ｘ］との誤差δab［＝ｘ−（ａ／ｂ）］の方が小さいか等しいと判断された場合には、分子ａ／分母ｂとする該小既約分数［ａ／ｂ］が小数［ｘ］の変換分数とされ（ステップＡ６→Ａ７）、一方、大既約分数［ｃ／ｄ］と小数［ｘ］との誤差δcd［＝ｘ−（ｃ／ｄ）］の方が小さいと判断された場合には、分子ｃ／分母ｄとする該大既約分数［ｃ／ｄ］が小数［ｘ］の変換分数とされる（ステップＡ６→Ａ８）。
【００５０】
一方、前記ステップＡ２おいて、小既約分数メモリ１６ｅに記憶された小既約分数［ａ／ｂ］と大既約分数メモリ１６ｆに記憶された大既約分数［ｃ／ｄ］との各分母同士及び各分子同士が加算された中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］が、小数［ｘ］に一致したと判断された場合には、分子（ａ＋ｃ）／分母（ｂ＋ｄ）とする該中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］が小数［ｘ］の変換分数とされる（ステップＡ２→Ａ９）。
【００５１】
こうして、ＲＡＭ１６内の小数部データメモリ１６ｄに記憶されている小数［ｘ］に対応する既約分数が得られると、この分数値に対して整数部データメモリ１６ｃに記憶されている符号及び整数［Ｘ］が組み合わされ、前記計算データ入力処理（図２参照）にて小数を含み入力された数値データが対応する帯分数に変換されて液晶表示部１９に表示される（ステップＡ１０→ＥＮＤ（→Ｓ３））。
【００５２】
次に、前記電子計算装置の第１実施形態による小数→分数変換処理について、具体的な数値例をあげて説明する。
【００５３】
小数［ｘ＝０．２１１１…］の場合
初期設定された小既約分数［ａ／ｂ＝０／１］と大既約分数［ｃ／ｄ＝１／１］とに基づく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］は、１回目のループ処理（ステップＡ２〜Ａ５）において、小数［ｘ］より大きい［ｘ＜（ａ＋ｃ）／（ｂ＋ｄ）］と判断されるので、該中既約分数が次の大既約分数［ｃ／ｄ＝１／２］となり、次の小既約分数はそのまま［ａ／ｂ＝０／１］となる。
【００５４】
この後、４回目のループ処理では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／５＜ｘ］となって、該中既約分数が次の小既約分数［ａ／ｂ＝１／５］となり、次の大既約分数は前回のまま［ｃ／ｄ＝１／４］となる。また、８回目のループ処理では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝７／３３＞ｘ］となって、該中既約分数が次の大既約分数［ｃ／ｄ＝７／３３］となり、次の小既約分数は前回のまま［ｃ／ｄ＝４／１９］となる。さらに、１０回目のループ処理では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１５／７１＞ｘ］となって、該中既約分数が次の大既約分数［ｃ／ｄ＝１５／７１］となり、次の小既約分数は前回のまま［ａ／ｂ＝４／１９］となる。
【００５５】
そして、前記１０回目のループ処理で得られた次の小既約分数［ａ／ｂ＝４／１９］と大既約分数［ｃ／ｄ＝１５／７１］とに基づき、１１回目のループ処理が開始されると、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１９／９０＝ｘ］となり、ステップＡ２→Ａ９を経て、前記小数［ｘ＝０．２１１１…］は分数［１９／９０］に変換される。
【００５６】
なお、収束条件データメモリ１６ｊに記憶されている誤差最大値δ（＝５×１０-4）として設定されている場合には、９回目のループ処理にて算出された次の大既約分数［ｃ／ｄ＝１１／５２＝0.2115384 ］と小数［ｘ＝０．２１１１…］との誤差δcd［＝ｘ−（ｃ／ｄ）＝４．２７×１０-4］となり、条件▲１▼が満たされたと判断されるので、ステップＡ５→Ａ６→Ａ８を経て、前記小数［ｘ＝０．２１１１…］は分数［１１／５２］に変換される。
【００５７】
さらに、収束条件データメモリ１６ｊに記憶されている表示桁数制限値ｎ（＝１０００「３桁まで」）として設定されている場合には、あるループ処理にて算出された次の小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］とに基づく中既約分数の分母数［ｂ＋ｄ］が“１０００”以上となった際に、次のループ処理では算出既約分数の分母数が４桁以上と予想され条件▲２▼が満たされたと判断されので、この場合もループ処理を抜け、ステップＡ６→Ａ７またはステップＡ６→Ａ８の処理を経て、その時点で小数［ｘ］との誤差δが小さい方の小既約分数［ａ／ｂ］または大既約分数［ｃ／ｄ］の何れかが変換分数として確定される。
【００５８】
小数［ｘ＝０．８１１１…］の場合
初期設定された小既約分数［ａ／ｂ＝０／１］と大既約分数［ｃ／ｄ＝１／１］とに基づく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］は、１回目のループ処理（ステップＡ２〜Ａ５）において、小数［ｘ］より小さい［（ａ＋ｃ）／（ｂ＋ｄ）＜ｘ］と判断されるので、該中既約分数が次の小既約分数［ｃ／ｄ＝１／２］となり、次の大既約分数はそのまま［ｃ／ｄ＝１／１］となる。
【００５９】
この後、４回目のループ処理では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝４／５＜ｘ］となって、該中既約分数が次の小既約分数［ａ／ｂ＝４／５］となり、次の大既約分数は前回のまま［ｃ／ｄ＝１／１］となる。また、８回目のループ処理では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１７／２１＜ｘ］となって、該中既約分数が次の小既約分数［ａ／ｂ＝１７／２１］となり、次の大既約分数は前回のまま［ｃ／ｄ＝１３／１６］となる。さらに、１０回目のループ処理では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝４３／５３＞ｘ］となって、該中既約分数が次の大既約分数［ｃ／ｄ＝４３／５３］となり、次の小既約分数は前回のまま［ａ／ｂ＝３０／３７］となる。
【００６０】
そして、前記１０回目のループ処理で得られた次の小既約分数［ａ／ｂ＝３０／３７］と大既約分数［ｃ／ｄ＝４３／５３］とに基づき、１１回目のループ処理が開始されると、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝７３／９０＝ｘ］となり、ステップＡ２→Ａ９を経て、前記小数［ｘ＝０．８１１１…］は分数［７３／９０］に変換される。
【００６１】
なお、収束条件データメモリ１６ｊに記憶されている誤差最大値δ（＝５×１０-4）として設定されている場合には、９回目のループ処理にて算出された次の小既約分数［ａ／ｂ＝３０／３７＝0.8108108 ］と小数［ｘ＝０．８１１１…］との誤差δab［＝ｘ−（ａ／ｂ）＝３．００×１０-4］となり、条件▲１▼が満たされたと判断されるので、ステップＡ５→Ａ６→Ａ７を経て、前記小数［ｘ＝０．８１１１…］は分数［３０／３７］に変換される。
【００６２】
次に、前記電子計算装置の第１実施形態による小数→分数変換処理の原理について示す。
【００６３】
ｂｅ−ａｆ＝１      …式（１）
ｃ＝ａ＋ｅ      …式（２）
ｄ＝ｂ＋ｆ      …式（３）
式（２），（３）より
ｅ＝ｃ−ａ、ｆ＝ｄ−ｂとなり、これを式（１）に代入すると、
ｂ（ｃ−ａ）−ａ（ｄ−ｂ）＝１→ｂｃ−ｂａ−ａｄ＋ａｂ＝１
∴  ｂｃ−ａｄ＝１      式（４）
式（２），（３）より
ａ＝ｃ−ｅ、ｂ＝ｄ−ｆとなり、これを式（１）に代入すると、
（ｄ−ｆ）ｅ−（ｃ−ｅ）ｆ＝１→ｄｅ−ｆｅ−ｃｆ＋ｅｆ＝１
∴  ｄｅ−ｃｆ＝１      式（５）
式（４）より
ａｄ＝ｂｃ−１
両辺をｂｄで割ると、
ａｄ／ｂｄ＝ｂｃ／ｂｄ−１／ｂｄ→ａ／ｂ＝ｃ／ｄ−１／ｂｄ
ここで、ａ≧０、ｂ，ｃ，ｄ＞０より
ａ／ｂ，ｃ／ｄ，１／ｂｄ＞０
∴  ａ／ｂ＜ｃ／ｄ      …式（６）
また、式（５）より
ｄｅ＝ｃｆ＋１
両辺をｄｆで割ると、
ｄｅ／ｄｆ＝ｃｆ／ｄｆ＋１／ｄｆ
ここで、ｃ，ｄ，ｅ，ｆ＞０より
ｄ／ｆ，ｃ／ｅ，１／ｄｆ＞０
∴  ｅ／ｆ＝ｃ／ｄ＋１／ｄｆ＞ｃ／ｄ      式（７）
式（６），（７）より
ａ／ｂ＜ｃ／ｄ＜ｅ／ｆとなる。
【００６４】
したがって、前記構成の電子計算装置の第１実施形態による小数→分数変換機能によれば、最小既約分数［ａ／ｂ＝０／１］及び最大既約分数［ｃ／ｄ＝１／１］を初期設定し、この大小既約分数の各分子同士及び各分母同士をそれぞれ加算した中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／２］を算出し、該中既約分数が変換対象小数［ｘ］より大きい場合にはこれを次の大既約分数［ｃ／ｄ＝１／２］として前記そのままの小既約分数［ａ／ｂ＝０／１］との間でさらに同様の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の算出及び小数［ｘ］との大小判定処理を繰り返し、また、前記中既約分数が変換対象小数［ｘ］より小さい場合にはこれを次の小既約分数［ａ／ｂ＝１／２］として前記そのままの大既約分数［ｃ／ｄ＝１／１］との間でさらに同様の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の算出及び小数［ｘ］との大小判定処理を繰り返し、変換対象小数［ｘ］を含む小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］との区間を次第に狭める。そして、順次算出される小既約分数［ａ／ｂ］または大既約分数［ｃ／ｄ］が小数［ｘ］と一致したと判定された場合にはその一致分数が変換分数として確定され、又は、順次算出される小既約分数と小数との誤差［ｘ−（ａ／ｂ）］または大既約分数と小数との誤差［ｘ−（ｃ／ｄ）］が、設定された許容の誤差最大値δ以内に到達したと判定された場合か、あるいは、算出された大小既約分数に基づく新たな中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の分母数（ｂ＋ｄ）が表示桁数制限値ｎに達し、設定された表示桁数を越えてしまうと判定された場合には、その時点で小数［ｘ］との誤差が少ない方の小既約分数［ａ／ｂ］または大既約分数［ｃ／ｄ］が変換分数として確定されるので、従来の分数変換機能である循環小数に着目したアルゴリズムを用いることなく、如何なる小数に対してもその真値との誤差を常に明確にして容易に分数に変換できるようになる。
【００６５】
（第２実施形態）
この第２実施形態では、前記第１実施形態の小数→分数変換処理における簡易型の初期設定処理（図３参照）に代えて、初期設定される小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］との区間を予め小数［ｘ］を含む狭い区間に一気に設定する高速型の初期設定処理について説明する。
【００６６】
図４は前記電子計算装置の第２実施形態による小数→分数変換処理に伴なう高速型の初期設定処理を示すフローチャートである。
【００６７】
まず、キー入力されてＲＡＭ１６内の小数部データメモリ１６ｄに記憶された変換対象となる小数［ｘ］が読み出され、最小既約分数［０／１］と最大既約分数［１／１］との中既約分数である［１／２］に対する小数［ｘ］の大小が比較判定される（ステップＤ１→Ｄ２）。
【００６８】
ここで、小数［ｘ］が［１／２］より小さい［ｘ＜１／２］と判定された場合には、小既約分数［ａ／ｂ＝０／１］及び大既約分数［ｃ／ｄ］の分子［ｃ＝１］はそのままに、該大既約分数［ｃ／ｄ］の分母［ｄ］が「Ｉｎｔ（１／ｘ）→ｄ」として設定され、小数→分数変換処理におけるステップＡ２以降のループ処理に進む（ステップＤ２→Ｄ３→ＥＮＤ（Ａ２））。
【００６９】
一方、小数［ｘ］が［１／２］より大きい［ｘ＞１／２］と判定された場合には、大既約分数［ｃ／ｄ＝１／１］はそのままに、小既約分数［ａ／ｂ］の分母［ｂ］が「Ｉｎｔ（１／（１−ｘ））→ｂ」として設定されると共に、分子［ａ］が「ｂ−１→ａ」として設定され、小数→分数変換処理におけるステップＡ２以降のループ処理に進む（ステップＤ２→Ｄ４→ＥＮＤ（Ａ２））。
【００７０】
一方、小数［ｘ＝０．５］であり［１／２］に一致した場合には、当該変換分数［１／２］として確定され、ＲＡＭ１６内のワークデータメモリ１６ｋにて管理される分数変換処理の終了フラグがセットされる（ステップＤ２→Ｄ５→ＥＮＤ）。
【００７１】
さらに、前記小数部データメモリ１６ｄに記憶された変換対象となる小数［ｘ＝０］と判定された場合には、キー入力された数値データに分数部は存在しないのでそのまま前記分数変換処理の終了フラグがセットされる（ステップＤ１→Ｄ６→ＥＮＤ）。
【００７２】
次に、前記電子計算装置の第２実施形態による小数→分数変換処理に伴なう高速型の初期設定処理について、具体的な数値例をあげて説明する。
【００７３】
小数［ｘ＝０．２１１１…］の場合
変換対象となる小数［ｘ＝０．２１１１…］は［１／２］より小さく、［ｘ＜１／２］と判定されるので、ステップＤ２→Ｓ３の処理を経て、小既約分数［ａ／ｂ＝０／１］及び大既約分数［ｃ／ｄ］の分子［ｃ＝１］はそのままに、該大既約分数［ｃ／ｄ］の分母［ｄ］が「Ｉｎｔ（１／ｘ(=0.211)）→ｄ(=4)」として算出され、小既約分数［ａ／ｂ＝０／１］，大既約分数［ｃ／ｄ＝１／４］に初期設定される。
【００７４】
この場合、前記第１実施形態の簡易型の初期設定処理を経た小数→分数変換処理との比較では、その３回目のループ処理にて算出される小既約分数［ａ／ｂ＝０／１］と大既約分数［ｃ／ｄ＝１／４］との区間にまで、初期設定にて一気に狭められる。
【００７５】
小数［ｘ＝０．８１１１…］の場合
変換対象となる小数［ｘ＝０．８１１１…］は［１／２］より大きく、［ｘ＞１／２］と判定されるので、ステップＤ２→Ｓ４の処理を経て、大既約分数［ｃ／ｄ＝１／１］はそのままに、小既約分数［ａ／ｂ］の分母［ｂ］が「Ｉｎｔ（１／（１−ｘ(=0.811)））→ｂ(=5)」として算出されると共に、分子［ａ］が「ｂ(=5)−１→ａ(=4)」として算出され、小既約分数［ａ／ｂ＝４／５］，大既約分数［ｃ／ｄ＝１／１］に初期設定される。
【００７６】
この場合、前記第１実施形態の簡易型の初期設定処理を経た小数→分数変換処理との比較では、その４回目のループ処理にて算出される小既約分数［ａ／ｂ＝４／５］と大既約分数［ｃ／ｄ＝１／１］との区間にまで、初期設定にて一気に狭められる。
【００７７】
したがって、前記構成の電子計算装置の第２実施形態による小数→分数変換機能によれば、変換対象となる小数［ｘ］が中間既約分数［１／２］より小さいか大きいかを判定し、［１／２］より小さい場合には小既約分数［ａ／ｂ＝０／１］をそのままに大既約分数［ｃ／ｄ］を小数［ｘ］に基づき算出し、一方、［１／２］より大きい場合には大既約分数［ｃ／ｄ］をそのままに小既約分数［ａ／ｂ］を小数［ｘ］に基づき算出し、小数→分数変換処理の主要なループ処理に入る以前に、予め小数［ｘ］の近傍に寄せた小既約分数［ａ／ｂ］及び大既約分数［ｃ／ｄ］を初期設定するようにしたので、如何なる小数に対しても、容易に且つより高速に分数へと変換できるようになる。
【００７８】
（第３実施形態）
この第３実施形態では、前記第２実施形態における高速型の初期設定処理（図４参照）を用いて初期の大小既約分数を設定すると共に、小数→分数変換処理における主要なループ処理部分を改良し、大小既約分数を小数［ｘ］へ向けてさらに高速に収束させるための小数→分数高速変換処理について説明する。
【００７９】
図５は前記電子計算装置の第３実施形態による小数→分数高速変換処理を示すフローチャートである。
【００８０】
まず、ステップＢ１における小数［ｘ］の小数部データメモリ１６ｄへの取り込み処理、及びステップＢＤにおける高速型の初期設定処理（第２実施形態・図４参照）を経て、初期の小既約分数［ａ／ｂ］及び大既約分数［ｃ／ｄ］が予め小数［ｘ］の近傍に寄せて設定され、ＲＡＭ１６内の小既約分数メモリ１６ｅ及び大既約分数メモリ１６ｆに記憶される。
【００８１】
そして、前記高速型の初期設定処理において、変換終了フラグがセットされない場合には、前記小既約分数メモリ１６ｅに記憶された初期の小既約分数［ａ／ｂ］と大既約分数メモリ１６ｆに記憶された初期の大既約分数［ｃ／ｄ］との各分母同士及び各分子同士が加算されて中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］が算出され、中既約分数メモリ１６ｇに記憶されると共に、前記小数部データメモリ１６ｅに記憶されている小数［ｘ］との大小関係が判断される（ステップＢ２→Ｂ３）。
【００８２】
ここで、前記小数［Ｘ］が前記算出された中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］より大きく、前記大既約分数［ｃ／ｄ］よりも小さいと判断された場合［（ａ＋ｃ）／（ｂ＋ｄ）＜ｘ＜（ｃ／ｄ）］には、現在の小及び大既約分数を構成する各分子，分母数［ａ，ｂ，ｃ，ｄ］と変換対象である小数［ｘ］とに基づき、次の候補となる小及び大既約分数を小数［ｘ］に対し高速に近似させるための係数［ｊ←Ｉｎｔ（−（ａ−ｘｂ）／（ｃ−ｘｄ））］が算出されて第１近似係数メモリ１６ｈに記憶されると共に、収束条件データメモリ１６ｊに記憶設定された分母表示の桁数制限値ｎと現在の小及び大既約分数の各分母数［ｂ，ｄ］とに基づき、次の候補となる小及び大既約分数を最大表示桁数Ｎを越えないで小数［ｘ］に対し高速に近似させるための係数［ｋ←Ｉｎｔ（（ｎ−ｂ）／ｄ）］が算出されて第２近似係数メモリ１６ｉに記憶される（ステップＢ３→Ｂ４）。
【００８３】
そして、前記第２近似係数メモリ１６ｉに記憶された係数［ｋ］に対し前記第１近似係数メモリ１６ｈに記憶された係数［ｊ］が大きいか否か判断される（ステップＢ５）。
【００８４】
ここで、前記係数［ｋ］に対し前記係数［ｊ］はそれ以下であると判断された場合には、現在の小既約分数［ａ／ｂ］の分子数［ａ］と現在の大既約分数［ｃ／ｄ］の分子数［ｃ］に前記係数［ｊ］を乗算した値［ｊｃ］とを加算して、次の小既約分数［ａ／ｂ］の分子数［ａ←ａ＋ｊｃ］が算出されると共に、現在の小既約分数［ａ／ｂ］の分母数［ｂ］と現在の大既約分数［ｃ／ｄ］の分母数［ｄ］に前記係数［ｊ］を乗算した値［ｊｄ］とを加算して、次の小既約分数［ａ／ｂ］の分母数［ｂ←ｂ＋ｊｄ］が算出され、これにより得られた次の小既約分数［ａ／ｂ］が小既約分数メモリ１６ｅに更新記憶される（ステップＢ５→Ｂ６）。
【００８５】
また、前記ステップＢ６にて算出設定された次の小既約分数［ａ／ｂ］の分子数［ａ］と現在の大既約分数［ｃ／ｄ］の分子数［ｃ］とを加算して、次の大既約分数［ｃ／ｄ］の分子数［ｃ←ａ＋ｃ］が算出されると共に、前記次の小既約分数［ａ／ｂ］の分母数［ｂ］と現在の大既約分数［ｃ／ｄ］の分母数［ｄ］とを加算して、次の大既約分数［ｃ／ｄ］の分母数［ｄ←ｂ＋ｄ］が算出され、これにより得られた次の大既約分数［ｃ／ｄ］が大既約分数メモリ１６ｆに更新記憶される（ステップＢ７）。
【００８６】
一方、前記ステップＢ４にて算出された係数［ｋ］に対し前記係数［ｊ］が大きいと判断された場合には、現在の小既約分数［ａ／ｂ］の分子数［ａ］と現在の大既約分数［ｃ／ｄ］の分子数［ｃ］に前記係数［ｋ］を乗算した値［ｋｃ］とを加算して、次の小既約分数［ａ／ｂ］の分子数［ａ←ａ＋ｋｃ］が算出されると共に、現在の小既約分数［ａ／ｂ］の分母数［ｂ］と現在の大既約分数［ｃ／ｄ］の分母数［ｄ］に前記係数［ｋ］を乗算した値［ｋｄ］とを加算して、次の小既約分数［ａ／ｂ］の分母数［ｂ←ｂ＋ｋｄ］が算出され、これにより得られた次の小既約分数［ａ／ｂ］が小既約分数メモリ１６ｅに更新記憶される（ステップＢ５→Ｂ８）。
【００８７】
また、現在の大既約分数［ｃ／ｄ］がそのまま次の大既約分数［ｃ→ｃ／ｄ←ｄ］として設定される（ステップＢ９）。
【００８８】
一方、前記ステップＢ３において、小数［Ｘ］が現在の大小既約分数に基づき算出された中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］より小さく、小既約分数［ａ／ｂ］よりも大きいと判断された場合［（ａ／ｂ）＜ｘ＜（ａ＋ｃ）／（ｂ＋ｄ）］には、現在の小及び大既約分数を構成する各分子，分母数［ａ，ｂ，ｃ，ｄ］と変換対象である小数［ｘ］とに基づき、次の候補となる小及び大既約分数を小数［ｘ］に対し高速に近似させるための係数［ｊ←Ｉｎｔ（−（ｃ−ｘｄ）／（ａ−ｘｂ））］が算出されて第１近似係数メモリ１６ｈに記憶されると共に、収束条件データメモリ１６ｊに記憶設定された分母表示の桁数制限値ｎと現在の小及び大既約分数の各分母数［ｂ，ｄ］とに基づき、次の候補となる小及び大既約分数を最大表示桁数Ｎを越えないで小数［ｘ］に対し高速に近似させるための係数［ｋ←Ｉｎｔ（（ｎ−ｄ）／ｂ）］が算出されて第２近似係数メモリ１６ｉに記憶される（ステップＢ３→Ｂ１０）。
【００８９】
そして、前記第２近似係数メモリ１６ｉに記憶された係数［ｋ］に対し前記第１近似係数メモリ１６ｈに記憶された係数［ｊ］が大きいか否か判断される（ステップＢ１１）。
【００９０】
ここで、前記係数［ｋ］に対し前記係数［ｊ］はそれ以下であると判断された場合には、現在の大既約分数［ｃ／ｄ］の分子数［ｃ］と現在の小既約分数［ａ／ｂ］の分子数［ａ］に前記係数［ｊ］を乗算した値［ｊａ］とを加算して、次の大既約分数［ｃ／ｄ］の分子数［ｃ←ｊａ＋ｃ］が算出されると共に、現在の大既約分数［ｃ／ｄ］の分母数［ｄ］と現在の小既約分数［ａ／ｂ］の分母数［ｂ］に前記係数［ｊ］を乗算した値［ｊｂ］とを加算して、次の大既約分数［ｃ／ｄ］の分母数［ｄ←ｊｂ＋ｄ］が算出され、これにより得られた次の大既約分数［ｃ／ｄ］が大既約分数メモリ１６ｆに更新記憶される（ステップＢ１１→Ｂ１２）。
【００９１】
また、現在の小既約分数［ａ／ｂ］の分子数［ａ］と前記ステップＢ１２にて算出設定された次の大既約分数［ｃ／ｄ］の分子数［ｃ］とを加算して、次の小既約分数［ａ／ｂ］の分子数［ａ←ａ＋ｃ］が算出されると共に、現在の小既約分数［ａ／ｂ］の分母数［ｂ］と前記次の大既約分数［ｃ／ｄ］の分母数［ｄ］とを加算して、次の小既約分数［ａ／ｂ］の分母数［ｂ←ｂ＋ｄ］が算出され、これにより得られた次の小既約分数［ａ／ｂ］が小既約分数メモリ１６ｅに更新記憶される（ステップＢ１３）。
【００９２】
一方、前記ステップＢ１０にて算出された係数［ｋ］に対し前記係数［ｊ］が大きいと判断された場合には、現在の大既約分数［ｃ／ｄ］の分子数［ｃ］と現在の小既約分数［ａ／ｂ］の分子数［ａ］に前記係数［ｋ］を乗算した値［ｋａ］とを加算して、次の大既約分数［ｃ／ｄ］の分子数［ｃ←ｋａ＋ｃ］が算出されると共に、現在の大既約分数［ｃ／ｄ］の分母数［ｄ］と現在の小既約分数［ａ／ｂ］の分母数［ｂ］に前記係数［ｋ］を乗算した値［ｋｂ］とを加算して、次の大既約分数［ｃ／ｄ］の分母数［ｄ←ｋｂ＋ｄ］が算出され、これにより得られた次の大既約分数［ｃ／ｄ］が大既約分数メモリ１６ｆに更新記憶される（ステップＢ１１→Ｂ１４）。
【００９３】
また、現在の小既約分数［ａ／ｂ］がそのまま次の小既約分数［ａ→ａ／ｂ←ｂ］として設定される（ステップＢ１５）。
【００９４】
そして、前記ステップＢ３〜Ｂ１５において算出された次の小既約分数［ａ／ｂ］と小数［ｘ］との誤差δab［＝ｘ−（ａ／ｂ）］又は次の大既約分数［ｃ／ｄ］と小数［ｘ］との誤差δcd［＝ｘ−（ｃ／ｄ）］が、ＲＡＭ１６内の収束条件データメモリ１６ｊに設定記憶されている誤差最大値δ以下に到達したか▲１▼、又は、前記次の小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］とに基づく次の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の分母数［ｂ＋ｄ］が、収束条件データメモリ１６ｊに設定記憶されている分母表示の桁数制限値ｎ以上に達するか▲２▼、又は、前記次の小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］とに基づく次の中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］による区切りマークを含む分数表示範囲が、表示桁Ｎを越えるか▲３▼、が条件判断される（ステップＢ１６）。
【００９５】
ここで、前記次の大小既約分数［ａ／ｂ］又は［ｃ／ｄ］に対する小数［ｘ］との誤差が誤差最大値δ以下に到達せず、しかもこの大小既約分数に基づく分母数［ｂ＋ｄ］がその桁数制限値ｎ以上には達しなく、しかも該大小既約分数に基づく次の中既約分数による区切りマークを含むその分数表示範囲が表示桁Ｎを越えないと判断される状態、つまり、前記▲１▼▲２▼▲３▼の何れの条件も満たさないと判断された場合には、前記ステップＢ３〜Ｂ１６の処理が繰り返し実行され、小既約分数［ａ／ｂ］及び大既約分数［ｃ／ｄ］がそれぞれ高速に小数［ｘ］へ近付けられる（ステップＢ１６→Ｂ３〜Ｂ１６）。
【００９６】
この後、ステップＢ１６において、次の大小既約分数［ａ／ｂ］又は［ｃ／ｄ］に対する小数［ｘ］との誤差が誤差最大値δ以下に到達したと判断されるか、又は、この大小既約分数に基づく分母数［ｂ＋ｄ］がその桁数制限値ｎ以上に達すると判断されるか、又は、該大小既約分数に基づく次の中既約分数による区切りマークを含むその分数表示範囲が表示桁Ｎを越えると判断された場合、つまり、前記▲１▼又は▲２▼又は▲３▼の何れかの条件を満たしたと判断された場合には、当該小既約分数［ａ／ｂ］と小数［ｘ］との誤差δab［＝ｘ−（ａ／ｂ）］に対し当該大既約分数［ｃ／ｄ］と小数［ｘ］との誤差δcd［＝ｘ−（ｃ／ｄ）］の何れが小さいか判断される（ステップＢ１６→Ｂ１７）。
【００９７】
ここで、小既約分数［ａ／ｂ］と小数［ｘ］との誤差δab［＝ｘ−（ａ／ｂ）］の方が小さいか等しいと判断された場合には、分子ａ／分母ｂとする該小既約分数［ａ／ｂ］が小数［ｘ］の変換分数とされ（ステップＢ１７→Ｂ１８）、一方、大既約分数［ｃ／ｄ］と小数［ｘ］との誤差δcd［＝ｘ−（ｃ／ｄ）］の方が小さいと判断された場合には、分子ｃ／分母ｄとする該大既約分数［ｃ／ｄ］が小数［ｘ］の変換分数とされる（ステップＢ１７→Ｂ１９）。
【００９８】
一方、前記ステップＡ２おいて、小既約分数メモリ１６ｅに記憶された小既約分数［ａ／ｂ］と大既約分数メモリ１６ｆに記憶された大既約分数［ｃ／ｄ］との各分母同士及び各分子同士が加算された中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］が、小数［ｘ］に一致したと判断された場合には、分子（ａ＋ｃ）／分母（ｂ＋ｄ）とする該中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］が小数［ｘ］の変換分数とされる（ステップＢ３→Ｂ２０）。
【００９９】
こうして、ＲＡＭ１６内の小数部データメモリ１６ｄに記憶されている小数［ｘ］に対応する既約分数が得られると、この分数値に対して整数部データメモリ１６ｃに記憶されている符号及び整数［Ｘ］が組み合わされ、前記計算データ入力処理（図２参照）にて小数を含み入力された数値データが対応する帯分数に変換されて液晶表示部１９に表示される（ステップＢ２１→ＥＮＤ（→Ｓ３））。
【０１００】
次に、前記電子計算装置の第３実施形態による小数→分数高速変換処理について、具体的な数値例をあげて説明する。
【０１０１】
小数［ｘ＝０．２１１１…］の場合
まず、小数［ｘ＝０．２１１１…＜１／２］なので、高速型の初期設定処理（図４参照）におけるステップＤ１→Ｄ２→Ｄ３を経て、小既約分数［ａ／ｂ＝０／１］，大既約分数［ｃ／ｄ＝１／４］に初期設定される。
【０１０２】
そして、初期設定された小既約分数［ａ／ｂ＝０／１］と大既約分数［ｃ／ｄ＝１／４］とに基づく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／５］は、１回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３において、小数［ｘ］より小さい［（ａ＋ｃ）／（ｂ＋ｄ）＜ｘ］と判断されるので、ステップＢ４を経て、係数［ｊ(=1)］，係数［ｋ(=249)］が算出される。
【０１０３】
すると、ステップＢ５において、前記算出係数［ｊ(=1)＜ｋ(=249)］と判断されるので、ステップＢ６，Ｂ７の処理を経て、前記係数［ｊ(=1)］が用いられ、次の小既約分数［ａ／ｂ＝１／５］となり、次の大既約分数［ｃ／ｄ＝２／９］となる。
【０１０４】
続いて、２回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝３／１４］となって小数［ｘ］より大きい［ｘ＜（ａ＋ｃ）／（ｂ＋ｄ）］と判断されるので、ステップＢ１０を経て、係数［ｊ(=1)］，係数［ｋ(=198)］が算出される。
【０１０５】
すると、ステップＢ１１において、前記算出係数［ｊ(=1)＜ｋ(=198)］と判断されるので、ステップＢ１２，Ｂ１３の処理を経て、前記係数［ｊ(=1)］が用いられ、次の小既約分数［ａ／ｂ＝４／１９］となり、次の大既約分数［ｃ／ｄ＝３／１４］となる。
【０１０６】
続いて、３回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝７／３３］となって小数［ｘ］より大きい［ｘ＜（ａ＋ｃ）／（ｂ＋ｄ）］と判断されるので、ステップＢ１０を経て、係数［ｊ(=4)］，係数［ｋ(=51) ］が算出される。
【０１０７】
すると、ステップＢ１１において、前記算出係数［ｊ(=4)＜ｋ(=51) ］と判断されるので、ステップＢ１２，Ｂ１３の処理を経て、前記係数［ｊ(=4)］が用いられ、次の小既約分数［ａ／ｂ＝２３／１０９］となり、次の大既約分数［ｃ／ｄ＝１９／９０］となる。
【０１０８】
そして、収束条件データメモリ１６ｊに記憶されている誤差最大値δ（＝５×１０-4）として設定されている場合には、前記３回目のループ処理で得られた次の小既約分数［ａ／ｂ＝２３／１０９］と小数［ｘ＝０．２１１…］との誤差δab［＝ｘ−（ａ／ｂ）＝１．０１×１０-4］となり、また、次の大既約分数［ｃ／ｄ＝１９／９０］と小数［ｘ＝０．２１１…］との誤差δcd［＝ｘ−（ｃ／ｄ）＝０］となり、条件▲１▼が満たされたと判断されるので、ステップＢ１６→Ｂ１７→Ｂ１９の処理を経て、前記小数［ｘ＝０．２１１…］は誤差δcdが“０”である分数［１９／９０］に変換される。
【０１０９】
この場合、前記第１実施形態の小数→分数変換処理との比較では、その１１回目のループ処理にて、ようやく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１９／９０］となり収束されるのに対して、本第３実施形態の小数→分数高速変換処理では、たった３回のループ処理を経て、大小既約分数が小数［ｘ］へ向けて高速に収束され、小数［ｘ＝０．２１１…］に対応する分数［１９／９０］が得られる。
【０１１０】
小数［ｘ＝０．８１１１…］の場合
まず、小数［ｘ＝０．８１１１…＞１／２］なので、高速型の初期設定処理（図４参照）におけるステップＤ１→Ｄ２→Ｄ４を経て、小既約分数［ａ／ｂ＝４／５］，大既約分数［ｃ／ｄ＝１／１］に初期設定される。
【０１１１】
そして、初期設定された小既約分数［ａ／ｂ＝４／５］と大既約分数［ｃ／ｄ＝１／１］とに基づく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝５／６］は、１回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３において、小数［ｘ］より大きい［ｘ＜（ａ＋ｃ）／（ｂ＋ｄ）］と判断されるので、ステップＢ１０を経て、係数［ｊ(=3)］，係数［ｋ(=199)］が算出される。
【０１１２】
すると、ステップＢ１１において、前記算出係数［ｊ(=3)＜ｋ(=199)］と判断されるので、ステップＢ１２，Ｂ１３の処理を経て、前記係数［ｊ(=3)］が用いられ、次の小既約分数［ａ／ｂ＝１７／２１］となり、次の大既約分数［ｃ／ｄ＝１３／１６］となる。
【０１１３】
続いて、２回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝３０／３７］となって小数［ｘ］より小さい［（ａ＋ｃ）／（ｂ＋ｄ）＜ｘ］と判断されるので、ステップＢ４を経て、係数［ｊ(=1)］，係数［ｋ(=61) ］が算出される。
【０１１４】
すると、ステップＢ５において、前記算出係数［ｊ(=1)＜ｋ(=61) ］と判断されるので、ステップＢ６，Ｂ７の処理を経て、前記係数［ｊ(=1)］が用いられ、次の小既約分数［ａ／ｂ＝３０／３７］となり、次の大既約分数［ｃ／ｄ＝４３／５３］となる。
【０１１５】
そして、前記２回目のループ処理で得られた次の小既約分数［ａ／ｂ＝３０／３７］と大既約分数［ｃ／ｄ＝４３／５３］とに基づき、３回目のループ処理が開始されると、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝７３／９０＝ｘ］となり、ステップＢ３→Ｂ２０を経て、前記小数［ｘ＝０．８１１１…］は分数［７３／９０］に変換される。
【０１１６】
この場合、前記第１実施形態の小数→分数変換処理との比較では、その１１回目のループ処理にて、ようやく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝７３／９０］となり収束されるのに対して、本第３実施形態の小数→分数高速変換処理では、たった２回のループ処理を経て、大小既約分数が小数［ｘ］へ向けて高速に収束され、３回目ループ処理の初期判断にて、小数［ｘ＝０．８１１…］に対応する分数［７３／９０］が得られる。
【０１１７】
なお、収束条件データメモリ１６ｊに記憶されている誤差最大値δ（＝５×１０-4）として設定されている場合には、前記２回目のループ処理で得られた次の小既約分数［ａ／ｂ＝３０／３７］と小数［ｘ＝０．８１１…］との誤差δab［＝ｘ−（ａ／ｂ）＝３．００×１０-4］となり、また、次の大既約分数［ｃ／ｄ＝４３／５３］と小数［ｘ＝０．８１１…］との誤差δcd［＝ｘ−（ｃ／ｄ）＝２．０９×１０-4］となり、条件▲１▼が満たされたと判断されるので、ステップＢ１６→Ｂ１７→Ｂ１９の処理を経て、前記小数［ｘ＝０．８１１…］は小さい方の誤差δcdを得た分数［４３／５３］に変換される。
【０１１８】
この場合にも、前記第１実施形態の小数→分数変換処理との比較では、その１１回目のループ処理にて、ようやく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１９／９０］となり収束されるのに対して、本第３実施形態の小数→分数高速変換処理では、たった２回のループ処理を経て、大小既約分数が小数［ｘ］へ向けて高速に収束され、小数［ｘ＝０．８１１…］に対応する分数［４３／５３］が得られる。
【０１１９】
小数［ｘ＝１／π＝0.3183098862…］の場合
まず、小数［ｘ＝0.3183098862…＜１／２］なので、高速型の初期設定処理（図４参照）におけるステップＤ１→Ｄ２→Ｄ３を経て、小既約分数［ａ／ｂ＝０／１］，大既約分数［ｃ／ｄ＝１／３］に初期設定される。
【０１２０】
そして、初期設定された小既約分数［ａ／ｂ＝０／１］と大既約分数［ｃ／ｄ＝１／３］とに基づく中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１／４］は、１回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３において、小数［ｘ］より小さい［（ａ＋ｃ）／（ｂ＋ｄ）＜ｘ］と判断されるので、ステップＢ４を経て、係数［ｊ(=7)］，係数［ｋ(=333)］が算出される。
【０１２１】
すると、ステップＢ５において、前記算出係数［ｊ(=7)＜ｋ(=333)］と判断されるので、ステップＢ６，Ｂ７の処理を経て、前記係数［ｊ(=7)］が用いられ、次の小既約分数［ａ／ｂ＝７／２２］となり、次の大既約分数［ｃ／ｄ＝８／２５］となる。
【０１２２】
続いて、２回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝１５／４７］となって小数［ｘ］より大きい［ｘ＜（ａ＋ｃ）／（ｂ＋ｄ）］と判断されるので、ステップＢ１０を経て、係数［ｊ(=15) ］，係数［ｋ(=44) ］が算出される。
【０１２３】
すると、ステップＢ１１において、前記算出係数［ｊ(=15) ＜ｋ(=44) ］と判断されるので、ステップＢ１２，Ｂ１３の処理を経て、前記係数［ｊ(=15) ］が用いられ、次の小既約分数［ａ／ｂ＝１２０／３７７］となり、次の大既約分数［ｃ／ｄ＝１１３／３５５］となる。
【０１２４】
続いて、３回目のループ処理（ステップＢ３〜Ｂ１６）におけるステップＢ３では、中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）＝２３３／７３２］となって小数［ｘ］より小さい［（ａ＋ｃ）／（ｂ＋ｄ）＜ｘ］と判断されるので、ステップＢ４を経て、係数［ｊ(=133)］，係数［ｋ(=1)］が算出される。
【０１２５】
すると、ステップＢ５において、前記算出係数［ｊ(=133)＞ｋ(=1)］と判断されるので、ステップＢ８，Ｂ９の処理を経て、前記係数［ｋ(=1)］が用いられ、次の小既約分数［ａ／ｂ＝２３３／７３２］となり、次の大既約分数［ｃ／ｄ＝１１３／３５５］となる。
【０１２６】
そして、本装置の分数表示仕様における分母表示の最大桁数が、例えば３桁であり、収束条件データメモリ１６ｊに記憶された表示桁数制限値ｎ（＝１０００）として設定されている場合には、前記小既約分数［ａ／ｂ＝２３３／７３２］及び大既約分数［ｃ／ｄ＝１１３／３５５］に基づく分母数［ｂ＋ｄ＝１０８７］がその桁数制限値ｎ（＝１０００）以上に達し、条件▲２▼が満たされたと判断されるので、ステップＢ１６→Ｂ１７→Ｂ１９の処理を経て、前記小数［ｘ＝0.3183098862…］は誤差δcdが小さい“５．９１×１０-8”である分数［１１３／３５５］に変換される。
【０１２７】
なお、収束条件データメモリ１６ｊに記憶されている誤差最大値δ（＝５×１０-4）として設定されている場合には、前記１回目のループ処理で得られた次の小既約分数［ａ／ｂ＝７／２２］と小数［ｘ＝0.3183098862…］との誤差δab［＝ｘ−（ａ／ｂ）＝１．２７…×１０-4］となり、条件▲１▼が満たされたと判断されるので、ステップＢ１６→Ｂ１７→Ｂ１８の処理を経て、前記小数［ｘ＝0.3183098862…］は小さい方の誤差δabを得た分数［７／２２］に変換される。
【０１２８】
この場合にも、前記第１実施形態の小数→分数変換処理に対して、本第３実施形態の小数→分数高速変換処理では、たった１回〜３回までのループ処理を経て、大小既約分数が小数［ｘ］へ向けて高速に収束され、小数［ｘ］に対応する分数が得られる。
【０１２９】
次に、前記電子計算装置の第３実施形態による小数→分数高速変換処理の原理について示す。
【０１３０】
（ステップＢ３→Ｂ４〜Ｂ９のルートについて）
前提条件より、
ａ／ｂ＜ｘ＜ｃ／ｄ      …式（１１）
ａ≧０，ｂ，ｃ，ｄ，ｘ＞０      …式（１２）
式（１１），（１２）より
ｄｘ＜ｃ      ∴  ｃ−ｄｘ＞０      …式（１３）
ａ＜ｂｘ      ∴  ｂｘ−ａ＞０      …式（１４）
ここで、
(a+jc)/(b+jd)<x<{a+(j+1)c}/{b+(j+1)d}       …式（１５）
式（１５）を満たすｊを求める。
【０１３１】
（ａ＋ｊｃ）／（ｂ＋ｊｄ）＜ｘ  より
ａ＋ｊｃ＜ｘ（ｂ＋ｊｄ）
→ａ＋ｊｃ＜ｘｂ＋ｊｄｘ
→（ｃ−ｄｘ）ｊ＜ｘｂ−ａ
ｃ−ｄｘ＞０より
ｊ＜（ｘｂ−ａ）／（ｃ−ｘｄ）      …式（１６）
式（１５）より
ｘ＜｛ａ＋（ｊ＋１）ｃ｝／｛ｂ＋（ｊ＋１）ｄ｝
→ｘｂ＋ｘｄｊ＋ｘｄ＜ａ＋ｃｊ＋ｃ
→（ｃ−ｘｄ）ｊ＞−（ａ−ｘｂ）−ｃ
∴  ｊ＞（ｘｂ−ａ）／（ｃ−ｘｄ）−ｃ／（ｃ−ｘｄ）  …式（１７）
式（１６），（１７）より
(xb-a)/(c-xd)-c/(c-xd)<j<(xb-a)/(c-xd)      …式（１８）
となる。また、
式（１３）より、ｃ−ｘｄ＞０
式（１２）より、ｄｘ＞０
∴  ｃ＞ｃ−ｄｘ  →  ｃ／（ｃ−ｄｘ）＞１
ゆえに、式（１８）を満たすｊの領域は１以上の範囲を持つので、必ず整数が存在する。
【０１３２】
ゆえに、式（１５）を満たすｊは、
ｊ＝Ｉｎｔ｛−（ａ−ｘｂ）／（ｃ−ｘｄ）｝  となる。
【０１３３】
ここで、
ｊ≧１であるので、
−（ａ−ｘｂ）／（ｃ−ｘｄ）≧１
（ｘｂ−ａ）／（ｃ−ｘｄ）≧１
式（１３）より
ｘｂ−ａ≧ｃ−ｘｄ
→ｘｂ＋ｘｄ≧ａ＋ｃ
→ｘ（ｂ＋ｄ）≧ａ＋ｃ
∴  ｘ≧（ａ＋ｃ）／（ｂ＋ｄ）  のときに、
ｊ≧１  を満たす解が存在する。
【０１３４】
ただし、分母が表示桁数制限値ｎを越えてはいけないので、
式（１５）において、ｂ＋ｊｄ≦ｎ  を満たす必要がある。
【０１３５】
これにより、ｊｄ≦ｎ−ｂ
ｊ≦（ｎ−ｂ）／ｄ  である必要がある。
【０１３６】
逆に、ｊ＞（ｎ−ｂ）／ｄ  のときには、新たな上限，下限を設定する必要がある。
【０１３７】
ここで、
ｋ＝Ｉｎｔ｛（ｎ−ｂ）／ｄ｝  とおくと、
ｋ≦（ｎ−ｂ）／ｄ  を満たす。
【０１３８】
そして、式（１５）より
（ａ＋ｊｃ）／（ｂ＋ｊｄ）＜ｘ  であり、ｊ→ｋ  に変える。
【０１３９】
また、ｘ＜ｃ／ｄ
∴  （ａ＋ｋｃ）／（ｂ＋ｋｄ）＜ｘ＜ｃ／ｄ  の範囲には、ｘが存在するので、この範囲を新たな上限，下限とする。
【０１４０】
なお、この小数→分数高速変換処理の（ステップＢ３→Ｂ１０〜Ｂ１５のルートについて）も、同様の原理である。
【０１４１】
したがって、前記構成の電子計算装置の第３実施形態による小数→分数高速変換機能によれば、高速型の初期設定処理（第２実施形態・図４参照）により、予め小数［ｘ］の近傍へ寄せた小既約分数［ａ／ｂ］及び大既約分数［ｃ／ｄ］を初期設定した後に、この大小既約分数の各分子同士及び各分母同士をそれぞれ加算した中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］を算出し、該中既約分数が変換対象小数［ｘ］より小さい場合には、次の候補となる小及び大既約分数を小数［ｘ］に対し高速に近似させるための係数［ｊ←Ｉｎｔ（−（ａ−ｘｂ）／（ｃ−ｘｄ））］及び次の候補となる小及び大既約分数を最大表示桁数Ｎを越えないで小数［ｘ］に対し高速に近似させるための係数［ｋ←Ｉｎｔ（（ｎ−ｂ）／ｄ）］を算出すると共に、［ｊ］が［ｋ］を上回らない場合には、［ａ＋ｊｃ→ａ］［ｂ＋ｊｄ→ｂ］によって次の小既約分数［ａ／ｂ］を算出すると共に、該次の小既約分数［ａ／ｂ］の分子［ａ］，分母［ｂ］をそれぞれ現在の大既約分数［ｃ／ｄ］の分子［ｃ］，分母［ｄ］に加算して次の大既約分数［ｃ／ｄ］を算出し、一方、中既約分数が変換対象小数［ｘ］より大きい場合には、係数［ｊ←Ｉｎｔ（−（ｃ−ｘｄ）／（ａ−ｘｂ））］及び係数［ｋ←Ｉｎｔ（（ｎ−ｄ）／ｂ）］を算出すると共に、［ｊ］が［ｋ］を上回らない場合には、［ｊａ＋ｃ→ｃ］［ｊｂ＋ｄ→ｄ］によって次の大既約分数［ｃ／ｄ］を算出すると共に、該次の大既約分数［ｃ／ｄ］の分子［ｃ］，分母［ｄ］をそれぞれ現在の小既約分数［ａ／ｂ］の分子［ａ］，分母［ｂ］に加算して次の小既約分数［ａ／ｂ］を算出し、これを再び前記中既約分数［（ａ＋ｃ）／（ｂ＋ｄ）］の算出及び小数［ｘ］との大小判定処理から繰り返すことで、変換対象小数［ｘ］を含む小既約分数［ａ／ｂ］と大既約分数［ｃ／ｄ］との区間を高速に狭めるようにしたので、如何なる小数に対しても容易に、しかもさらに高速に分数に変換できるようになる。
【０１４２】
図６は前記電子計算装置の各実施形態における異なる分数表示仕様毎の各分数表示の例を示す図である。
【０１４３】
なお、前記実施形態において記載した手法、すなわち、図２のフローチャートに示す計算データ入力処理，図３のフローチャートに示す小数→分数変換処理、図４のフローチャートに示す高速型の初期設定処理、図５のフローチャートに示す小数→分数高速変換処理等の各手法は、コンピュータに実行させることができるプログラムとして、メモリカード（ＲＯＭカード、ＲＡＭカード等）、磁気ディスク（フロッピーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の外部記憶媒体１４に格納して配布することができる。そして、コンピュータは、この外部記憶媒体１４に記録されたプログラムを記憶媒体読み取り部１５において読み込み、この読み込んだプログラムによって動作が制御されることにより、前記実施形態において説明した小数→分数変換処理機能を実現し、前述した手法による同様の処理を実行することができる。
【０１４４】
【発明の効果】
以上のように、本発明の請求項１に係わる電子計算装置によれば、入力された数値に含まれる小数値が抽出されると、この小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とが設定され、設定された大小２つの既約分数で定められる範囲内に当該２つの既約分数に基づき中間の既約分数が設定される。前記小数値が設定された中既約分数と設定された小既約分数で定められる範囲内に存在するのか、該中既約分数と設定された大既約分数で定められる範囲内に存在するのかが判定され、この範囲判定により前記小数値が前記中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数が新たな大既約分数として設定され、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数が新たな小既約分数として設定される。そして、この新たな大既約分数又は新たな小既約分数に基づき、前記中既約分数の設定、前記分数範囲の判定、前記大小既約分数の更新設定が繰り返し実行され、この繰り返しにより、前記小数値が存在する小既約分数と大既約分数で定められる範囲が狭められる過程において、新たに設定された小既約分数又は大既約分数又は中既約分数が前記小数値を変換した分数として判定されて表示される。これにより、あらゆる小数を容易に分数に変換できるようになる。
【０１４５】
また、本発明の請求項２に係わる電子計算装置によれば、前記請求項１に係わる電子計算装置にあって、小数抽出手段により抽出された小数値より小さい既約分数である小既約分数と、該小数値より大きい既約分数である大既約分数とが、当該小数値に基づく計算により設定されるので、大小既約分数を変換初期の段階で予め小数値の近傍に高速に寄せて設定できるようになる。
【０１４６】
また、本発明の請求項３に係わる電子計算装置によれば、前記請求項１又は請求項２に係わる電子計算装置にあって、分数範囲判定手段により前記小数値が中既約分数と小既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな大既約分数が設定され、前記小数値が前記中既約分数と大既約分数で定められる範囲内に存在すると判定された場合には、当該中既約分数を構成する大小既約分数の構成値と前記小数値とに基づく計算により新たな小既約分数が設定されるので、繰り返し更新設定される新たな大小既約分数を前記小数値の方向へより高速に寄せて設定できるようになる。
【０１４７】
よって、本発明によれば、与えられた小数の循環の数値や循環の桁数を要することなく、あらゆる小数を容易に分数に変換することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態に係わる電子計算装置の電子回路の構成を示すブロック図。
【図２】前記電子計算装置における計算データ入力処理を示すフローチャート。
【図３】前記電子計算装置の第１実施形態による小数→分数変換処理を示すフローチャートであり、同図（Ａ）小数→分数変換処理のメインルーチンを示すフローチャート、同図（Ｂ）は小数→分数変換処理のサブルーチンである簡易型の初期設定処理を示すフローチャート。
【図４】前記電子計算装置の第２実施形態による小数→分数変換処理に伴なう高速型の初期設定処理を示すフローチャート。
【図５】前記電子計算装置の第３実施形態による小数→分数高速変換処理を示すフローチャート。
【図６】前記電子計算装置の各実施形態における異なる分数表示仕様毎の各分数表示の例を示す図。
【符号の説明】
１１  …制御部（ＣＰＵ）、
１２  …キー入力部、
１２ａ…データ入力キー、
１２ｂ…「モード」キー、
１２ｃ…「分数変換」キー、
１２ｄ…「ＥＸＥ」キー、
１２ｅ…カーソルキー、
１３  …ＲＯＭ、
１４  …記憶媒体、
１５  …記憶媒体読み取り部、
１６  …ＲＡＭ、
１６ａ…表示データメモリ、
１６ｂ…入力データメモリ、
１６ｃ…整数部データメモリ（Ｘ）、
１６ｄ…小数部データメモリ（ｘ）、
１６ｅ…小既約分数メモリ（ａ／ｂ）、
１６ｆ…大既約分数メモリ（ｃ／ｄ）、
１６ｇ…中既約分数メモリ（ａ＋ｃ／ｂ＋ｄ）、
１６ｈ…第１近似係数メモリ（ｊ）、
１６ｉ…第２近似係数メモリ（ｋ）、
１６ｊ…収束条件データメモリ、
δ  …変換誤差最大値、
ｎ  …表示桁数制限値、
１７  …パッド読み取り部、
１８  …表示駆動回路、
１９  …液晶表示部。
【図１】
0003826556.tif 000003
【図２】
0003826556.tif 000004
【図３】
0003826556.tif 000005
【図４】
0003826556.tif 000006
【図５】
0003826556.tif 000007
【図６】
0003826556.tif 000008