『たった2日でできるRuby』復習問題の解答例

『たった2日でできるRuby』ここまでの復習(1日目)の解答例です。

1. yourname.rb

puts("あなたの名前は?")
name = gets
puts("こんにちは、#{name}")

2. salestax.rb

SALESTAX = 1.05
puts("商品の金額を入力してください。")
price = gets.to_i
price = price * SALESTAX
puts("消費税を合わせた金額は #{price} 円です。")

3. ctof.rb

puts("摂氏を入力してください。")
celsius = gets.to_f
fahrenheit = (9.0 / 5) * celsius + 32
puts("摂氏 #{celsius} 度は、華氏 #{fahrenheit} 度です。")

「(9 / 5)」ではなく「(9.0 / 5)」としているのは、整数ではなく浮動小数点数として計算結果を得たいからです。整数で計算してしまうと、正確な計算ができません。

4. ftoc.rb

puts("華氏を入力してください。")
fahrenheit = gets.to_f
celsius = (5.0 / 9) * (fahrenheit - 32)
puts("華氏 #{fahrenheit} 度は、摂氏 #{celsius} 度です。")

5. compare.rb

puts("1つめの整数を入力してください。")
number1 = gets.to_i
puts("2つめの整数を入力してください。")
number2 = gets.to_i

if number1 == number2 then
    puts("1つ目の整数は2つ目の整数と等しいです。")
    elsif number1 < number2 then
        puts("1つめの整数は、2つめの整数より小さいです。")
    else
        puts("1つめの整数は、2つめの整数より大きいです。")
end

6. heisei.rb

puts("西暦を入力してください。")
seireki = gets.to_i

if seireki < 1989 then
    puts("まだ平成になっていません。")
    elsif seireki == 1989 then
        puts("西暦 1989 年は、平成元年です。")
    else
        puts("西暦 #{seireki} 年は、平成 #{seireki - 1988} 年です。")
end

「平成元年です。」と表示させるところが難しいかもしれませんね。ここではもっとも単純と思われる例を挙げましたが、他にもいろいろなやり方が考えられます。

7. seireki.rb

puts("平成を入力してください。")
heisei = gets.to_i

if heisei == 1 then
    puts("平成元年は、西暦 1989 年です。")
else
    puts("平成 #{heisei} 年は、西暦 #{heisei + 1988} 年です。")
end