2013年1月21日月曜日

開発環境

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

その他参考書籍

ask メソッドの改良

コード(BBEdit)

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の場合。

コード(BBEdit)

function ask( question ) {
    $('#pre0').append(question + "\n");
    var reply;
 while(true){
   reply = prompt(question,"");
   $('#pre0').append(reply + "\n");
   switch ( reply ) {
    case "はい":
     return true;
    case "いいえ":
        return false;
    default:
     alert("「はい」または「いいえ」でお答え下さい");
   }
 }
}
$('#pre0').append("こんにちは。お忙しところ・・・・・・\n\n");
ask("タコスはお好きですか?");
ask("ブリトーはお好きですか?");
var wets_bed = ask("お漏らししますか?");
ask("チミチャンガはお好きですか?");
ask("ソパピアはお好きですか?");
$('#pre0').append('あと少しです・・・・・・\n');
ask("オルチャータは好きですか?");
ask("フラウタスは好きですか?");
$('#pre0').append("\nデブリーフィング:\n");
$('#pre0').append('この実験のために・・・・・・\n\n');
$('#pre0').append(wets_bed + "\n");



pythonの場合。

sample.py

コード(BBEdit)

#!//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

コード(BBEdit)

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

sub ask{
    my $question = shift;
    print $question . "\n";
    my $reply;
 while(1){
   chomp($reply = <STDIN>);
   given( $reply ) {
    when( "はい" ){ return 1;}
    when( 'いいえ' ) {return 0;}
    print "「はい」または「いいえ」でお答え下さい。\n";
   }
 }
}
print "こんにちは。お忙しところ・・・・・・\n\n";
ask("タコスはお好きですか?");
ask("ブリトーはお好きですか?");
my $wets_bed = ask("お漏らししますか?");
ask("チミチャンガはお好きですか?");
ask("ソパピアはお好きですか?");
print "あと少しです・・・・・・\n";
ask("オルチャータは好きですか?");
ask("フラウタスは好きですか?");
print "\nデブリーフィング:\n";
print "この実験のために・・・・・・\n\n";
print $wets_bed . "\n";

入出力結果(Terminal)

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

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

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

0
$

0 コメント:

コメントを投稿