第8講 関数の学習

第7話 関数の総合演習その2 

V 3次元配列(ポインタのポインタのポインタ)を関数に送る
解答例
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           //ポインタのポインタのポインタの宣言
           int*** a;
           //ポインタのポインタのポインタの初期化
           a=(int*** )malloc(500);
           //ポインタのポインタの初期化
           int i;
           for(i=0;i<5;i++)a[i]=(int** )malloc(100);
           //ポインタの初期化
           int j;
           for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=(int* )malloc(20);

           //文字型変数の宣言と初期化
           String^ w=L"";

           //関数に3次元配列(ポインタのポインタのポインタ)を送る。
           w=f(a);

           //データ表示
           label1->Text=w;

        }

        String^ f(int*** a){
           //変数の宣言
           int i,j,k;
           //文字型変数の宣言と初期化
           String^ w=L"";

           //データの発生
           for(i=0;i<5;i++){
             for(j=0;j<5;j++){
               for(k=0;k<5;k++){
                 a[i][j][k]=25*i+5*j+k+1;
               }
             }
           }

           //データを文字型変数に収納する。
           for(i=0;i<5;i++){
             for(j=0;j<5;j++){
               for(k=0;k<5;k++){
                 if(a[i][j][k]<10)w=w+L"00"+(a[i][j][k]).ToString()+L" ";
                 if(a[i][j][k]>=10 && a[i][j][k]<100)w=w+L"0"+(a[i][j][k]).ToString()+L" ";
                 if(a[i][j][k]>=100 )w=w+(a[i][j][k]).ToString()+L" ";
               }
               w=w+"\n";
             }
             w=w+"\n";
             w=w+"\n";
           }

           //文字型変数を返す。
           return w;

         }


};
}

W 4次元配列(ポインタのポインタのポインタのポインタ)を関数に送る
解答例
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           //ポインタのポインタのポインタのポインタの宣言
           int**** a;
           //ポインタのポインタのポインタのポインタの初期化
           a=(int**** )malloc(2500);
           //ポインタのポインタのポインタの初期化
           int i;
           for(i=0;i<5;i++)a[i]=(int*** )malloc(500);
           //ポインタのポインタの初期化
           int j;
           for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=(int** )malloc(100);
           //ポインタの初期化
           int k;
           for(i=0;i<5;i++)for(j=0;j<5;j++)for(k=0;k<5;k++)a[i][j][k]=(int* )malloc(20);

           //文字型変数の宣言と初期化
           String^ w=L"";

           //関数に4次元配列(ポインタのポインタのポインタ)を送る。
           w=f(a);

           //データ表示
           label1->Text=w;

         }

         String^ f(int**** a){
           //変数の宣言
           int i,j,k,l;
           //文字型変数の宣言と初期化
           String^ w=L"";

           //データの発生
           for(i=0;i<5;i++){
             for(j=0;j<5;j++){
               for(k=0;k<5;k++){
                 for(l=0;l<5;l++){
                   a[i][j][k][l]=125*i+25*j+5*k+l+1;
                 }
               }
             }
           }

           //データを文字型変数に収納する。
           for(i=0;i<5;i++){
             for(j=0;j<5;j++){
               for(k=0;k<5;k++){
                 for(l=0;l<5;l++){
                   if(a[i][j][k][l]<10)w=w+L"00"+(a[i][j][k][l]).ToString()+L" ";
                   if(a[i][j][k][l]>=10 && a[i][j][k][l]<100)w=w+L"0"+(a[i][j][k][l]).ToString()+L" ";
                   if(a[i][j][k][l]>=100 )w=w+(a[i][j][k][l]).ToString()+L" ";
                 }
                 w=w+"\n";
               }
               w=w+"\n";
               w=w+"\n";
             }
             w=w+"\n";
             w=w+"\n";
             w=w+"\n";
          }

          //文字型変数を返す。
          return w;

        }
};
}

実行結果
入門

以上で、第8講は終了します。卒業まで後2講です。がんばりましょう。



第6話へ 第9講第1話へ


025


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



数学研究室に戻る