マルチスレッド版数独自動生成ソフト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話へ
本講義トップへ