1月25日の業務報告

こんばんは、M1の三津石です。
つくばは本当に寒いですね…。春を心待ちにしております。
本日の質問と回答です。
=======================
<プログラミング演習II>
Q1. (レポートに関して)チェックデジットが計算できない
A1. String#[]メソッド及び、Array#sortメソッドの使い方がよく理解できていないようだったので、メソッドの前後での変数の状態の変化を表示させることでメソッドの挙動を理解してもらうようアドバイスをしました。
Q2. (レポートに関して)ISBNの13桁目とは何かが分からない
A2. ISBNの12桁目までの数字を使って計算されるチェックデジットという数字であることを説明しました。
Q3. (レポートに関して)joinメソッドでのエラーの原因が分からない
A3. 配列に対してjoinメソッドを使おうとしているつもりが、数値に対して使っていたのでNoMethodErrorが発生していましたので、そのことを指摘しました。
Q4. (レポートに関して)チェックデジットを計算すると0になる原因が分からない
A4. “12桁の数字の文字列(例えば””123456789012″”)から後方参照によって各桁の数字の文字列を取得しようとしているつもりが、12桁の数字を格納している変数名をダブルクオートで括ってしまっている結果、予期せぬ挙動を起こしていましたので指摘しました。
# example
num = “123456789012”
/(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/ =~ “num” # 変数名をダブルクオートで括ってしまっている
p $1.to_i #=> 0″
Q5. (レポートに関して)出力の順序を指定通りにすることができない。
A5. ファイルから読み込んだ行を、配列やハッシュにそのまま格納してあとで利用するという方法があることを指摘しました。
Q6. (レポートに関して)チェックデジットの計算方法がよく分からない
A6. modは剰余を求めるという意味であることを説明し、例を用いてチェックデジットの計算方法についても説明しました。