Presentation is loading. Please wait.

Presentation is loading. Please wait.

情報1 2006.9.4 第1回:状態遷移 その1.

Similar presentations


Presentation on theme: "情報1 2006.9.4 第1回:状態遷移 その1."— Presentation transcript:

1 情報1 第1回:状態遷移 その1

2 準備 Moodleのアドレスが変わりました Squeakを最新版に更新しましょう
情報1の2学期のページにログインしてみよう Squeakを最新版に更新しましょう 現在の最新バージョンは1.1.3です 情報1の2学期のページにダウンロードのリンクがあります ついでにZドライブを整理しましょう

3 ITクラフトマンシップ ITクラフトマンシップ(経済産業省) 日本語プログラミングとSqueakによるソフトウェア開発プロジェクト体験講座
小学生から高校生まで ことだま on Squeak を活用し,抽象的なアルゴリズムと実践的なプログラミングを学習する 経済産業省のプレスリリース

4 2学期の授業内容 状態遷移の設計・実装 複数の要素を扱うアルゴリズムの設計・実装 ミニプロジェクト 状態遷移図を使ったプログラムの設計方法
状態変数を使ったプログラムの実装方法 複数の要素を扱うアルゴリズムの設計・実装 並び替え(ソート) 検索(サーチ) ミニプロジェクト 複数メンバーによる協調作業 スケジューリングとProject Management

5 2学期の授業スケジュール 第1回 9/4 状態遷移 その1 第2回 9/11 状態遷移 その2 第3回 9/25 アルゴリズム その1
第4回 10/2 アルゴリズム その2 第5回 10/16 アルゴリズム その3 第6回 10/30 ミニプロジェクト 第7回 11/6 第8回 11/13 第9回 11/20 第10回 11/27 ※ タイピングテストの再試験は9/11を予定しています

6 今回と次回の授業の目標 状態とは何かについて考えてみよう 状態遷移図を使ってプログラムを設計してみよう
状態変数を用いて,設計したプログラムを実装してみよう

7 ストップウォッチを作ってみよう 皆さんに見せるストップウォッチと同じ動きをするものを作ってください
見た目はこだわらずに,動作することを第一に考えてください 制限時間は30分

8 動作チェックと採点(20点満点) 1. 停止しているストップウォッチのスタート・ストップボタンを押すと計測が始まりますか?
2. 計測中にスタート・ストップボタンを押すと計測が止まりますか?(停止と計測の再開が何度でもできますか?) 3. 停止している時にリセットボタンを押すと時間がリセットされますか? 4. 計測中にリセットボタンを押しても計測中のままですか? ここまでで5点獲得 ここまでで5点獲得 ここまでで5点獲得 ここまでで5点獲得

9 何が難しいのか ボタンの役割はストップウォッチ の状態で決まる ボタンを押すとストップウォッチ の状態が変わる ポイント
「スタート・ストップボタン」は名前の通り,1つで2つの役割を持っている 「リセットボタン」は常にリセット機能が動作してはならない ボタンの役割はストップウォッチ の状態で決まる ボタンを押すとストップウォッチ の状態が変わる

10 状態遷移図 プログラムの状態と遷移(移り変わり)を表現するための設計図法
角の丸い長方形 → 1つの状態を表現する 黒丸 → 遷移先の状態が初期状態 矢印 → 状態が変わる(遷移)を表現する do → その状態の時に繰り返す処理 イベント → 遷移が起こるきっかけ アクション → 遷移が起こる時に1回だけ行う処理

11 例:スーパーマリオの状態遷移図

12 例:スクリプトの状態遷移図 スクリプトを作り,全スクリプトツールを使って検証してみましょう

13 個人課題 ストップウォッチの状態遷移図を書いてみましょう 1人で取り組むこと 配布した設計シートに記入すること 授業後に回収します

14 相互レビューと完成版の作成 ペアになって作業すること 相棒と自分の状態遷移図と見比べてみよう
状態(とdoの内容)は? 遷移は? イベントは? アクションは? 2人の状態遷移図の良いトコどりをして,ペアで1枚,完成版の状態遷移図を完成させましょう 配布した設計シートに記入すること 授業後に提出してもらいます

15 どうやってそのプログラムを作るか考える(設計)
プログラムを作るときの手順 どんなプログラムを作るか考える(分析) どうやってそのプログラムを作るか考える(設計) プログラムを作る(実装) 作ったプログラムを検証する(テスト)

16 ある大学生が書いた状態遷移図 レビューしてみましょう

17 レビュー結果 初期状態はどの状態? 停止中や数値増加中にリセットボタンを押したらどうなるの?
数値一定の時にスタート・ストップボタンを押したらどうなるの? 「数値の増加が止まる」は書く必要がない(書いてなければ増えない)

18 修正後の状態遷移図

19 更にレビューしてみましょう 停止中と数値一定は1つの状態にできる 「数値一定」状態の動作 「停止中」状態の動作 リセットボタンを押すと
停止中へ遷移する 数値を0にする スタート・ストップボタンを押すと 数値増加中へ遷移する 「停止中」状態の動作 遷移しない 数値を0にしても問題なし まったく同じ

20 洗練した状態遷移図 単純な方が間違いが発見しやすい 単純な方が実装が簡単

21 次回の予定 いよいよ,設計したストップウォッチを実装してみよう タイピングテストの再試験を予定している人は最後の練習をしておいてください

22 今日の授業はおしまい お疲れ様でした

23 実装の方略 変数を使ってストップウォッチの状態を記憶しておく
ボタンクリックによって行われる状態遷移とアクションは各ボタンのスクリプトに定義する 各状態のdoを1つのスクリプトにまとめる(常に繰り返し実行しておく)

24 実装その1:状態の記憶 状態を記憶しておくために変数を利用 各状態を状態変数の値で表現する
ビューアーの上部の「V」をクリックし,状態という名前で変数を作成する 各状態を状態変数の値で表現する 状態=1 → 停止中 状態=2 → 計測中

25 実装その2:do 各状態のdoはストップウォッチの1つのスクリプトにまとめて,繰り返し実行する(チクタクさせる)
状態が計測中(状態=2)の時だけ,計測を行う(数値を増加させる)

26 実装その3:アクションと遷移 各アクションと状態遷移はボタンのスクリプトに組み込む スクリプトをマウスダウン実行にするのを忘れずに!
リセットボタンが押された 停止中の場合 → 数値を0へリセットする 計測中の場合 → なにもしない スタート・ストップボタンが押された 停止中の場合 → 計測中へ状態を遷移させる(状態=2) 計測中の場合 → 停止中へ状態を遷移させる(状態=1)

27 参考:各ボタンのスクリプト リセットボタン スタート・ストップボタン

28 課題 基本課題 応用課題 ※ 状態遷移図で設計してから実装すること ダッシュゲームを作りなさい ヒント
ボタンを押す(笛を吹く)と部員の走る向きが反転し,画像も切り替わる ヒント 部員を作るには3つのオブジェクトが必要です 見た目を変えるためには「見た目を似せる」タイルを使いましょう 応用課題 ストップウォッチを改造し,リセットボタンをリセット・スプリットボタンに変更しなさい ※ 状態遷移図で設計してから実装すること


Download ppt "情報1 2006.9.4 第1回:状態遷移 その1."

Similar presentations


Ads by Google