第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" ";を実行しなさいという命令です。
jd
したがって、例えば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のときは、
iw
  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となります。また、vv
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()などと変更してみましょう。




第4話へ 第6話へ

a
初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部

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