「プログラミング入門 - Rubyを使って」 Lesson6
プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama
今回はLesson6の「制御構造」をやりました。
耳の遠いおばあちゃんプログラムがなかなかやっかいでした・・・。
うるう年のプログラムも苦戦した記憶しかありませんが、なんとかそれらしく見えるものを書いてみました。
練習問題1
• "99本のビールが壁に..." 遠足などでよく歌われる古典的な童謡の歌詞、"99 Bottles of Beer on the Wall" を 出力するプログラムを書いてみましょう。
「プログラミング入門 - Rubyを使って」 Lesson6
実行結果
99Bottles of beer on the wall 99Bottles of beer Take one down and pass it around 98Bottles of beer on the wall 98Bottles of beer on the wall 98Bottles of beer Take one down and pass it around 97Bottles of beer on the wall ...略... 2Bottles of beer on the wall 2Bottles of beer Take one down and pass it around 1Bottles of beer on the wall 1Bottles of beer on the wall 1Bottles of beer Take one down and pass it around 0Bottles of beer on the wall
練習問題2
• 耳の遠いおばあちゃんのプログラムを書いてみましょう。 おばあちゃんに何を言っても(何をタイプしても)、叫ばない限り (つまり、全部大文字でタイプしない限り)、 は?! もっと大きな声で話しておくれ、坊や! と返事をします。もし叫んだときは、彼女はあなたの言葉を聞いて (少なくとも聞いた気がして)、 いやー、1938年以来ないねー! と大声で返事をします。 プログラムにちょっと真実味 を持たせるため、 1930年から1950年のランダムな数字で毎回違う年を叫ぶようにしましょう。 (この部分はオプションです。メソッドの 章で、Rubyの乱数発生法の節を読んでいたら簡単でしょう。) あなたはBYEと叫ぶまでおばあちゃんとの会話から逃れられません。
ヒント: chompをお忘れなく! Enter付きの 'BYE'はついていない 'BYE'とは 違うものです。
ヒント2:あなたの書いたプログラムのどの部分が 何度も何度も繰り返し実行されるべきなのかを良く考えてみましょう。 そのすべてを whileループの中に入れます。
「プログラミング入門 - Rubyを使って」 Lesson6
実行結果
hi は?! もっと大きな声で話しておくれ、坊や! HI いやー、1939年以来ないねー! hi は?! もっと大きな声で話しておくれ、坊や! HI いやー、1946年以来ないねー! bye は?! もっと大きな声で話しておくれ、坊や! BYE
練習問題3
• 上で作った、「耳の遠いおばあちゃんのプログラム」を拡張しましょう。 おばあちゃんはあなたに行って欲しくないのです。 あなたがBYEと叫んでもおばあちゃんは聞こえないふりをします。 BYEを3回連続で 叫ばないといけないように変更してみてください。 BYEと3回叫んでも 連続していない限り、おばあちゃんとの会話は続くようになっているか プログラムをテストして確認してみましょう。
「プログラミング入門 - Rubyを使って」 Lesson6
実行結果
BYE なんだって? BYE え?なんだって??? bye は?! もっと大きな声で話しておくれ、坊や! BYE なんだって? BYE え?なんだって??? BYE
練習問題4
• うるう年。 開始の年と終わりの年を聞いて、その間にあるすべてのうるう年を (もし開始や終了の年がうるう年だったらそれも含めて)表示するプログラムを書きましょう。 うるう年は(1984年とか2004年のように)4で割り切れる数の年です。ただし、100で割り切れる年は うるう年ではなくて (たとえば1800年や1900年)、さらに、それは 400で割り切れない限り です。(つまり、1600年や2000年はうるう年です。) (確かに、このルールは紛らわしいです。でも7月が冬の真ん中に来てしまうのはもっと紛らわしいと 思いませんか?このルールがなかったらそうなったかもしれないのです。)
「プログラミング入門 - Rubyを使って」 Lesson6
別解
「プログラミング入門 - Rubyを使って」 Lesson6
実行結果
開始の年は? 1896 終わりの年は? 2014 うるう年一覧 1896 1904 1908 1912 1916 1920 1924 1928 1932 1936 1940 1944 1948 1952 1956 1960 1964 1968 1972 1976 1980 1984 1988 1992 1996 2000 2004 2008 2012