http://www.sw.it.aoyama.ac.jp/2011/PB2/lecture5.html
© 2006-11 Martin J. Dürst 青山学院大学
if
、end
、else
、elsif
.split
で配列が作られ、逆は
.join
.length
,
.reverse
,...)# encoding: Shift_JIS
又は# encoding: UTF-8
ruby -n program.rb <input.txt
提出: 10月28日 (金曜日) 22:00 までに Moodle に投稿
students.txt というデータを使って、行ごとに次の入力データ:
12345678, Reigai Taro, 80, 62, 例外 太郎
を次の出力データ
5678 例外太郎 (Taro Reigai): English: 80, Math: 62, Average:
71.0
に変更するプログラムを作りなさい。
ヒント:
.chomp
メソッドが便利to_i
を使用
("123".to_i
⇒ 123
)解答例: students.rb、Shift_JIS のデータファイル: students_sjis.txt
解答例: students_simple.rb
配列の並行代入:
変数1, 変数2,
変数3,... = 配列
number, name, english, math = input_line.split(', ')
配列から複数の要素の取り出し:
(文字列から複数の文字も同様)
配列[start, length]
提出: 10月28日 (金曜日) 22:00 までに Moodle に投稿
一回目の演習2として集めたデータを整理・補助し、people.txt
として提出
形式 (データを合流するために、厳守):
", "
で分ける(Ruby にて実装)
現時点の結果は famous.txt (浅田真央以下は去年のデータ)
if
式を使用if
式は必ず end
で修了一般的な形:
if 条件 実行する処理 end
実例:
if input_fields.length < 8 puts "Not enough input fields (missing/wrong separator?)." end
重要: if と end の間の行 (複数可) では必ず字下げ (インデント、indent) を使用
a
は b
より大きい:
a > b
a
は b
より小さい:
a < b
a
は b
以上:
a >= b
a
は b
以下:
a <= b
a
と b
は等しい:
a == b
a
と b
は等しくない: a != b
比較は整数、実数だけではなく、文字列、配列にも使用可能
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
elsif
と else
の組合せelsif
は何回も使ってよいelsif
と else
は一緒に使ってよいelse
は elsif
の後elsif
と else
は if
と
end
の同じ字下げend
は if
と対で、elsif
と
else
には end
がない演習の目的:
if
/elsif
/else
/end
の練習提出: 11月 4日 (金曜日) 22:00 までに Moodle にファイル famous.txt を処理するプログラム
famous.rb
を作成、投稿:
”
」があるto_i
で結果が 0)unknown
」、「不明
」など(プログラムの呼び出しは ruby -n famous.rb
<famous.txt
)