[CG実習 >  Rubyによるプログラミングの基礎 >  メソッドの定義 >  例題に関する参考プログラム]

「メソッドの定義」の例題に関する参考プログラム

ここでは,次の例題に関するプログラムの例を示します. このプログラムでは,メソッドを利用していません. このプログラムは,あくまでも参考のためのもので,実際にはこのようなプログラムは書きません.

出発時刻と到着時刻を入力して,その間の所要時間を計算する. ただし,出発時刻と到着時刻は同日に限るものとする.

プログラム


 1  
 2  ### 出発時刻と到着時刻の取得
 3  print "出発時刻と到着時刻から所要時間を計算します\n"
 4  print "時刻は3桁あるいは4桁の整数で指定して下さい\n"
 5  
 6  # 出発時刻の取得(時刻は3桁か4桁の整数で与えられるものとする)
 7  # 指定がおかしい場合には,入力をやり直す.
 8  input_ok = false
 9  while !input_ok
10    print "出発時刻(000--2359)を入力して下さい: "
11    dep = gets.to_i # 入力を読み取る
12    min  = dep%100  # 分を取りだす(下2桁)
13    # 0時未満か,24時以降か,分の指定が59より大きければ
14    # 入力をやり直すようにする.
15    if dep < 0 || 2400 <= dep || min > 59
16      print "時刻指定が正しくありません\n"
17    else
18      input_ok = true
19    end
20  end
21  
22  # 到着時刻の取得(時刻は3桁か4桁の整数で与えられるものとする)
23  # 指定がおかしい場合には,入力をやり直す.
24  input_ok = false
25  while !input_ok
26    print "到着時刻(000--2359)を入力して下さい: "
27    arr = gets.to_i # 入力を読み取る
28    min  = arr%100  # 分を取りだす(下2桁)
29    # 0時未満か,24時以降か,分の指定が59より大きければ
30    # 入力をやり直すようにする.
31    if arr < 0 || 2400 <= arr || min > 59
32      print "時刻指定が正しくありません\n"
33    else
34      input_ok = true
35    end
36  end
37  
38  ### 所要時間の計算
39  # 出発時刻と到着時刻を0:00からの経過時間(分)に変換して
40  # 所要時間を分単位で得る
41  h = dep/100
42  m = dep%100
43  min_dep = h*60+m
44  
45  h = arr/100
46  m = arr%100
47  min_arr = h*60+m
48  
49  # 所要時間(分)
50  duration_min = min_arr - min_dep
51  # 所要時間が0未満の場合はエラーとする.
52  if duration_min < 0
53    print "到着時刻が出発時刻より前になっています\n"
54    exit
55  end
56  
57  # 所要時間の表示
58  hours = duration_min/60
59  minutes = duration_min-hours*60
60  print "所要時間は"
61  print hours,"時間" if hours > 0 # if修飾子を利用した条件分岐
62  print minutes,"分です.\n"
63  

[CG実習 >  Rubyによるプログラミングの基礎 >  メソッドの定義 >  例題に関する参考プログラム]