11/22の業務報告

こんばんは、B2の栗山です。
最近空気が澄んでいて、夜になると星がとても綺麗に見えます。
課題や試験勉強で疲れた時は、星空を見て気分転換してみてはどうですか?
さて、本日の質問と回答です。
============================
<プログラミング演習I>
Q1. 対戦メソッドは作る必要があるか
A1. 対戦メソッドはハッシュと二人のキャラ名を引数にするようにテキストに書いてあったが、それに気付かずメソッドの中でキャラ名の入力から全てやってしまっていました。なのでテキストの要件の通りに書き直すように言いました。
Q2. 対戦の後の二人目のキャラの能力がすべて0になる
A2. 対戦のメソッド内でまずそれぞれの能力値を0で初期化して、そこから戦いの中で能力を変化させていたが、変化した能力以外は初期化されたままの状態になっていたので、初期化する際にそれぞれの能力値を代入したほうがいいとアドバイスしました。
Q3. 実行させたときに一回一回の対決のあとにNilという文字列が出る
A3. 直接の原因はコードを見た限りではわからなかったが、対決のメソッドを実行させる際にprintメソッドの中で実行させてしまっていたのでそこを指摘しました。
Q4. 攻撃力の一覧を出そうとするとすべて同じ値になる
A4. each文の外で攻撃力を計算してそのeachの中でその攻撃力の変数を表示させていました。eachメソッドは何をするものなのかがあいまいなようだったので説明しました。
Q5. 対決させようとするとyuruyuruがないというエラーが出る
A5. メソッドの中では引数として持ってこない限りメソッドの外で定義した変数は使えないことを説明し、また対決メソッドの引数がテキストに書いてあったものと違っていたのでその通りにやるように言いました。
Q6. (Q3.の回答を参考に直したら)二人目のキャラの能力も出るようになったが、値がおかしくなる
A6. どの変数がどの能力を意味する変数なのか自分でわからなくなっていて、そのため変化させる能力が間違っていました。なのでわかりやすい変数名をつけるようにアドバイスしました。
Q7. 平均を求めるメソッドを実行させようとするとyuruyuruを使うところでエラーが出る
A7. メソッドに引数を何も指定していませんでした。メソッドの中ではメソッドの外の変数は使えないという説明をし、メソッドについて復習してみるようにアドバイスしました。
Q8. 平均を求めるメソッドで平均値をreturnしても表示できない
A8. メソッドを定義している部分がendで閉じられていなかったので、そこを指摘しました。
Q9. プログラムの説明を書いてみたので見てほしい
A9. それぞれの変数の役割自体はしっかりわかっていたので、それをどう説明したらいいかわからなかったようです。質問者自身の書いた説明で十分わかりやすかったのでそれで大丈夫だと言いました。
Q10. (Q9.の回答を参考に直したら)プログラムを実行したときに止まらなくなってしまった
A10. 平均値を計算するメソッドの引数がテキストの定義と間違っていて、またwhileで回しながら計算していました。while分の条件はtrueなのに抜ける条件も設定していないために止まらなくなっていました。引数をテキストどおりにするように言いました。
Q11. 始めからよくわからない。第5回のチェック項目を参考に,ハッシュの中身を表示するプログラムを書いたが,表示されない。
A11. each文を使ってハッシュの中身を表示しようとしていましたが、ハッシュの中身が空のままでした。また、each文も、keyとvalueの二つの要素ではなく、キャラ名、図書館愛、インパクト、ゆるさの4つの値を用いようとしていたため、それについても指摘をし、第5回のチェック項目のプログラムを今回のプログラムのどこに当てはめればいいか、ヒントを出しました。
Q12. 攻撃力の平均を求めるメソッドをどう書けばいいのかわからない
A12. まず、each文の使い方が少し違っているようでしたので、それについて指摘をしました。また、一気に平均を出そうと考えるのではなく、メソッドの中で、「各キャラの攻撃力を計算するところ」「攻撃力の合計を計算するところ」「平均値を計算するところ」の3つにわけて考えた方がいいのでは、と言いました。
Q13.課題がよくわからない。どんなプログラムを書けば良いのか全くわからない
A13. 課題の要件を分解して,一つずつこなしていくようにするといいと思います.あとは,実行例の中で,どこがどのメソッドと対応している結果なのかを説明しました.
Q14. ハッシュにキーと値を一つずつ格納していくことはできるようになったが,配列を値の要素としてハッシュに登録していく方法がわからない。
A14. 持ってきてもらったプログラムのなかで,手を加えるべき箇所を示しました.
Q15. 攻撃力の最大値を求めるメソッドがうまく動かない。平均値を求めるメソッドがどうもうまく動いていないらしい。
A15. 攻撃力の最大値を求めるメソッドは,そもそも各キャラの攻撃力を全く利用していなかったので,そのためにうまく動いていませんでした.また,平均値を求めるメソッドについては,返り値を計算式ではなく変数に置き換えて対処してみるよう,提案しました.
Q16. プログラムを実行したら、対決をする部分でエラーが出る
A16. while文の中に、対決結果を表示するメソッドを定義していたので、メソッド定義を行う位置をかえる必要があると指摘しました。また、メソッド定義と実行したいプログラムの記述位置について、補足をしました。
Q17. (Q16.の回答を参考に直したら)、対戦するキャラ名を入力する部分でエラーが出てきてしまった。
A17. リダイレクトする.txtファイルの中身を説明しました。その後、トレースを行い、繰り返し入力を行うwhile文から抜け出す条件(if文)の位置が違うことに気付いてもらいました。
Q18. 攻撃力の最大を求めるメソッドが実行できない。
A18. 繰り返し回数を示す変数 iをどのように使っているのか、質問者に説明してもらったところ、自己代入(i = i + 1)が抜けていることに気付いてくれました。
Q19. .(ピリオド)が入力されて終了するときに、「終了します」と表示させた方がよいか。
A19. 表示させた方が、終了したことが見てわかるのでよいアイディアだと思います。「終了します」と表示させたい場合は、実行結果の表示方法に指定がないか確認をしてから行ってください。
Q20. ハッシュにキャラ名と3つの能力を入れる方法が分からない。
A20. ハッシュと配列の違いがあまり理解できていなかったようなので、説明をしました。またハッシュの作り方のヒントはプログラミング演習のWebページを参照するように言いました。
<設備>
Q21. 一部だけカラーの13枚あるレポートを両面印刷したいが,全部をカラー印刷してしまうと印刷枚数制限が気になるので,できればカラーで印刷する部分を最小限にしたい.
A21. カラーのページと,その裏面にあたるページだけをカラーで印刷し,それ以外のページを白黒で印刷できるよう,ページ指定をして印刷すればそれで最小限になると思います.
(回答者 Q1-Q10:北原、Q11-Q15. Q21:澤木、Q16-Q20:栗山)
=============================
外はとても寒いので、星空を見るときは防寒対策をしっかりしましょう!
(文責:栗山)