第11講 配列を関数に送る 
第7話 3次元配列の引数を2つにしての演算

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

(実際には1列)
解答コード例
class f{
  public static void main(String args[]){
    int[][][] x=new int[3][3][3];
    int[][][] y=new int[3][3][3];
    int[][][] z=new int[3][3][3];
    int i,j,k;
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          x[i][j][k]=(int)(Math.random()*100);
          y[i][j][k]=(int)(Math.random()*100);
        }
      }
    }
    System.out.println("配列xのデータ");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("配列yのデータ");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(y[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=10 && y[i][j][k]<100){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=100 && y[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>1000){
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    f(x,z);
    System.out.println("配列zにコピー");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("配列xのデータ");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("配列yのデータ");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(y[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=10 && y[i][j][k]<100){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=100 && y[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>1000){
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("xとyの和");
    h(x,y);
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    g(x,z);
    System.out.println("配列xの復元");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("配列yのデータ");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(y[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=10 && y[i][j][k]<100){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=100 && y[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>1000){
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("xとyの積");
    i(x,y);
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    g(x,z);
    System.out.println("配列xの復元");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("配列yのデータ");
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(y[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=10 && y[i][j][k]<100){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>=100 && y[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
          if(y[i][j][k]>1000){
            System.out.print(y[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
    System.out.println("xとyの差");
    j(x,y);
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]<10){
            System.out.print ("  ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=10 && x[i][j][k]<100){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>=100 && x[i][j][k]<1000){
            System.out.print (" ");
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
          if(x[i][j][k]>1000){
            System.out.print(x[i][j][k]);
            System.out.print (" ");
          }
        }
        System.out.println();
      }
      System.out.println();
    }
  }
  public static void f(int x[][][],int z[][][]){
    int i,j,k;
    for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)z[i][j][k]=x[i][j][k];
  }
  public static void g(int x[][][],int z[][][]){
    int i,j,k;
    for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)x[i][j][k]=z[i][j][k];
  }
  public static void h(int x[][][],int y[][][]){
    int i,j,k;
    for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)x[i][j][k]=x[i][j][k]+y[i][j][k];
  }
  public static void i(int x[][][],int y[][][]){
    int i,j,k;
    for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)x[i][j][k]=x[i][j][k]*y[i][j][k];
  }
  public static void j(int x[][][],int y[][][]){
    int i,j,k;
    for(i=0;i<3;i++){
      for(j=0;j<3;j++){
        for(k=0;k<3;k++){
          if(x[i][j][k]>=y[i][j][k])x[i][j][k]=x[i][j][k]-y[i][j][k];
          if(x[i][j][k]<y[i][j][k])x[i][j][k]=y[i][j][k]-x[i][j][k];
        }
      }
    }
  }
}

これで配列を関数に送るの講は終わりにします。
次講では、データの並び替えに挑戦します。




第6話へ 第12講第1話へ

戻る

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

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