プログラミング基礎 II

第八回 (2010年11月22日)

関数

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

Martin J. Dürst

AGU

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

今日の予定

前回の演習 2

提出: 11月19日 (金曜日) 22:00 までに Moodle に mountain.rb として投稿

最初の行が '*' 一文字、次の行が '*' 二文字などで30行の山を出力するプログラムを作成しなさい。

範囲、Array#collect などを活用しなさい。全体を用意した後に、一個の puts で出力しなさい。while は禁止。

正解例: 都合により削除

前回の演習 3

提出: 11月19日 (金曜日) 22:00 までに Moodle に pattern.rb として投稿

演習 2 よりもっと面白い模様を作りなさい。

プログラムの先頭にコメントで仕組を説明しなさい。

「Start Command Prompt with Ruby」のウィンドーバーの右クリックのプロパティでフォントをできるだけ小さく、レイアウトでウィンドウの幅や高さをできるだけ大きくした方が面白い模様が作れる。

二人以上の学生から同様の模様を作るプログラムが提出されているときに減点の対象となる。

関数の目的

関数の書き方

一般的な形:

def 関数名 (引数)
  処理
end

応用例:

def bmi (weight_kg, height_cm)
  weight_kg / (height_cm/100.0)**2
end

関数の書き方の詳細

関数の使い方

一般的な形:

関数名(引数)

応用例:

my_bmi = bmi(50, 160)

注意: ( の前はスペース無し

引数

戻り値

代入

(assignment)

一般的な形:

変数名 = 

式の結果 (値) は変数に記録され、再利用可能

応用例:

area = height * width

変数

(variable)

変数の範囲

(scope)

演習 1

提出: 11月26日 (金曜日) 22:00 までに Moodle に famous_def.rb のファイルとして投稿

以前に famous_sort.rb として作ったプログラム (正解例でも可) で、BMI の計算の関数を追加し、この関数を利用しなさい。

演習 2

提出: 11月26日 (金曜日) 22:00 までに Moodle に chess_board.rb のファイルとして投稿

次の模様を簡単に作れる関数を作りなさい (模様の各行は文字列で、模様全体は行を配列):

この関数を使って、一マスが高さ5、幅8 のチェスボードを作成、画面にするプログラムを作りなさい。

演習 3

(提出不要)

以前作った模様、知り合いなどが作った模様、これから作りたい模様が簡単で便利に作れる関数をいくつか考えなさい