第29講 細胞構成法による魔方陣の作成の普遍化△

第6話 
普遍暫定版のコード解説
コード再掲
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
            label2->Text=L"";
            DateTime^ hj=DateTime::Now;
            n=int::Parse(textBox1->Text);
            char h=1,hh;
            if(n<3 || n>30 || (n%4==0 && n>4) || n==18){
              label2->Text=L"TextBoxには3以上30以下で8,12,16,18,20以外の整数\r\nを入力し再度実行ボタンを\r\n押して下さい。";
              h=0;
            }
            if(h==1 && (n==3 || n==4)){
              s=0;
              cn=0;
              gkh=0;
              syokika();
              if(n==3)g1(n);
              if(n==4)g2(n);
              f1(0);
              array<String^>^ w=gcnew array<String^>(31);
              int i;
              w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
              for(i=0;i<25;i++)w[i]=L"";
              dataGridView1->Rows->Add(w);
              DateTime^ ow=DateTime::Now;
              TimeSpan sa=ow->Subtract(*hj);
              w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
              for(i=0;i<25;i++)w[i]=L"";
              dataGridView1->Rows->Add(w);
            }

            if(h==1 && n!=3 && n%2==1){
              gkh=0;
              s=0;
              cn=0;
              hh=sh();
              if(hh==0){
                kf1(0);
                array<String^>^ w=gcnew array<String^>(31);
                int i;
                w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
                DateTime^ ow=DateTime::Now;
                TimeSpan sa=ow->Subtract(*hj);
                w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
              }

              if(hh==1){
                s=0;
                cn=0;
                if(n%2==1)g1(n);
                if(n%2==0)g2(n);
                syokika();
                f0(0);
                array<String^>^ w=gcnew array<String^>(31);
                int i;
                w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
                DateTime^ ow=DateTime::Now;
                TimeSpan sa=ow->Subtract(*hj);
                w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
              }
            }

            if(h==1 && n>4 && n%2==0){
              gkh=1;
              kz=0;
              n=n/2;
              s=0;
              cn=0;
              syokika();
              if(n%2==1)g1(n);
              if(n%2==0)g2(n);
              zhy();
              sbs(0);
              sbg(0);
              array<String^>^ w=gcnew array<String^>(31);
              int i;
              w[25]=(2*n).ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
              for(i=0;i<25;i++)w[i]=L"";
              dataGridView1->Rows->Add(w);
              DateTime^ ow=DateTime::Now;
              TimeSpan sa=ow->Subtract(*hj);
              w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
              for(i=0;i<25;i++)w[i]=L"";
              dataGridView1->Rows->Add(w);
            }
          }
          void f00(int g){
                   ・
                   ・
                   ・
            if(h==1){
              if(g+1<n){
                f00(g+1);
              }
              else{
                for(j=1;j<n;j++){  
                  for(k=0;k<n;k++){
                    l=(3*j+k)%n;
                    a2[j][l]=a2[0][k];
                  }
                }
                if(gkh==1){
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      for(l=0;l<2;l++){
                        for(o=0;o<2;o++){
                          mah[2*j+l][2*k+o]=4*(n*a1[j][k]+a2[j][k])+a3[2*j+l][2*k+o];
                        }
                      }
                    }
                  }
                  array<String^>^ w=gcnew array<String^>(30);
                  for(j=0;j<2*n;j++){
                    for(k=0;k<2*n;k++){
                      w[k]=(mah[j][k]).ToString();
                    }
                    dataGridView1->Rows->Add(w);
                  }
                  for(j=0;j<30;j++)w[j]=L"";
                  dataGridView1->Rows->Add(w);
                }
                if(gkh==0){
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                    }
                  }
                  array<String^>^ w=gcnew array<String^>(30);
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      w[k]=(mah[j][k]).ToString();
                    }
                    dataGridView1->Rows->Add(w);
                  }
                  for(j=0;j<30;j++)w[j]=L"";
                  dataGridView1->Rows->Add(w);
                }
                s++;
                if(s==100)return;
              }
            }
          }
                  ・
                  ・
                  ・
          void sbg(int g){
                  ・
                  ・
                  ・

             if(h==1){
               if(g+1<n*n){
                 sbg(g+1);
               }
               else{
                 if(n!=3 && (n!=4 || gkh==0))f0(0);
                   if(n==3)f1(0);
                   if(n==4 && gkh==1)f1(0);
                 }
               }
             }
          }
          void f2(int g){
                  ・
                  ・
                  ・
            if(g<n*n-1){
              f2(g+1);
            }
            else{
              if(n!=3 && gkh==1){
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                    for(l=0;l<2;l++){
                      for(o=0;o<2;o++){
                        mah[2*j+l][2*k+o]=4*(n*a1[j][k]+a2[j][k])+a3[2*j+l][2*k+o];
                      }
                    }
                  }
                }
                array<String^>^ w=gcnew array<String^>(30);
                for(j=0;j<2*n;j++){
                  for(k=0;k<2*n;k++){
                    w[k]=(mah[j][k]).ToString();
                  }
                  dataGridView1->Rows->Add(w);
                }
                for(j=0;j<30;j++)w[j]=L"";
                dataGridView1->Rows->Add(w);
                s++;
                if(s==100)return;
              }
              if(n!=3 && n!=4 && gkh==0){
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                    mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                  }
                }
                array<String^>^ w=gcnew array<String^>(30);
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                    w[k]=(mah[j][k]).ToString();
                  }
                  dataGridView1->Rows->Add(w);
                }
                for(j=0;j<30;j++)w[j]=L"";
                dataGridView1->Rows->Add(w);
                s++;
                if(s==100)return;
              }
              if(n==3 && gkh==0){
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                    mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                  }
                }
                array<String^>^ w=gcnew array<String^>(30);
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                     w[k]=(mah[j][k]).ToString();
                  }
                  dataGridView1->Rows->Add(w);
                }
                for(j=0;j<30;j++)w[j]=L"";
                dataGridView1->Rows->Add(w);
                s++;
                if(s==100)return;
              }
              if(n==4 && gkh==0){
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                    mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                  }
                }
                array<String^>^ w=gcnew array<String^>(30);
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                    w[k]=(mah[j][k]).ToString();
                  }
                  dataGridView1->Rows->Add(w);
                }
                for(j=0;j<30;j++)w[j]=L"";
                dataGridView1->Rows->Add(w);
                s++;
                if(s==100)return;
              }
              if(n==3 && gkh==1){
                for(j=0;j<n;j++){
                  for(k=0;k<n;k++){
                    for(l=0;l<2;l++){
                      for(o=0;o<2;o++){
                        mah[2*j+l][2*k+o]=4*(n*a1[j][k]+a2[j][k])+a3[2*j+l][2*k+o];
                      }
                    }
                  }
                }
                array<String^>^ w=gcnew array<String^>(30);
                for(j=0;j<2*n;j++){
                  for(k=0;k<2*n;k++){
                    w[k]=(mah[j][k]).ToString();
                  }
                  dataGridView1->Rows->Add(w);
                } 
                for(j=0;j<30;j++)w[j]=L"";
                dataGridView1->Rows->Add(w);
                s++;
                if(s==100)return;
              } 
                   ・
                   ・
                   ・
複雑すぎるコードを解説していきましょう。
尚、もっとすっきりしたコードが思い浮かんだ方はメールに添付して送っていただけると、ありがたいです。
お名前またはHNを明記の上紹介させていただきます。
もっと簡単なコードがあるはずですが、
ぼんくらな私の頭では現時点では思いつきません。
ただ、凡庸な頭でも粘り強く考えていると、思い浮かぶこともありますので、
もし思いついたら、そのコードをアップしたいと思います。

まず、
           if(h==1 && (n==3 || n==4)){
             s=0;
             cn=0;
             gkh=0;
             syokika();
             if(n==3)g1(n);
             if(n==4)g2(n);
             f1(0);
             array<String^>^ w=gcnew array<String^>(31);
             int i;
             w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
             for(i=0;i<25;i++)w[i]=L"";
             dataGridView1->Rows->Add(w);
             DateTime^ ow=DateTime::Now;
             TimeSpan sa=ow->Subtract(*hj);
             w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
             for(i=0;i<25;i++)w[i]=L"";
             dataGridView1->Rows->Add(w);
           }
3次または4次の場合のコードです。
この場合は、末項確定法を利用しています。
末項確定法で、

2 9 4
7 5 3
6 1 8
3 13 10 8
16 2 5 11
6 12 15 1
9 7 4 14

3次魔方陣と4次魔方陣をf1()とf2()でつくり、f2()の
             if(n==3 && gkh==0){
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                   mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                 }
               }
               array<String^>^ w=gcnew array<String^>(30);
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                    w[k]=(mah[j][k]).ToString();
                 }
                 dataGridView1->Rows->Add(w);
               }
               for(j=0;j<30;j++)w[j]=L"";
               dataGridView1->Rows->Add(w);
               s++;
               if(s==100)return;
             }
             if(n==4 && gkh==0){
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                   mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                 }
               }
               array<String^>^ w=gcnew array<String^>(30);
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                   w[k]=(mah[j][k]).ToString();
                 }
                 dataGridView1->Rows->Add(w);
               }
               for(j=0;j<30;j++)w[j]=L"";
               dataGridView1->Rows->Add(w);
               s++;
               if(s==100)return;
             }

によって、そのままデータグリッドビューに表示しています。
gkh==0は最初に入力された数が4を除いた偶数でないことを示しています。
gkhは偶数判定をするための変数です。
4でない偶数のときは1、4または奇数のときは0と入力されます。
           if(h==1 && (n==3 || n==4)){
             s=0;
             cn=0;
             
gkh=0;
                ・
                ・
           if(h==1 && n!=3 && n%2==1){
             
gkh=0;

                ・
                ・

           if(h==1 && n>4 && n%2==0){
             
gkh=1;
             kz=0;
             n=n/2;
             s=0;
             cn=0;
             syokika();
             if(n%2==1)g1(n);
             if(n%2==0)g2(n);
             zhy();
             sbs(0);
             sbg(0);

                ・
                ・

gkh==0ときは
             if(n==3 && gkh==0){
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                   mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                 }
               }
               
array<String^>^ w=gcnew array<String^>(30);
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                    w[k]=(mah[j][k]).ToString();
                 }
                 dataGridView1->Rows->Add(w);
               }
               for(j=0;j<30;j++)w[j]=L"";
               dataGridView1->Rows->Add(w);

               s++;
               if(s==100)return;
             }
             if(n==4 && gkh==0){
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                   mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                 }
               }
              
 array<String^>^ w=gcnew array<String^>(30);
               for(j=0;j<n;j++){
                 for(k=0;k<n;k++){
                   w[k]=(mah[j][k]).ToString();
                 }
                 dataGridView1->Rows->Add(w);
               }
               for(j=0;j<30;j++)w[j]=L"";
               dataGridView1->Rows->Add(w);

               s++;
               if(s==100)return;
             }

によって、そのままデータグリッドビューに出力されます。
nが4より大きい偶数なら
           if(h==1 && n>4 && n%2==0){
             
gkh=1;
             kz=0;
             n=n/2;
             s=0;
             cn=0;
             syokika();
             if(n%2==1)g1(n);
             if(n%2==0)g2(n);
             zhy();
             sbs(0);
             sbg(0);

が遂行されます。
例えば、n=14であった場合は
このときは、2で割って、7次にしてsbs(0);によって細胞をすべて作り出させ、
sbg(0);
においてそのすべての細胞を適宜組み合わせて合成させています。
          void sbg(int g){
                  ・
                  ・
                  ・
             if(h==1){
               if(g+1<n*n){
                 sbg(g+1);
               }
               else{
                 
if(n!=3 && (n!=4 || gkh==0))f0(0);
                   if(n==3)f1(0);
                   if(n==4 && gkh==1)f1(0);
                 }
               }
             }
          }

細胞の合成が行われた後、f0からf00へと飛び
        void f00(int g){
                  ・
                  ・
                  ・
           if(h==1){
             if(g+1<n){
               f00(g+1);
             }
             else{
               
for(j=1;j<n;j++){  
                 for(k=0;k<n;k++){
                   l=(3*j+k)%n;
                   a2[j][l]=a2[0][k];
                 }
               }
               if(gkh==1){
                 for(j=0;j<n;j++){
                   for(k=0;k<n;k++){
                     for(l=0;l<2;l++){
                       for(o=0;o<2;o++){
                         mah[2*j+l][2*k+o]=4*(n*a1[j][k]+a2[j][k])+a3[2*j+l][2*k+o];
                       }
                     }
                   }
                 }
                 array<String^>^ w=gcnew array<String^>(30);
                 for(j=0;j<2*n;j++){
                   for(k=0;k<2*n;k++){
                     w[k]=(mah[j][k]).ToString();
                   }
                   dataGridView1->Rows->Add(w);
                 }
                 for(j=0;j<30;j++)w[j]=L"";
                 dataGridView1->Rows->Add(w);
               }

                  ・
                  ・
において7次魔方陣と組み合わされます。

3 4 3 1 3 2 2 3 1 4 1 2 2 4
2 1 2 4 1 4 4 1 2 3 3 4 3 1
4 2 2 4 2 1 2 4 4 1 4 1 1 3
3 1 3 1 3 4 3 1 2 3 3 2 2 4
4 2 3 4 4 3 2 1 3 2 1 2 1 3
1 3 1 2 1 2 3 4 1 4 3 4 2 4
3 2 2 4 4 2 1 4 4 2 2 1 3 1
1 4 3 1 3 1 2 3 3 1 4 3 2 4
4 3 4 1 1 3 1 4 3 4 1 2 3 1
2 1 3 2 4 2 2 3 2 1 3 4 4 2
1 2 3 1 2 3 4 2 3 4 3 1 4 2
3 4 2 4 4 1 3 1 1 2 2 4 3 1
3 4 1 2 2 3 2 1 4 3 2 4 3 1
1 2 3 4 1 4 4 3 2 1 3 1 2 4
0 8 16 24 32 40 48
39 47 6 7 15 23 31
22 30 38 46 5 13 14
12 20 21 29 37 45 4
44 3 11 19 27 28 36
34 35 43 2 10 18 26
17 25 33 41 42 1 9

が合体され

3 4 35 33 67 66 98 99 129 132 161 162 194 196
2 1 34 36 65 68 100 97 130 131 163 164 195 193
160 158 190 192 26 25 30 32 64 61 96 93 125 127
159 157 191 189 27 28 31 29 62 63 95 94 126 128
92 90 123 124 156 155 186 185 23 22 53 54 57 59
89 91 121 122 153 154 187 188 21 24 55 56 58 60
51 50 82 84 88 86 117 120 152 150 182 181 19 17
49 52 83 81 87 85 118 119 151 149 184 183 18 20
180 179 16 13 45 47 77 80 111 112 113 114 147 145
178 177 15 14 48 46 78 79 110 109 115 116 148 146
137 138 143 141 174 175 12 10 43 44 75 73 108 106
139 140 142 144 176 173 11 9 41 42 74 76 107 105
71 72 101 102 134 135 166 165 172 171 6 8 39 37
69 70 103 104 133 136 168 167 170 169 7 5 38 40

となります。合体の仕方は、
                 for(j=0;j<n;j++){
                   for(k=0;k<n;k++){
                     for(l=0;l<2;l++){
                       for(o=0;o<2;o++){
                         mah[2*j+l][2*k+o]=4*(n*a1[j][k]+a2[j][k])+a3[2*j+l][2*k+o];
                       }
                     }
                   }
                 }

15


を4倍し、それに

4 1
2 3


を加えます。

64 61
62 63



また、3以外の奇数が入力された場合は、
            if(h==1 && n!=3 && n%2==1){
              gkh=0;
              s=0;
              cn=0;
              hh=sh();
              if(hh==0){
                kf1(0);
                array<String^>^ w=gcnew array<String^>(31);
                int i;
                w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
                DateTime^ ow=DateTime::Now;
                TimeSpan sa=ow->Subtract(*hj);
                w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
              }

              if(hh==1){
                s=0;
                cn=0;
                if(n%2==1)g1(n);
                if(n%2==0)g2(n);
                syokika();
                f0(0);
                array<String^>^ w=gcnew array<String^>(31);
                int i;
                w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
                DateTime^ ow=DateTime::Now;
                TimeSpan sa=ow->Subtract(*hj);
                w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
              }
            }

それが素数であるか、素数以外の奇数以外かで処理が異なります。
素数の場合の処理が、
              if(hh==1){
                s=0;
                cn=0;
                if(n%2==1)g1(n);
                if(n%2==0)g2(n);
                syokika();
                f0(0);
                array<String^>^ w=gcnew array<String^>(31);
                int i;
                w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
                DateTime^ ow=DateTime::Now;
                TimeSpan sa=ow->Subtract(*hj);
                w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
              }

で行われます。素数の場合は、素数次魔方陣の種を作るf0とf00によって2つの種がずらし法で作られ、
          void f00(int g){
                   ・
                   ・
                   ・
            if(h==1){
              if(g+1<n){
                f00(g+1);
              }
              else{
                for(j=1;j<n;j++){  
                  for(k=0;k<n;k++){
                    l=(3*j+k)%n;
                    a2[j][l]=a2[0][k];
                  }
                }
                if(gkh==1){
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      for(l=0;l<2;l++){
                        for(o=0;o<2;o++){
                          mah[2*j+l][2*k+o]=4*(n*a1[j][k]+a2[j][k])+a3[2*j+l][2*k+o];
                        }
                      }
                    }
                  }
                  array<String^>^ w=gcnew array<String^>(30);
                  for(j=0;j<2*n;j++){
                    for(k=0;k<2*n;k++){
                      w[k]=(mah[j][k]).ToString();
                    }
                    dataGridView1->Rows->Add(w);
                  }
                  for(j=0;j<30;j++)w[j]=L"";
                  dataGridView1->Rows->Add(w);
                }
             
   if(gkh==0){
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                    }
                  }
                  array<String^>^ w=gcnew array<String^>(30);
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      w[k]=(mah[j][k]).ToString();
                    }
                    dataGridView1->Rows->Add(w);
                  }
                  for(j=0;j<30;j++)w[j]=L"";
                  dataGridView1->Rows->Add(w);
                }

                s++;
                if(s==100)return;
              }
            }
          }


               
 if(gkh==0){
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      mah[j][k]=n*a1[j][k]+a2[j][k]+1;
                    }
                  }
                  array<String^>^ w=gcnew array<String^>(30);
                  for(j=0;j<n;j++){
                    for(k=0;k<n;k++){
                      w[k]=(mah[j][k]).ToString();
                    }
                    dataGridView1->Rows->Add(w);
                  }
                  for(j=0;j<30;j++)w[j]=L"";
                  dataGridView1->Rows->Add(w);
によって直接データグリッドビューに出力されます。
直接というのは、細胞合成による倍加がされず、出力されるという意味です。

素数でない奇数の場合は、
              if(hh==0){
                kf1(0);
                array<String^>^ w=gcnew array<String^>(31);
                int i;
                w[25]=n.ToString();w[26]=L"次";w[27]=L"魔";w[28]=L"方";w[29]=L"陣";w[30]=s.ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
                DateTime^ ow=DateTime::Now;
                TimeSpan sa=ow->Subtract(*hj);
                w[25]=L"時";w[26]=L"間";w[27]=L"計";w[28]=L"則";w[29]=L":";w[30]=(sa.TotalSeconds).ToString();
                for(i=0;i<25;i++)w[i]=L"";
                dataGridView1->Rows->Add(w);
              }
の処理が行われます。
この後の動きは、前話をご覧ください。






第5話へ
第7話へ

戻る

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)