情報科学概論
2000.5.9



  1. 本日の作業内容



  2. Webテキストのコマンドプロンプト表示について

    前回までの時間における質問の中にコマンド入力とエディタでの文字入力の区別がつかないために混乱しているケースがいくつか見られた。そこで、今回より(前回までの物も含めてではあるが)このWebテキストにおいてもコマンドプロンプト表示を行うことにした。たとえば、現在利用しているシェルはbashであるので、Ktermなどのコンソールでコマンドを入力するときにはプロンプトの$マークに続けて

    $ ls

    などとコマンドを打ち込むはずである。そこで、テキスト上で

    $ ls

    のように表記されている場合にはコンソールでコマンド入力を行うことを意味し、

    print "hogehoge\n"

    のような表記はエディタへのスクリプト入力を示す。混乱の無いように注意すること。


  3. Ruby入門

    しばらくの間は教科書の順序に従ってRubyの各機能を勉強していくので以下のWebテキストはあくまで教科書を補完する物である。基本的には教科書をよく読んで自分でスクリプトを書く練習をすること。

    授業では教科書にある例文に従って学習していくが、個々のスクリプトの実際の動作は随時自分で行う必要があるので、以下に改めて実行方法を記述しておく。毎回同じことを行うので、すぐに慣れるはずである。


    1. 現在の場所の確認

      自分が今いるディレクトリを

      $ pwd

      で表示させ、たとえばホームディレクトリにいる場合であれば、

      $ cd script

      などとして、授業用のスクリプト作成ディレクトリに移動する。

    2. エディタの起動

      スクリプト作成のためにXEmacsを起動する。起動時にファイル名まで指定する方が後の処理が簡単なので、適当な名前を付けて起動しておく。バックグラウンド処理を指定する&をつけておいた方が便利である。

      $ xemacs hoge.rb &

    3. スクリプトの作成

      エディタ中にスクリプトをキーボードから入力していくが、その際にスクリプトの動作をコマンドラインからどのように行うかで、必要な記述が異なるので注意すること。たとえば、スクリプト自体に実行権限を持たせて、コマンドとして動作させる場合には、スクリプトの先頭に

      #!/usr/bin/ruby

      という一行が必要である。コマンドラインから

      $ ruby hoge.rb

      の様にファイル名を引数にして実行する場合には先ほどの一行は不要である。また、ファイルに実行権限を与える必要もない。

    4. スクリプトの実行

      スクリプトを実行する際には上に書いたようにrubyというコマンドの引数にファイル名を与えることで動作を確認できるが、また、ファイル自体をコマンドにすることも可能である。そのためには、実行権限を与える必要があるので、

      $ chmod +x hoge.rb

      などとして属性を変更し、コマンドラインから

      $ ./hoge.rb

      で動作させる。以上がスクリプトの実行方法である。


    • 2.8 メソッドを定義する

      先週簡単に説明したように自分でメソッドを定義する場合には「定義する」の英語defineからきているdefを用いて

      def f(x,y)
        x * x + 2 * y + 1
      end


      の様に行う。ここで、プログラミングにおいては積の演算子である×という記号が英文字のxやXと混乱することを避けるため伝統的に*を用いるので覚えておくこと。また割り算記号は通常/(スラッシュ)を用いる。

      p.42の下半分に記述されているスクリプトに関しては、byeという関数はtoという引数を一つ取ることができ、引数として指定された文字列がtoに代入され、実行時に表示されること、また、引数が省略された場合にはデフォルトとして定義式の中の=以後に示された文字列が引数として扱われることを示している。

      また、次のhelloという関数は引数が二つ(toとmesg)あって、*がついている方には配列として与えられた引数の残りの部分が入ることを示している。なお、ここでは配列を扱うために、for文が使われている。(詳しくはp.62の2.12.5を参照)配列の要素を順に指定してプリントする命令が要素の数だけ繰り返されることを示している。


    • 2.9 変数、定数

      代数学において関数を扱う際には変数や定数という概念が必須である。プログラミングにおいても種々の操作を行う際に、同様の概念である変数と定数を用いて記述することが行われる。必要に応じて使い分けるために種類がいくつか用意されている。

      この節では各種の変数および定数の振る舞いについて記述されているが、実際に用いる際に参照する程度で今のところは必要に応じて覚えるくらいでよい。なお、p.50にある例は冒頭で定義された定数Fooとモジュールの中で定義されたもう一つのFooに関して、どちらが参照されるかが示されている。


    • 2.10 代入

      数学において記号「=」は等号であるが一般的にプログラミングにおいては「=」記号は代入を意味する。初めて見たときに驚くのは、

      n = n + 1

      という記述であるかもしれない。これは、変数nの値を1増やすという意味で繰り返し操作の時に、よく使われる。

      Rubyにおいては配列を多重代入により簡単に操作できる。詳しくはテキストを参照すること。


  4. 課題

    授業の進み具合により課題を与えるのでアナウンスに注意すること。


目次ページへ戻る