11/16 並行プログラミング・ネットワークプログラミング


質問と回答

Q.
11/9の課題のCで,以下のようなプログラムを作ったのですが,コンパイルしたら、「変数d1は初期化されていない可能性があります。」と表示されて、どう直したら良いのかわかりません。
    int d1,d2,d3,d4,k;
    for(int m=0;m<1 a.length;m++){
	int n1=a[m];
	for(k=0;k<9;k++){
	    int i=n1.charAt(k);
	    String s=Integer.toString(i);
	    if(s.equals("m"))
		d1=n1.charAt(k-1)*1000;
	    if(s.equals("c"))
		d2=n1.charAt(k-1)*100;
	    if(s.equals("x"))
		d3=n1.charAt(k-1)*10;
	    if(s.equals("i"))
		d4=n1.charAt(k-1);
	}
	int number1=d1+d2+d3+d4;
        // (略)
    }
A.
n1の中に"m"が現れなかった時,number1の計算をする時に,d1には一度も代入されていない可能性があるということを指摘しているエラーメッセージです."m"が現れなかったとき,1000の桁は0なので,d1にはあらかじめ何を入れておけば良いかわかりますね.
Q.
11/2の課題の Gamesolver.javaの(4)について「NextQuestionとの関係を求める」というコメントの意味がわかりません。
A.
コメントの
// nextQuestion と正解集合との間の関係を求める
というのは確かに分かりにくかったので,
//正解と文字列nextQuestion を比較して,判定結果を得る.
に変更しました.Problemクラスの対応するコメントを探せば,何を入れれば良いか分かると思います.

たとえば,HighLowProblemの時は,typeに

0 - nextQeustionが正解の時
1 - nextQuestionがVERY LOWの時
2 - nextQuestionがLOWの時
3 - nextQuestionがHIGHの時
4 - nextQuestionがVERY HIGHの時
を入れたいということになります.

過去の課題について


今日の内容


今日の課題