10/19 条件分岐と繰り返し(2)


前回の補足


前回の感想,質問より

Q.
掲示板に書き込もうとしたら1300文字の制限を超えてしまった.
A.
1300文字を超える場合,プログラムは添付ファイルにしてみてください.
Q.
isrbで以下のように入力したところ白黒の画像が現れてしまいました。
show([[0.5,0.5,0.5],[1,0.5,0.5],[1,1,1],[0.5,0.8,1],[1,0,1]])
そこで
show([[[0.5,0.5,0.5],[1,0.5,0.5],[1,1,1],[0.5,0.8,1],[1,0,1]]])
のように括弧をもう一つつけたところ今度はうまくいきましたが、いまいちどういうことなのかわかりません。括弧を外側に三つつけないとカラーにはならないのでしょうか。宜しくお願い致します。
A.
isrbのshow関数は2次元配列を与えると白黒画像、3次元配列を与えるとカラー画像を表示するという仕様で作られています(教科書の2章のまとめに書かれています)。そのため、
show([[0.5,0.5,0.5],[1,0.5,0.5],[1,1,1],[0.5,0.8,1],[1,0,1]])
は2次元配列が与えられたので、幅3、高さ5の濃淡画像と思って表示をおこないます。カッコを外側に書くと、幅5、高さ1のカラー画像として表示をおこないます。
Q.
load ("./is_even.rb") 
がエラーが出て出来なかったので三章からはよくわからなかった。
A. (TA 森永さん)
エラーの原因として考えられることとしては、 などがあります。 後者の場合について、finderからalgo16上にあるallcode.zipをダブルクリックするとzipファイルの解凍を行ってくれますが、そのままではalgo16上にallcodeというフォルダが生成されてその中で中身が展開されてしまうことがあります。 この場合はalcodeの中のファイルを全てalgo16に取り出さなければいけなくなるので、ダブルクリックではなくターミナル上でunzip allcode.zip を実行して解凍することをおすすめします。 algo16の中身をlsコマンドかfinderを使って確認するとよいです。
Q.
講義の中で、isrb の操作になった時に、正しいことを書き込んでいるのに、受領メッセージもエラーメッセージもでない状況に陥り、焦ったものの一旦コントロール+Dで終了して再びisrbを使ってみたら、ちゃんと動くようになりました。
A. (TA 森永さん)
そのときはプロンプトの数字("irb(main):001:0>" にある>の左の数字)が0でない数値(1,2,3,...)になっていたのではないかと思います。 defとendや、[と]など、ペアになって出現するはずのものが片方しかないとそのようなことになります。 defが来るとendまではdefの中身、[が来ると]までは[の中身と見なされてしまうためです。 前回の講義の演習では[を入れすぎたり]が足りなかったりというミスが起こりやすかったと思います。 isrbを終了する他にも、対応する]などを入れる、control + cでトップレベルに戻る(プロンプトの数字が0になることに対応します)などの解決策があります。

前回の課題について

今日の練習,投票

授業の登録方法


講義資料


講義フォルダの作成


配付プログラムのダウンロード


投票システム

vote.rbをダウンロードして(「リンク先のファイルを別名で保存」で,ホームフォルダの下のalgo16を選択(なければ作る).".txt"を「追加しない」を選ぶ),ホームディレクトリに保存します.ドックからターミナルを起動して,
cd algo16
を済ませてから,
ruby vote.rb 選択肢番号
のように使います.

irbを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.


テキストの補足


今日の課題


自宅で自習をする人のために

アルゴリズム入門共通資料の中に講義で使うRuby言語の処理系のインストール法があります.