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

演習問題

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

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

- 演算と条件判定

問題1

1 つの int 型変数を用意し適当な値を入れておき、 その絶対値を出力するプログラムを書きなさい。 プログラム名は Absolute とし、 ファイル名は Absolute.java とする。

なお、値の符合 (正負) を反転させるには、 演算子「 - 」を使う。 例えば、変数 a の正負を反転させるには、 -a のように書く。

問題2

1 つの int 型変数を用意し適当な値を入れておき、 それが「正の数」であるか、「0」か、「負の数」であるか 3 通りに判定し、 判定結果を出力するプログラムを書きなさい。 プログラム名は PositiveZeroNegative とし、 ファイル名は PositiveZeroNegative.java とする。

問題3

3 つの int 型変数を用意し適当な値を入れておき、 それらが次のどのケースに該当するかを出力するプログラムを書きなさい。 プログラム名は ThreeCases とし、 ファイル名は ThreeCases.java とする。

(1) 3 つの値がすべて異なる
(2) 3 つとも同じ値である
(3) 2 つの値は同じだが、もう一つは異なる

このような場合分けを行う方法はいくつかあるが、 ひとつの方法として、3 つの値がすべて異なるか、 3 つの値がすべて等しいか、それ以外か、 という方針で場合分けを行うことが考えられる。 この 3 通りの判定を、 ifelse ifelse を用いて書くことを考えてほしい。

問題4

int 型変数を用意し適当な値を入れておき、 その西暦年がうるう年か判定し結果を表示するプログラムを作りなさい。

このプログラムを以下の 2 通りの考え方で作成することを考えてほしい。

問題4-1

うるう年とは、次のような条件を満たす年として表現できる。

上の表現にもとづく条件分岐を if 文の入れ子として記述し、 うるう年か判定するプログラムを作成しなさい。 プログラム名は LeapYear1 とし、 ファイル名は LeapYear1.java とする。

問題4-2

うるう年かどうかの条件を 「かつ」や「または」の論理的な結び付きを用いて整理すると、 次のように表現することもできる。

上の表現にもとづき、 &&|| を用いた条件判定を記述した if 文を作成し、 うるう年を判定するプログラムを作成しなさい。 プログラム名は LeapYear2 とし、 ファイル名は LeapYear2.java とする。