10/12 配列による画像の表示, 条件分岐と繰り返し(1)


前回の補足


前回の感想,質問より

Q.
include(Math)を挿入しても当初sqrtが認識されなかったが、これはsqrtの直前のスペースが全角であるためであった。
A.
全角スペースは見ただけでは分からないので分かりくいですね.プログラムを入力する時は,日本語入力をOFFにしての入力をお勧めします.
Q.
この式の虚数解となった場合にどのようなものが出てくるのか興味がわいた。また、判別式から実数解と重解、虚数解の判別をするプログラミングがどのようなものか気になった。
A.
Ruby言語では,複素数を扱うComplexクラスというものも用意されています.
irb(main):001:0> require 'mathn'
=> true
irb(main):002:0> include(Math)
=> Object
irb(main):003:0> sqrt(-1)
=> (0+1i)
上の例のように mathn ライブラリというものを使うと計算の際に複素数で計算してくれます.
Q.
sqrtなどの関数を定義に入れる際に最初にinclude(Math)を入れてなくてチェックにひっかかってしまいました。これは必ず必要なのでしょうか、それともload後ターミナル上で使うまでにinclude(Math)をしておけばいいのでしょうか?
A.
実は sqrt と書く代わりに必ず Math.sqrt と書くようにすれば
inlcude(Math)
は不要なのですが,講義ではsqrtと書ける方のメリットを重視して教材では
inlcude(Math)
を使うように統一しています.あと,irb上で実行するには,load後にターミナル上で使うまでに,
inlcude(Math)
を実行すれば良いのですが,check.rb でPASSするには,ファイルの先頭で書いておく必要があります.
Q.
一番最後の行に書かれている値が返り値になるのでしょうが、調べたところreturnを書いてもいいそうなので次からはreturnを書こうと思いました。
A.
この教科書は,「一番最後の行に書かれている値を返り値とする」スタイルで統一的に書かれていますが,return を書いても構いません(Ruby言語としてはそう書くのが普通です).

前回の課題について

今日の練習,投票

授業の登録方法


講義資料


講義フォルダの作成


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


投票システム

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

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


テキストの補足


今日の課題


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

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