rikuusaisen.dat を使って、特急券用の自動券売機を作ってみよう。 write_ticket.rb
データを読み込ませて駅名を表示し、出発地と当着地を選ぶ。 初乗り料金と距離に応じた料金が加算される。 仮に初乗り料金は 120 円、 1 km あたり 20 円加算されるとしよう。 走行距離は駅の間の距離を四捨五入して求める。
データは駅の名前と起点からの距離に関するものだから
料金 = 初乗り + 走行距離 * 20 走行距離 = |乗った駅 - 降りた駅| を四捨五入したもの
まずはデータの読み込ませ部分と表示部分を作る。
#!/usr/koeki/bin/ruby
$KCODE = 'e'
stop = Array.new
dist = Array.new
i = 0
open("rikuusaisen.dat","r") do |f|
while line = f.gets
if /(\S+)\s+(\d+.\d+)/ =~ line
stop[i] = $1
dist[i] = $2.to_f
i += 1
end
end
end
k = 0
printf("駅候補\n")
while k < stop.length
printf("%d: %-10s\t%4.1f\n", k+1, stop[k], dist[k])
k += 1
end
# (\d+.\d+) ## 数値 何かの文字 数値 (すなわち小数値)という組み合わせを探せ
続いて出発駅と当着駅を選ぶ部分を作ろう。こちら