第14講 フリーストア配列とCLI配列
第8話 2次元CLI配列の学習その2
第7話問題解答例
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
array<int,2>^ a=gcnew array<int,2>(5,8);
String^ w;
w=f1(a,w);
label1->Text=w;
w=L"";
array<int,2>^ b=gcnew array<int,2>(5,8);
w=f2(b,w);
label2->Text=w;
w=L"";
array<int,2>^ c=gcnew array<int,2>(5,8);
w=f3(a,b,c,w);
label3->Text=w;
}
String^ f1(array<int,2>^ x,String^ w){
int i,j,m,n;
m=x->GetLength(0);
n=x->GetLength(1);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i,j]=8*i+j+1;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i,j]<10)
w+=L"0"+(x[i,j]).ToString()+L"
";
else
w+=(x[i,j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
String^ f2(array<int,2>^ x,String^ w){
int i,j,m,n;
m=x->GetLength(0);
n=x->GetLength(1);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i,j]=5*j+i+1;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i,j]<10)
w+=L"0"+(x[i,j]).ToString()+L" ";
else
w+=(x[i,j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
String^ f3(array<int,2>^ x,array<int,2>^ y,array<int,2>^
z,String^ w){
int i,j,m,n;
m=x->GetLength(0);
n=x->GetLength(1);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
z[i,j]=x[i,j]+y[i,j];
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(z[i,j]<10)
w+=L"0"+(z[i,j]).ToString()+L" ";
else
w+=(z[i,j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
(コピーペースト用
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
array<int,2>^ a=gcnew array<int,2>(5,8);
String^ w;
w=f1(a,w);
label1->Text=w;
w=L"";
array<int,2>^ b=gcnew array<int,2>(5,8);
w=f2(b,w);
label2->Text=w;
w=L"";
array<int,2>^ c=gcnew array<int,2>(5,8);
w=f3(a,b,c,w);
label3->Text=w;
}
String^ f1(array<int,2>^ x,String^ w){
int i,j,m,n;
m=x->GetLength(0);
n=x->GetLength(1);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i,j]=8*i+j+1;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i,j]<10)
w+=L"0"+(x[i,j]).ToString()+L" ";
else
w+=(x[i,j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
String^ f2(array<int,2>^ x,String^ w){
int i,j,m,n;
m=x->GetLength(0);
n=x->GetLength(1);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i,j]=5*j+i+1;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i,j]<10)
w+=L"0"+(x[i,j]).ToString()+L" ";
else
w+=(x[i,j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
String^ f3(array<int,2>^ x,array<int,2>^ y,array<int,2>^ z,String^ w){
int i,j,m,n;
m=x->GetLength(0);
n=x->GetLength(1);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
z[i,j]=x[i,j]+y[i,j];
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(z[i,j]<10)
w+=L"0"+(z[i,j]).ToString()+L" ";
else
w+=(z[i,j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
)
それでは、CLI配列の最後の学習として3次元配列を扱いましょう。
フリーストア配列ときにを参考にして、3次元化に挑戦し,実行結果が
となるようにしましょう。
第11講第6話へ 第12講第1話へ 第13講第10話へ 第14講第7話へ 第14講第9話へ
vc++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ