rikuusaisen.dat を使って、特急券用の自動券売機を作ってみよう。 write_ticket.rb
データを読み込ませて駅名を表示し、出発地と当着地を選ぶ。 初乗り料金と距離に応じた料金が加算される。 仮に初乗り料金は 120 円、 1 km あたり 20 円加算されるとしよう。 走行距離は駅の間の距離を四捨五入して求める。
データは駅の名前と起点からの距離に関するものだから
まずはデータの読み込ませ部分と表示部分を作る。
#!/usr/koeki/bin/ruby
#coding: euc-jp
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+ 数値列 何か 1 文字 数値列 すなわち「小数値」
続いて 出発駅と当着駅を選ぶ部分を作ろう。