「ネスト」に関連する項目
-
[IF]のしくみ
-
対象教材: インテリジェント, エースラボ3, エースラボ4, クリエイティブ, 体験用モデルA-1, 体験用モデルB-1
学習内容: ネスト, 条件分岐, [ENDIF][もし終], [IF][もし]
レベル: ★★★★
「IF」は、多くのプログラミング言語で条件分岐に使われている命令です。ある条件を判定し、結果により異なる処理をさせるために使われます。
IF=値
TronZ-Card V2とTAMI-TOOLで使用する命令の[IF](もし)も、取り付けたセンサー類のオン、オフで条件を分ける事ができます。例えば赤外線センサーからの入力信号がオンだった場合の動作と、オフだった場合の動作をそれぞれプログラミングする事によりロボットを制御します。
TronZ-Card V2とTAMI-TOOLの[IF]TronZ-Card V2とTAMI-TOOLでの[IF]の役割は、取り付けたセンサーからの情報をもとにして、条件分岐をするために使う。[IF]命令語カードの配置
基本的に[IF]と[ENDIF]はセットで配置して使いますが[ENDIF]は、[IF]や[ELSE]が複数あっても一連の分岐の最後に一つ入っていれば良い事になっています。上記プログラムの途中に[ENDIF]を入れても[IF]の分岐先で更に[IF]で分岐するといった、ネスト(入れ子状態)は、この教材では作れません。
※センサー類を使用する場合は、値部分に使用するポートの番号を指定した[IN=値]の命令カードを入れる必要があります。
※センサー類を使って分岐する場合の多くは、プログラムをループさせる必要性が出てきます。ループしないと電源を入れた瞬間にプログラムが実行され瞬時に終わってしまうからです。
[ENDIF][ENDIF]は、[IF]や[ELSE]が複数あっても最後に一つ入っていれば良い。値について
[IF]を配置すると、値を決める画面が出ます。
値は0~3まで4つあり、それぞれコントローラーのIN0~IN3を示しています。
※画像のコントローラーは、クリエイティブやインテリジェントに使われているタイプですが、エースラボシリーズのプログラムコントローラーでも説明は同じです。
値指定画面には、4つの四角いチェックボックスと、その右に値のセレクトボックスがあります。どちらを操作しても値を決められますが、下の表のように、セレクトボックス内の数値の仕組みは複雑なので、チェックボックスを使うとわかりやすいでしょう。
IFの設定パターンは覚える必要は有りません。挿入した命令カードの[IF=値]の値部分の数字とセンサーをつないだコントローラーの【IN0~3】ポートの数字とはイコールでは無い所がポイントです。
例えば、[IF]を挿入した時に出るチェックボックスのIN3の部分にチェックを入れると、カードの表示は[IF=8]になります。(2進法の底は2で、ポート番号の数値が冪指数)
しくみのポイント指定したセンサーのIN番号が[IF=値]の値になる訳では無い