真ん中で休憩を一回、とります
今日のメニュー
はじめに
前回のおさらい 課題レビュー
状態遷移図で描く
練習問題 : ストップウォッチ 課題の出題
実習
前回のおさらい
Cricket における例外とマルチタスク処理
p 例外とは
例外 (exception)
プログラムの実行中に、例外的な状況が発生して、それ以上そのまま実行を続け られなくなること
実行は中断して、例外処理を行ないます
例: 何かの数を 0 で割った場合 (Cricket では結果を 0 にします)
Cricket では、例外の条件をプログラマが自由に定義できます
例外処理
プログラマが自分で定義できます
例外処理が終わると、中断したところからプログラムの実行が再開します プログラムに対する割り込み処理だと考えられます
何か変なことが起こったら割り込んでプログラムの実行を中断し、事態を収 拾してからプログラムの実行を再開します
p 身近な例外と例外処理
http://www.jfa.or.jp/laws/ill̲f.html
ファウルが起こったら警告される ファウルの対処にもルールがある ルール = プログラム
ルールはプログラマが決める
p マルチタスクとは 1
マルチタスク (multitask)
1 台のコンピュータで複数の作業 (タスク) を同時に処理すること
プロセッサ (中央処理装置) がひとつしかないコンピュータでは、細かい時間で タスクを切り替えて、複数、同時に処理しているように見せかけます
パソコンもマルチタスク処理を行なっています
ただし、みなさんがマルチタスクを実感するのは、大抵、複数のアプリケーショ ン (メーラや Web ブラウザなど) を実行しているときです
それぞれの処理は独立していて、みなさんの頭の中で関係づけられています 複数のタスクが協調してひとつの目的を達成するという、マルチタスクの醍醐味 みたいなものは分かりにくいと思います
今日は、マルチタスクの醍醐味を体験してください
といっても、Cricket は簡単なマルチタスク処理しかできませんから、簡単な例 で体験してもらうことになります
p マルチタスクとは 2
電波の受信
電波強度の監視
着メロ再生
伝言再生 アニメーション再生
ボタン操作受け付け
電池残量の監視
例: 携帯電話
さまざまなタスクが同時に動い て携帯電話を実現しています もし、ひとつの処理の流れとし て書こうとすると . . .
とても複雑になります 反応が遅くなります
優先順位の高いタスクは、他のタ スクに割り込むことができます
伝言を再生しているときに着 信があったら、伝言の再生を 中断して着メロを再生します 着メロの再生中に受信ボタン が押されたら、着メロの再生 を中断して通話を始めます
L Cricket での
o 例外 / マルチタスク処理
Cricket では、例外とマルチタスク処理をひとつの機構
で実現しています
例外 / マルチタスク処理を記述するには . . .
(when) ブロックを用います
if ブロックと同じように、条件と、条件が真のときの処理を書けます 条件が真になるまで待ち、真になると通常の処理に割り込みます
· 条件が偽から真に変わる、エッジを検出します
処理が終了すると、通常の処理が割り込まれた場所から再開します
when ブロックは loop より前で使う必要があります
when ブロックを使用する箇所で、例外/マルチタスク処理を定義して、それ を有効にしていると考えてください
when ブロックの使用には制限があります
L 時間の経過を判定する o ( タイマを使う )
タイマをリセットするには . . .
(resett) ブロックを使います
resett は reset timer の略です
↓ の timer の値を 0 にして、タイマを開始します
タイマがリセットされてからの時間の経過を測るため
には . . .
(timer) ブロックを使います
10001 秒 (1 ミリ秒) の単位で、時間の経過を表します 数値ブロックが使える場所で使えます
↑はブロックですが、 Cricket Logo でも同じですね
今日のメニュー
はじめに
前回のおさらい 課題レビュー
状態遷移図で描く
練習問題 : ストップウォッチ 課題の出題
実習
課題レビュー
課題をふりかえる 提出状況と傾向・総評 今週の Thumb Up!