情報科学概論 再試験
2003.9.30

解答例と採点基準

Back to index page

注意

携帯電話は電源を切ってパソコンの筐体の上に置いておくこと.試験中は手を触 れてはいけない.Sylpheedは試験時間終了10分前以前に起動させてはいけない.


提出先aegis@mag.shimane-u.ac.jp
件名Ruby exam2 s0340**
解答用紙ファイル名 Form-ruby2-s0340**.txt

解答用紙 <=この用紙を必ず利用するこ と!

学生番号と名前を忘れずに記入すること.


  1. コマンドライン引数から数値xを与えるとき,e|-x| sin x の値を返すスクリプトを作成せよ.(18点)

  2. 以下に示す For 文を使用したスクリプトを While 文を用 いる形式に変更せよ.(18点)

    printf "(サイコロ1の目:サイコロ2の目)\n"
    
    for d1 in 1..6
      for d2 in d1..6
        printf "(%d:%d)\n", d1, d2
      end
    end
    

  3. サイコロの目の出る確率をシミュレートするスクリプトを以下の例のように 作成した.【 】で示された空欄を埋める文字列を答えよ.(14点)

    #dice.rb
    
    n = ARGV[0].to_i
    num = [0,0,0,0,0,0]
    
    for i in 1..【i. 】
      m = rand(【ii. 】) + 【iii. 】
      case 【iv. 】
        when 1
        num[0] += 1
        when 2
        num[1] += 1
        when 3
        num[2] += 1
        when 4
        num[3] += 1
        when 5
        num[4] += 1
        when 6
        num[5] += 1
      end
    end
    
    for i in 1..6
      printf "%d: %d  ", i, num[【v. 】]
    end
    
    printf "\n"
    
    for i in 1..6
      printf "【vi. 】 ", num[【v. 】].【vii. 】 / n
    end
    
    printf "\n"
    

    このスクリプトは コマンドライン引数としてサイコロを振る回数 を与える.動作例は次のようになるものとする.1行目は各目の出た回数であり, 2行目はその確率を小数点以下3桁で表示してある.

    $ ruby dice.rb 100
    1: 20  2: 12  3: 18  4: 16  5: 17  6: 17  
     0.200  0.120  0.180  0.160  0.170  0.170 
    

  4. コマンドライン引数として与える整数 n まで, a1 = 1, an - an-1 = n となる数列の要素を1行 に一つずつ表示するスクリプトを作成せよ.(18点)

  5. コマンドライン引数として任意の秒数を与えると,それを日,時間,分,秒 の表示に変換するスクリプトを作成せよ.動作は次のようになるものとす る.(18点)

    $ ruby time.rb 100000
    100000 秒は 1日と3時間46分40秒
    

  6. コンピュータ相手にじゃんけんをするスクリプトを以下のように作成した.

    #janken.rb
    
    hand = ARGV[0]
    
    【i.  】 hand
      when "g"
        h = 3
      when "c"
        h = 4
      when "p"
        h = 5
    end
    
    comp = rand(3)
    chand = ["グー", "チョキ", "パー"]
    
    printf "あなたの出したのは「%s」\n", chand[【ii.  】]
    printf "私の出したのは「%s」\n", chand[【iii.  】]
    printf "結果: "
    
    case (h - comp) 【iv.  】 3
      when 【v.  】
        puts "あいこ"
      when 【vi.  】
        puts "あなたの負け"
      when 【vii.  】
        puts "あなたの勝ち"
    end
    

    このスクリプトはコマンドライ ン引数としてg(ぐー),c(チョキ),p(パー)を与えて勝負する.勝ち負けかあ いこを結果として表示するようになっており,動作例としては次のように なる.

    $ ruby janken.rb c
    あなたの出したのは「チョキ」
    私の出したのは「グー」
    結果: あなたの負け
    

    【 】部分に入る適当な文字列を答えよ.(14点)


提出先aegis@mag.shimane-u.ac.jp
件名Ruby exam2 s0340**
解答用紙ファイル名 Form-ruby2-s0340**.txt

学生番号と名前を忘れずに記入すること.


目次ページへ戻る