情報科学概論
Aクラス 宿題 2006.01.30

Back


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

本日の授業で扱った成績表作成スクリプトを修正して以下のように,成績をABCD 評価でランダム表示するものに変更する.各教科ごとにAの成績をとった学生の 数を表示する機能を加えよ.結果の表示は以下のようになるものとする.

番号 英語 数学 物理
 001    D    A    C
 002    D    A    B
 003    A    C    D
 004    C    C    A
 005    C    A    A
   A    1    3    2

ここで,ABCDの出現確率はAが3割,Bが3割,Cが2割,Dが2割となるようにする こと.方法は,文字列配列の要素の個数を調整して行う.


解答例

printf "番号 英語 数学 物理\n"

data_size = rand(5) + 5

data_ary = []
ary = ["A", "A", "A", "B", "B", "B", "C", "C", "D", "D"]

for i in 0..data_size-1
  data_ary[i] = Array.new(4)
end

for i in 0..data_size-1
  data_ary[i][0] = "00" + (i+1).to_s

  for j in 1..3
    data_ary[i][j] = ary[rand(10)]
  end
end

for i in 0..data_size-1
  for j in 0..3
    printf "%4s ", data_ary[i][j]
  end

  printf "\n"
end

num = ["A", 0, 0, 0]

for i in 0..data_size-1
  for j in 1..3
    if data_ary[i][j] == "A"
      num[j] += 1
    end
  end
end

for i in 0..3
  printf "%4s ", num[i]
end

printf "\n"


情報科学概論
Bクラス 宿題 2006.01.30


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

本日の授業で扱った成績表作成スクリプトを修正して以下のように,成績をABCD 評価でランダム表示するものに変更する.各教科ごとにBの成績をとった学生の 数を表示する機能を加えよ.結果の表示は以下のようになるものとする.

番号 英語 数学 物理
 001    B    D    A
 002    B    A    C
 003    C    D    A
 004    A    B    B
 005    A    D    B
 006    B    D    A
 007    C    C    C
 008    A    C    B
 009    B    B    B
   B    4    2    4

ここで,ABCDの出現確率はAが3割,Bが3割,Cが2割,Dが2割となるようにする こと.方法は,文字列配列の要素の個数を調整して行う.


解答例

printf "番号 英語 数学 物理\n"

data_size = rand(5) + 5

data_ary = []
ary = ["A", "A", "A", "B", "B", "B", "C", "C", "D", "D"]

for i in 0..data_size-1
  data_ary[i] = Array.new(4)
end

for i in 0..data_size-1
  data_ary[i][0] = "00" + (i+1).to_s

  for j in 1..3
    data_ary[i][j] = ary[rand(10)]
  end
end

for i in 0..data_size-1
  for j in 0..3
    printf "%4s ", data_ary[i][j]
  end

  printf "\n"
end

num = ["B", 0, 0, 0]

for i in 0..data_size-1
  for j in 1..3
    if data_ary[i][j] == "B"
      num[j] += 1
    end
  end
end

for i in 0..3
  printf "%4s ", num[i]
end

printf "\n"


Back