第11講 配列を関数に送る
第7話 3次元配列の引数を2つにしての演算
(実際には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部