10/25の業務報告

こんばんは、B2の栗山です。
今日はプログラミング演習のレポート提出前日なので、1年生の利用者が多かったです。
さて、本日の質問と回答です。
===================================================
<プログラミング演習>
Q1. レポート課題2で値段の計算が合わない
A1. プログラムの流れを一緒に確認してみたところ、間違いに自分で気づいてくれました。
Q2. レポート課題1で間違った駅を入力するとエラーが出る
A2. 間違った駅を入力しても駅を表示する処理をそのまま行ってしまっていたのでエラーが出ていました。条件分岐でうまく処理を分けるようにアドバイスしました。
Q3. レポート課題2でネタと値段を登録しても、最後に表示したときにすべて0円になってしまう
A3.実行して数字を入力する時に全角数字で入力してしまっていたのでそれを指摘しました。
Q4. レポート課題2でネタと値段を登録すると、最後に表示したときにネタの値段がすべて最後に入力した値段になってしまう
A4. スペルミスをしていたのでそれを指摘しました。
Q5. レポート課題1で乗車駅を東京以外にするとうまく駅が表示されない
A5. 乗車駅から降車駅までの表示をする繰り返しの条件がおかしかったのでそこを指摘し、どのようにすればうまく表示できるのかを考えてもらいました。
Q6. レポート課題2で上書きするかどうかの場合分けを実装したらエラーが出るようになった
A6. endを忘れていたので、エラーの意味を説明しつつそれを指摘しました。
Q7. レポート課題1で間違った駅を入力した時にエラーが出てしまう
A7. 駅を入力する際に、eki = eki_soto.index(gets.chomp)といった風にいきなりインデックスを求めてしまっていたために間違った駅を入力した際にエラーが出ていたので、入力を受け取るのとインデックスを求めるのは別にしたほうがいいとアドバイスしました。
Q8. レポート課題2ですでにハッシュに入っているネタを入力したときに上書きするかどうかを聞く場合分けを行ったつもりなのに、同じネタを登録しても上書きするかどうかを聞くようにならない
A8. もう一度実行してみてもらったら意図どおり動いたので、原因はわかりませんでした。
Q9. レポート課題1で間違った駅を入力したときにちがう処理をしたいがやり方がわからない
A9. 間違った駅であるという表示はできていたのですが、駅が配列の何番目であるかを求める繰り返しの中でその表示を行っていたため、それを分けた上で場合分けをすればいいとアドバイスしました。
Q10. プログラムを2種類書いたがどちらを提出すべきか
A10. 読みやすさもたしかに意識した方がいいですが、それよりも、使い勝手がいいと自分で思う方を提出した方がいいかもしれません。また、説明を書いてみて、説明しやすい方を提出する、という選び方もあると思います。
Q11. レポート課題1で、乗車駅よりも降車駅が手前にある場合にプログラムがうまく動かない。
A11. エラーメッセージは”undifined method ‘<=’ 〜”でした。乗車駅よりも降車駅が手前にある場合だけ、条件分岐がうまくいっていないようだったので、うまくいくかどうかは、大きさを比べたい変数の大きさが関わっているのではないでしょうか。
Q12. レポート課題について。プログラムの説明はどのように書けばいいのかわからない。
A12. 長い文章になるので、大きなブロックで分けて見出しをつけてあると読みやすいのではないでしょうか。また、わかりにくい部分だけでも、流れ図があるとわかりやすいと思います。
Q13. レポートについて。課題2で、値段を置き換えないことにした場合でも、値段が置き換えられてしまっている。
A13. 置き換えをするかどうかの条件分岐の結果を反映させずにネタと値段の値の蓄積を行っているようだったので、そのことを指摘しました。
Q14. レポート課題2で、値段の置き換えを行うかどうか選んだとき、置き換えを行うことにしても値段が置き換えられない。
A14. 持ってきてくれていた実行結果とプログラムをみた限りでは、置き換えを行った後、新しい値を蓄積する前に、置き換えを行ったキーと元の値を出力するようになっていたため、そのためではないかと思いました。ただ、実行結果が途切れており、その続きでやはり置き換えできていない状況だったとのことだったので、一応もう一度、実行結果を最後まで印刷して持ってくるように言いました。
Q15. レポート課題2で、eachメソッドを利用しようとしたが、うまく動かない。
A15. while文のループの中でeachメソッドを動かしており、そのためにうまく動いていない可能性がある、ということを指摘しました。
Q16. レポート課題1で、降車駅として入力された文字列が山手線の駅名ではない時にプログラムを抜け出すようにしたが、乗車駅が間違っていた場合にエラーメッセージが出てしまう。
A16. 乗車駅のみが山手線の駅名ではない場合にはプログラムを抜け出さないように設定されていました。そのため、その後の条件分岐がうまくいかず、エラーが出ていたようです。なので、乗車駅のみが山手線の駅名に含まれていない場合でもプログラムを抜け出せるよう、何かひとつ、付け足しが必要だと思います。
Q17. レポート課題について、演習ではindexとincludeを使うよう勧められたが、使わなければならないか。使わないと減点されるか。
A17. 要件をきちんと満たしていれば、必要以上に減点されることはないのではないでしょうか。
Q18. レポート課題について、プログラムの説明はどのように書けばいいか。
A18. 見出しをつけるのであれば、文章での見出しよりは、一言にまとめられた言葉で書かれている方が読みやすいように思います。他は、説明の書き方についていくつか指摘をしました。
Q19. レポート課題1で、所要時間の計算がうまくいかない。
A19. “undefined method ‘<‘ 〜”というエラーメッセージが表示されていました。しかし、プログラムをみた限りでは該当の行で行われていた条件分岐に矛盾はみられず、エラーが表示される理由がわからなかったため、スペルミスなどを念のため確認するように言いました。
Q20. レポート課題2で、すしネタの名前と値段を蓄積する際にエラーが出てしまう。
A20. エラーメッセージの出ていた箇所を確認したところ、プログラムの書き方が間違っていたので、もう一度その箇所をよく確認するように言いました。
Q21. レポートを書き上げたので、確認してほしい。
A21. 言葉の統一と、説明を補った方が読みやすいかもしれない箇所があったので、それについて指摘をしました。
Q22. レポートのプログラムリストと実行結果を印刷したが、等幅フォントとはこれで合っているか。
A22. 確認したところ、すべての字の幅が揃っていたので、合っていますと答えました。「MS ゴシック」「MS 明朝」のどちらかであれば基本的には大丈夫です。
Q23. (課題1に関して)、プログラムと実行結果を確認してほしい。
A23. プログラムにコメントや改行を適宜加えると、読みやすくなることをアドバイスしました。
Q24. プログラムを印刷したが、1行が長いため途切れてしまう。どうしたらよいか。
A24. プログラムに行番号をつけたCGIを印刷していました。行番号つきのプログラムをWord(もしくはメモ帳)にコピー&ペーストして印刷する方法を説明しました。
Q25. (課題2に関して)、同じ寿司ネタが入力されたら、上書きする場合にはどうしたらいいですか。
A25. 第5回テキストの演習5-3、5-5を参考にして、考えてみるように言いました。
Q26. レポートの説明はこれでよいか、確認してほしい。
A26. “sushiにnetaとkakakuを入れる”のような記述に関して、sushi等がハッシュなのか、変数なのか(変数の場合、何が代入されているのか)分かるように、記述を工夫したほうがいいとアドバイスしました。
(回答者 Q1-Q9:北原、Q10-Q22:澤木、Q23-Q26:栗山)
===================================================
今回のプログラミング演習の課題に取り組んでみて、躓いてしまった点があったらもう一度復習してみてください。
テキストを読み返すと、勉強になりますよ!
(文責:栗山)