2012年11月6日火曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 7章(フロー制御), 7.5(練習問題)続・耳の遠いおばあちゃん を解いてみる。

その他参考書籍

続・耳の遠いおばあちゃん

コード(TextWrangler)

sample.rb

#!/usr/bin/env ruby1.9
#-*- coding: utf-8 -*-

count = 0
while true
  result = gets.chomp
  if result == "BYE"
    count += 1
    break if count == 3
  else
    count = 0
  end
  if result == result.upcase
    year = 1930 + rand(21)
    puts "NO, NOT SINCE #{year}!"
  else
    puts "HUH! SPEAK UP, SONNY!"
  end
end

puts "BYE"

入出力結果(Terminal)

$ ./sample.rb
hi
HUH! SPEAK UP, SONNY!
HI
NO, NOT SINCE 1945!
HI
NO, NOT SINCE 1943!
HI
NO, NOT SINCE 1930!
HI
NO, NOT SINCE 1950!
HI
NO, NOT SINCE 1945!
bye
HUH! SPEAK UP, SONNY!
BYE
NO, NOT SINCE 1947!
BYE
NO, NOT SINCE 1934!
hi
HUH! SPEAK UP, SONNY!
BYE
NO, NOT SINCE 1941!
BYE
NO, NOT SINCE 1940!
BYE
BYE
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

<script>
var year;
var count = 0;
function clicked(){
  var result = $('#t0').val();
  $('#d0').append("<p>" + result + "</p>");
  if(result === "BYE"){
    count += 1;
    if(count === 3){
      $('#d0').append("<p>BYE</p>");
      $('#t0').remove();
      $('#b0').remove();
      return;
    }
  } else {
    count = 0;
  }
  if(result.toUpperCase() == result){
    year = 1930 + parseInt(Math.random()*21);
    $('#d0').append("<p>NO, NOT SINCE " + year + "!</p>");
  } else {
    $('#d0').append("<p>HUH?! SPEAK UP, SONNY!</p>");
  }
  $('#t0').val("");
}
function f(nsEvent){
  var event = nsEvent ? nsEvent : window.event;
  if(event.keyCode == 13){
    clicked();
  }
}
</script>
<div id="d0">
</div>
<input id="t0" type="text" value="" onkeydown="f()"/>
<input id="b0" type="button" value="say" onclick="clicked()"/>

pythonの場合。

sample.py

コード(TextWrangler)

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import random

count = 0
while 1:
  result = input()
  if result == "BYE":
    count += 1
    if count == 3: break
  else:
    count = 0
  if result == result.upper():
    year = random.randint(1930,1950)
    print("No, NOT SINCE {0}!".format(year))
  else:
    print("HUH?! SPEAK UP, SONNY!")

print("BYE")

入出力結果(Terminal)

$ ./sample.py
hi
HUH?! SPEAK UP, SONNY!
HI
No, NOT SINCE 1940!
HI
No, NOT SINCE 1947!
HI
No, NOT SINCE 1950!
HI
No, NOT SINCE 1949!
HI
No, NOT SINCE 1931!
bye
HUH?! SPEAK UP, SONNY!
BYE
No, NOT SINCE 1935!
BYE
No, NOT SINCE 1931!
bye
HUH?! SPEAK UP, SONNY!
BYE
No, NOT SINCE 1936!
BYE
No, NOT SINCE 1950!
BYE
BYE
$

0 コメント:

コメントを投稿