プログラミング基礎 II

第十二回 (2010年12月20日)

プログラム開発

http://www.sw.it.aoyama.ac.jp/2010/PB2/lecture12.html

Martin J. Dürst

AGU

© 2007-10 Martin J. Dürst 青山学院大学

今日の予定

これからの予定

前回の演習 1

提出: 12月17日 (金曜日) 22:00 までに Moodle に famous_hash.rb のファイル名で投稿

以前作った famous_method.rb (正解例でも可能) で連想配列によって出力する文字列 (height, weight, normal, obese など) を日本語に置き換えるようなプログラムを作成しなさい。

ヒント:

発展問題: 複数の言語が使えるようにする (ハッシュのハッシュ)

正解例: 都合により削除

前回の演習 2

提出: 12月17日 (金曜日) 22:00 までに Moodle に words.rb のファイル名で投稿

英語などの文書の入力 (< ファイルまたは直接入力) を行と単語に分解し、それぞれの単語の数を数えて、アルファベット順にきれいに出力しなさい。

入力例: Ottos Mops, President Obama's speaches

ヒント: 文字列の delete メソッドで ,.!?;:'" など記号を取り除く

発展問題: 単語の頻度順で出力

正解例: 都合により削除

プログラム開発

開発方針の大切さ

トップダウン開発

ボトムアップ開発

テストベース開発

便利なイテレータ: inject

便利なイテレータ: group_by

発展技術: 引数としてのブロック

仮引数のときの書き方: def my_method (x, y, &block)

実引数の使い方, その一: block.call (ブロックを関数のように呼び出す)

実引数の使い方, その二: sort_by &block (ブロックを別のイテレータに渡す)

演習 1

提出: 12月24日 (金曜日) 22:00 までに Moodle に famous_stats.rb のファイル名で投稿

有名人のデータから次の統計を計算し、出力しなさい。

注意: 肥満度ごとにプログラムをコピペするのではなく、繰り返し (イテレータ) を使う

発展問題: 平均を計算できる関数を作って使う

演習 2

提出: 12月31 日 (金曜日) 22:00 までに Moodle に投稿

これから自分が書きたいプログラムの概要・応用を文書 (.txt ファイル) で説明しなさい。

条件:

次回への準備

授業全体の内容を復習し、分からない部分をリストアップ