2013年01月21日

DPC-100プログラム・数値の増減

 この記事も含めて、まとめはこちらLink


 先の日記Linkで、iPhone用ポケコンアプリ、DPC-100について書いたけど、もう一つ、簡単なプログラムを作ってみたので掲載。

20130121-04.jpg
0〜9〜0〜・・・と増減を繰り返して表示、数字がスクロール
100 IM=9
110 LOOP:
120 FOR I=0 TO IM STEP 1
130 N=I
140 JM=I+16
150 FOR J=I TO JM STEP 1
160 PRINT N;
170 PM=(1&(J/IM))*2-1
180 N=N-PM
190 NEXT
200 WAIT(0.5,0)
210 PRINT "",
220 NEXT
230 GOTO LOOP
 0〜9、9〜0、0〜・・・と、0〜9を往復して表示。それを1文字ずつずらす、つまりスクロールしていくプログラム。
 本当はこれ、グラフィック文字を使って波を描くものにしたかったけど、このアプリがまだグラフィック文字が使えないらしいので、開発バージョンとして数字のみのものを掲載。

 これについて、私の覚え書きも含めて解説

プログラム解説

 ここでの変数は、
I:表示する最初の数値(0〜IMまでのループ)
IM:Iの最大値
J:表示文字数カウント(16桁の液晶に表示するため)
JM:Jの最大値(J+16)
N:表示する値
PM:増減値(1 or -1)

 大筋には、、最初はIの値0から始め、Jに基づいて16桁表示、次はIが1から始めて16桁、Iが3から・・・、を繰り返すための2重ループ。
 ここで、「0〜9までは+1、9に到達したら0まで-1」をする方法が、170行のPM。

170 PM=(1&(J/IM))*2-1

「J/IM」で、現在の数Jを最大IMで割った整数値は、0〜8までは「0」が、9〜17まで「1」、18〜26まで「3」と、IMの値ごとに数が増える。
「1&NUM」の構文はAND、つまり2進数で両方が1の場合のみ結果1が出て、それ以外は0。構文の詳細は、「AND演算」など検索して調べれば分かると思う。
 この場合、NUMの値に応じて「0」か「1」。つまり、「偶数か奇数か」を算出する。

 要は、「1&(J/IM)」で、0〜8までは「0」、9〜17まで「1」、18〜26までまた「0」と、9ごとに0と1を繰り返す。
 それを2倍して-1すれば、-1か+1の数値になるので、これを加算(プログラム上では減算)していけばいいと言う事。

 結局、演算を使った簡単な処理で、久しぶりにこういうのを考えて作ったので、なかなか楽しめた。


(2013/01/26 追記)
 アプリのバージョンアップにより、グラフィック文字が可能になったので、それを使ったものを作成。

DPC-100のバージョンアップとプログラム改良

 本当はこれがやり語ったという事。



タグ:iPhone DPC-100

posted by 司隆 at 20:21 | Comment(0) | Computer
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。