提出方法
SOI のレポートシステムを用いて提出してください http://www.soi.wide.ad.jp/report/
Cricket Logo のソースプログラムをアップロードし
てください
注釈に自分の名前 ( 名字だけで OK) を書いてくだ
さいね
p ストップウォッチの状 o 態遷移図 ( ラップ付き )
0が表示 されている
計測された 時間が表示 されている
経過時間が 表示されて
いる
ラップタイム が表示されて
いる(1) ラップタイム が表示されて
いる(2)
ボタン
→開始, 0を表示
1/10秒
→更新,表示
1/10秒 スイッチa
→計測 時間表示
スイッチa
→計測停止 スイッチa
→計測再開
スイッチa
→計測再開 スイッチb
→0を表示 ボタン→停止
動いて いない
スイッチb
→表示 スイッチb
→計測時間表示
p ラップ機能付き
o when タスク
スイッチ待ち (ゼロ表示)
スイッチ待ち (結果表示)
スイッチ待ち (経過表示中)
スイッチ待ち (ラップタイム
表示中1) スイッチ待ち (ラップタイム
表示中2)
スイッチa
→計測開始
スイッチa
→計測停止
スイッチa
→計測停止 スイッチa
→計測開始
スイッチa
→計測開始 スイッチb
→リセット
スイッチb
→ラップタイム表示 スイッチb
→ラップタイム クリア
スイッチb
→ラップタイム クリア
・基本的にはスイッチを待つ
・計測中か区別が必要
・ラップタイムを表示しているか 区別が必要
・計測中はrunタスクに時間を
測ってもらうすべての状態をひとつのwhenで表し、
変数で区別します
p ラップ機能付き
o run タスク
タイマリセット 待ち
(計測停止中)
タイマ待ち (計測中) タイマ待ち (計測停止中)
タイマ
→タイマリセット, ラップタイム表示中
でなければ経過表示
タイマ計測停止
→時計リセット
タイマ リセット (計測開始)
・基本的にはタイマを待つ
・whenタスクに割り込まれることがある
・タイマリセット待ちは、なくても動作する
timer>100を待つ、ひとつの
waituntilで表し、変数で区別します timer<100を待つ、ひとつの
waituntilで表します
やってみよう
ラップ機能を付けよう
変数
lap
がラップタイムを表すようにしますlap
が0
なら、ラップタイムは計測されていないものとします10 1
秒毎の処理では、ラップタイムを表示中かどうかを判定する必要があります次の手続きを追加するとよいでしょう
(
スイッチb
押下への対処) processLap (
ラップタイムの記録と解除) ←
計測中clearWatch (
ラップタイム/計測の解除) ←
計測停止中今日のメニュー
はじめに
前回のおさらい : 例外とマルチタスク処理・状態遷移図 練習問題 : 情熱のボサノヴァ・ロボ
課題レビュー
徹底演習 : ストップウォッチを作る 課題の出題
実習
ドキュメント内
8 II Δ N II p.1/83
(ページ 76-82)