• 検索結果がありません。

∼ 30 分を目標にします ( ほぼ 宿題だと思ってください )

ドキュメント内 7 : N p.1/105 (ページ 32-43)

真ん中で休憩を一回、とります

今日のメニュー

はじめに

前回のおさらい 課題レビュー

状態遷移図で描く

練習問題 : ストップウォッチ 課題の出題

実習

前回のおさらい

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!

課題 6. 機敏な自律ロボッ

ドキュメント内 7 : N p.1/105 (ページ 32-43)