LoginSignup
4
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
4
4
0

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
  3. You can use dark theme
What you can do with signing up
4
4