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:森川)
=====================

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

(文責:森川)

10月18日の業務報告

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

本日の質問と回答です。
==============================
<プログラミング演習I>
Q1. 面積を入力するとき、コマンドプロンプト上で「7*10^41」を入力しても計算されない
A1. 10月17日の質問にも同様の質問があったので、ブログを参照するように伝えました。

Q2. 10月17日の質問にも同様の質問があったので、ブログを参照するように伝えました。
A2. if文を使って、新規に入力する場合と上書きする場合とを分けて処理してはどうかと伝えました。

Q3. 上書き入力の際に面積を入力する作業が2回繰り返されてしまう
A3. 条件分岐を行う場所に問題があったので、処理を追って、適切な位置を確認しました。

Q4. 無限に繰り返しをするにはどうすればいいか
A4. 「while true」とすればbreakメソッド等で繰り返しから抜けない限り繰り返されます。

Q5. 駅名がない場合に表示させる文字列が繰り返し表示されてしまう
A5.繰り返しの条件に誤りがあったので指摘しました。

Q6. 所要時間が上手く計算されない
A6. 繰り返しの条件に誤りがあったので指摘しました。

Q7. 駅名と周辺施設の表示が入力した駅よりも後ろにある駅なども表示されてしまう
A7. 繰り返しの終了条件が適切でなかったので指摘しました。

Q8. 駅名と周辺リストの表示の際に字下げする文字数をどうやって増やせばよいのか
A8. 繰り返しの度に字下げする文字を追加していくようにすればいいのではないかと答えました。

Q9. 小数点以下の表示する桁数を指定したいがどうすればいいか分からない
A9. printfメソッドを使えば指定できます。教科書221ページを参照してください。

Q10. 数値に3桁ごとにカンマを入れたい
A10. 検索したところ、解決法が見つかったので自分でも調べてみるように伝えました。

Q11. 筑波キャンパスの面積を最初に登録するにはどうすればいいのか
A11. ハッシュを定義する際に登録しておけば大丈夫です。

Q12. 面積の比較の際に、値をどうやって比較すればいいのか分からない
A12. 面積をハッシュに入れる際に使っていた変数を用いて比較しようとしていたため、比較する名前をキーとしてハッシュから値を取り出し、比較するように伝えました。

回答:鈴木
==============================

(文責:鈴木)

10月17日の業務報告

こんばんは,B4の水本です

本日の質問と回答です。
==============================
<プログラミング演習I>
Q1: プログラミング演習の課題で,名前とその面積をHashに無限に格納する方法が分からない.
A1: プログラムの処理手順を追いながら,keyとvalueをどこで入力しているかを確認してもらい,Hashにどのようにkeyとvalueのセットを格納するかを説明しました.

Q2:面積を入力するとき,「7*10^41」が計算されない
A2:split関数を使って,文字列を「*」と「^」で分割し,各数字を「かける数」,「指数」として認識させてみてはどうかとアドバイスしました.

Q3:入力した値がHashに存在するか確かめる方法が分からない
A3:Hashに特定のkeyが存在するかどうか確かめる方法として,「hash.key?(“key”)」というメソッドがあることを伝えました.それとif文を組み合わせれば,目的のプログラムが書けるのではとアドバイスしました

Q4:スペースをどんどん増やしていく方法がわからない
A4:変数に1ループごとにスペースを追加していく方法が良いのではとアドバイスしました

Q5:2つの地名の面積を比較しても,正しく計算されない
A5:数値が,小数点部分まで評価されていないということを指摘しました

Q6:if文で、true/falseの判定はどのように行えばよいのか。
A6:「if メソッド == true」としてメソッドの戻り値とtrueを比較する方法と、「if メソッド」でメソッドの戻り値をそのまま判定する2つの方法があることを伝えました。

Q7:ハッシュへのキーと値の登録がうまくいかない。
A7:教科書を見てstoreというメソッドがあることを確認し、それを利用すると良いのではと伝えました。

回答(Q1-Q5:山本 Q6-Q7:門脇)
==============================

(文責:水本)

第4回ゲスト決定!

こんにちは。一気に秋めいてきましたね!Klis Radio製作委員会です。

今月配信を予定している第4回配信のゲストが決定しました!

第4回配信では、図書館情報メディア研究科博士前期課程から平山 陽菜(@humotty)さんをお迎えします!
「特集!図書館系勉強会」というテーマで、平山さんをはじめとする有志メンバ―によって、春日エリアで定期的に開催されている図書館系勉強会についてお話をうかがっています。

「気になってはいるんだけど中々参加するきっかけがね・・・」という方も「何それ?はじめて知ったよ!」という方も俄然参加したくなってくる内容となっておりますので、配信までもうしばらくお待ちください!

配信は今月25日(木)を予定しています!お楽しみに!

10月16日の業務報告

こんばんは、B4の門脇です。

本日の質問と回答です。
==============================
<プログラミング演習I>
Q1: 課題1に関して。一致しない駅名を入力しても、駅名のリストが表示されてしまう。
A1: 質問者は一致する駅名が入力されたときのみ、駅名リストを表示したいと言っていたので、if文を用いて条件毎に処理をしたらどうでしょうとアドバイスしました。

Q2: よいプログラムはどんなプログラムか。空行はどのくらい入れるといいか。課題1のプログラムを書くと入れ子が多くなってしまったが,これでいいのか。
A2: 説明しやすいプログラムはよいプログラムだ,という考えがあります。空行は,自分が読みやすいと思うように入れるとよいです。例えばif や while のかたまり,変数をまとめて初期化している時はそのかたまりが終わる所で空行があると読みやすいと思います。課題1のプログラムは,while が入れ子になっていたのですが,中のwhile文は中にある必要がないので外に出せることを指摘しました。

Q3: ハッシュに存在する値と,ある値のを比較するのにどのように書けばいいか分からない。
A3: ハッシュに存在する値を取り出す方法を たのしいRuby を見て確認してもらいました。

Q4: 計算がうまくいかず,エラーが出る。
A4: エラーに書かれている英単語の意味を調べてもらい,エラーの意味を説明しました。エラーの原因は,計算をする前に変数に値が代入されていないことでした。

Q5: 1)駅名を順番に表示できない。2)ループするたびにスペースを増やす方法が分からない。
A5: 1)プログラムの間違いを指摘して、処理の流れに沿って考えてもらいながら説明しました。 2)変数を使って1ループ毎に空白を増やすやり方を説明しました。

Q6: 存在しない駅名を入力した時に、残りの処理を行わないようにしたい。
A6: 存在しない駅名を判定したときにフラグを立てるやり方を説明しました。

回答(Q1:栗山 Q2-4:安永 Q5-6:門脇)
==============================

プログラミング演習で悩んでいる方が多いようです。
まずは自分でよく考えたり、本やネットで調べたりすることが大事ですが、
どうしてもわからないときはチューターへご質問ください。

(文責:門脇)