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

Back to index page



  1. 本日の作業内容

  2. 出席確認

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

    提出形式

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

  3. 基本的な注意事項

    これからこの授業で作業をしていく上で,重要な事項についていくつか説明しま す.これらの注意事項を忘れないようにしてください.

    • ディレクトリ構成の把握

      自分が作業をしているディレクトリ,ファイルを保存したディレクトリ,などディ レクトリに関する概念を把握した上で授業に参加してください.ディレクトリと はWindowsやMacOSでいう「フォルダ」です.階層構造をなしており,下の階層に 降りるときにはディレクトリ名を指定して移動し,上の階層に上がるときは 「..」の記号で移動します.

      ファイルの構成が良くわからなくなったときには,GNOMEめにゅーにある「ファ イルマネージャ」を起動して,フォルダの図柄で確認してください.その際にも, 上の階層は,「..」の記号ですので忘れないで下さい.

    • ファイル名

      作成したスクリプトや解答用紙などを保存する際には,次の事項を必ず守って下 さい.

      1. 日本語を使わない

        必ず,アルファベットと数字および一部の記号だけを使用してください.アルファ ベットや数字もいわゆる「半角」(1バイト文字)を使用してください.

      2. 名前にスペースを入れない

        決してスペース(空白文字)を入れないで下さい.

      3. へんな記号を使わない

        ファイル名に使用する記号は,「 - 」(ハイフン),「 _ 」 (アンダースコア)だけにしてください.特に,*(アスタリスク),?(クエスチョ ンマーク),〃や‘の引用符は絶対に使わないで下さい.

    • テキスト表示の区分

      このWebテキストでは,例文のRubyスクリプトや実行結果を使用しますが,その 際に,次のように色分けしています.この区分を覚えておいて下さい.

      スクリプトを紹介するときには,このように背景が薄い青色です.
       
      実行結果はこのような薄いピンクで表示されます.

    • 全文検索

      授業が進んで来ると,一度習った単語や内容について復習する必要が出てきます. そのときに,どの授業のどこで学習したかを検索するために,学科のWebページ には全文検索機能がついています.次のリンク,

      http://www.ecs.shimane-u.ac.jp/search.html

      を有効に活用して下さい.

  4. 出力

    プログラミングとは,人間が計算機に命令を行う手順を作成することです.命令 を実行させると,計算機は何かの結果を残します.結果には様々な形式がありま すが,ここでは最初の一歩として,画面に文字を表示することを行ってみましょ う.画面に限らず,計算機が結果を出す場合,その動作を「出力」といいます.

    • 基本的なメソッド

      計算機に対して命令する場合,その指示内容を「コマンド」(命令,指令)と一般的には言いま す.しかし,プログラミング言語においては,その形態にしたがって,「関数」 と呼ばれたり,「メソッド」(手段,方法)と呼ばれたりします.Rubyはオブジェ クト指向言語なので,後者のメソッドを使います.

      さて,出力するためのメソッドにはいくつかありますが,これから紹介するのは, 文字を出力するためのメソッドです.正確には,「文字列」(String)と呼びます が,画面に文字を表示するものをこれからいくつか試して行きましょう.

    • puts

      プログラミングを学習する際に,古今東西みな「Hello, world!」と言う文字を 画面に表示するところから始めることになっているそうです.ここでも,それに 従って,まずはやってみましょう.

      puts "Hello, world!"
      

      これだけでもプログラミングです.この文字をS@pphireのスクリプト入力画面に 入力します.マウスを使った「コピー&ペースト」で構いません.記入し終えた ら,「実行」ボタンをクリックします.「結果表示」ウィンドウに 無事に

      Hello, world!
      

      と,表示されたでしょうか.ここまでの操作がまずは基本ですので,出来ない 場合には遠慮なく呼んで下さい.

      さて,先ほどのスクリプトをもう一度見てみます.ほぼ全てのプログラミング言語におけるプログラムの記 述は,英語の単語を使った英語の文法に似た表現がベースになっています.そして,プ ログラムは人間がコンピュータに対して命令をするので,基本的には「命令文」 です.それを考慮すると,最初の

      puts

      が命令で,「出力しなさい」の部分になり,「目的語」の「なになにを〜」が二 重引用符の「''」で囲まれた部分のようです.puts は英語の三人称単 数現在の形をしたputでは無く,最後のs (文字列,stringのs) までが一つの言葉ですので,間違えない ようにしましょう.

      ところで,二重引用符は出力されていません.二重引用符は文字列の開始と終了 を示すために用いられている記号なので,結果には出てきません.二重引用符も 含めて表示する方法は,後で紹介します.

      puts を利用した文字列の出力は,その目的語に相当する部分を複数与 えることが出来ます.そのときに,カンマ「,」で区切って文字列を与 えます.次の例で確認してみましょう.二重引用符とカンマがくり返し 出てきますので,間違いの無いようにしてください.

      puts "force", "impulse", "gundam"
      

      Rubyでスクリプトを書く場合,カンマで区切るときに,カンマの後にスペースを 入れる必要は無いのですが,スクリプトを見やすくするために適宜スペースを置 く方が良いでしょう.

      結果は,

      force
      impulse
      gundam
      

      のように文字列の一つ一つが一行ずつ表示されます.

    • print

      出力する方法はどの言語でも通常一つではありません.Rubyにもいろいろなメソッ ドが用意されていますが,代表的なものにこの print があります.先 ほどのスクリプトを puts から print に替えてみましょう.

      print "force", "impulse", "gundam"
      

      実行ボタンを押して得られる結果は先ほどとちょっと違いますね.こんどは1行に全部が表示されています.このよう に puts を使うのか, print にするのかは,複数の結果を 表示するときにどのように扱うか,その場合に応じて選択することになります. puts が単純なので,ちょっと表示したい場合には役に立ち ますが,出力形式を整形して目的とする形にするには print の方が適しているでしょう.

      print を使う場合には,「改行文字」を必要とします.これは,UNIX 系のOSでは,\n と表現される特殊な文字です.この文字をコ ンピュータが見つけると,その段階で出力を改行してくれます.そこで, スクリプトを次のように変更します.

      print "force\n", "impulse\n", "gundam\n"
      

      改行文字も一つの文字なので二重引用符の中に与えます.これにより,出力結果 が1行ずつになります.

    • p

      p というたった一文字のメソッドもあります.これも出力に使うもの ですが,これは文字を表示するのではなく,指定されたオブジェクトの 「内容」を出力します.「オブジェクト」とは,Rubyが扱うことのでき る「もの」と考えて下さい.それは文字や数字かも知れませんし,メソッ ドそのものかもしれません.とにかく,あつかうことのできるものです.

      さて,次のスクリプトを実行してみましょう.

      puts 1
      puts "1"
      

      結果はどうなったでしょうか.次に,p メソッドに代えてみます.

      p 1
      p "1"
      

      結果の違いについては,今後変数を扱って行くときにまた説明します.

    • printf

      数値を桁数を指定して表示したり,文字を右や左に揃えたりして出力したい場合 に,このフォーマット付きの出力メソッドであるprintf を使います. 使い方はちょっと難しいので,後で変数などを学習してから改めて取り上げます.

    • 特殊文字の出力

      二重引用符が文字列の区切りの記号として利用されるために,通常の出力メソッ ドでは出力できませんでしたが,特殊な記号と併用すると出力できるようになり ます.先ほど改行文字として \n というものを見ましたが,ここでバッ クスラッシュ (場合によっては円マークに見えます) は次の文字の意味を打ち消 す動作を行います.すなわち,通常の n という文字ではなくなること を意味します.そこで,次のようなスクリプトを作ってみます.

      print "\"sword impulse gundam\"\n"
      

      ずいぶんとややこしい構成になってしまいましたが,二重引用符の意味を打ち消 すバックスラッシュによりその直後の二重引用符はただの文字になっていますの で,結果の方に出力されます.

      このようなややこしい表現を避けるために,文字列の開始と終了を二重引用符以 外の記号を使って表現することもRubyでは出来ますが,今日の内容からは省略し ます.

  5. 小テスト

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

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

  6. 宿題

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

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

  7. 本日の用語

    • 出力

      実行結果を出すこと.出す先は画面以外にもいろいろと指定できる.

    • 関数

      C言語など「手続き型」「関数型」と呼ばれる言語では,計算機への命令を関数 と言う.

    • メソッド

      オブジェクト指向型の言語では,命令を始めとして,オブジェクトに作用するも のをメソッドと言う.

    • 文字列

      文字の列.変数を扱うときに詳しく紹介するが,1のような数値と"1"のような文字列は実態が違うので, 取り扱いに注意が必要.

    • puts

      put string を意味するメソッド.引数で指定されたオブジェクトの文字を出力.

    • print

      どの言語においても用意されている一般的で代表的な出力メソッド.仕様はどの 言語でも大体同じ.

    • 改行文字

      特殊文字の一つ.画面上で目に見えない制御文字,空白文字にも,実際には文字 コードが与えられており,それを計算機上で目に見える形で表現したもの.通常 は,バックスラッシュに続けてなんらかの意味を代表する文字一文字で形成され る.改行文字のnは"new line"の意味.\t タブ,\s スペー スなど多数あり.

    • p

      オブジェクトの内容を出力するメソッド.オブジェクトの実体を知るときに必要.

    • オブジェクト

      オブジェクト指向言語では扱うものをすべて「オブジェクト」(対象)と呼ぶ.オ ブジェクトに対してメソッドを作用させて処理を実現するのがオブジェクト指向 言語.


目次ページに戻る