第6講 ブロック崩しその4(バーを描き、←→キーでバーを動かし、バーでボールを跳ね返し、ブロックに当たるとブロックが消えるようにする)
第6話 配列の学習
今回も基礎の学習ですから、
ソリューションConsoleApplication1を開いて学ぶことにしましょう。
配列とは何でしょうか。
答えは、番号付きの箱の集合です。
より正確には、添え字付きの変数の集合です。
では、どんな場面で使うの?
それは変数が多い場合です。
私が、プログラミングを始めた動機は、
コンピュータ自らに考えさせて、
魔方陣を生成させたいというものでした。
詳しくは、
小中学生のための魔方陣授業
などを参照していただきたいと思いますが、
魔方陣の例を示し簡単に説明しておきましょう。

11 16
15 12 ]
14
10 13

13 19 25
18 24 12
10 11 17 23
22 15 16
14 20 21

魔方陣とは、
すべての行・すべての列・すべての対角線の合計が同じになっている方陣(正方形)です。
3次魔方陣ぐらいなら、4,5分も考えれば自分で作ることも出来ますが、
4次以上になると作るのはかなり困難です。
100次魔方陣になると、数字を収納する箱(変数)が何個になるかというと、
100×100=10000個です。
1万個もの変数を用意するには、
変数名を考えるだけで大変です。
ですが、簡単に用意できてしまうのが配列です。

int a[10];
と宣言すると、10個の箱(変数ができます)
10個の箱とは、
a[0],a[1],a[2],a[
3],a[4],a[5],a[6],a[7],a[8],a[9]
です。
番号付きの箱であると説明したあるいは添え字付きの変数であると説明したのは、
[]の中の数字のことです。
注意しなければならないことは、
a[10]を使おうとするとエラーするということです。
この10は、箱の個数が10個であることを示します。
プログラミングの世界では、
0から数え始めるので、
最後の数+1
になるのだと前に説明したこと覚えていますか。
0をカウントするからです。

それでは、次のコードを組んで確かめてみましょう。
#include<stdio.h>
void f();
int main()
{
  f();
  return 0;
}
void f() {
  int a[10],i;
  for (i = 0; i < 10; i++) {
    a[i] = i;
  }
  for (i = 0; i < 10; i++) {
    printf("a[%d]=%d ",i,a[i]);
  }
}
実行画面
01

これを
#include<stdio.h>
void f();
int main()
{
  f();
  return 0;
}
void f() {
  int a[10],i;
  for (i = 0; i < 11; i++) {
    a[i] = i;
  }
  for (i = 0; i < 11; i++) {
    printf("a[%d]=%d ",i,a[i]);
  }
}
コピペ用添付ファイル

として実行すると、
020304
とエラーの指摘がされます。
エラーして動かなくなった場合には
Visual Studio Community 2017を終了して再度起動してください。

配列は縦と横の両方向をもったものすなわち2次元配列も定義(約束)することもできます。
int a[3][2];
とすれば縦方向に3、横方向2のサイズの配列を定義できます。

a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]

配列もmainの前の行で宣言すれば、
グローバル配列(プログラム全体で有効な配列)
にできます。
次のようなプログラムを組んでください。
int a[5][4];
をグローバル配列として、
社員f()がデータを配列aに値を入れて、
社員g()がデータを下のように表示させるプログラムです。
009
ヒントとしてプログラムの骨格を書いておきます。
#include<stdio.h>
void f(); //データ作成社員
void g(); //データ表示社員
int a[5][4];
int main()
{
  f();
  g();
  return 0;
}
void f() {
  ・・・
}
void g() {
  ・・・
}

f()はかなりむずかしいですよ。
if文を使います。




第5話へ  第7話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための]世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ