基礎プログラミング I 第07 回 正規表現と Ruby 言語でのプログラミング 券売機のしくみ

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+) ## 数値 何かの文字 数値 (すなわち小数値)という組み合わせを探せ

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

本日の講義 / 講義ノート / 教員トップページ