第11講 配列を関数に送る 
第6話 2次元配列の引数を2つにしての演算
Java
解答コード例
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次元ループによる年間成績一覧表作成
を参照して、工夫をしましょう。

入門 Java 初心者 基礎 はじめての

(実際には1列)

第5話へ 第7話へ

戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部