10/5 数の計算と関数(2)
前回の補足
- 理由があって他クラス聴講が必要な人は,「履修認定カード」に担当教員がサイン
する必要があるので,講義の前後か,途中の5分間の休みの間に「履修認定カード」
を持って担当教員まで申し出てください.
- 演習室内は飲食禁止です.ペットボトル等を持ち込む場合も,バッグの中にしまってください.
前回の感想,質問より
- Q.
- 投票がちゃんとできているのかが少し不安です。投票をした後、しばらくしてから、以下のようなものが出ます。
vote.rb:5:in `initialize': Operation timed out - connect(2) for "(IPアドレス?)" port 54321 (Errno::ETIMEDOUT)
from vote.rb:5:in `open'
from vote.rb:5:in `vote'
from vote.rb:26:in `'
これは、投票できているのでしょうか?
- A.
-
調べたところ,2015年度の講義のページ http://lecture.ecc.u-tokyo.ac.jp/~ktanaka/algo15/ に貼られていた古い vote.rb を使っていたことが判明しました.検索エンジンで探して見つけたということですが,同様に古いページをブックマークに登録してしまった人は,本年度のページに登録しなおしてください.
- Q.
- 質問としては、投票はirbを開いている際にも、いちいちalgo16に戻る必要があるのでしょうか?
- A.
-
ターミナルのメニューの「シェル」で,「新規タブ」を選ぶ(あるいはキーボードで[Command(⌘)]+ [T]を押す)ことで,irbを動かしているのとは別のタブが開き,irbを動かしたまま投票することができます.前回の講義で口頭では伝えたのですが,Web資料に書いていなかったので付け加えました.
- Q.
- まず授業に全参することを目標に頑張ります。これを落とすと来年が苦しいので優を絶対にください。
- A.
- 優を出せる割合は決められているので,試験で高得点をあげないと優を出すことはできません.
前回の課題について
- 教材のダウンロード,課題の提出のため,ITC-LMSへのコース登録が必要になります.ITC-LMSへの登録方法に従ってコース登録してください.10/5 8:30現在 79名が登録しています.
- ITC-LMSの掲示板9/28課題,質問への書き込みは 10/5 8:30現在で 70名が済んでいます.
今日の練習,投票
授業の登録方法
- 教材のダウンロード,課題の提出のため,ITC-LMSへのコース登録が必要になります.ITC-LMSへの登録方法に従ってコース登録してください.
- Utask-Webでの履修登録は別に必要になります.
講義資料
- 教科書は情報科学入門 2700円(税込み) になります.正誤表が公開されているので,そちらも参照してください.また,電子版も発売されています(書籍版よりも若干安くなっているようです).
- 講義スライドはITC-LMSで「アルゴリズム入門(水4)」を選んで「教材」を選択するとダウンロードできるようにする予定です.
講義フォルダの作成
- 講義に関連したファイルはホームフォルダ直下に置くのではなく,講義専用のフォルダをalgo16 という名前で作成してください.ターミナルでフォルダを作るには,
mkdir algo16
のようにします.そして,ターミナルを開くたびに
cd algo16
と入力してからirbを動かしてください.詳しくは,はいぱーワークブック「14.4 コマンドを使ったファイル操作」を参照してください.
配付プログラムのダウンロード
投票システム
vote.rbをダウンロードして(「リンク先のファイルを別名で保存」で,ホームフォルダの下のalgo16を選択(なければ作る).".txt"を「追加しない」を選ぶ),ホームディレクトリに保存します.ドックからターミナルを起動して,
cd algo16
を済ませてから,
ruby vote.rb 選択肢番号
のように使います.
irbを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」の15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.
テキストの補足
- ターミナルでは,メニューバーから,「シェル」->「新規ウィンドウ」あるいは,「コマンドキー(⌘)」+「N」で新た
なターミナルウィンドウを開くことができます.
ウィンドウが多くなるのが面倒な人は,「シェル」->「新規タ
ブ」あるいは「コマンドキー(⌘)」+「T」で同じウィンドウ内に新しいタブでターミナルを開くことができます.
ターミナルを開くたびに
cd ~/algo16
と入力してください.これらの機能を使うと,irbを抜けずにvoteできます.
ターミナルの基本的な使い方は,はいぱーワークブックの15.2 ターミナルの基本的な使い方を,より高度な使い方は,15.4 ターミナルの便利な使い方を参照してください.
cdというコマンドと「~」の意味は,はいぱーワークブックの14.4 コマンドを使ったファイル操作の14.4.1 ディレクトリを読むと分かります.
- miを使う場合に改行コードがCR(Mac)になっている場合は,LF(UNIX)にしてから保存してください.
- Webブラウザ上で,ターミナルの実行,Ruby関数の実行,ファイルの編集ができる iruby が利用可能になっています.ターミナル上で,
iruby notebook
を実行すると,Webブラウザ上で対応するタブが開きます.
- 第1章で,irbを起動直後に,
include(Math)
を入力するように書いています.
毎回入力するのが面倒な場合は,ホームディレクトリの下に「.irbrc」というテキストファイルを作り,その中に
include(Math)
と書いておくと,irb起動時にこのファイルの中身を実行してくれるので,毎回指定しなくても大丈夫です.ただし,このファイルの実行中にエラーが出ないように正しく記述剃る必要があります.また,
Math.sqrt(2)
のような形で指定すれば,
include(Math)
は不要です.
- ある程度大きなプログラムを作る場合は,テキストエディタを使って入力してファイルに保存しておくと,後から修正したり再利用が容易におこなえます.テキストエディタの説明は,はいぱーワークブック「8. テキストエディタ」を参照してください.
- この講義で作成したプログラムのファイルは自分のホームディレクトリ(ホームフォルダ)の下に「algo16」という名前のディレクトリ(フォルダ)を作って,その下に置くようにしています.スライドや教科書でファイル名が指定されている場合もあるので,その場合は指定されたファイル名を使うようにしてください.
- miのRubyモードが現在標準では利用できないようです.mi 用モード(今野滋さんのページ)から自分でインストールしても良いのですが,講義受講者は,一度miを起動して終了後に,ターミナルでb
cp -rp /home/5320954122/Ruby ~/Library/Application\ Support/mi/mode/
を実行してからmiを立ち上げるとRubyモードが利用可能なモードとして加わります.
- miの改行コードの変更は,miを立ち上げてメニューバーから「mi」->「モード設定」を選んでください.
の画面が出るので,モードを「Ruby」にして,改行コードを「LF(UNIX)」にして,ウィンドウを閉じてください.以降は,ファイル作成のさいに,「ファイル」->「新規」->「Ruby」で作成すると正しい改行コードが設定されているはずです.
- Finderの中でダブルクリックするだけでmiを起動できるようにしたい人は,Rubyソースファイルをmiと関連付けするを読んで設定してください.
- 情報科学入門: Rubyを使って学ぶ / 配付プログラムの中には練習問題のチェックプログラムが含まれています.たとえば,第1章の練習問題をテストする時には,同じディレクトリに,練習問題で作成したプログラムを教科書で指定されたファイル名で置いて,
ruby check.rb ex01.rb
と実行すると,関数を与えた時の入力と出力があっていることが確認できます.
詳しくは,補足説明 (練習問題確認プログラムの使い方)を御覧ください.
今日の課題
- 講義中に投票を求められるので,投票システムを使って投票をしてください.
- ITC-LMSの掲示板10/5の課題,質問に以下の内容を書き込んでください.プログラムを除いて100文字以上は書き込みをお願いします.
- 講義で用いた練習問題に対して自分が書いたプログラムと説明.プログラムが正しく動かなかった場合も,動かないプログラムとエラーメッセージを書きこんでください.講義で用いなかった教科書の練習問題に対して書きたい人は書きこんでも構いません.
自宅で自習をする人のために
アルゴリズム入門共通資料の中に講義で使うRuby言語の処理系のインストール法があります.