10/24 対象のモデル化とデータ構造(3), 演算と関数
連絡事項
CFIVEの小テストの「第1回」は提出期限を講義当日16:10までとして,公開期限を当日の23:55としていたが,公開終了してしまうと採点結果を本人が確認できないことが判明したので,すでにおこなった分も含めて,公開期限は2008年2月14日に変更した.あと,「第1回目」の提出期限は講義当日23:55とする.それ以降もCFIVEのシステム上は提出できるが,評価には含めない.それ以降に提出する人は「第2回」の方を回答するように.
前回までの補足
nilとHASHという用語について分からない人が多かったので補足する.
nil
ラテン語が語源でnothingと同じ意味の名詞や形容詞として使われる. LISP言語で空データを表すためにnilというシンボル(定数のようなもの)が 使われたのでrubyもそれを真似したと思われる.C,C++, Javaなど他の言語で NULLあるいはnullという定数が使われるが同じ意味を持つと考えて良い.
HASH
細切れにする,切り刻むという意味の動詞 hash を語源とする.Ruby言 語ではハッシュテーブル(hash table)という巧妙なデータ構造を用いて,実 現された連想メモリのことを指している.ハッシュテーブルの実現法はこの 講義の範囲を超えるので,興味のある人は
九州大の講義資料
などを参考にしてほしいが,図を見ると「hash」という 単語が使われている理由が分かると思う.
ターミナルで日本語を扱う時に,表示が乱れる件は「ディスプレイ」の「ワイドグリフは2桁とカウントする」をチェックして「設定をデフォルトとして使用」を選ぶと良いようだ.
前回の課題について
18人が提出,2人が未提出.
提出した大部分の人が,「第1回目」だけで80%以上の得点となった.この場合,第2回目は受けても受けなくても評価は変わらないが,自習用に活用してほしい.
感想, 質問より
Q
キーボードの音がうるさい.だからライトは駄目.
A
「ライト」というのは,Happy Hacking Keyboard Liteを意味していると思います.HHK Liteは初代のHHKよりは音がするのはたしかですが,HHK Proもメカニカルキーボードなので,そんなに静かではないと思います.
Q
irbを起動した後操作をしていると時々irb(main) 1*などとなって通常の操作ができなくなったりするのですがこれはどういうことでしょう? Enter keyが命令ではなく改行として処理されているような気がするのですが、直し方がわからないことも多く、結局1回ターミナルを閉じてしまうことがよくあります。
A
1行で命令として完結していない時は,継続行として残りの入力を求めますが,その際のプロンプトが「*」のつく行です.よくあるのは,「""」の閉じ忘れなどです.コントロールCで通常のプロンプトに戻るので,その後に入れ直してください.
Q
irbから脱出(?)するのはexitだとわかったんですが、typingを起動してからターミナルで別の作業をしようと思ってもできませんでした。X11というのを起動している間はターミナルで作業はできないのですか?
A
ターミナルのウィンドウの上にマウスカーソルを持って行って左ボタンをクリックすると入力できるようになると思います.X11上では,マウスカーソルを持って行くだけで,そのウィンドウに入力できるようになるような設定が多いので,最初はとまどうかもしれませんね.
Q
半角文字も一文字扱いされますか。
A
教育用計算機システムで標準になっているUTF-8(Unicode Translation Format-8)の文字コードで走らせた場合,Rubyは半角英字は1文字に扱われますが,半角仮名文字は3文字として扱われます.irbを起動して,
a="カタカナ" a.size a[0] a[1]
などと入力してみると分かると思います.なお,自宅のPC等で違う文字コードで実行した場合はまた違った結果になるはずです.
Q
「すべてのデータ型を代表するデータ型をもつ言語」というのはどういうことなのでしょうか?
A
「すべてのデータ型を代表するデータ型をもつ言語」はそれほど多くない(たとえば,C,C++,Javaは違う)ので具体例を知らないと理解しにくいでしょうね.Ruby言語は,「すべてのデータ型を代表するデータ型をもつ言語」であり,Ruby言語における「すべてのデータ型を代表するデータ型」はObjectという名前のデータ型(オブジェクト指向言語ではクラスと呼ぶ)です.
Objectクラス
にこのデータ型の説明がありますが,「すべてのデータ型」に対してこのような操作ができると便利だということを少しでも感じ取ってもらえると良いかと思います.nilに関しては次回の講義でフォローします.
今日の資料
演算と関数
紙の資料も20部用意した.
今日の課題
CFIVE
に入って, コース選択で,「情報科学(水4)」を選択して下さい.15:10以降に入ると, 「テスト」のところで,「10月24日分 1回目」が選べるようになるので,23:55までに解いて提出する.16:10以降は,「対象のモデル化とデータ構造(2) 2回目」が選べるようになる.
「10月24日分 1回目」の2の最後の問題は,問題文に誤りがあるため選択肢の中に正解がありません.何を選んでも正解として採点することにします.
クラス指定の受講生以外は,教材のダウンロード,課題の提出のため
CFIVE
に登録する必要があるので,学生証番号を知らせるように.
「(1回目)]という小テストは講義の時間内(あるいは当日の夜23:55まで)に回答して8割以上を満点(8割以上は同じ),「(2回目)」という小テストは,講義期間内(試験前)のいつでも回答できて,10割を満点として採点する.この2回のうちの高い方を評価に用いる.
小テストでは「講義の感想」などを書く欄があるが,これらも忘れずに書くように.