第7講 配列と2次元ループの学習
第5話 積の解答例とデータ保存問題
前話解答例
label3->Text=w;
label4->Text=L"和";
label5->Text=L"差";
label8->Text=L"積";
・
・
・
w=L"";
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(b[i][j]*c[i][j]<10){
w=w+L"00"+(b[i][j]*c[i][j]).ToString()+L" ";
}
else{
if(b[i][j]*c[i][j]<100){
w=w+L"0"+(b[i][j]*c[i][j]).ToString()+L"
";
}
else{
w=w+(b[i][j]*c[i][j]).ToString()+L" ";
}
}
}
w=w+L"\n";
}
label9->Text=w;
if文解説
if(b[i][j]*c[i][j]<10){
w=w+L"00"+(b[i][j]*c[i][j]).ToString()+L" ";
}
else{
if(b[i][j]*c[i][j]<100){
w=w+L"0"+(b[i][j]*c[i][j]).ToString()+L" ";
}
else{
w=w+(b[i][j]*c[i][j]).ToString()+L" ";
}
}
の部分は、if文が入れ子式に入っていて、理解が難しいと思いますので解説してみましょう。
外側にピンクのif〜else文が入っていて、内側に青のif〜else文が入っています。
まずピンクからみましょう。
if(b[i][j]*c[i][j]<10){
w=w+L"00"+(b[i][j]*c[i][j]).ToString()+L" ";
}
は、かけ算の結果が10未満すなわち1桁なら
w=w+L"00"+(b[i][j]*c[i][j]).ToString()+L" ";を実行しなさいという命令です。
したがって、例えばb[0][0]*c[0][1]=5*1=5のときは、
w=w+L"00"+(b[i][j]*c[i][j]).ToString()+L" ";
が実行され005となります。
しかし、かけ算の結果が10以上の場合、
例えば、b[0][2]*c[2][1]=7*9=63のときは、
if(b[i][j]*c[i][j]<100){
w=w+L"0"+(b[i][j]*c[i][j]).ToString()+L" ";
}
else{
w=w+(b[i][j]*c[i][j]).ToString()+L" ";
}
が実行されます。
そして、63は100未満なのでw=w+L"0"+(b[i][j]*c[i][j]).ToString()+L" ";
が実行され063となります。また、
b[2][2]*c[3][1]=15*13=195のときは、w=w+(b[i][j]*c[i][j]).ToString()+L" ";が実行され195となるわけです。
以上から、1桁なら00が、2桁なら0が加えられ、3桁のときはそのままであることがご理解できるでしょうか。
さて、皆さんまた問題です。
2次元配列h1[10][10]、h2[10][10]、h3[10][10]を用意して、
足し算、引き算、かけ算の結果を配列に保存し、(b[i][j]*c[i][j]).ToString()の部分をh3[i][j].ToString()などと変更してみましょう。
初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ