Javaプログラミング基礎

演習問題 (基礎クラス向け)

解答は

に提出しなさい。ソースファイル (〜.java) のみを提出。 提出は gFTP 等の ftp ソフトを用いて行ってください。

問題1 (Beginners')

2 つの double 型変数用意し、適当な値を入れておく。 その数自身と、和、差、積、商を表示するプログラムを書きなさい。 プログラム名は AddSubMultiDivide とする。

値を変化させてみて、誤差の様子を観察するとよい。 誤差の様子を見るためには 20 桁以上の数字で出力する必要がある。 例えば、 0.123456789012345678901 が正しく表現できないこと、 非常に近い 2 つの数の差は誤差が大きいことなどが分かるはずである。

なお、次のように System.out.printf を用いると 小数第20位まで表示することができる。

System.out.print("答え: ");
System.out.printf("%.20f", [表示したい値 (double型の値)]);
System.out.println();

問題2 (Beginners')

コマンドライン引数から任意の数の複数の数値を読み込み、 これらの数の平均を求めるプログラムを書きなさい。 プログラム名は AverageFromArgs2 とする。 この問題の考え方は、「コマンドライン引数」の回と同様である。 今回は、平均を浮動小数点数で計算すること。

問題3 (Beginners')

サイコロを3つふり、少なくとも2つのサイコロの目が一致する確率を求めなさい。 ファイル名は Sai2.java とする。 この問題の考え方は、前期の「繰り返し(1)」の回の問題と同様である。 今回は、確率を浮動小数点数で計算すること。

繰り返しによってすべての場合の目の並びを求め、 問題文の条件を満たす目の並びの数を数えることにより求めることができる。 サイコロ 1 個をふって出る目は 1 から 6 の 6 通りである。 これを 1 つの for 文で生成する。 for 文を 3 重にすれば、 すべての目の並びが繰り返しの中に現れるようにすることができる。 この中から、少なくとも 2 つの目が一致する回数を求めればよい。