matumatuのなでしこ学習帳

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

学習レベルを判定した結果 LV = 3: HP = 116 : MP = 300

23:37

  • 完了予想日数 = 467 → 470 悪化
    • 完了予想年月日 = 2009/05/17 → 2009/05/21 悪化
      • はてなカウンター値 = 11742
        • 学習開始日から本日までの日数 =84日

  仕事が忙しいので、数値が悪化した。 (^_^;)


下記のプログラム「型の確かめ方.nako」は、

23:37

なでしこ本CDROM → sample → 03-01

に入っているプログラムです。


S = 「こんにちは」
Sの変数型確認して表示。

S = 3.14
Sの変数型確認して表示。

S = 5
Sの変数型確認して表示。

  • 動作結果 : 「型の確かめ方」さすが、

         サンプルプログラムなので、

         なでしこ本のとおり、

        「文字列

        「実数

        「整数」と表示された。


下記のプログラム「文字列を足す.nako」は、

23:37

なでしこ本CDROM → sample → 03-01

に入っているプログラムです。


「3」+「5」を表示。        # ... 8
「3」+「ニンジン」を表示。 # ... 3

         サンプルプログラムなので、

        「8」

        「3」

         と正常に表示された。


次に、mrさんの、なでしこ学習帳 日記2008年02月02日

23:37

HPアドレス  : http://nadesiko.g.hatena.ne.jp/mr-80b/20080202/p2

はてな記法  : id:mr-80b:20080202:p2

「テストをするプログラム」を参考にして、

「型の確かめ方」をテストをするように改造しました。


下記のプログラム「型の確かめ方A.nako」は、

23:37

プログラムをテストする、プログラムです。 (^_^;)


# 型の確かめ方 (改造版A)
# mrさんの、なでしこ学習帳 日記2008年02月02日
# HPアドレス : http://nadesiko.g.hatena.ne.jp/mr-80b/20080202/p2
# はてな記法  : id:mr-80b:20080202:p2
# を参考にして、「型の確かめ方」をテストをするように改造した。

S1 = 「こんにちは」
S1の変数型確認して表示。   # ...文字列
A1 = S1の変数型確認
もし、A1が「文字列」ならば
  「命令:文字列の変数型確認 → テスト結果:OK!」と表示
違えば
  「命令:文字列の変数型確認 → テスト結果:エラー!」と表示

S2 = 3.14
S2の変数型確認して表示。   # ...実数
A2 = S2の変数型確認
もし、A2が「実数」ならば
  「命令:実数の変数型確認  → テスト結果:OK!」と表示
違えば
  「命令:実数の変数型確認  → テスト結果:エラー!」と表示

S3 = 5
S3の変数型確認して表示。   # ...整数
A3 = S3の変数型確認
もし、A3が「整数」ならば
  「命令:整数の変数型確認  → テスト結果:OK!」と表示
違えば
  「命令:整数の変数型確認  → テスト結果:エラー!」と表示

  • 動作結果 : 「型の確かめ方A」

         プログラムをテストする、プログラムが

         正常に動き、

        「命令:文字列変数型確認 → テスト結果:OK!」

        「命令:実数変数型確認  → テスト結果:OK!」

        「命令:整数変数型確認  → テスト結果:OK!」

         と表示された。


次に、通常は1つのサンプルプログラムの改造は、

23:37

におさえて、学習スピードを上げるようにしていますが、

だけは特別に、なでしこ本 P.66の記事を参考にして、

「型による計算時」の違いをテストするために、2目の改造をしました。


下記のプログラム「型の確かめ方B.nako」は、

23:37

「型による計算時」の違いをテストする、プログラムです。


# 型の確かめ方 (改造版B)
# なでしこ本 P.66を参考にして、「型による計算時間」の違いをテストをするように改造した。
# 計算時間が表示されるまで、約1分間かかりますが、我慢してください。 (^_^;)

T1 = 今
1000000回
	S1 = 「こんにちは & 」 & 「さようなら」  # ...文字列の計算
T2 = 今
T12 = T1とT2の秒差

T3 = 今
1000000回
	S2 = 2 × 3                   # ...整数の計算
T4 = 今
T34 = T3とT4の秒差

T5 = 今
1000000回
	S3 = 2.05 × 3.12                # ...実数の計算
T6 = 今
T56 = T5とT6の秒差

「計算時間が短いのは、整数の計算を100万回した場合で、
計算時間 = {T34}秒
計算結果 = {S2}
                        」と表示。

「次に、計算時間が短いのは、実数の計算を100万回した場合で、
計算時間 = {T56}秒
整数の計算より{ROUND(T56/T34)}倍の計算時間が必要
計算結果 = {S3}
                        」と表示。

「計算時間が長いのは、文字列の計算を100万回した場合で、
計算時間 = {T12}秒
整数の計算より{ROUND(T12/T34)}倍の計算時間が必要
計算結果 = {S1}」と表示。

  • 動作結果 : 「型の確かめ方B」

        「型による計算時」の違いをテストする、

         プログラムが正常に動き、

        「計算時が短いのは、整数の計算を100万した場合で、

         計算時 = 3秒

         計算結果 = 6  」

        「次に、計算時が短いのは、実数の計算を100万した場合で、

         計算時 = 5秒

         整数の計算より2の計算時必要

         計算結果 = 6.396  」

        「計算時が長いのは、文字列の計算を100万した場合で、

         計算時 = 20秒

         整数の計算より7の計算時必要

         計算結果 = こんにちは  さようなら  」

         と表示された。

         私のパソコンでは、上記の結果が表示されるまでに、一番遅いときで、

         75秒後だったので、パソコンがフリーズしたと勘違いした。 (^_^;)


下記のプログラム「文字列を足すA.nako」は、

23:37

文字列同士を足すように改造した改造版です。


# 数値と文字列を混同した場合の困った問題 (改造版)
# なでしこ本 P.66の記事を参考にして、文字列同士を足すように改造した。

「3」+「5」を表示。            # ... 8
「3」+「ニンジン」を表示。     # ... 3
「3本の」+「ニンジン」を表示。 # ... 3

         文字列「3本の」と「ニンジン」を足したが、

         文字列「3」と「ニンジン」を足した場合と同様に、

         「3」+「0」と見なされ、答えが3になった。

         これは、「数値文字列を混同した場合の困った問題」

         ですが、明日学習予定の、なでしこ本 P.67に

         進むと解消する予定です。


明日の予定

23:37

なでしこ本 P.67に進む予定です。