お知らせ



下の Q&Aで解けない疑問がある場合は、 質問のページへどうぞ。(ただしテスト運営中です。)

2月 23日

第2回レポート提出者へのお知らせ(98年 2月 23日)

2月 13日

質問のページを追加しました。

2月 10日

テスト情報

にテストの配点の情報を加えました。
 

プログラム言語論 II の配布物の Errata(正誤表)

を用意しました。
 

1月 30日

テストの日程

が 2月 17日の 3時限めに決まりました。第 2回目のレポート(印刷した分)はテストのときに答案といっしょに提出してください。
 

次のようなメッセージが出て、プログラムがうまく動作しない場合、

    Exception occurred during XXX
    java.lang.ArrayIndexOutOfBoundsException
            at XXX
 
配列の添字が有効な範囲をこえています。 大きさが nの配列の添字は 0 〜 n-1におさまるように注意してください。
例えば xsが大きさ 4の配列なら、xs[i]という式の iの値は 0 〜 3でなければなりません。
 

同様に次のようなメッセージが出る場合、

    Exception occurred during event dispatching:
    java.lang.IllegalArgumentException: Color parameter outside of expected range: XXX
        at XXX

new Color(_, _, _)のパラメータの範囲が有効な範囲 (0 〜 255)をこえています。この範囲におさまるようにしてください。

しかし、実際にどの式がいけないのか判断するのは、なかなか難しいと思います。あやしいと思った式は次に紹介するSystem.out.printlnを使って値を確認してください。
 

プログラム中の式がどのような値を取っているか知りたい場合

は、System.out.println(_)というメソッド(プリント p.20)が有効です。例えば、プログラムのある地点で i*12がどういう値を取っているか知りたい場合は、その地点に

    System.out.println("値は"+(i*12));

という文を挿入します。 この文を実行したとき i*12の値をコンソール(appletviewerを起動したウインドウ)に表示します。

1月 29日

(プリントにもいちおう書いてあるのですが、質問が多いので念のため)
Buttonや TextFieldなどのGUI部品(5章)を用いて(つまり actionメソッドを用いて)プログラムを作成すると次のような警告メッセージが出ることがあります。

「注意: ***.java は推奨されない API を使用しています。詳細については、"javac -deprecation"コマンドを使用してください。警告 1個」

とりあえず、この警告は無視して構いません。

(実はイベント処理の方法は JDKのバージョンが 1.1になって、JDK 1.0の時と大きく変更になり、イベントハンドラの指定がより柔軟にできるようになりました。そして、古いJDK 1.0方式のイベントハンドラは推奨されなくなりました。しかし、情報処理センターの PCの Netscapeは古いので、JDK 1.1をサポートしていないため、プログラム言語論 IIでは JDK 1.0のイベント処理の方法を扱っています。)

1月 20日

appletviewer と打ち込むのが面倒なので、 apvでアプレットビューワーが起動できるようにしました。


Q & A (Java)

javac, appletviewerが遅すぎます。

センターの PCでは Javaがとてつもなく遅い言語に感じたとしても無理のない話です。

前期(プログラム言語論 I)編


 

10月 2日

Postscript(ps)ファイルがうまく印刷できない場合があるので、配布プリントのファイル形式にPDF形式のものを追加しました。一部フォントにギザギザが目立ちますが、今のところ、うまく印刷できているようです。

 PDFファイルは Netscapeで読もうとすると何故か表示に時間がかかるようなので、アイコンを直接クリックして Acrobat Readerで読んでください。

7月 1日

第1回目のレポートの my-powerの問題で、正解は
(define (my-power x n)
        (if (= x 0) 1
                    (* x (my-power x (- n 1)))))
ですが、これを
(define (my-power x n)
        (if (= x 0) 1
            (> x 0) (* x (my-power x (- n 1)))))
のように書いていた答案がありました。本来は間違いですが、TUT Schemeは後者でも(偶然ですが)うまく動くようなので、いちおう正解とする事にします。レポートのこの部分で減点されている人は申し出てください。 ただし、本番のテストでは間違いとして減点の対象にします。


Q & A (Scheme)

長い式の入力を途中で間違った場合、やり直すのが大変です。

TUT Schemeを使っている人の場合、一度入力した式の編集があとからできないために、苦労している人が多いようです。 そういう人は一度 MIT Schemeを使ってみてください。 または、秀丸などのエディタでさきにファイルを編集してから、loadしてください。

MIT Schemeでは、どうやって式を入力するのですか?

ここを参照してください。

#fと出力して欲しいところが ()になってしまいます。

TUT Schemeや MIT Schemeでは、#fと空リスト"()"を区別しません。このため、(= 1 0)のような式を入力しても、()と出力されます。これは、昔の習慣のなごりが今も続いているものです。

Back to home 


kagawa@ec.?????