ITの基礎知識|ITパスポート・基本情報

【】の記事一覧

この記事での学習内容 ITパスポート 基本情報 応用情報

プログラミング作法とコーディング基準の目的、効果、種類を理解する。また、プログラミング作法とコーディング基準を守らない場合に起こる弊害を理解する。

用語例:字下げ(インデンテーション)、ネストの深さ、命名基準、仕様禁止命令、プログラムの機能性・効率性・使用性・保守性の向上

プログラミング

プログラミングは、コンピュータを使って実行する作業手順を、前もって作っておく作業です。プログラムとは、コンピュータ用の作業手順書を、コンピュータに分かることが出書き出したもの、といえます。

人間が何かの仕事をこなすときは、まず段取りを考えて計画を立て、それに従って実際に仕事を進めます。これと同じように、コンピュータに仕事をさせるための段取りを書いたものがプログラムであり、プログラムを作成する作業がプログラミングです。コンピュータはプログラムに従って運用を行います。

プログラミング作法とコーディング基準の目的・効果

プログラミング作法は、プログラムを読む人にとって適切であろうと、一般的に指示された流儀のことです。対して、コーディング基準とは、チームや組織が定めたプログラムの書き方の基準です。いずれもプログラムの保守性を改善することが目的であり、読む人の労力や読み間違いを減らす効果があります。

同じ処理をするプログラムであっても、書き方の流儀や個人差が発生してしまいます。例えば、C言語で「変数aに1を加算する」という処理でも、以下のように異なる書き方が可能です。

  •  a++
  •  a = a + 1

専門家の間では、前者のほうが簡潔で、読み間違いが少ないとして支持されている、というのがプログラミング作法の例です。

また、コーディング基準は以下のような事項に関して定められることが多いです。

インデンテーション文の書き出し位置のインデンテーション(字下げ)の指針。
ネスト(入れ子)データ構造や制御構造の階層状態。ネストの深さを規制。
命名基準変数やモジュールの名前の付け方の指針。
使用禁止命令使用を推奨しない命令。(Goto文の禁止など)

インデンテーション

インデンテーション(字下げ)とは、プログラムの文の書き出し位置を、何文字分か右の方へ下げることです。これは、一般的なビジネス文書でも当てはまる事柄で、文章を読む時の人間の視線が左から右、上から下と流れることを踏まえたものです。

プログラムのインデンテーションは、例えば次のようにします。

  1. データ構造のネストを字下げで表す。
  2. 反復や選択などの制御構造のネストを字下げで表す。
  3. ラベルよりそれ以外の部分を字下げする。
  4. 字下げは半角文字4文字分ずつとする。
インデンテーションの例

label1:
    i=0;
    repeat
        a=b+c;
        ~~

このような字下げは、処理には関係ない表現なので、人間にとっての読みやすさを目的として、コーディング基準で規定するのが一般的です。

ネスト

データ構造や制御構造の階層状態をネスト(入れ子)といいます。ネストが深すぎると人間は把握することが難しくなります。

例えば、コーディング基準でネストの深さを4までに規制します。それを越えようとする場合は、一部を他のモジュール呼び出しや関数参照にしてネストが深くなるのを回避します。

命名基準

命名基準とは、変数、モジュール、関数、ラベルなどの名前の付け方の指針です。以下に、命名基準の例を示します。

  1. 元になっている業務や学術の用語と一致する名前を用いる。
  2. 配列の索引には、i,j,kを用いる。
  3. カウンタにはn,mを用いる。
  4. 長さを表す変数には、l,mを用いる。
  5. ポインタ変数には、p,qを用いる。
  6. 合計には、sを用いる。
  7. 一時的な変数には、t,wを用いる。

使用禁止命令

使用禁止命令とは、仕様が推奨されていない命令や文のことです。

例えば、goto文を禁止して、代わりに反復や選択の文で代替するほうが、読み手には読みやすくなります。

情報処理技術者試験での学習内容【基本情報・応用情報】 ・プログラミング作法、コーディング基準を習得し、応用する。 ・プログラム言語の文法の表記法を習得し、応用する。【ITパスポート】 ・プログラム言語とプログラミングの役割を理解する。(1)プログラミング1.プログラミング作法とコーディング基準 ITパスポート 基本情報 応用情報プログラミング作法とコーディング基準の...

Read more...

業務の改善提案に対する報奨を次の表に基づいて決める時、改善額が200万円で、かつ、期間短縮が3日の改善提案に対する報酬は何円になるか。ここで表は、条件が成立する場合はYを、不成立の場合はNを記入し、これらの条件に対応した時の報奨を○で表してある。 ア: 5,000 イ: 10,000 ウ: 15,000 エ: 30,000

Read more...

この記事での学習内容 基本情報 応用情報アルゴリズムは、擬似言語、流れ図、決定表(デシジョンテーブル)などを用いて表現することを理解する。また。アルゴリズムの設計方法を理解する。用語例:再帰、分割統治法アルゴリズム設計アルゴリズムとは、目的にたどり着くための道筋や処理の手順のことです。アルゴリズムを考える、設計する目的は、単に問題を解く方法を見つけるだけではなく、より効率的に、より...

Read more...

探索方法とその実行時間のオーダの正しい組合せはどれか。ここで,探索するデータ数を n とし, ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。 また,実行時間のオーダがn2 であるとは,n 個のデータを処理する時間が cn2( c は定数)で抑えられることをいう。  2分探索線形探索ハッシュ探索 ア log2 nn1 イ n log...

Read more...

昇順に整列された n 個のデータが格納されている配列 A がある。流れ図は, 2分探索法を用いて配列 A からデータ x を探し出す処理を表している。 a, b に入る操作の正しい組合せはどれか。ここで,除算の結果は小数点以下が切り捨てられる。 ab ア  k+1→ hi    k-1→ lo   イ  k-1→ hi    k+1→ lo   ウ  k+1→...

Read more...

配列A[i] ( i = 1,2,・・・,n) を、次のアルゴリズムによって整列する。行2~3の処理が初めて終了した時、必ず実現されている配列の状態はどれか。[アルゴリズム]  iを1からn-1まで1ずつ増やしながら、行2~3を繰り返す。   jをnからi+1まで1ずつ減らしながら行3を繰り返す。    もしA[j]<A[j-1]ならば、A[j]とA[j-1]を交換する。...

Read more...