お知らせ



下の 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日

(プリントにもいちおう書いてあるのですが、質問が多いので念のため)
ButtonTextFieldなどの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.?????