- 本日の作業内容
- 出席確認
電子メールで出席確認をします.宛先など以下の情報を用いてメールを作成し,
出席申告してください.なお,キーワードは授業中に紹介します.
提出形式
宛先 |
justice@mag.shimane-u.ac.jp |
件名 |
AttendA01-30_ruby_s0540**
AttendB01-30_ruby_s0540** |
(Aクラス) (Bクラス) |
本文 |
学生番号
氏名
キーワード
|
(改行) (改行)
キーワードは授業中に紹介 |
注意 |
「件名」および「添付書類名」の**をそのままにしないで,必ず自分の学生番号
に修正して下さい.また,ABクラス別は指示にしたがって下さい.
|
- 授業アンケート
最初に授業アンケートを実施します.指示にしたがって回答してください.
- 新規配列の作成法
配列を用いた繰りかえし処理のときに,あらかじめ配列を定義しておく必要があ
りますが,簡単な
が使える場合は楽ですけれど,以前に説明した自己代入のように,そうではない場合もあります.そこで,初期値を
持つ配列や多重の空の配列を作る方法を紹介しておきましょう.これらの方法を
使うと初期化がかなり楽になります.
ary1 = Array.new(10,0)
ary2 = []
for i in 0..10
ary2[i] = Array.new(5)
end
p ary1, ary2
|
この方法では,オブジェクト指向言語に特有の「クラス」を意識しています.数
式を扱う際に
のように大文字で始まる数学クラス Math を呼び出しました.これと
同じようなことがここで大文字で始まる Array というクラスの指定で
す.新規にオブジェクトを作成するメソッドの new を作用させること
で新しく配列を作ります.カッコの中の引数は要素の個数が入りますが,もう一
つ引数をつけるとそれが初期値になります.動作は上の例を参考にしてみて下さ
い.
- 配列の活用
配列を用いて統計的なデータの扱いを考えてみましょう.例えば,以下のような
成績表を用意するようにしてみます.多重配列と繰り返しの組み合わせですので,
じっくり考えてみてください.なお,学生の人数や点数は全て乱数を利用してい
ますので,中身は実行ごとに変わってしまいます.
番号 英語 数学 物理
001 90 82 3
002 31 49 99
003 64 75 77
004 29 41 1
005 10 26 68
006 66 97 72
007 96 15 15
008 3 27 45
009 29 45 60
|
上の表を作ったスクリプトは以下のものです.
printf "番号 英語 数学 物理\n"
# 学生の人数決め
data_size = rand(5) + 5
# 初期値0の配列を作成
data_ary = []
for i in 0..data_size-1
data_ary[i] = Array.new(4,0)
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] = rand(101)
end
end
# 表示
for i in 0..data_size-1
printf "%4s", data_ary[i][0]
for j in 1..3
printf " %4d", data_ary[i][j]
end
printf "\n"
end
|
学生の人数を乱数で決めた後,要素が全て0の二重の配列を上記で実行した方法
で行っています.その後,データ作成のループと表示のためのループが実行され
ています.
今日の演習ではこのようなデータがある場合の,学生や教科ごとの平均点の算出
を行います.
- 演習
- 各学生の平均点を計算しましょう.結果の表示は次のようになるようにしま
しょう.ただし,実行のたびに内容は変わります.
番号 英語 数学 物理 平均点
001 68 50 73 63.7
002 97 17 88 67.3
003 60 50 18 42.7
004 30 72 60 54.0
005 70 6 10 28.7
006 43 95 77 71.7
007 69 33 60 54.0
|
解答例
- 各教科の平均点も加えてみましょう.
解答例
- 小テスト
授業の終わりに小テストを実施します.アナウンスに注意していて下さい.
- 宿題
宿題に関する案内が授業の終わりに紹介されます.注意にしたがって提出してく
ださい.
- 本日の用語