1/7 レコード・オブジェクト・クラス


連絡事項


質問と回答

Q.
プログラム中、ただaと書くのとreturn aと書くのではどのように違うのでしょうか。
A.
return aと書くと,forによる繰り返しの中などからでも関数の値を返すことができます.関数の最後の 式に書く場合はaでもreturn aでも変わりません.標準テキストでは,Rubyの最小限の文法のみを扱うという 考え方で書かれているので return aのような書き方は使っていません.
Q.
puts aとp aの違いについてももう一度詳しく教えて下さると幸いです。
A.
Rubyリファレンスマニュアル:組み込み関数 ( http://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFB4D8BFF4.html ) に書かれているように,表示の仕方が違います(inspect()を呼び出すか,to_s()を呼び出すかなど).
a=1.2
puts a
p a
のように数の表示の場合には同じになると思いますが,
a=[1,2,3]
puts a
p a
とやってみると違いが分かるでしょう.標準テキストでは,Rubyの最小限の文法のみを扱うという 考え方で書かれているので p, puts のどちらも使いません.
Q.
>トレースバックの穴埋めの部分で s[i-1..i-1]とありますが、ここをはじめ s[i-1]としたら、
TypeError: String can't be coerced into Fixnum
というエラーがでました。a[i][j]をもとめるときにq(s[i-1],t[i-1])をつかってうまくいったのに、これはどういうことなんでしょう??
A.
 s="abc"
 i=2
の時
 s[i-1..i-1]
とすると
 "b"
という長さ1の文字列が得られます.一方,
 s[i-1]
とすると
 98
となりますが,これは文字「b」の文字コードを返します.irbで,
 98+"cde"
と入力すると,
 TypeError: String can't be coerced into Fixnum
というエラーが出ますが,これは整数値に文字列を加算することはできないというエラーになります.

投票システム

サーバIPアドレス,学生証番号を入れるのが面倒だと思われるので,投票用のスクリプトをnewvote.rbに置き換えました.ダウンロードして,ホームディレクトリに保存します.ドックからターミナルを起動して,
ruby newvote.rb 選択肢番号
のように使います.

練習,投票

関連リンク


今日の課題


次回(1/14)の自習について