« 【任天堂】WiiUの購買意欲をあげるには | メイン | 【佐世保市営】駅前バス待合所 »

2014-02-16

【カシオ】プログラム関数電卓 For~Next StepとDsz

 カシオのプログラム関数電卓で以前、For~Next Stepを使って、0.00001を1万回足す記事を書いた。使った電卓は、fx-5800Pを含めた電卓。今回は、1を1万回足すプログラムを組み、fx-5800Pのみを用いて実験を行った。
 CasioBasic(Basicライク仕様)の、カシオプログラム関数電卓で、繰り返し計数(For~Next Step)を搭載する前は、2つの計数命令がある。
 Isz 加算計数命令

  

Isz 変数 :式1 {:▲(改行)}式2
  変数に1ずつ加算していき、変数が0であれば、式2を実行し、そうでなければ式1を実行する。

 

Dsz 減算計数命令

 

 Dsz 変数 :式1 {:▲(改行)}式2
  変数に1ずつ減算していき、変数が0であれば、式2を実行し、そうでなければ式1を実行する。

【プログラム1】(CR)はEXEを押して改行記号を示す。
ClrMemory(CR)
For 1→A To 10000 Step 1:A=A+1:Next(CR)
"RESULT=":A▲
【計算結果】3回実行し、平均約3分48秒で10,000を表示した。
P1

【プログラム2】減算計数命令Dszを使用。
0→A:10000→I(CR)
Lbl 0(CR)
A+1→A(CR)
Dsz I(CR)
Goto A(CR)
A(CR)
【計算結果】3回実行し、平均約2分52秒で10,000を表示した。
P2

 

For~Next Step 1を用いるより、Lbl~Gotoの繰り返し計数するたびに、1ずつ加算または減算するIsz,Dszがfx-5800Pにおいては早く結果を得られる。プログラムでGOTO文を使うのは避けるのが一般的でも、プログラム関数電卓の場合は、長いプログラムソースを書くのは、少ないため、ラベル~GOTOで繰り返してもよい。