LoginSignup
4

More than 5 years have passed since last update.

【プログラミング入門 - Ruby を使って - 】 練習問題 6 (制御構造)

Last updated at Posted at 2014-05-29

プログラミング入門 - Rubyを使って -

練習問題6:

  • "99本のビールが壁に..." 遠足などでよく歌われる古典的な童謡の歌詞、"99 Bottles of Beer on the Wall" を 出力するプログラムを書いてみましょう。

  • 耳の遠いおばあちゃんのプログラムを書いてみましょう。 おばあちゃんに何を言っても(何をタイプしても)、叫ばない限り (つまり、全部大文字でタイプしない限り)、 は?! もっと大きな声で話しておくれ、坊や! と返事をします。もし叫んだときは、彼女はあなたの言葉を聞いて (少なくとも聞いた気がして)、 いやー、1938年以来ないねー! と大声で返事をします。 プログラムにちょっと真実味 を持たせるため、 1930年から1950年のランダムな数字で毎回違う年を叫ぶようにしましょう。あなたはBYEと叫ぶまでおばあちゃんとの会話から逃れられません。上で作った、「耳の遠いおばあちゃんのプログラム」を拡張しましょう。 おばあちゃんはあなたに行って欲しくないのです。 あなたがBYEと叫んでもおばあちゃんは聞こえないふりをします。 BYEを3回連続で 叫ばないといけないように変更してみてください。 BYEと3回叫んでも 連続していない限り、おばあちゃんとの会話は続くようになっているか プログラムをテストして確認してみましょう。

  • うるう年。 開始の年と終わりの年を聞いて、その間にあるすべてのうるう年を (もし開始や終了の年がうるう年だったらそれも含めて)表示するプログラムを書きましょう。 うるう年は(1984年とか2004年のように)4で割り切れる数の年です。ただし、100で割り切れる年は うるう年ではなくて (たとえば1800年や1900年)、さらに、それは 400で割り切れない限り です。

filename
#songs
bottles = 99

while bottles != 0
    puts bottles.to_s + 'Bottles of Beer on the Wall'
    puts bottles.to_s + 'Bottles of beer'
    puts 'Take one down and pass it around'
    bottles -= 1
    puts bottles.to_s + 'Bottles of beer on the wall'
    puts ''
end

#耳の遠いおばあちゃんのプログラム
tweet = gets.chomp
while tweet != 'BYE'
    if tweet != tweet.upcase
        puts 'もっと大きな声で話しておくれよ、坊や!'
        tweet = gets.chomp
    else
        year = 1930 + (rand(21))
        puts 'いやー ' + year.to_s + ' 年以来ないねー'
        tweet = gets.chomp
    end
end
puts 'あんだって??'

tweet2 = gets.chomp
while tweet2 != 'BYE' 

    if tweet2 != tweet2.upcase
        puts 'もっと大きな声で話しておくれよ、坊や!'
        tweet2 = gets.chomp
    else
        year = 1930 + (rand(21))
        puts 'いやー ' + year.to_s + ' 年以来ないねー'
        tweet2 = gets.chomp
    end
end
puts 'えぇ??'

tweet3 = gets.chomp
while tweet3 != 'BYE' 
    if tweet3 != tweet3.upcase
        puts 'もっと大きな声で話しておくれよ、坊や!'
        tweet3 = gets.chomp
    else
        year = 1930 + (rand(21))
        puts 'いやー ' + year.to_s + ' 年以来ないねー'
        tweet3 = gets.chomp
    end
end
puts 'はい、バイバイ'

#うるう年
puts 'はじまりの年を教えて下さい'
beginYear = gets.chomp.to_i
puts '終わりの年を教えて下さい'
endYear = gets.chomp.to_i
finishYear = endYear + 1

while beginYear != finishYear
    a = beginYear % 4
    b = beginYear % 100
    c = beginYear % 400

    if a == 0 and b != 0
        puts beginYear
    end
    if c == 0
        puts beginYear
    end
    beginYear += 1
end

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4