第6回は、第3回~第5回まで学習した内容を元に演習問題を解いてもらいます。
もしわからない場合には、前のページに戻り必要な情報を調べてください。調べるのも勉強の1つです。
以下の指示に従ってプログラムを作成しなさい。
なおファイル名はEx06_01.javaとする。
1."0~100"までの素数を表示するプログラムを書きなさい。
素数とは1と自身以外の数以外で割り切れない正の整数のことを言います。
まさかとは思いますが、全てをSystem.out.println("");で表示はしていませんよね。
また、この問題を解く方法にはさまざまあると思います。
ここでは、その1例を紹介しておきます。
boolean型の変数fを宣言します。
このプログラムでは、この変数で素数であるかの判定をします。
ループを使って、2から100までの整数を取得します。
初期値がi=2になっているのは、1は素数でないため、対象から外しています。
まずは変数fをtrueに初期化します。そして、対象数値iを、2からi/2までの整数で割り続けます。
もし割り切れたならiは素数ではないため、fをfalseに変更してループを抜け出します。
fの値で素数であるか判定しています。
if文の場合trueだったら適正と判断します。
fがtrueだったら(素数だったら)System.out.println();を実行し値を表示。
fがfalseだったら(素数ではなかったら)System.out.println();を実行しない。
以下の指示に従ってプログラムを作成しなさい。
なお、ファイル名はEx06_02.javaとする。
底辺と高さを持つ3つの三角形の面積を求めて表示するプログラムを書きなさい。
1.底辺:3cm 高さ:4cm
2.底辺:10cm 高さ:10cm
3.底辺:2.5cm 高さ:8.5cm
ここに書かれているプログラムはあくまで1つの例です。
きちんと演算子で計算を行い、出力結果が出ていれば正解です。
配列とループを使うことで比較的すっきりしたプログラムを書くことができます。
3つの三角形の底辺と高さを2次元配列に格納します。
2次元配列を宣言する方法は
データ型 配列名[][] = { {..}, {..}, {..} };
でした。
面積の計算結果を格納するために、変数resultを宣言します。
三角形の面積は整数だけで表示できるとは限らないのでdouble型を宣言しています。
面積を計算して出力を行います。求める三角形は配列に格納したので、配列の長さ分だけループさせます。
配列の長さはdat.lengthでわかります。そして、変数resultに配列に格納した底辺と高さを使って面積を求めます。
一応書いておきますが、三角形の面積を求める公式は「底辺×高さ÷2」です。最後に結果を表示します。
以下のプログラムの赤線①と②の実行結果を予想しなさい。
これは、配列の知識を確認する問題です。知っていたら簡単な問題です。
これは問題ないでしょう。プログラムの最初で配列array1に格納した値を表示しているだけです。
array1の内容を表示しています。
プログラム上ではarray1の内容を書き換えていないはずですが、1行目の出力結果と異なっています。
これは、array2で配列の内容を書き換えたためです。
問題プログラムの4行目でint array2[] = array1;を行っています。
これは、array1の内容をarray2にコピーしたのではなく、「同じ配列を参照する」という意味です。
そのため、array2で書き換えた結果がarray1に反映されたのです。C言語のポインタに似ています。
Copyright (C) 2011 ほぷしぃ. All Rights Reserved.