第11講 配列を関数に送る
第6話 2次元配列の引数を2つにしての演算
解答コード例
class u{
public static void main(String args[]){
int[][] x=new int[4][4];
int[][] y=new int[4][4];
int[][] z=new int[4][4];
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
x[i][j]=(int)(Math.random()*100);
y[i][j]=(int)(Math.random()*100);
}
}
System.out.println("配列xのデータ");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=10 && x[i][j]<100){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=100 && x[i][j]<1000){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>1000){
System.out.print(x[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
System.out.println();
System.out.println("配列yのデータ");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(y[i][j]<10){
System.out.print (" ");
System.out.print(y[i][j]);
System.out.print (" ");
}
if(y[i][j]>=10 && y[i][j]<100){
System.out.print (" ");
System.out.print(y[i][j]);
System.out.print (" ");
}
if(y[i][j]>=100 && y[i][j]<1000){
System.out.print (" ");
System.out.print(y[i][j]);
System.out.print (" ");
}
if(y[i][j]>1000){
System.out.print(y[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
System.out.println();
f(x,z);
System.out.println("配列zにコピー");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=10 && x[i][j]<100){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=100 && x[i][j]<1000){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>1000){
System.out.print(x[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
System.out.println();
System.out.println("配列xと配列yのデータを加える");
h(x,y);
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=10 && x[i][j]<100){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=100 && x[i][j]<1000){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>1000){
System.out.print(x[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
g(x,z);
System.out.println();
System.out.println("配列xの復元");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=10 && x[i][j]<100){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=100 && x[i][j]<1000){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>1000){
System.out.print(x[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
System.out.println();
System.out.println("配列xと配列yのデータを掛ける");
i(x,y);
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=10 && x[i][j]<100){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=100 && x[i][j]<1000){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>1000){
System.out.print(x[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
g(x,z);
System.out.println();
System.out.println("配列xの復元");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=10 && x[i][j]<100){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=100 && x[i][j]<1000){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>1000){
System.out.print(x[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
System.out.println();
System.out.println("配列xと配列yのデータの差を取る");
j(x,y);
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=10 && x[i][j]<100){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>=100 && x[i][j]<1000){
System.out.print (" ");
System.out.print(x[i][j]);
System.out.print (" ");
}
if(x[i][j]>1000){
System.out.print(x[i][j]);
System.out.print (" ");
}
}
System.out.println();
}
}
public static void f(int x[][],int z[][]){
int i,j;
for(i=0;i<4;i++)for(j=0;j<4;j++)z[i][j]=x[i][j];
}
public static void g(int x[][],int z[][]){
int i,j;
for(i=0;i<4;i++)for(j=0;j<4;j++)x[i][j]=z[i][j];
}
public static void h(int x[][],int y[][]){
int i,j;
for(i=0;i<4;i++)for(j=0;j<4;j++)x[i][j]=x[i][j]+y[i][j];
}
public static void i(int x[][],int y[][]){
int i,j;
for(i=0;i<4;i++)for(j=0;j<4;j++)x[i][j]=x[i][j]*y[i][j];
}
public static void j(int x[][],int y[][]){
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]>=y[i][j])x[i][j]=x[i][j]-y[i][j];
if(x[i][j]<y[i][j])x[i][j]=y[i][j]-x[i][j];
}
}
}
}
さて、本講最後の課題です。
3次元配列x、y、zを用意して、今話で行ったのと同様のことをやってみましょう。
3次元データの表示は
第7講 for文を理解しよう(多次元ループ)
第5話 3次元ループによる年間成績一覧表作成
を参照して、工夫をしましょう。
(実際には1列)
第5話へ 第7話へ
VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門
基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門
基礎から応用まで第2部
初心者のための
VC++による C言語 入門 C++ 入門 基礎から応用まで第3部