情報1

情報1
2006.10.16
第5回:アルゴリズム その2
1
2学期の授業内容
• 状態遷移の設計・実装
– 状態遷移図を使ったプログラムの設計方法
– 状態変数を使ったプログラムの実装方法
• 複数の要素を扱うアルゴリズムの設計・実装
– 並び替え(ソート)
– 検索(サーチ)
• ミニプロジェクト
– 複数メンバーによる協調作業
– スケジューリングとProject Management
2
本日の授業内容
• 課題1「オリジナルアルゴリズム」の実験
– ペアでアルゴリズムを交換する
– 各々,30枚の並び替えの実験をする
– ワークシートに実験結果を記入する
• 課題2「最小値検索法」の実装
– 最小値検索法をSqueak上に実装する
– ペアで1つ実装すればよい
• 課題1と2は同時並行で進めること(カードは一組しかないの
で,余っている人は実装に挑戦する)
• 時間内に課題1と課題2の両方を提出すること
3
アルゴリズムとは?
• 「なんらかの問題を解くための手順」のことを
アルゴリズムという
– 今回の問題は「数字の書かれた30枚のカードを
順番に並び替える」こと
– 他の問題の例「数字の書かれた100枚のカードの
最大値を検索する」
4
前回欠席した人
• 最小値検索法の実験をして,Squeak上で実
装する
• 課題1(オリジナルアルゴリズムの実験)は不
要
5
課題1「オリジナルアルゴリズム」の実験
• ペアでワークシートを交換する
• 相手が考案したオリジナルアルゴリズムでカードを
並び替え,結果を記録する
• 相手が考案したオリジナルアルゴリズムに関する考
察を行う(最小値検索法,自分の考えたとの比較
等)
• カードはペアに一組しかないので,順番に実験を行
うこと
• 余っている人は課題2の最小値検索法の実装に挑
戦すること
6
課題2「最小値検索法」の実装
• 別紙「最小値検索法 実装シート」を参照のこ
と
• この課題は,オリジナルアルゴリズムの考案
とあわせて,中間試験と同じ比率で採点しま
す
7
実装のヒント1
• 処理済束から未処理束へカードを移動するた
めのスクリプト(リセットスクリプト)を作ってお
くと,実験がしやすいですよ
8
実装のヒント2
• 「最小値検索法 実装シート」の裏にある,フ
ローチャートを1ステップずつ実装していきま
しょう
• 落ち着いてください
9
実装のヒント3
• 全ての並び替えが終わって,スクリプトが自
動停止できなくてもOKです
10
実装のヒント4
• フローチャートのはじめの部分を以下のよう
に書き換えることができますね
はじめ
未処理束の一番上のカード
を最小値スペースに移動
いいえ
はい
未処理束の全てのカードを調べたか
未処理束の一番上のカード
をめくる
最小値スペースにあるカード
を処理済み束に重ねる
めくったカードの数値が最小値スペースに
あるカードの数値より小さいか等しい
11
今日の授業はおしまい
お疲れ様でした
12