情報科学概論(1年生)
2006.01.30

Back to index page



  1. 本日の作業内容

  2. 出席確認

    電子メールで出席確認をします.宛先など以下の情報を用いてメールを作成し, 出席申告してください.なお,キーワードは授業中に紹介します.

    提出形式

    宛先 justice@mag.shimane-u.ac.jp
    件名 AttendA01-30_ruby_s0540**
    AttendB01-30_ruby_s0540**
    (Aクラス)
    (Bクラス)
    本文 学生番号
    氏名
    キーワード
     
    (改行)
    (改行)
    キーワードは授業中に紹介
    注意 「件名」および「添付書類名」の**をそのままにしないで,必ず自分の学生番号 に修正して下さい.また,ABクラス別は指示にしたがって下さい.

  3. 授業アンケート

    最初に授業アンケートを実施します.指示にしたがって回答してください.

  4. 新規配列の作成法

    配列を用いた繰りかえし処理のときに,あらかじめ配列を定義しておく必要があ りますが,簡単な

    ary = []
    

    が使える場合は楽ですけれど,以前に説明した自己代入のように,そうではない場合もあります.そこで,初期値を 持つ配列や多重の空の配列を作る方法を紹介しておきましょう.これらの方法を 使うと初期化がかなり楽になります.

    ary1 = Array.new(10,0)
    
    ary2 = []
    
    for i in 0..10
      ary2[i] = Array.new(5)
    end
    
    p ary1, ary2
    

    この方法では,オブジェクト指向言語に特有の「クラス」を意識しています.数 式を扱う際に

    include Math
    

    のように大文字で始まる数学クラス Math を呼び出しました.これと 同じようなことがここで大文字で始まる Array というクラスの指定で す.新規にオブジェクトを作成するメソッドの new を作用させること で新しく配列を作ります.カッコの中の引数は要素の個数が入りますが,もう一 つ引数をつけるとそれが初期値になります.動作は上の例を参考にしてみて下さ い.

  5. 配列の活用

    配列を用いて統計的なデータの扱いを考えてみましょう.例えば,以下のような 成績表を用意するようにしてみます.多重配列と繰り返しの組み合わせですので, じっくり考えてみてください.なお,学生の人数や点数は全て乱数を利用してい ますので,中身は実行ごとに変わってしまいます.

    番号 英語 数学 物理
     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の二重の配列を上記で実行した方法 で行っています.その後,データ作成のループと表示のためのループが実行され ています.

    今日の演習ではこのようなデータがある場合の,学生や教科ごとの平均点の算出 を行います.

  6. 演習

    • 各学生の平均点を計算しましょう.結果の表示は次のようになるようにしま しょう.ただし,実行のたびに内容は変わります.

      番号 英語 数学 物理 平均点
       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
      

           解答例

    • 各教科の平均点も加えてみましょう.

           解答例

  7. 小テスト

    授業の終わりに小テストを実施します.アナウンスに注意していて下さい.

    Aクラス小テスト
    Bクラス小テスト

  8. 宿題

    宿題に関する案内が授業の終わりに紹介されます.注意にしたがって提出してく ださい.

    Aクラス宿題
    Bクラス宿題

  9. 本日の用語

    • 多重配列

      配列の要素が一つの系列指数で並んでいないもの.そのため,要素を指定する指 数indexは一つでは対応できない.配列の「次元」にしたがってindexを増やす必 要がある.例えば,3重配列であれば array[i][j][k] のようになる.


目次ページに戻る