10月19日の業務報告

こんばんは、B3の森川です。
だいぶ肌寒くなってきましたね。
さて、本日の質問と回答です。
====================
<プログラミング演習1>
Q1. 既存のハッシュにある名前が入力されたとき、値を上書きするか、そのままにするかを選択させるにはどうすればよいか。

A1. if文を使って、新規に入力する場合と上書きする場合とを分けて処理してはどうかと伝えました。if文は、構文さえ誤らなければなければいくらでも分岐可能であること、選択の結果(例えばyesまたはno)を保存する変数を用意してはどうかと伝えました。エラーが出た時に、どこにエラーがあるかわからなくなってしまったので、その場合、新しくMeadow等テキストエディタのファイルに1つ1つ処理を組んでは、動作チェックをしてはどうかということも伝えました。注意すべきは、条件分岐後に定義した変数を、他の条件分岐の下でいきなり使用するとコンピュータがその変数を認識できないことです。
たとえば、次のようなプログラムを書いたとき、

if ………. #条件
answer = …… #変数の定義
elsif answer== #上記以外で別の条件

最初のif文でfalseのとき、すぐに次のelsifの条件に飛ぶので、コンピュータとしては「あれ?answerって何?」状態になります。

Q2. 課題2に関して。コマンドプロンプトで同じ名前を入力したが、上書き保存をするプログラムが実行されない。
A2. プログラムを見せてもらったところ、入力された文字列とハッシュに格納されたデータを比較するための条件式に誤りがありました。演習5-15を参考にして上書きするプログラムを考えてもらいました。また、ハッシュと配列の使い方を混合しているようだったので、テキストを使って補足説明しました。

Q3. 課題2に関して。ピリオドが入力されたら終了するプログラムを書いたが、コマンドプロンプトで入力しても終了されない。
A3. ピリオドを入力したら繰り返しを終了するプログラムを記述する位置に誤りがあったので、プログラムの流れを一緒に確認して正しい位置に記述してもらいました。

Q4. 課題2に関して、条件通りにループから抜けることができない。
A4. 条件分岐の部分に誤りがあったので,プログラムを一緒に確認し,条件分岐の条件を正しいものに直しました。

回答(Q1:三浦、Q2-Q3:栗山、Q4:森川)
=====================

プログラミングで困ったときは、
お早めに質問に来ることをおすすめします!

(文責:森川)