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

Slides:



Advertisements
Similar presentations
IBMユーザ研究会九州研T3 3.Web2.0を実際に使ってみた. Web2.0を実際に使ってみました 研究会をプロジェクトに見立 てて “ Google SpreadSheet ” で会議を開く “ SNS ” でコミュニケーションを補助する “ Wiki ” で成果物を共有する.
Advertisements

第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
Excel ソルバー練習 *ツール → アドイン → ソルバーアド インにチェックを入れて、ソルバー を使えるようにしてから、作業を行 うこと。
コーディングとデータ入力 1. データ入力の手順 2. データ・クリーニングの方法 3. データの送付 1.
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
プロジェクトとは.
東京工科大学 コンピュータサイエンス学部 亀田弘之
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
情報技術基礎クラス8 第1回( ) 講師:斉藤匡人.
第6回 Flashによるゲームの作成 04A2029           古賀慎也.
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
マルチエージェント・シミュレーション(2)
マルチエージェント・シミュレーション(2)
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
画像の作成と編集.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
オペレーティングシステムⅡ 第3回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/10/16.
情報科学1(G1) 2016年度.
第6章 2重ループ&配列 2重ループと配列をやります.
プログラミング入門第4回 ~レゴロボットのプログラミング3~
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
情報検索演習 第8回 パソコンを起動しておくこと 前から4列目までに着席すること 2005年11月30日 後期 水曜5限
2009/5/22 けーちゃん カンタン  Wikiで情報共有 あいさつ 2009/5/22 けーちゃん
情報 第2回:状態遷移 その2.
マイクロソフト Access を使ってみよう 第1回
オブジェクト プログラミング 第1回.
マイクロソフト Access を使ってみよう 第4回
(Wed) Edited by KON IT講習会 一太郎編.
基礎プログラミング演習 第1回.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
経営工学基礎演習a PowerPointの利用.
基礎プログラミング演習 第10回.
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
形式言語とオートマトン Formal Languages and Automata 第4日目
形式言語とオートマトン Formal Languages and Automata 第4日目
形式言語とオートマトン Formal Languages and Automata 第4日目
数字を見せます。 読みましょう。. (ステップ0) 自己紹介をする グループの人は,今日一緒に勉強するお友達です。名前と所属,今日のお昼に食べたものを紹介し合いましょう。 1人15秒。班長から。 終わったら雑談。
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
情報基礎演習I(プログラミング) 第10回 6月29日 水曜5限 江草由佳
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
徹底活用するための校内研修パッケージ これから、「子どもの学びを支えるヒント集2」を活用した校内研修を始めます。
ゲームプログラミング講習  第3章 ゲーム作成 ブロック崩しを作ります ゲームプログラミング講習 第3章 ゲーム作成.
Processing使用の準備.
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
プログラミングⅠ 平成30年10月15日 森田 彦.
Presented by なんでも作るつたい(隊)
プログラミングを 体験しよう 選択情報⑧.
基礎プログラミング演習 第12回.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
情報処理基礎A・B 坂口利裕 横浜市立大学・商学部
情報検索演習 第1回補足資料 授業Webサイトをお気に入りに追加 2006年9月27日 授業資料をダウンロード 後期 水曜4/5限
第1章 いよいよプログラミング!! ~文章の表示 printf~
(C)Hiroshi Tanaka/Yoshihiro Sato
本日のスケジュール 14:45~15:30 講義 15:30~16:15 企画書レビューシート記入 16:15~16:30 休憩
人を幸せにするアプリケーションの開発 2004年度春学期 大岩研究プロジェクト2 2004年4月8日(木) 発表:武田林太郎.
プログラミングⅡ 第2回.
プログラミング入門 電卓を作ろう・パートI!!.
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
情報の授業 アプリ等を活用した勉強方法の改善(計画) ・R-PDCAサイクル ・アプリを活用した勉強方法の改善 計画書
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
情報技術演習Ⅰ 人文学研究のための情報技術入門 2017/04/13
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
Innovative Educator Expert’s Innovations
より分かりやすい ユースケースモデルを作る
プロジェクト演習Ⅱ インタラクティブゲーム制作
Presentation transcript:

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

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

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

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

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を予定しています

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

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

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

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

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

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

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

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

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

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

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

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

修正後の状態遷移図

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

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

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

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

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

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

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

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

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

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