Report#4

1.課題

    制御文と配列を用いてオリジナルのJavaアプリケーションによる初級問題(なるべく短い行数で)を作成し、模範解答例を示せ。併せて、同様な動作を行うC言語のソースコードを示せ。

2.解答・考察

Java初級問題

・ソースコード
public class Exam {
    public static void main(String args[]) {
 
        int array1[] = { 3, 5, 8, 0, 11, 2, 1, 10, 7, 9, 6, 4 };
        int array2[][] = { {2, 11, 9, 10}, {4, 6, 0, 5}, {3, 8, 1, 7 } };
 
        for(int i=0; i<4; i++){
            if(array1[i] > array2[i][i]){
	            array1[i] += array2[i][i];
                System.out.println("array1[" + i + "] = " + array1[i]);
	        }
        }
    }
}
    

・問題
出力結果を画面に表示される通りに示せ。
・解答
array1[0] = 5
array1[2] = 9
      
・解説
はじめに1次元配列と2次元配列を宣言し,0~11までの数字を代入し初期化している。
次にforを使って2つの配列のi番目の要素(最初の要素は0番目)どうしを加算する処理を
4回繰り返す。その処理の間、array1[i]の要素がarray2[i][i]の要素よりも大きい時
だけ、array1[i]の要素を出力するので1回目と2回目の処理、すなわち下の場合のように
1回目 array1[0](3) > array2[0][0](2)
3回目 array1[2](8) > array2[2][2](1)
となったときに出力される。

同様に動作するCプログラム

ソースコード(Exam.c)
#include

int main(){
	
	int array1[] = { 3, 5, 0, 8, 11, 2, 1, 10, 7, 9, 6, 4 };
    int array2[][] = { {2, 6, 9, 10}, {4, 11, 0, 5}, {3, 8, 1, 7 } };
 
        for(int i=0; i<4; i++){
             array1[i] += array2[i][i];
 
             if(array1[i] > array2[i][i])
				printf("array1[%d] = %d", i, array1[i]);
	    }
	
}
      

3.感想・反省

今回の課題は自分でオリジナルの問題を作るところが難しかった。なるべく難しく作りたかったのだが,こんな↑ものしか出来なかった。
先生達の苦労がわかった気がした。あと、C言語をの使い方を忘れていて、コンパイルもままならなかったのには本当に反省した。


バグ (bug)
蟲^@^@^@とかにWOP蝋さ^H@アるのでも^H?3OUIしなら非常に困り^Lsegmentation fault

参考資料・参考サイト