テーブル化サンプルプログラム2
内容
0〜255までの整数を順に入力とし、その平方根を SQR 関数とそれをテーブル化したものを用いて計算し、その時間を比較します。
実行してしばらく待つと、BEEP 音と共にまず、SQR 関数を使って計算を行い、その時間を表示します。
続いて、BEEP 音と共に今度は平方根テーブルを用いて計算します。
結果はテーブル化した方が40倍以上速いはずです。
MSX(RAM 8KB 以上)で動作します。
プログラムリスト
1 'SAVE"TABLSP2.BAS
2 'SAVE"TABLSP2.ASC",A
1000 'テーブルか サンプル2
1010 ' へいほうこん テーブル
1020 ' for MSX(RAM 8K)
1030 DEFINT A-Z:DIM SQ!(255)
1040 SCREEN1,1,0:WIDTH30:COLOR15,4,3:KEY OFF:CLS
1050 FOR X=0TO255:SQ!(X)=SQR(X):NEXT
1060 BEEP
1070 'ベンチマークで GO!
1080 PRINT" 2つの しきについて、Xに 0から255まで 1ずつ":PRINT"ふやしな
がら だいにゅう・けいさんし、けいさんに かかった じかんを ひかく。"
1090 Y!=0'ガベージ コレクティング たいさく
1100 PRINT"Y!=SQR(X)...";:TIME=0:FOR X=0TO255:Y!=SQR(X):NEXT:PRINT USING
"##.###";TIME/60;:PRINT"秒"
1110 PRINT"Y!=SQ!(X)...";:TIME=0:FOR X=0TO255:Y!=SQ!(X):NEXT:PRINT USING
"##.###";TIME/60;:PRINT"秒"
1120 BEEP:END
主な変数
プログラム解説
- 1030行
全ての変数を指定がない限り整数型変数(-32768〜32767の整数が扱える変数)とする。
平方根テーブル用配列を定義。
- 1040行
- 1050行
- 1090行
変数 Y! を初期化(ガベージコレクティング対策:新たな変数の登場による実行速度の低下を防ぐ)。
- 1100行
SQR 関数を用いて平方根を計算、それにかかった時間を表示。
- 1110行
平方根テーブルを用いて平方根を計算、それにかかった時間を表示。
- 1120行
変数の型について
通常、プログラムの始めの方で、
DEFINT A-Z
と書くと、プログラム中の変数は「指定」がない限り、全て整数型変数となります。
なぜ整数型変数を定義するかというと、整数型の方が他の型より処理速度が速いからです。
でも、整数型では困るような場合は、その変数名の右に「指定」を付ければ、その変数は指定した型になります。
例えば、「!」をつけると、その変数は単精度型になり、小数も扱えるようになります。
他には、「$」をつけると文字列型になります。
今回のサンプルでも、少数型(単精度)である必要がある(整数型では困る)変数については「!」を付けています。
戻る
MSXの適当手帳
MSX駅
西山駅