第13講 ベクタの学習
第10話 ベクタのアドレスを直接関数に渡すその2
問1 解答例
フォーム
ソースコード
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
vector< vector<int> > a;
a.resize(5);
int i;
String^ w;
for(i=0;i<5;i++)(a[i]).resize(4);
a=f1(a);
w=g1(w,a);
label1->Text=w;
vector< vector<int> > b;
b.resize(5);
for(i=0;i<5;i++)(b[i]).resize(4);
b=f1(b);
w=L"";
w=g1(w,b);
label2->Text=w;
}
vector< vector<int> > f1(vector< vector<int>
> x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i][j]=rand()%1000;
return(x);
}
String^ g1(String^ w,vector< vector<int> > x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i][j]<10)
w+=L"000"+(x[i][j]).ToString()+L" ";
else if(x[i][j]<100)
w+=L"00"+(x[i][j]).ToString()+L"
";
else if(x[i][j]<1000)
w+=L"0"+(x[i][j]).ToString()+L"
";
else
w+=(x[i][j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
(コピーペースト用
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
vector< vector<int> > a;
a.resize(5);
int i;
String^ w;
for(i=0;i<5;i++)(a[i]).resize(4);
a=f1(a);
w=g1(w,a);
label1->Text=w;
vector< vector<int> > b;
b.resize(5);
for(i=0;i<5;i++)(b[i]).resize(4);
b=f1(b);
w=L"";
w=g1(w,b);
label2->Text=w;
}
vector< vector<int> > f1(vector< vector<int> > x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i][j]=rand()%1000;
return(x);
}
String^ g1(String^ w,vector< vector<int> > x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i][j]<10)
w+=L"000"+(x[i][j]).ToString()+L" ";
else if(x[i][j]<100)
w+=L"00"+(x[i][j]).ToString()+L" ";
else if(x[i][j]<1000)
w+=L"0"+(x[i][j]).ToString()+L" ";
else
w+=(x[i][j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
)
問2解答例
フォーム
ソースコード
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
vector< vector<int> > a;
a.resize(5);
int i;
String^ w;
for(i=0;i<5;i++)(a[i]).resize(4);
a=f1(a);
w=g1(w,a);
label1->Text=w;
vector< vector<int> > b;
b.resize(5);
for(i=0;i<5;i++)(b[i]).resize(4);
b=f1(b);
w=L"";
w=g1(w,b);
label2->Text=w;
a=f2(a,b);
w=L"";
w=g1(w,a);
label3->Text=w;
}
vector< vector<int> > f1(vector< vector<int>
> x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i][j]=rand()%1000;
return(x);
}
String^ g1(String^ w,vector< vector<int> > x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i][j]<10)
w+=L"000"+(x[i][j]).ToString()+L"
";
else if(x[i][j]<100)
w+=L"00"+(x[i][j]).ToString()+L"
";
else if(x[i][j]<1000)
w+=L"0"+(x[i][j]).ToString()+L" ";
else
w+=(x[i][j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
vector< vector<int> > f2(vector< vector<int>
> x,vector< vector<int> > y){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i][j]=x[i][j]+y[i][j];
return(x);
}
(コピーペースト用
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
vector< vector<int> > a;
a.resize(5);
int i;
String^ w;
for(i=0;i<5;i++)(a[i]).resize(4);
a=f1(a);
w=g1(w,a);
label1->Text=w;
vector< vector<int> > b;
b.resize(5);
for(i=0;i<5;i++)(b[i]).resize(4);
b=f1(b);
w=L"";
w=g1(w,b);
label2->Text=w;
a=f2(a,b);
w=L"";
w=g1(w,a);
label3->Text=w;
}
vector< vector<int> > f1(vector< vector<int> > x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i][j]=rand()%1000;
return(x);
}
String^ g1(String^ w,vector< vector<int> > x){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(x[i][j]<10)
w+=L"000"+(x[i][j]).ToString()+L" ";
else if(x[i][j]<100)
w+=L"00"+(x[i][j]).ToString()+L" ";
else if(x[i][j]<1000)
w+=L"0"+(x[i][j]).ToString()+L" ";
else
w+=(x[i][j]).ToString()+L" ";
w+=L"\n";
}
return(w);
}
vector< vector<int> > f2(vector< vector<int> > x,vector< vector<int> > y){
int i,j,m,n;
m=x.size();
n=(x[0]).size();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i][j]=x[i][j]+y[i][j];
return(x);
}
}
以上でベクタの学習は終了とします。第14講では、フリーストア配列とCLI配列について学習します。
第11講第6話へ 第12講第1話へ 第13講第9話へ 第14講第1話へ
vc++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ