Report#4
1.課題
- JavaアプリケーションとC言語のオリジナル問題作成と解答例
制御文と配列を用いてオリジナルの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
参考資料・参考サイト