matumatuのなでしこ学習帳

2008-02-10本日は、なでしこ本 P.68の学習です

プログラム名「文字列の比較3A.nako」

11:22

# 文字列を設定 (改造版)
# サンプルプログラムは、文字列を強制的に整数に変換しているが、
# このプログラムは、文字列を強制的に実数に変換した場合と比較出来るように改造しています。

A = 「0.4」
B = 「0.5」
# 文字列を実数に変換する
A = FLOAT(A)
B = FLOAT(B)
# 比較する
もし、A<Bならば
  「実数A:{A} < 実数B:{B}」と表示
違えば
  「実数A:{A} ≧ 実数B:{B}」と表示。

C = 「0.4」
D = 「0.5」
# 文字列を整数に変換する
C = INT(C)
D = INT(D)
# 比較する
もし、C<Dならば
  「整数C:{C}  < 整数D:{D}」と表示
違えば
  「整数C:{C}  ≧ 整数D:{D}」と表示。

E = 「0.5」
F = 「0.4」
# 文字列を整数に変換する
E = INT(E)
F = INT(F)
# 比較する
もし、E<Fならば
  「整数E:{E}  < 整数F:{F}」と表示
違えば
  「整数E:{E}  ≧ 整数F:{F}」と表示。


  • 動作結果 :  の改造プログラムを動作させると

         正常に、下記のように表示した。

        「実数A:0.4 < 実数B:0.5」

        「整数C:0  ≧ 整数D:0 」

        「整数E:0  ≧ 整数F:0 」

         実は、サンプルプログラムは、

         結果が「=」になる場合を想定していないので、

         サンプルプログラムを単純に改造し、

         C = 「0.4」とD = 「0.5」を整数に変換して

         比較すると、「C > D」と表示された。

         こで、あわてて、E = 「0.5」とF = 「0.4」

         も追加したり、実数整数とも、変換後の

         数値表示したところ、「=」になる場合を想定していない

         ために、変な結果になることが分かった。

         こで、「>」を、「≧」に改造した結果、正常に判定された。

         整数にする時に、小数点以下四捨五入でなく、

         切り捨てになることを、学習した。

         数値の比較で、単純に「>」、「<」で判定すると、

         結果が「=」の時に、誤動作することを学習した。