第7講 配列と2次元ループの学習
第3話 自然配列の解答と解説

#pragma once
int a[10];
int b[10][10];
   ・
   ・
   ・
  private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           int i;
           int j;
           String^ w="";
           for(i=0;i<10;i++){
             a[i]=i;
           }
           for(i=0;i<10;i++){
             w=w+L" "+a[i].ToString();
           }
           label1->Text=w;
           w=L"";
           for(i=0;i<3;i++){
             for(j=0;j<3;j++){
               b[i][j]=3*i+j+1;
             }
           }
           for(i=0;i<3;i++){
             for(j=0;j<3;j++){
               w=w+b[i][j].ToString()+L" ";
             }
             w=w+L"\n";
           }
           label2->Text=w;
       }
2次元ループをトレースしてみましょう。

  0   1   2

[][]=3*なので
i=0j=0のとき、
b[
][]=3×+1=1
i=0j=1のとき、
b[
][]=3×+1=2
i=0j=2のとき、
b[
][]=3×+1=3
i=1j=0のとき、
b[
][]=3×+1=4
i=1j=1のとき、
b[
][]=3×+1=5
i=1j=2のとき、
b[
][]=3×+1=6
i=2j=0のとき、
b[
][]=3×+1=7
i=2j=1のとき、
b[
][]=3×+1=8
i=2j=2のとき、
b[
][]=3×+1=9

以上から1から9までが作られることがお分かりでしょうか。
では、皆さん次は、poのように表示させてください。
1を01などと表示させる理由は、 
w=w+b[i][j].ToString()+L" "; だとuyですし、
w=w+L" "+b[i][j].ToString()+L" "; だとwhとなってしまします。
フォント、サイズ、スタイルなどが影響して、半角スペースが半角数字1個分になっていないようで、
微妙にずれてしまうのです。
私が試行錯誤した範囲では、綺麗に整えることは出来ませんでした。
それで仕方なく、1を01と表示させることにしたのです。
もし、皆さんのうちで綺麗に整列できた方がいたら、メールで教えて頂ければと思います。

解答例は、例によって20行下に載せますので成功したらスクロールしてみてください。




















解答例
int i;
int j;
String^ w="";
for(i=0;i<10;i++){
  a[i]=i;
}
for(i=0;i<10;i++){
  w=w+L" "+a[i].ToString();
}
label1->Text=w;
w=L"";
for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    b[i][j]=4*i+j+1;
  }
}
for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    if(b[i][j]<10){
      w=w+L"0"+b[i][j].ToString()+L" ";
    }
    else{
      w=w+b[i][j].ToString()+L" ";
    }
  }
  w=w+L"\n";
}
label2->Text=w;


それでは、次はrd
のようにLabelを5つ加え、
プログラムソースの冒頭の変数の宣言を
#pragma once
int a[10];
int b[10][10];
int c[10][10];
として、実行ボタンが押されると、bg
のように表示させるプログラムを考えてください。
解答例は次話で。



第2話へ 第4話へ

a

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

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