制御文と配列を用いてオリジナルのJavaアプリケーションによる初級問題 (なるべく短い行数で)を作成し、模範解答例を示せ。併せて、同様な動作を 行うC言語のソースコードを示せ。
・ソースを見て以下の問題に答えなさい。
public class ProRep3 { public static void main(String[] args) { // 一次配列「array」,計算結果を代入する「ave」を宣言。 byte array[] = new byte[4];
(a) ave = 0; //配列arrayの各要素に値を代入。 array[0] = 34; array[1] = 59; array[2] =(b) ; array[3] = 110; //実際に計算します。 for(int i = 0; i \< array.length; i++) { ave += array[i]; } ave /= array.length; //結果を出力。 System.out.println("ave = "+ave); } }
出力結果が「66」のときに、(b)の値と予想される値を答えよ。
出力結果が以下のときの (a)に適している各データ型名をそれぞれ選択せよ。 また、なぜその結果になるのか簡単に説明せよ。
・出力結果 ・データ型 66.25 int B char 66 byte 2 float |
b = 63 解析すると、このプログラムが配列内の各要素の平均値を出力するプロ グラムという事に気ずく。 そこで出力結果が「66」のときとは、4つの各要素の平均が「66」 という事になるので、答えが「63」になる事が分かる。
・出力結果 ・データ型 66.25 → float B → char 66 → int 2 → byte 66.25 : 小数点以下まで出力されているのでfloat が正解。 B : 計算結果に対応した文字が出力されたのでchar が正解。 66 : 少数点以下が省略されている事から整数型のint型 が正解。 2 : 桁もれが起こり結果が違っている。これは8bit以下の計算しか行えないbyte型 が正解。
#include
int main(){ short array[4]; int ave = 0; int i; //配列arrayの各要素に値を代入。 array[0] = 34; array[1] = 59; array[2] = 63; array[3] = 110; //実際に計算します。 for(i=0; i<4; i++){ ave += array[i]; } ave /= 4; //結果を出力。 printf("ave = %d \n",ave); return(0); }
参考 文献,Web : Webページ作りのお勉強:http://masaboo.cside.com/index.htm 独習java第3版 感想 : C言語を忘れていたので 思い出すのに時間がかかった。 ウェブページ作りの分かりやすいぺージを見つけたので、 自分のページをもっときれいにしたいと思います。