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:栗山)
=======================
今日もプログラミング演習のレポートに関する質問が多かったです。
教科書にヒントはたくさんありますが、理解してからプログラムに応用するようにしましょう!
(文責:栗山)