ここでは,次の例題に関するプログラムの例を示します. このプログラムでは,メソッドを利用していません. このプログラムは,あくまでも参考のためのもので,実際にはこのようなプログラムは書きません.
出発時刻と到着時刻を入力して,その間の所要時間を計算する.
ただし,出発時刻と到着時刻は同日に限るものとする.
プログラム
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