2月4日の業務報告

こんばんは、B2の鈴木です。

本日はプログラミング演習に関しての多数の質問がありました。
=======================
<プログラミング演習II>
Q1:課題Cについて、なぜかわからないがいくつかの学類や学群が表示されない。
A1:IFやWHILEが何重にも重なった、わかりにくいプログラムになっていたので、まずそうしたプログラムはできれば避けたほうがいいことを伝えました。その上でプログラムを簡潔にまとめる方法を考えながら、問題となっている部分をさがしました。

Q2,Q6:splitメソッドを使った部分でエラーが出る
A2,A6:ここで使っているsplitメソッドは「文字列」を「配列」にするためのメソッドであって、配列に対しては使えないのでエラーが出ていると伝え、文字列を引数として受け取るよう改善しました。

Q3:課題Cを提出システムで提出しようとしたらエラーが出て提出できない
A3:チェックシステムで問題があるとされた行を確認してみると、専攻名の後に半角スペースが表示されていることが原因でした。プログラムに問題はなかったので入力ファイルを確認すると該当行の最後に半角スペースがあり、それを消したところ正常に提出できました。

Q4:実行結果で改行が2回されてしまう箇所がある
A4:プログラムを確認したところ、表示する配列の中に改行だけが含まれた要素があり、その配列を生成する際に、改行だけの個所が出来ないように修正したところ、改善されました。

Q5:ハッシュをすべて表示させることは出来るのに、値だけを表示させることが出来ない
A5:全学PCのWindowsでコマンドプロンプトから実行する際にはエンコードを「Windws-31J」にしないとうまく動かないため、プログラム最上部に#encoding: Windows-31Jを追加したところ、無事に値が読み込まれました。

Q7:メソッドの仕組みがよく分からない、課題Cでどのように使えば良いのか
A7:メソッドにはいくつかの処理をまとめておくことができ、そのメソッドを呼び出すことでまとめられた処理を一度に実行できるというものです。課題Cでは、読み込んだテキストを繰り返し判断して階層的に並べ替える必要があります。このように決まった処理を繰り返す(特に毎回同じ回数繰り返すのではない)場合、メソッドとしてまとめ、それを適宜呼び出す、という形にすると、プログラムも読みやすく、また、簡潔になるためデバックもしやすいということを説明しました。
回答 Q1-Q3:岩井 Q4-Q7:鈴木
=======================

本日はプログラミング演習の提出締め切り直前だったため、沢山の質問が来ました。
プログラムを書く際、どのような動作をさせたいのか、書いたプログラムがどのように動作しているのかをよく確認しましょう。
ひとつの方法でうまくいかない時は、ほかに同じような動作が出来るものは無いか探してみましょう。

(文責:鈴木)