11/5 配列による画像の表示(2)・条件分岐と繰り返し


前回の感想,質問より

Q.
作業の時間が長過ぎて退屈な時間が多いです。 もう少し早く進んでほしいです。
A.
演習は6-7割の人が投票するまで次には進まないようにしているので,時間が余ってしまっている人が多いようですね.何度も言っていますが,演習ができた人は教科書の練習問題等に取り組んでください.
Q.
自分のPC(Mac)にisrbをインストールして、ECCS端末と同じように使うようにするためにはどうすればよいのでしょうか。
A.
isrbは新しいMacのOSでは使えませんが,ほぼ同じ機能を持つ isrb2 のインストール法がisrb2のインストール方法 に書かれています.チャレンジしてみてください.
Q.
2次元配列か3次元配列かの認識のコンピュータ側の仕方がよくわからない。 []の量と、中の配列の大きさによるものなのかなとは思うのだが、どんなに考えても分からなかった。
A.
よい質問ですね.C++やJavaのような言語では2次元配列と3次元配列はきちんと区別されますが,Rubyでは以下のように添字によって1次元配列,2次元配列,3次元配列のように見えるような配列も作ることができます(あまり使い道がないので普通は作りませんが).
isrb(main):005:0> a=[1,[0,1],[[0,1,1],[1,1,1]]]
a=[1,[0,1],[[0,1,1],[1,1,1]]]
[1, [0, 1], [[0, 1, 1], [1, 1, 1]]]
isrb(main):006:0> a[0]
a[0]
1
isrb(main):007:0> a[1][1]
a[1][1]
1
isrb(main):008:0> a[2][1][0]
a[2][1][0]
1
show(a)を実行するとき,おおざっぱに言うと,a[0]が整数の時は1次元配列とみなし,配列の時は,a[0][0]が整数の時は2次元配列とみなし,配列の時は3次元配列とみなしているようです.
Q.
エラーメッセージは2*aを2aとしていたことによりsyntax errorと言われたことだけであった.
Q.
結構長い時間4*a*cとすべきところを4acとしていたせいで上手く行きませんでした。こんなミスいつまで続けるんでしょうね・・・ 午前中に勉強したMathematicaでの表記が大いに影響しているとは思われます
A.
Mathematicaは数学者向けなので乗算を省略できますが,多くのプログラミング言語では「*」が必要です.慣れると,「*」があるほうが見やすくなってくると思います.
Q.
irbでロードする際にcd is14の入力を忘れがちなので気をつけるようにしたい。
Q.
irbを起動してcd~/is14をして上の式をコピペしたら、その後何を打ち込んでも何も返してくれなくなりました。なぜなのでしょうか??
A.
cd ~/is14
はirbを起動する前に実行してください.irbを起動後でも
Dir.chdir(File.expand_path("~/is14"))
とすれば,カレントディレクトリを「~/is14」(ホームディレクトリの下のis14)に変更することができますが,難しいので講義ではirbの起動前に実行することにしています.
Q.
(上のgf[1]に代入してるのはbを五つ並べた配列なんですが文字を太字にするやつが誤作動してるみたいで見えなくなってます。どうすれば見えるようになりますか?)
A.
掲示板の書き込みでは bb code という軽量マークアップ言語が使われますが,「[」の後ろにbを書くと太字の開始という意味を持つので,おかしくなってしまっているようですね.これを避けるには [ b, b, b, b, b] のように[ の後に空白を入れるくらいでしょうか(bb codeで[quote][/quote], [code][/code]で囲むという方法もあるようですが)?
Q.
先週欠席してしまったので落ちこぼれそうで心配です。実際どのくらい不利に働くのでしょうか・・・
A.
評価の40 % が平常点で,平常点のうち約1/3が投票(1回の講義のうちで1回でも投票しているか?)で2/3が課題(掲示板への書き込み,第1部のまとめの課題は通常よりも比重が大きい)になります.欠席しても,その時の講義の内容を自習して,課題を出せば,1点程度のマイナスにしかなりません.

前回の課題について


投票システム

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

今日の練習,投票

関連リンク


教科書の補足


今日の課題