コンピュータ基礎および演習II

演習問題(中級・上級)

解答は earth.mlab.im.dendai.ac.jp/home/submit/1I-Computer2/[初級の出題日]/[学籍番号] のディレクトリに提出しなさい。 ソースファイル (〜.java) のみを提出すること。

ファイルの送信には ftp ソフトを用いる。 Linux の gFTP を使った提出方法 (実験室のマニュアル) を参照すること。

なお、中級・上級問題は楽しめる範囲で取り組めばよい。

- 演算と条件判定

問題1

授業中示した 3 つの値の最大値を求めるプログラム (3 種類のどれでも良い) を改造して、どの変数が最大だったか、その変数名を表示するようにしなさい。 ファイル名は MaxVariable.java とする。

この問題の解法は何通りか考えられる。 ひとつの方法は、どれが最大値だったかの情報を変数に記録しておく方法である。 たとえば、 x が最大なら isXMax = true, 最大でないなら isXMax = false などとする。

もう一つの方法として、最大値を求めた後で、それが x に等しいか、 y に等しいか、 z に等しいか、と調べるやり方も可能である。

もちろん、これ以外の方法を用いても良い。

問題2

3 つの値 x, y, z の中央値(メジアン)を求めて出力するプログラムを作成しなさい。 なお中央値とは、データを大きさの順に並べたときに中央の順位にくる値である。 3 つの値はすべて異なるものとする。 プログラム名は Median3 とする。

問題3

問題3-1

あなたは、単位をとれる人が定期試験でどんな点数をとっているのか調べたくなった。 そこで、定期試験の点数が60点以上の人の平均点を求めることにした。 得点 89, 55, 32, 93, 60 の人がいたとして、 はじめにこれらの点数を 5つの int 型の変数に代入しておくこと。

なお、平均をとる場合には対象の人数を数える必要がある。 人数を数えるための変数を用意し、 その変数をインクリメント演算子(++)で1ずつ増やすことにより、 人数を数えること。

プログラムの名前は AverageOfSuccessor とする。

問題3-2

あなたは定期試験に臨み、85点をとったとする。 他の人の得点が 問題3-1 の通りだとすると、あなたは何位になるか求めなさい。

なお、順位とは自分より高い点を取った人の人数 + 1 である。

プログラムの名前は YourRank とする。