2012年12月15日土曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 9章(自作メソッドの書き方), 9.5(練習問題)ask メソッドの改良 を解いてみる。

その他参考書籍

ask メソッドの改良

コード(TextWrangler)

sample.rb

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

def ask question
  while true
    puts question
    reply = gets.chomp.downcase
    return true if reply == 'はい'
    return false if reply == 'いいえ'
    puts '「はい」または「いいえ」でお答え下さい。'
  end
end

puts "こんにちは。お忙しところ・・・・・・"
puts
ask 'タコスはお好きですか?'
ask 'ブリトーはお好きですか?'
wets_bed = ask 'お漏らししますか?'
ask 'チミチャンガはお好きですか?'
ask 'ソパピアはお好きですか?'
puts 'あと少しです・・・・・・'
ask 'オルチャータは好きですか?'
ask 'フラウタスは好きですか?'
puts
puts 'デブリーフィング:'
puts 'この実験のために・・・・・・'
puts
puts wets_bed

入出力結果(Terminal)

$ ./sample.rb
こんにちは。お忙しところ・・・・・・

タコスはお好きですか?
はい
ブリトーはお好きですか?
はい
お漏らししますか?
まさか
「はい」または「いいえ」でお答え下さい。
お漏らししますか?
いいえ
チミチャンガはお好きですか?
はい
ソパピアはお好きですか?
はい
あと少しです・・・・・・
オルチャータは好きですか?
はい
フラウタスは好きですか?
はい

デブリーフィング:
この実験のために・・・・・・

false
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

function ask(question){
  $('#pre0').append(question + "\n");
  while(1){
    var reply = prompt(question, "");
    $('#pre0').append(reply + "\n");
    if(reply === "はい") return true
    if(reply === "いいえ") return false;
    if(/^\s*$/.test(reply)) return "終了";
    alert("「はい」または「いいえ」でお答え下さい。");
  }
}
var question = $('#t0').val();
var result = ask(question);
$('#pre0').append(result + "\n");




pythonの場合。

sample.py

コード(TextWrangler)

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

def ask(question):
    while True:
        reply = input(question)
        if reply == "はい": return True
        if reply == "いいえ": return False
        print("「はい」または「いいえ」でお答え下さい。")

print( "こんにちは。お忙しところ・・・・・・")
print()
ask( 'タコスはお好きですか?')
ask( 'ブリトーはお好きですか?')
wets_bed = ask( 'お漏らししますか?')
ask( 'チミチャンガはお好きですか?')
ask( 'ソパピアはお好きですか?')
print( 'あと少しです・・・・・・')
ask( 'オルチャータは好きですか?')
ask( 'フラウタスは好きですか?')
print()
print( 'デブリーフィング:')
print( 'この実験のために・・・・・・')
print()
print( wets_bed)

入出力結果(Terminal)

$ ./sample.py
こんにちは。お忙しところ・・・・・・

タコスはお好きですか?はい
ブリトーはお好きですか?はい
お漏らししますか?まさか
「はい」または「いいえ」でお答え下さい。
お漏らししますか?いいえ
チミチャンガはお好きですか?はい
ソパピアはお好きですか?はい
あと少しです・・・・・・
オルチャータは好きですか?はい
フラウタスは好きですか?はい

デブリーフィング:
この実験のために・・・・・・

False
$

perlの場合。

sample.pl

コード(TextWrangler)

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

sub ask{
  my $question = shift;
  while(1){
    print "$question\n";
    chomp(my $reply = <STDIN>);
    return 1 if $reply eq "はい";
    return 0 if $reply eq "いいえ";
    print "「はい」または「いいえ」でお答え下さい。\n";
  }
}

print "こんにちは。お忙しところ・・・・・・\n";
print "\n";
ask "タコスはお好きですか?";
ask "ブリトーはお好きですか?";
my $wets_bed = ask "お漏らししますか?";
ask "チミチャンガはお好きですか?";
ask "ソパピアはお好きですか?";
print "あと少しです・・・・・・\n";
ask "オルチャータは好きですか?";
ask "フラウタスは好きですか?";
print "\n";
print "デブリーフィング:\n";
print "この実験のために・・・・・・\n";
print "\n";
print "$wets_bed\n";

入出力結果(Terminal)

$ ./sample.pl
こんにちは。お忙しところ・・・・・・

タコスはお好きですか?
はい
ブリトーはお好きですか?
はい
お漏らししますか?
まさか
「はい」または「いいえ」でお答え下さい。
お漏らししますか?
いいえ
チミチャンガはお好きですか?
はい
ソパピアはお好きですか?
はい
あと少しです・・・・・・
オルチャータは好きですか?
はい
フラウタスは好きですか?
はい

デブリーフィング:
この実験のために・・・・・・

0
$

0 コメント:

コメントを投稿