1月24日の業務報告

こんばんは、B2の栗山です。
昨日の雪で、つくばが銀世界になりましたね!
雪が降って嬉しかったので、朝から雪だるまを作って遊びました。
さて、本日の質問と回答です。
=======================
<プログラミング演習II>
Q1. (レポートに関して)、タイトルと旧ISBN、価格の合計を表示することはできるが、他の項目を出力する方法が分からない。
A1. 出力フォーマットの要件を確認してもらい、「日本円での価格」と「合計」以外の項目はISBNが分かれば求めることができることを説明しました。その後、ハッシュを並べ替えて表示する部分に組み込むことで、価格以外の項目は全て表示できるのではないでしょうか、とアドバイスしました。
Q2. (レポートに関して)、米ドル・ポンドの合計価格を小数2桁で表示する方法が分からない。
A2. 教科書p221でsprintfメソッドについて理解してもらい、出力形式を指定する方法を一緒に考えました。教科書では整数をフォーマットする説明だったので、Webで「Ruby 小数2桁を表示」と検索して見つけたプログラム例も参照してもらいました。
Q3. (レポートに関して)、プログラムを実行したが何も動作しない。何が間違っているのか分からない。
A3. 表示をするメソッドがなかったので、コマンドプロンプトには何も表示されないのではないでしょうか。プログラムが動作しているか確認したい場合は、printメソッドやpメソッドを用いてみて下さい。
Q4. (レポートに関して)、日本円での価格を計算して表示したいが、上手く表示されない。
A4. splitメソッドの使い方がよく分からないようだったので、教科書p225を参照してもらいました。変数にはコンマで区切った要素が配列となって代入されていることを説明し、価格を計算する際に、インデックスは何になるのか訊いたところ、質問者が取り出す要素に誤りがあることに気付きました。
Q5. (レポートに関して)、価格が格納された配列を使って合計を求めたいが、エラーがでる。
A5. 日本円を代入した[変数]を[配列]と勘違いしていたみたいです。配列に格納して求める方法もありますが、繰り返し文の中で日本円の合計を計算することもできるとアドバイスしました。
Q6. (レポートに関して)、新チェックデジットを求めるときに後方参照を使っているが、取り出した変数$1~$12全てに.to_iを付与しないと計算できないか。
A6. マッチングしたい変数は文字列だったので、演算を行うには全て数値変換する必要があると説明し、数値変換がある場合とない場合を実行して確認してもらいました。
Q7. (レポートに関して)、グループ記号が全て「英語圏」になってしまう。
A7. 以下の二点を指摘しました。1. 比較する変数が文字列なので、条件文group == 0 …etcではすべて偽になってしまう。2. else(0-5以外のグループ記号の場合)で、”英語圏”を代入してしまっている。
Q8. (レポートに関して)、出力フォーマットに従って表示をしたら、表示途中で空行が入ってしまった。原因が分からない。
A8. 原因を特定することはできませんでした。読み込んだ1行の改行文字を取り除くプログラムで、line = chomp! という記述になっていたので、.chompメソッドの使い方と破壊的なメソッドについて説明をしました。また、リダイレクトするデータの中身に原因があるかもしれないので、再確認するように言いました。
Q9. (レポートに関して)、さっきまで表示できていた日本円の合計が表示できなくなった。
A9. 合計を計算した値を代入する変数名が、定義したものと異なっていることを指摘しました。変数名を修正したところ、表示できるようになりました。
Q10. (レポートに関して)、日本円に変換した価格を表示したいが上手くいかない。
A10. 米ドル、ユーロ、日本円、それぞれを場合分けして計算した値をそれぞれ別の変数に代入し、条件文の外で3つの変数を足していました。繰り返し文で1行ずつ読み込んでから計算を行うので、変数名は統一しても実行できると説明しました。その後、変数名を統一して実行し確認してもらいました。
(回答 Q1-Q10:栗山)
=======================
今日もプログラミング演習のレポートに関する質問が多かったです。
教科書にヒントはたくさんありますが、理解してからプログラムに応用するようにしましょう!
(文責:栗山)

1月19日の業務報告

こんばんは,M1の安永です.
1月に入って,ついにこたつを出してしまいました.
本日の質問と回答です。
****************************
【プログラミング演習2】
Q1.(演習5-5に関して)エラーが出てしまうがどうしたらよいか。
A1.第5回テキストp.7の脚注を確認して,エラーの原因を理解してもらいました。それを基に、質問者の方と一緒にどうしたらよいか考えました。
Q2.(課題に関して)エラーが出てしまうが、その原因が分からない。また、ISBNにハイフンがあってもなくてもマッチングさせるにはどうしたらよいか。
A2.正規表現を用いてマッチングを行おうとしている部分に誤りがあることを指摘し、テキストで正しいやり方を確認しました。
Q3.(課題に関して)後方参照をしているが、変数に入っていないらしく、何も表示されない
A3.マッチさせたい文章に対して、正規表現が適切でなかったため、教科書を参照して正しい正規表現を一緒に考えました。英数字やスペースが入り交じった文にマッチさせる正規表現も教科書に掲載されていますので、確認してみましょう。
Q4.(3-9に関して)記号の前後にある1個以上の空白を削除したいが、前の空白しか削除されない
A4.「|」を使ってマッチするパターンを選択する方式をとっていたのですが、記号の前に空白がある場合と、記号の後に空白がある場合の選択になっていたので、記号の前に空白がある時点でそちらにマッチし、記号の後にある空白がマッチする対象となっていませんでした。その点を指摘し、繰り返しのメタ文字(*,+,?)を活用して条件を満たすことが出来ないか検討しました。
Q5.ハッシュのキーをソートする方法が分からない
A5.教科書263ページにハッシュの値でソートする方法が載っていたので、その方法を解説し、キーに応用できないか考えてもらいました。
Q6.ハッシュのキーだけを取り出したつもりが,キーと値の両方が取り出されている.
A6.eachメソッドを使ったハッシュのキーの取り出し方を教科書255ページで確認してもらいました.すると,eachメソッドで変数を1つだけ指定すると,各要素を配列として取り出すことになることが分かりました.
Q7.ハッシュの要素数は7つなのに,表示すると沢山表示されてしまう.
A7.while内でeachメソッドを使用して表示していたため,whileを繰り返すたびに表示されているのではないか,と指摘しました.
Q8.(演習4-2に関して)正規表現にマッチしたかどうかを出力していて,マッチしないはずのものを入力しても,マッチした,と出てしまう.
A8.正規表現のどの部分が間違っているのかを発見するために,現在書いている正規表現を,最初から少しずつ書いていき,その都度出力結果を確認してもらいました.すると,AM|PMを正規表現に書き足した時に,予想と違う動きをしたので,|の使い方を教科書279ページで確認してもらいました.
Q9.(課題に関して)新ISBNのチェックディジットを計算するために,ISBNの数字を1つずつ取り出したいが,どうすればいいか分からない.
A9.教科書231ページに文字列のインデックスの使い方が載っていたので,そちらを読んでもらいました.
回答者:1-2 森川, 3-5 鈴木,6-9 安永
****************************
今日のように寒い日には「カレー南ばんそば」がよく出ます.(バイト先の話)
(文責:安永)

1月18日の業務報告

こんばんは、B3の鈴木です。
今日は月曜日課でしたね!危うく遅刻しそうになりました。
本日の質問と回答です。
****************************
【プログラミング演習2】
Q1. (演習4-1に関して)1~4桁の数字を正規表現する分からない。
A1. テキストに演習のヒントが載っていたので参照してもらい、一緒に正規表現を考えました。
Q2. (演習3-8に関して)先頭の空白の削除等が上手くいかない
A2. 正規表現に誤りがあったので、教科書で説明を行いながら一緒に考えました。
Q3. (演習4-1に関して)実行結果がテキスト通りにならない
A3. いくつか正規表現に誤りがあったのでその箇所を指摘し、教科書で正しいものを探してもらいました。
Q4. (演習3-9に関して)記号の前後にある空白を削除する方法がわからない
A4. 一度に全ての条件を満たそうとせず、一つずつ条件を満たして行くことを勧め、まず、「(」の前後にある空白を削除する方法を教科書を参照しながら一緒に考えました。
Q5. (演習3-9に関して)記号の前後の空白を削除しようとしたがエラーが出てしまう。
A5. 英数字以外のメタ文字を正規表現で扱う際にはその前にバックスラッシュを入れることで、文字そのものとして使えるようになります。(教科書276ページ参照)
Q6. (演習4-2に関して)後方参照が上手くいかない
A6. 教科書に変数の使い方が載っていたので、参照しつつ違う点を指摘しました。
Q7. (演習3-9に関して)空白の行が消えない
A7. 空白の行のときにも改行文字をつけて表示するようにしていたため、空行のときは表示しないような工夫が必要です、とアドバイスしました。
回答者:1・2 栗山, 3~7 鈴木
****************************
はやいもので1月も半分を超えていました。
この調子であっという間に春がくれば暖かくていいんですけどねー
(文責:鈴木)