プログラミング基礎 II

第五回 (2010年11月1日)

分岐: 条件によって違う処理をする

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

Martin J. Dürst

duerst@it.aoyama.ac.jp

AGU

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

目次

前回のまとめ

前回の演習 1

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

students.txt というデータを使って、行ごとに次の入力データ:

12345678, Reigai Taro, 80, 62, 例外 太郎

を次の出力データ

5678 例外太郎 (Taro Reigai): English: 80, Math: 62, Average: 71.0

に変更するプログラムを作りなさい。

ヒント:

解答例: 都合により削除、Shift_JIS のデータファイル: 都合により削除

 

前回の演習 1 の単純化

解答例: 都合により削除

配列の並行代入:

変数1, 変数2, 変数3,... = 配列

number, name, english, math = input_line.split(', ')

配列から複数の要素の取り出し:

(文字列から複数の文字も同様)

配列[start, length]

前回の演習 2

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

一回目の演習2として集めたデータを整理、people.txt として提出

形式 (データを合流するために、厳守):

 

前回の演習 2 のデータの整理

(全部 Ruby にて実装)

現時点の結果は famous.txt

分岐の概要

簡単な分岐

一般的な形:

if 条件
  実行する処理
end

実例:

if input_fields.length < 8
  puts "Not enough input fields (missing/wrong separator?)."
end

重要: if と end の間の行 (複数可) では必ず字下げ (インデント、indent) を使用

条件の書き方: データの比較

比較は整数、実数だけではなく、文字列、配列にも使用可能

分岐の発展: else

一般的な形:

if 条件
  条件が合うときに実行する処理
else
  条件が合わないときに実行する処理
end

実例:

if input_fields.length < 8
  puts "Not enough input fields (missing/wrong separator?)."
else
  # 普通の処理
end

 

分岐の発展: elsif

一般的な形:

if 条件1
  条件1が合うときに実行する処理
elsif 条件2
  条件2が合うときに実行する処理
end

実例:

if input_fields.length < 8
  puts "Not enough input fields (missing/wrong separator?)."
elsif input_fields.length > 8
  puts "Too many input fields."
end

 

分岐の発展: elsifelse の組合せ

演習

提出: 11月 5日 (金曜日) 22:00 までに Moodle にファイル famous.txt を処理するプログラム famous.rb を作成、投稿:

(プログラムの呼び出しは ruby -n famous.rb <famous.txt)