マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第5章 配列

第5話 奇数の生成


a[0] = 1

a[1] = 3

a[2] = 5

a[3] = 7

a[4] = 9

を実転するコード例
#include<iostream>//インクルードファイルiostreamの読み込み

#include<conio.h>//while(!_kbhit());を使うためのお呪い

#include<string> //文字列変数を使えるようにするために組み込む

#include <iomanip> //setprecisionを使えるように組み込む

#include <cmath>//powなどを使うときに必要

#include <ctime>//time()(←現時刻発生する関数)を使うために必要

using namespace std;//coutを使うときに必要なお呪い

void 1次元配列();//1次元for文体験

int main() {//私は社長だ。

  1次元配列();

  while (!_kbhit());//待機させるための命令

  return(0);//int main()終わるためのお呪い

}

void 1次元配列(){

  int a[5];//1次元配列の宣言

  for (int i = 0; i < 5; i++) {

    a[i] = 2 * i + 1;

  }

  for (int i = 0; i < 5; i++) {

    cout << "a[" << i << "] = " << a[i] << endl << endl;

  }

}

では第6話では2次元配列を学びます。

2次元配列は横方向と縦方向の2方向を持つ配列です。

言い方を変えれば行と列を持つ行列に対応するものです。

例えば、
  
  int a[3][4];//3行4列の行列を表すことのできる2次元配列です。

結構年数が経っても2次元for文や2次元配列が理解できない人もいますが、

その原因は1つの方向しかない1次元の延長で考えているからです。

そうではなく、2方向を持つ2次元です。

2次元は1次元の延長上には存在しません。

Excelのシートを考えればわかります。

入門講義等で理解できなかった人は発想そのものが、

間違っているのでいつまで経っても理解できないわけです。

3次元に住んでいる人が4次元を理解できないことに対応してます。

本当は時間を含めれば私たちが住んでいる空間は4次元です。

ですから、4次元に住んでいる人が5次元を理解できないといった方が正確です。

さて、課題です。

  int a[4][4];//4行4列の行列を表すことのできる2次元配列です。

を利用して第3章第13話を組み直してください。

尚、

              cout << " " << a00 << "  " << a01 << "  " << a02 << "  " << a03 << endl;

              cout << " " << a10 << "  " << a11 << "  " << a12 << "  " << a13 << endl;

              cout << " " << a20 << " " << a21 << " " << a22 << " " << a23 << endl;

              cout << a30 << " " << a31 << " " << a32 << " " << a33 << endl;


の部分については、書き換えなければエラーします。

これを2次元for文で実現することは次話の課題としますので、

この部分をエラーしないように書き換えるだけとします。



第5章第4話へ 第5章第6話へ

本講義トップへ