fx-5800P【プログラミング】:配列変数

fx-5800Pのプログラミング言語には、配列変数が用意されている。

プログラム内で、

100→DimZ

とすると、100個の配列変数が確保され、全ての要素が初期化され0が格納される。つまり、

Z[1] = Z[2] = Z[3] = ・・・ = Z[100] = 0

となる。

これを解放するには、

0→DimZ

とすれば良い。

配列の名前は、Z に固定されているのが特徴だ。

配列は、プログラムを格納するメモリ領域から切り取られるので、28500バイトの中から、プログラムに使われていない容量を配列変数に使える。電卓のプログラムでそれほど多くの変数を使うとは考えにくいので、実質無制限に使えると思って良いだろう。

配列なので、例えば変数Cを使って、Z[C] といった使い方ができる。つまり、ループコマンドの中で、Cをインクリメント(増やす)したりデクリメント(減らす)しながら、Z[C] を使って様々な処理ができるので、プログラムの記述を効率化できる。

fx-5800Pの配列 Z[ ] には、ちょっと癖がある。

・要素数に0を使えない
Z[C]の Cは1以上の整数しか使えず、0を使えない。C=0 の時はエラー(Argument ERROR:引数エラー)となる。

プログラミングに慣れた方なら、配列の要素数をついつい0から始めてしまう。私も fx-5800Pの配列に慣れるまで、何故エラーになるのか、何度か悩んだ。

・For文の制御変数(カウンタ)に使えない
試しに、以下のようなコードを書いてみるとエラーになる。

For 0→Z[1] To 10
<何かの処理>
Next


しかし、

For 1→C To 10
Z[C]+C→Z[C+1]

Next


ならOKだ。

実は、上のエラーは2重のエラーである。For 文も制御変数に 0 を使えないのだ。


そこで、fx-5800Pに備わっている3種類のループ(繰り返し)コマンドを使って、テストプログラムを作ってみた。

fx-5800P専用
配列変数テストプログラム
====================
100→DimZ
1→C
Do
Z[C]+C→Z[C+1]
IsZ C
LpWhile Z[C]<50
C▲
Z[C]▲
0→DimZ

100→DimZ
1→C
While Z[C]<50
Z[C]+C→Z[C+1]
Isz C
WhileEnd

C▲
Z[C]▲
0→DimZ

100→DimZ
For 1→C To 11
Z[C]+C→Z[C+1]
Next

C▲
Z[C]▲
0→DimZ

====================


Doループ、Whileループ、Forループのいずれも、C=11、Z[C]=55 の結果が得られる。

ところで、配列変数とは直接関係無いが、fx-5800PのFor文の癖も、似たようなところがある。制御変数は1以上の整数を使わないとダメだ。ついつい0からスタートするコードを書くとエラーとなる。


配列変数に話を戻す。

入れ子の配列 Z[Z[C]+1] も使えるので、ある程度の使いではありそうだ。
何層まで入れ子が可能かは、まだ試していないが、ソースコードが非常に読みづらくなるので、私は2重入れ子までしか使わないと思う。



また脱線だが、ソースコードの読みやすさについて言えば、インデント(字下げ)を使いたくなる。例えば上記のソースコードはインデントを使うと以下のようになって、非常に見やすくなる。

fx-5800P専用
配列変数テストプログラム
====================
100→DimZ
1→C
Do
  Z[C]+C→Z[C+1]
  IsZ C
LpWhile Z[C]<50

C▲
Z[C]▲
0→DimZ

100→DimZ
1→C
While Z[C]<50
  Z[C]+C→Z[C+1]
  Isz C
WhileEnd

C▲
Z[C]▲
0→DimZ

100→DimZ
For 1→C To 11
  Z[C]+C→Z[C+1]
Next

C▲
Z[C]▲
0→DimZ

====================


fx-5800Pでは、このようにインデントを入れると Syntasx ERROR となる。

コメントを付けることもできない。但し、上記のような改行は問題ない。長々と複雑なソースコードを書かず、サブルーチンを使った方が良さそうだ。

電卓プログラムに可読性まで求めるのは、贅沢なのだろうが...




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ

keywords: fx-5800Pプログラミング配列変数プログラム関数電卓

リンク集 | ブログ内マップ

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
最新コメント
カテゴリ
C# (3)
検索フォーム
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム関数電卓は、プログラムを作り・使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています

おもしろい・役に立つならクリックしてください。励みになります。
にほんブログ村 IT技術ブログ 開発言語へ
にほんブログ村


人気ブログランキングへ


FC2ブログランキングへ


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR