プログラム開発手順(実装(製造)行程)
  ・プログラム開発手順
データ設計
手順設計
コーディング
  ・レビュー
成果物を作成者以外の人にも確認してもらう。
データ設計書、処理手順書、ソースプログラム

データ設計
  ・処理手順で利用するデータ領域を検討
プログラムの入出力データ
要求段階であらかじめ指示されたデータをどう扱うか決める。
プログラム内で発生するデータ
  ・データ構造(プログラムを扱う際の具体的なデータ領域の形式)を検討
  ・データ構造の種類
変数
配列
構造を持つデータ
問題向きデータ構造

変数
  ・一つの値を格納する領域
  ・名前(変数名)を付けて識別
プロジェクトに命名規則が有れば、それに従う。
  ・変数の定義
変数を定義すると、領域が確保される。
  ・変数の初期状態
定義した時点ではその内容は不明。初期化して使用
  ・変数への値の代入
変数へ値を格納

配列
  ・複数の同じ形のデータを並べて管理するデータ構造
  ・名前(配列名)を付けて識別
  ・配列要素:配列を構成する一つ一つのデータ
  ・配列を定義するとき、配列要素の数(要素数)を決める。
  ・配列の初期状態
定義した時点ではその内容は不明。初期化して使用
  ・添字(添え字、インデックス、要素番号):何番目のデータかを示す数
0から始めるのが一般的
配列名の後に[]で囲んだものを付けて表す。
添字に変数を使用できる。
  ・配列への値の代入
配列へ値を格納(格納されている値を「配列要素の値」とも言うこともある。)

構造を持つデータ
  ・複数の変数や配列を要素とし、ひとまとめにして管理する場合
  ・構成する要素のデータ(変数や配列、別の構造を持つデータ)をメンバと呼ぶ。
データ全体や各メンバーには名前が付けられる。
  ・Javaなどのオブジェクト指向型言語では、「クラス」という概念の構造を持つデータを利用
C言語では「構造体」

問題向きデータ構造
  ・特定の問題を処理することに特化したデータ構造
  ・問題向きデータ構造の種類
リスト構造
スタック:後入れ先出し法
キュー(待ち行列):先入れ先出し法
木(ツリー)構造

手順設計
  ・処理の手順(アルゴリズム)を詳細に決める。
  ・手順設計の留意点
処理の粒度を意識する。(段階的に徐々に細かくする。)
作成した処理手順は検証(確認)する。
  ・処理手順の記述
フローチャートなど
  ・手順設計の方法
構造化プログラミング

構造化プログラミング
  ・順次構造
処理を並べて、上から下へ、一つず順番に実行
  ・選択(分岐)構造
条件の成立・不成立を判断
  ・繰り返し(ループ)
条件が成立している間は処理を実行し、不成立で終了
入口と出口がどちらも一つ
  ・配列の使用
  ・基本構造の組合せ
  ・サブルーチン
処理のまとまりをくくり、名前を付けて定義
基本構造が完結していないとくくり出せない。
サブルーチンの呼び出し
サブルーチンのメリット
サブルーチンの変数定義
引数と戻り値
  ・フローチャートのレビューにおける着目点

代表的なアルゴリズム
  ・探索アルゴリズム
線形探索法(リニアサーチ)
二部探索法(バイナリサーチ)
木探索
  ・整列(ソート)アルゴリズム
選択ソート(基本選択法、セレクションソート)
バブルソート(基本交換法)
挿入ソート
クイックソート
マージソート