レポート課題3
- 以下の設問に解答してください。
- 締め切り:7月12日(火曜日クラス)、7月13日(水曜日クラス)23時59分59秒まで。
- CFIVEでファイルのzipアーカイブ(第9回の講義を参照)提出す
ること。
- zipコマンドを使ってディレクトリごとアーカイブする場合は、-r オプションを忘れないこと。
- 提出する前にそのアーカイブに必要なファイルが入っているかどうか確認すること。
- 確認方法
- report3.zipがアーカイブと仮定します。
- unzip -t report3.zip とタイプするとアーカイブの中のファイルのリストを表示します。
講義を聞いたけれどもJava言語がよくわからない、あるいは、Java言語についてもっと詳しく知りたい人はHWB26.1「一歩一歩Java」を参考にしてください)
特に、文系クラスの皆さん、わからないときは些細なことでもメールで質問してください。他の人もたくさん質問をしていますので、長い間悩まずに質問するようにしてください。その際に注意ですが、エラーを報告するだけでなく、ソースコードを送ってくれると詳しいアドバイスができます。
よくある質問(FAQ)に対する回答をこちらに掲示しました。
以下の設問のいずれか一つを選択し、解答すること。Extra Creditが欲しい場合は、両方解答しても構いません。
- CFIVEで提出する際に、1と2のどちらを選択(あるいは両方)したかがわかるように登録してください。
- 講義で用いた「Zellerの公式」は既知のものとし、証明なしに使って良いものとします。また講義で用いた演習の回答も使って構いません。
- それぞれの問題を解く際には、Javaのプログラムを書き、Javaプロ グラムのソースファイル、および、結果を示したテキストファイルをzip形式でアーカイブしたもの、を提出してください。
- 両方解答する場合は、1,2のそれぞれのファイルをサブディレクトリ1,2に保存し、全体をzipコマンドでアーカイブしてください。
- 他人のプログラムを複製した場合は厳罰に処します。
- 質問の状況次第では来週の講義で少しヒントを出します。
1. 「今後(2005年1月1日以降)100年間は、13日が金曜日であることが(他の曜日であることよりも)多い」かどうかを調べるJavaプログラムを書き、真偽の結論を根拠とともに示してください。「13日の金曜日が多い」というためには、「13日の木曜日よりも金曜日となる場合の方が多い」、そして、他の金曜日以外の曜日に関しても同じことが言えなくてはなりません。
2. 東京大学に通うA君は、情報処理の講義で習った曜日の計算方法を用いて、今後100年間(2005年1月1日から2104年12月31日まで)のために、1年間カレンダー(1枚に12ヶ月のカレンダーを印刷したもの)を印刷しようと考えました。節約家の賢いA君は、年号を印刷しなければ、ある年のカレンダーは他の年のカレンダーと全く同じになるため、100枚のカレンダーを印刷しなくても良いことに気がつきました。さて、最低何枚のカレンダーを印刷すればよいでしょうか?。また、それぞれのカレンダーを合計何年間使用することになるでしょうか?Javaプログラムを書き、結論を根拠とともに示してください。
注意:火曜日クラスで講義中に公開したZeller3.javaをダウンロードした人は、間違いがありましたので、再度ダウンロードして、課題に使用するようにしてください。現在のZeller3.javaは修正されています。(6/29 8:00AM)。
また、講義資料の「クラスとメソッド」を自習した人用に、Zeller3Alt.java (Zeller3 Alternative)を用意しました。