10/27 条件分岐と繰り返し


前回までの補足


前回の感想,質問より

Q.
気になったのですがa.length()の最後の()はいったい何のためにあるのでしょうか? length(a)とかならわかりますが…。
A.
a.length() とうい書き方は,教科書の第8章「レコードとオブジェクト」の P.173で初めて出てくるメソッドの呼び出しに対応しています.ここまで出てきた 構文で書くならばlength(a)の方が自然だという気持ちはわかります.
Q.
flag()やlength()とかの()は何ですか?書かなくても動作してるのですが…。
A.
これらは引数がない関数呼び出しの構文ですね.Ruby言語では引数がない 関数呼び出しの「()」は省略することができます.ただ,教科書では省略して 書くと変数と間違えやすいので必ず「()」をつけて書いています.
Q.
ドット絵って書くのは大変なんですね。これ以上画素数が増えたら気が狂います。スーパーマリオとかカービィにもプログラマーの努力が詰 まっているのでしょうか。
A.
今回のような方法でドット絵を書くのは大変ですが,スーパーマリオや カービィの絵を書くときは,ペイントツールを使っていると思いますよ.
Q.
先生の講義のPDFから(Macのプレビューで見ています) textをコピーしてMiへ(Rubyモードの時) 貼りつけたら文字化けします。どうすればいいですか? Terminalに貼りつけても文字化けしました。
A.
PowerPointをPDF化したものではそのようになるようです.スライド中のプログラムは第2章の練習,投票のようなところに貼ってあるので,そちらからコピー&ペーストしてください.また,今後は情報科学入門: Rubyを使って学ぶ / 配付プログラムからファイルをダウンロードして使うことも多いと思います.
Q.
白黒画像のところで試してみたのですが、1よりも大きい値を入れても 白のままのようですね。
A.
いろいろ試してみるのは良いですね.0以下の値は黒,1以上の値は白としているようです.今後プログラムで画像を作る時には間違えて0から1までの範囲を超えた値を入れた配列を作ってしまうこともあると思いますが,showした時になるべく作者の意図に合わせて表示しようということなのでしょう.
Q.
三行の白黒の絵と、カラーの絵の区別をどうやってつけるのか。
A.
3次元配列の時はカラーの絵, 2次元配列の時は白黒の絵だと判断するようです.
Q.
irbだとshowが使えないのは分かったが、isrbと比較したときのirbの利点は何なのか。
A.
大学の環境でやる分にはirbの利点は「rsdlという余計なアプリケーションが起動しない」位ですね.irbはRubyを普通にインストールするだけで使えるので,自習のために 自宅のPCなどで使いやすいという利点もあります.
Q.
今回の講義でisrb環境において色を表現するとき、RGBで表現したのですが、使える数字は0~1とのことでした。今までにhtmlで書くときは色を表現するのに256*256*256のRGBで表現していたのですが、isbrは8bit色表示には対応していないのでしょうか。 [0.2,0.5,0.8]などと表現するのには違和感がありますし、不便すぎると思います・・・。
A.
「RGBの各階調を 0-255の8ビットで表す」というのは現在の多くの画像入 力,画像出力装置の制限から最大公約数的に決まっているものですが,慣れて いる人にとっては自然かもしれませんが,isrbでは先入観なしに考えると0-1の 方が自然だと考えたのだと思います.
Q.
配列の要素の数字をまとめて変更することはできないのでしょうか。 例えば、a=[1,1,1,1,1,1,1,1,1,1,0,1,1,1,1]とa配列を作った後、全ての1を一度の操作で0に変更して、 a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]とすることは可能でしょうか。
A.
今回やります. 

前回の課題について


投票システム

vote.rbをダウンロードして,ホームディレクトリに保存してください.ドックからターミナルを起動して,
ruby vote.rb 選択肢番号
のように使います.

今日の練習,投票

関連リンク


教科書の補足


今日の課題