情報科学概論(再履修)
2005.01.07

Back to index page



  1. 本日の作業内容

  2. 出席確認

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

    提出形式

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

  3. ファイル削除

    ファイルサーバのディスク使用量が100%になってしまって,教室のパソコンの動 作がおかしくなる原因はS@pphireを使用中にNFSファイルシステムの無駄なファ イルが作成されてしまうことでした.これを回避するために,教室のLinux環境 を使用する場合,最初と最後に次のコマンドを実行して下さい.

    $ rm -f ~/sapphire/.nfs*

    これは必ず実行して下さい.よろしくお願いします.

  4. until ループ

    while ループは条件が真の間回り続けるループでしたが,if に対する unless と同じように,条件が逆になったループも存在 します.ここで紹介する until ループは条件式が偽の間回ります.単 語の意味的には,「真になるまで」回るということで until です. 使いかたの例を見てみましょう.

    n = 20
    i = 1
    
    until i > 20
      puts i
      i += 1
    end
    

  5. 配列

    • 配列の必要性

      これまでサイコロを何回か振ったり,じゃんけんを繰り返し行うようなスクリプ トを作成してきました.規則正しく繰りかえされる数ではなく,ランダムであっ たり不規則にとびとびであったりするような値が次々と生成されるとき,それら の値について,後から参照したい場合には,値が記録されていないと不便です. そして,参照するときに,「何番目の値がこれこれであった」というように順番 に記録されているに越したことはありません.そのような,複数の値を順番に格 納しておく入れ物のようなものが「配列」です.英語では,arrayと言います. これを用いることによって,値の取扱がもっと自由なスクリプトが作れるように なります.

    • 配列の概念

      値を入れておく箱が番号順に並んでいるようなものをイメージしてみて下さい. 例えば,図1のようなものがあるかも知れません.これが配列の一つの表現方法 です.

      図1 配列のイメージ図

      番号付けは0番から始まることに注意して下さい.間違えやすいところですので, 覚えておいて下さい.また,何番目かを参照する数を指数(index)と呼ぶことも あります.Rubyではカギカッコ [ ] で参照します.配列の名前は変数 と同じ命名規則によって決められますが,Rubyは形式や型の相互変換が自由な言 語ですので,変数を配列に変更したり,配列を変数に変更することもできます.

    • 基本的な使い方

      次のような方法で種々の配列を生成することができます.値のあるなしに関わらず,配 列を作ることは可能です.

      array1 = [1, 2, 3, 4]
      puts array1
      
      array2 = ["Force", "Blast", "Sword"]
      print array2[1], "\n"
      
      array3 = []
      p array3
      

    • 値の追加

      配列の要素の数は,Rubyではあらかじめ固定されたものではなく自由に増減でき ます.次のようにすると,値を追加できます.

      array2 = ["Force", "Blast", "Sword"]
      
      array2[3] = "Impulse"
      
      p array2
      

    • インデックスの表現

      インデックスとして与える数は変数や数式を含むことが可能です.次の例で見てみましょう.

      array = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
      
      i = 3
      
      puts array[i-1]
      puts array[i*2 + 5]
      puts array[10 - i]
      

    • 繰りかえしとの連携

      繰りかえしと同時に配列を使用することは非常に良く行われる利用方法です.基 本的なところから確認してみましょう.次の例は何をするものなのか,予想して みて下さい.

      array = []
      
      for i in 0..20
        array[i] = i * 2
      end
      
      p array
      

    • いくつかの関連するメソッド

      配列に対して作用させることの多いメソッドがいくつかあります.代表的なもの を使った例を次に示します.

      array = [1, 5, 3, 4, 6, 2]
      
      p array.size
      
      p array.sort
      
      p array.reverse
      
      p array.sort.reverse
      

  6. 演習

    • 乱数を20回発生させ,それらの値を順に要素に持つ配列を作成する.スクリ プトは配列の表示まで行うようにして下さい.

          解答例

    • 次の3行の文字列を10回繰りかえして表示するスクリプトを作成しましょう. ここで,大事なのは文字列を配列として用意しておいて活用することです.

      Force
      Impulse
      Gundam
      

          解答例

    • アルファベットの小文字26文字をランダムに表示するスクリプトを作成して みましょう.表示する文字数はいくらでも構いません.

          解答例

  7. 小テスト

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

    再履修クラス小テスト

  8. 宿題

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

    再履修クラス宿題

  9. 本日の用語

    • until ループ

      条件式が真になるまで繰りかえすループ.

    • 配列

      様々な値を関連付けて格納する入れ物.順番を指定すると,値が参照できる.

    • インデックス

      配列の値を参照するための順番を示す数.

    • sort

      配列の値を並べ替えるメソッド.並べ換えの順は数値であれば小さい順.文字列 であれば文字コード順となる.

    • reverse

      配列の要素や文字列を逆順に並べ替えるメソッド.

    • size

      大きさを返すメソッド.配列に対して実行すると,配列の要素の個数を返す.


目次ページに戻る