今回は、IchigoJamで条件判断させてみましょう。コンピュータープログラムでもっとも重要なのが条件判断です。上手く条件判断するからこそ、コンピューターが期待通りに動くのです。
とはいえ、誰が上手に判断させているかというとプログラマですが(人工知能もプログラマが作成した条件に従って判断しているにすぎません)。
IchigoJamで条件判断させるにはIF命令を使います。というか、条件判断させる命令はこれしかありません。
条件を判断するにはIF〜THEN命令を使います。IFの後に条件式を書くと、その条件式に一致した場合、THEN以降に書かれた命令が実行されます。
例えば、入力した数値がゼロかどうか判断させてみましょう。
10 INPUT A
20 PRINT A
30 IF A=0 THEN PRINT "zero"
RUNと入力してプログラムを実行してみましょう。数値に0を入力してみます。すると、以下のように表示されます。
?0
zero
OK
もし、IF命令がなければ最後のzeroの文字は表示されません。本当にそうなるのか確認する場合は、以下のように入力してリターンキーを押してください。
30
すると、30行が消えます。本当に消えたかどうか確認するには、以下のように入力してリターンキーを押します。
LIST
すると以下のように表示されます。
10 INPUT A
20 PRINT A
30行が消えています。IchigoJamのBASICでは、行番号だけを入力してリターンキーを押すと、その行が消えるようになっています。せっかく作ったプログラムを消さないように気をつけてください。
30行が消えたので、再度実行してみましょう。
RUN
?0
0
OK
今度はzeroと表示されません。条件判断する行が消えたので、表示されなくて正解です。
それでは次にゼロが入力されたら、メッセージを表示するのではなく、もう一度入力してもらうようにしてみましょう。やはり、ここでもIF命令を使います。
そして、もう一つ新しい命令を覚えましょう。それはGOTO命令です。GOTO命令は後に続く番号の行に移動します。例えば以下のようにすると、永久に123の数字が表示されます。このプログラムを止めるにはescキーを押します。
NEW
10 ?123
20 GOTO 10
NEW命令は、すでにあるプログラムを消します。新しくプログラムを入力する場合は、必ずNEW命令を使って現在のプログラムを消してください。
GOTOを使えば好きな行に移動できますので、これを利用してゼロが入力されたら、再度入力する行に戻るようにします。すると、プログラムは以下のようになります。
10 INPUT A
20 PRINT A
30 IF A=0 THEN GOTO 10
入力したら実行してみましょう。
RUN
?0
0
?7
7
OK
ゼロを入力すると、再度入力するようになりました。わずか3行ですが、コンピューターの基本的な流れはこれだけです。
入力
出力
判断
移動
コンピューター言語は、たくさんありますが、基本は変わりません。そもそもコンピューターのCPUがこのような動作なのです。
しかし、このような細かい命令を組み合わせて作っていくのは大変で、時間もかかります。これを解消するため、様々な工夫がなされているのです。
ということで、また次回。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
コンピューターの基礎を学んでも、実社会ではあまり役に立たないかもしれません。が、ピンチの時には役に立つ可能性があります。
で、そんな映画のひとつが昨年上映されていた「オデッセイ」。これは火星の調査で一人だけ火星に取り残されてしまった宇宙飛行士の話です。
数少ない資源を使って水を生成したり、ジャガイモを栽培して食料を生産したりと、かなり過酷なサバイバル映画です。何といっても地球ではないので、地球での常識は通用しないわけです。
それでも、まあアメリカ映画なので最後は無事に地球に戻ってくるわけです。その際、地球と交信する際にコンピュータープログラマなら「お〜、なるほど」と思うシーンが出てきます。
少ないデータ数(ビット数)で、いかに効率よく通信するのか。そのシーンはプログラマでも、にわかプログラマではやはり思いつきにくいアイデアなので、この宇宙飛行士はそれなりにプログラムを作れるか、かなり知っている人なのでしょう。
・オデッセイ
http://www.foxmovies-jp.com/odyssey/
あと、コンピューターの回路でどう計算しているのかをIchigoJamの開発者が分かりやすく解説していますので、興味ある方はどうぞ。
・なぜコンピューターは計算が速いのか? 電気回路で計算ができる謎を解く
http://fukuno.jig.jp/1403
・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/
・Premiere Pro & Media Encoder自動化サンプル集
http://www.amazon.co.jp/dp/4802090471/
・JavaScriptによるデータビジュアライゼーション入門
http://www.amazon.co.jp/dp/4873117461/
・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/
・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/
・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/
・データビジュアライゼーションのためのD3.js徹底入門
http://www.amazon.co.jp/dp/4797368861
・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/
・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/