プログラムの構造

文は主に宣言文実行文に分類されます。宣言文は、型と変数名に対応したメモリ領域の確保を行い、実行文は計算式などの処理を行います。

実行文は以下の3つの文に分類されます。

  • 単純文;(セミコロン)で終了する1つの命令文です。
  • 複合文は中に複数の文を含む{ }で定義され、ブロックとも呼ばれます。
  • 構造文if文、for文などの制御構造です。条件式などが書かれる( )の直後の文には1つの実行文を含めることができます。

ある実行文の中に別のを"入れ子構造"で含めることができます。たとえば、if文の中にさらにif文やfor文などを含めたり、for文の中にさらにif文やwhile文などを含めることができます。

アルゴリズム(問題を解く手順)を組み立てることを考えると、プログラムは以下の構造を持つブロックで構成されます。

  1. 連結. 順番に実行される文や関数の並び
  2. 選択. 条件によって異なる処理を行う分岐構造(if文など)
  3. 反復. 条件によって処理を反復する繰返し構造(for文など)
  4. 1. 2. 3. の組み合わせと入れ子構造

たとえば、次のプログラムはfor文による2重ループにより九九の表を出力します。

for (int i = 1; i <= 9; i++) {
  for (int j = 1; j <= 9; j++) {  // i の段を横1列に出力する
    int val = i * j;
    if (val < 10) {               // 1桁の場合は空白入れて調整
      std::cout << " ";
    }
    std::cout << " " << val;
  }
  std::cout << std::endl;         // iの段の出力を終えて改行
}

出力結果:

  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81

Reference

 

オンラインジャッジではじめるC/C++プログラミング入門 (マイナビ)

AIZU ONLINE JUDGE のコース問題を題材にした解説書です。各トピックごとに C/C++ 言語の基礎的な内容を学習し、Introduction to Programming の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。