平成16年度 情報表現 試験問題

平成17年1月24日(月)
出題者:   大駒、佐藤、広瀬
持ち込み:  参考書、ノート,コピー、メモ、電卓は可、パソコンは不可。
回収:    解答用紙のみ回収する、問題用紙は持ち帰ってよい。

(1) 以下の空欄を埋めよ
┌─────┬─────┬─────┐
│ 10進数   │  2進数   │  16進数  │
┝━━━━━┿━━━━━┿━━━━━┥
│ 2005     │   (a)    │   (b)    │
├─────┼─────┼─────┤
│  (c)     │ 101010   │   (d)    │
├─────┼─────┼─────┤
│  (e)     │   (f)    │    50    │
└─────┴─────┴─────┘

(2) 次のプログラムを実行したときの出力を示せ。

  f=1
  for n in 1..10 do
    f=f*n
    printf "%d\n", f
  end

(3) 以下のプログラムは、標準入力から順次整数値を読み取り、それらの最大値
  と最小値を求めて出力するものである。空欄 [[ ? ]] を埋めよ。

  data=Array.new
  n=0
  while x=[[ A ]]
    data[n] = x.to_i
    n+=1
  end
  max = [[ B ]] = data[0]
  data.each do |[[ C ]]|
    if max [[ D ]] i
      max = i
    else min [[ E ]] i
      min = i
    end
  end
  printf "最大値=[[ F ]], 最小値=[[ G ]]\n", max, min

(4) 下記の文字列と正規表現のパターンマッチングをしたとき、マッチする部分
  を示せ。マッチする部分がないときは nil とせよ。
  
  例: "abc1234def" =~ /[0-9]+/  → 1234

  (い) "12abc-def" =~ /\w+/
  (ろ) "$abc-def"  =~ /\w.\w/
  (は) "12abc-def" =~ /\w.+\w/
  (に) "12abcabcabcab-def" =~ /(abc)+/
  (ほ) "12abc-def" =~ /^[0-9]+/
  (へ) "12abc-def" =~ /[^0-9]+/

(5) 半径を引数として受け取り、その円の面積を求めて返すメソッドを書け。
  なお、半径rの円の面積は πr2 である。円周率πは3.14とし、
  半径が0以下の場合は「エラー」と表示し、-1を返すようにせよ。

(6) 文字列を引数として受け取り、その中の数字の個数を数えて返すメソッドを書け。
  その最初の行は、

  def digitnumber(text)

  である。

  例: digitnumber("EXPO 2005 will begin on March 25.")  → 6


                                                            以上