お知らせ
下の Q&Aで解けない疑問がある場合は、 質問のページへどうぞ。(ただしテスト運営中です。)
2月 23日
第2回レポート提出者へのお知らせ(98年
2月 23日)
2月 13日
質問のページを追加しました。
2月 10日
にテストの配点の情報を加えました。
を用意しました。
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がとてつもなく遅い言語に感じたとしても無理のない話です。
-
(解決法その1)5000円ほど出して 16MB位の RAMを買ってきて、PCにさしてください
:-)
-
(解決法その2)上の方法が取れない人は、できるだけ開くウインドウの数を少なくするようにしてください。
センターの PCでは、フォルダをダブルクリックすると新しい窓を開く設定になっています。
CTRLキーを押しながらフォルダをダブルクリックすると新しい窓を開かず、その場でフォルダの内容を表示します。この場合、元の(1つ上の)フォルダを表示するためには、バックスペース(BS)キーを押します。
前期(プログラム言語論 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.?????