○課題

制御文と配列を用いてオリジナルの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); } }

○問題

 ・問1

   出力結果が「66」のときに、(b)の値と予想される値を答えよ。


 ・問2

   出力結果が以下のときの (a)に適している各データ型名をそれぞれ選択せよ。
      また、なぜその結果になるのか簡単に説明せよ。

・出力結果   ・データ型 
 66.25         int
    B           char
   66           byte
    2           float

○解答

 ・問1

    b = 63 

   解析すると、このプログラムが配列内の各要素の平均値を出力するプロ
   グラムという事に気ずく。
   そこで出力結果が「66」のときとは、4つの各要素の平均が「66」
   という事になるので、答えが「63」になる事が分かる。


 ・問2

・出力結果   ・データ型
 66.25   →    float
    B     →    char
   66     →    int
    2     →    byte


66.25   :   小数点以下まで出力されているので float が正解。
    B   :   計算結果に対応した文字が出力されたので char が正解。
   66   :   少数点以下が省略されている事から整数型の int型 が正解。
    2   :   桁もれが起こり結果が違っている。これは8bit以下の計算しか行えない byte型 が正解。



○C言語ソース

#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言語を忘れていたので 思い出すのに時間がかかった。
ウェブページ作りの分かりやすいぺージを見つけたので、
自分のページをもっときれいにしたいと思います。