基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログラミング) 「券売機のしくみ」 講義ノート目次

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 文字 数値列 すなわち「小数値」

続いて 出発駅と当着駅を選ぶ部分を作ろう。