11/2 配列による画像の表示・条件分岐と繰り返し


前回までの補足


前回の感想,質問より

Q.
講義の進み具合よりも先にスライドを見て進んでしまっているのだが、第2章のスライドの課題もすべて終わっ てしまったので第3章のスライドをアップロードしていただきたいです。
A.
今回,第3章のスライドをアップロードします.スライドは,1回分位は 先行してアップロードするつもりですが,先行して自習するならば教科書をじっくり読む方が身につくかもしれません.
Q.
感想...はじめ、solutionをもとめるところで、分母になる部分をくくっておくのを忘れて、うまく値がはきだされ ないことに気づくのに時間がかかった。自分ではできたと思っていても、このような見落としがあるから、確認 は忘れてはいけないなと感じた。これに気づけたのは隣でやっていた二人のおかげなので、作業において集団で やるということは大事だなと思った。
A.
テストではないので,課題をやる時は相談して構いません.実際のプログラム開発でも,「ペアプログラミング」という形で2人でコミュニケーションを取りながらプログラムをおこなうことで,ミスを減らす試みがおこなわれるようになってきています.
Q.
今日作ったプログラムでは1では二次関数の判別式を計算し、プログラム2ではこの二次関数の解を求め、その 解を代入することで求めた解が正しいことを確認するプログラムである。気になったので、解が虚数解になる (a,b,c)=(1,0,1)を代入してみたら,Numerical argument out of domain と表示されるエラーになった。
A.
複素数は,
include Math
require 'complex'
sqrt(-1)
のようにすると計算できますが,この講義の範囲を超えるので興味がある場合は自分で調べてください.
Q1.
講義の最初に前回の復習のようなことをやっていたがあまりいらなかったと思う。それに時間を取るよりは今回 の講義をもう少し詳しくやったほうがよかった。今回も少しむずかしかったがなんとかついていけた。
Q2.
あと前回の復習ももっとゆっくりやってほしかったです。
A.
両方の要求に答えるのは難しいですね.共通試験までの範囲を終えるには,もう少しペースを早める必要があるので,遅れ気味の人は講義時間以外にも教育用計算機システムを使ってみたり,自宅でRubyを使える環境を用意するなどして,復習した方がより講義時間を有効に使えると思います.
Q.
あと教科書の章末の答えってないんですか。
A.
章末問題は各講義の課題問題で使われる可能性があるので,答えをまとめたも のはありません.また,「正しい答え」も一通りでないというのがプログラム の特徴の一つです.プログラムが正しいかどうかは,入力をいくつか与えて, 想定した値が計算できるかどうかである程度テストすることができます.
Q.
あと家のwindowsパソコンでもこのrubyを使ってみたいのだが、ターミナル?らしいものもないし出来るのだろ > うか、教えていただきたい。
A.
irbとisrbのインストール方法というページに自分のPC上で使う方法が書かれているので試してみてください.
Q.
1.irbで複数の定義した関数を一回でloadしたいのですが、どう入力すればいいでしょうか。
A.
関数ごとにべつべつのファイルにしているということですね.考えられる対策はいくつかあります.
  1. すべてのファイルをloadするファイルを作成する.たとえば,quadall.rbという名前で,
    load("./det.rb")
    load("./solution1.rb")
    load("./solution2.rb")
    load("./quadratic.rb")
    
    のような内容のファイルを作っておくと,
    load("./quadall.rb")
    
    で一度にloadできる.
  2. 1関数1ファイルではなく,まとまった関数は一つのファイルに入れる.たとえば, quadall.rbという名前で,
    include Math
    def det(a,b,c)
     ...
    end
    def solution1(a,b,c)
     ...
    end
    def solution2(a,b,c)
     ...
    end
    def quadratic(a,c,b,x)
     ..
    end
    
    のように複数の関数を入れたファイルを作っておく.

前回の課題について


投票システム

vote.rbをダウンロードして,ホームディレクトリに保存してください.ドックからターミナルを起動して,
ruby vote.rb 選択肢番号
のように使います.

今日の練習,投票

関連リンク


教科書の補足


今日の課題