1月26日の業務報告

こんばんは、M1の岩井です。

本日はプログラミング演習IIの質問が1件ありました。
=======================
<プログラミング演習Ⅱ>
Q1:x(変数)に0.1ずつ足して繰り返し処理をしたいが、足し算の結果が思う通りにならない。
A1:簡単な繰り返しプログラムを書いて、0.1ずつ足していくときxの値が0.1, 0.2, 0.3…とならないことを確認し、どうすればよいか考えました。

回答 Q1:林
=======================

プログラミング豆知識のコーナー
『プログラムの中の少数』

プログラミングは少数を扱うのが苦手です。
少数で足し算や引き算をしようとすると、人間なら簡単にできるはずの0.1+0.2とかでも誤差を出してしまいます。
なんでかというと少数をビットで表したりするときにいろいろ難しいことがあって、難しくなるので気になる人は調べてみてください。
とにかく、「プログラムで少数を扱おうとすると誤差を出してしまう」ということだけは覚えておくといいです。

じゃあどうすればいいかっていうと
0.1+0.2をするのと、1+2したあと10で割るのとは計算結果は変わらないですよね。
「少数同士の足し算」は誤差を引き起こしてしまうので、それがないように計算式を書いてやればこの問題は解決です。
3を10で割る過程では誤差の起こりようがないので、
少数を使いたいときは整数を準備して、それから小数点の位置に合わせて10で割るようにするといいです。

~今日の豆知識まとめ~
・プログラムは少数を扱うのが苦手
・少数で足し算引き算をすると誤差がでることがある
・ギリギリまで整数にしといて、必要な場面でだけ10(10のn乗)で割ってうまいこと使おう

(文責:岩井)

1月25日の業務報告

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

本日はプログラミング演習IIの質問が1件ありました。
=======================
<プログラミング演習Ⅱ>
Q1:課題Cに関して、whileの繰り返しの中でinclude?を用いて条件分岐する方法がわからない。
A1:include?の返り値はtrueかfalseなので、それを利用した条件分岐が書けるということを説明しました。値に一致するものだけに処理を行いたいのならtrue、不一致な場合ならfalseとinclude?の結果が一緒であれば良いということを確認しました。

回答 Q1:尾澤、鈴木
=======================

include?()は()内の値と一致するものが存在するかどうかを確かめるメソッドです。楽しいRubyにはハッシュ、文字(String)、モジュールについてしか説明されていませんが、配列にも使えます。

また、条件分岐の条件にメソッドを使う場合は、その返り値をよく確かめましょう。
この返り値と条件がうまくかみ合わないとエラーになったり、思うような結果が出ないという問題が起きます。
例えば、include?メソッドはtrue/false、splitメソッドは配列、subメソッドは文字列を返します。

楽しいRubyでは個々のメソッドについて省略されているところもありますので、分からない場合はRubyレファレンス等のレファレンスサイトを参考にすると良いでしょう。
もちろんチューターに聞いてもらっても大丈夫ですが、自分1人の時でも調べられるようにしておく、ということも大切です。

最終レポートまであと少し!頑張りましょう

(文責:鈴木)

1月22日の業務報告

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

本日はプログラミング演習IIの質問が1件ありました。
=======================
<プログラミング演習Ⅱ>
Q1:課題Cに関して、要件を満たす表示はできたものの、プログラム中に同じようなことを何回も書いていて綺麗ではないし、深さが7までしか対応できていない。改善するにはどうすればいいか。
A1:同じことが何回も出てきているならその部分をメソッドにしてみることが基本で、今回はさらにそれを「再帰的」に使うとうまくいくという説明をしました。そのうえで、どの部分がメソッドとしてまとめられるか考えてもらうよう伝えました。

回答 Q1:岩井
=======================

上記の質問の答えにもありますが、プログラム中で繰り返す処理があれば一つのメソッドとしてまとめるのが基本です。(冗長化を避ける)
そうする事で可読性が高まり、デバッグもしやすくなります。
最初から処理をまとめて考えるのが難しい人は、繰り返しを考慮せずにプログラムを書いた後、重複する部分を少しづつまとめるようにすると良いでしょう。

(文責:鈴木)

1月21日の業務報告

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

本日は質問がありませんでした。

最近プログラミング演習の質問が増えてきています。
最終レポート(授業時間内にプログラムを完成させる)は、教科書(楽しいRuby)、参考書(レシピブック等)、web検索を用いて解法を調べることは可能ですが、SNSでのやり取りを含む「人に聞く」ということはできません。

備えとして、エラー文の意味、メソッド等の意味を確認しておくと共に、「わからないこと」が起こった時の「調べ方・検索ルート」を確立しておくのが良いと思います。
例えば、見たことがないエラー文が表示されたとき、どうしますか?
また、やりたいことを実現できるメソッドを見つけられますか?

分からない部分は今のうちにつぶしておきましょう。
もちろんKLCへの質問も大歓迎です!お待ちしています

(文責:鈴木)

1月20日の業務報告

こんばんは、B4の榎本です。

本日はプログラミング演習IIの質問が2件ありました。
=======================
<プログラミング演習Ⅱ>
Q1:”変数に格納した値と文字列「+」を足し合わせようとするとエラーが出る,浮動小数点数の計算がずれる”
A1:”変数の中身が浮動小数点数で、「+」が文字列であったためそれを一緒に確認しました。浮動小数点数の丸め誤差によるものであると説明しました。”

Q2:小数点以下の桁を揃えるにはどうすれば良いか。
A2:たのしいRubyのp.278にあるprintfメソッドを参照するよう伝えました。

回答 Q1:尾澤、Q2:榎本
=======================

演習課題の答えがテキストに書いてあるからといって、
演習問題を解かないで課題に取り組むのはやめましょう。
実際に取り組んでみて、どのような挙動をするのか理解しないと、
行き当たりばったりで余計に時間が掛かってしまいます。

(文責:榎本)