レポート提出課題 応用情報処理V(2017)

以下の課題のうち、3つを行うこと。できれば、4つやってください。完成したファイルを「授業支援」にアップロードすること。Eclipseで作成したプロジェクトをエクスポートして、そのフォルダ全体を圧縮して提出してください。エクスポート時に圧縮してもかまいません。レポートの受理通知を行うので、提出したのに受理されていない場合などはメールで講師に連絡してください。3つ以上の課題を行なった場合には、原則として加点します。

送付するファイルは次の要件を満たしていることを原則とする。

eclipse以外での提出も認めますが、その場合は作成したソースファイルなどを、必ず、学籍番号-課題番号 という形式のフォルダに入れ、そのフォルダを部分パスとして含むように圧縮をした結果を添付するのを基準とします。なお、eclipse以外の開発ツールでの提出の場合には、可能な限り事前に相談してください。

課題の締め切りは:2018年2月5日(月曜日)0:00とします

締め切りは確定ではありませんが、講師が成績を提出する時期がこれよりも前であれば、締め切りは前倒しされます。

日本時間で2月4日中であればいいとします。もちろん、それ以前に提出してもらってもかまいません。遅れた場合は採点ができず、原則として不合格となります。

提出結果については、指導が入ることがあります。指導はメールで送ります。ない場合もあります。

課題1

オブジェクト指向の基本的な考え方として、何かのものを属性としてのプロパティ、機能としてのメソッドの集合として捉えることだと説明をした。実際にプログラムをしなくてもいいので、「SUICAなどのチャージして使う電子マネーカード」には、どんなプロパティがあって、どんなメソッドがあるかを分析してみること。記述は任意の形式で構わない。たくさん書いてくれてもいいのだが、チャージできる切符として使える仕組みをカードに持たせるには、カード自身はどんな仕様であるかがまとまっていれば良い。他の機器については詳細には考えなくても良いが、プロパティやメソッドを使う機器が想定できる場合には書き添えても構わない。また、すべての動作原理を知ることはできないので、何らかの「仮定」や「想定」を行っても良いが、その場合は、仮定や想定を記載すること。なお、このレポートはWordで作成したファイルで、上記のプロジェクト名に指定されたファイル名で提出すること。

課題2

整数を要素に持つ配列を定義して、適当な数値を与えておきます。そして、それぞれの数値をコンソールに出力し、同時に奇数なのか偶数なのかを数値の右などに文字で出力するプログラムを作成すること。その上で、奇数と偶数をまとめて出力する。たとえば、4,7,12,17の場合、「奇数は 7 17」「偶数は 4 12」のように出力する。それぞれ2行に分かれてもいいが、奇数あるいは偶数の行は1行で出力すること。最初に与える配列についていくつか異なるもの(要素数が異なるものなど)を与えて、正しい結果が得られる事を確認すること。(ヒント、System.out.printlnは必ず改行が入るが、System.out.printは改行しない)

課題3

ある整数numberに数値を代入する。そして、1からその数値までに存在するすべての整数の合計を求めて標準出力に書き出す。たとえば、number = 4 なら、1+2+3+4=10を求める。もちろん、numberがどんな数でも(とは言っても上限があるが)きちんと求められるようにする。そして、プログラムを発展させて、numberとして与えられるいちばん大きな数値はいくつかを求めるプログラムを作成してみること。1からその数までの合計についても、numberと同じ型の変数を使って計算を求めることにする。とりあえず、numberが、short型でやってみてほしいが、そのほかの整数型でもチャレンジしてもらいたい。たとえば、byte型だと、1〜15の合計は120、1〜16の合計は136となるため、16までの数の合計をbyte型の変数では計算できないことになる。byte型の上限が127であることを思い出そう。判定方法の考え方は、1から順に数値を増やして行って、たとえば16までの合計が、1つ前の数値、つま15までの合計の数値に16を加えたものかどうかを判断する。加えた前後の値を比べて、増加していないか、差が加えた数値と違うなどの理屈に合わない結果となる場面が出てくる。そのときの数値が、上限ということになる。

課題4

やや古いはなしで恐縮だが、世界のナベアツの代表的なネタと言えば「3の倍数と3が付く数字のときだけアホになります」だ。通常は40までだそうだが、100、1000と続けた場合、何回アホにならないといけないかを求めるプログラムを作る。このとき、何回まで続けるかを変数として設定して、100、1000、10000まで数える場合のそれぞれのアホになる回数を、プログラムのコメント欄に記入しておくこと。なお、数値を文字列として扱う方法で回答した場合は、正解とは扱わない。全て数値として扱うこと。

課題5

Chapter 8では、ひとりの人間をオブジェクトとして扱うPersonalityクラスを定義した。このやり方に従って、1冊の書籍を扱うBookというクラスをプログラムをとして作成すること。インスタンス変数として、書籍名、著者名、出版社名、定価、ページ数を定義すること。そして、インスタンス変数の「定価」は税抜き価格だとして、税込み価格を得るメソッドを定義すること。

次のようなプログラムに仕上げる。このBookクラスを使って、手近にある5冊分の本のインスタンスを生成し、その5冊のプログラムの税込み価格の合計を求めて標準出力に表示する。また、書籍名、著者名、税込み価格を、それぞれ「/」で区切って1行に書き、5冊分書籍の一覧表を標準出力に表示する。

課題6

JavaBookの演習問題11-2

課題7

JavaBookの演習問題12-1

課題8

JavaBookの演習問題12-2(もちろん、演習問題12-1をやっている必要がありますが、ここまでできれば課題2つ分とカウントします…という趣旨です)