疑似言語文法のポイント学習
学習のポイント
基本情報技術者試験の午後のアルゴリズムの「擬似言語」についての疑似言語の文法についての説明です。変数の宣言、変数のデータ型、条件式の指定方法、配列の定義方法、判断構造、反復構造、関数の定義方法(戻り値・引数リスト)について理解しましょう。
1. 擬似言語とは? | |||||||||||||||||||||||||||||||||||
基本情報技術者試験で、午後のアルゴリズムの問題で従来は「流れ図(フローチャート)」を使用していました。昨今の「構造化プログラミング」の定着により、構造チャートの一種である「擬似言語」が導入されました。「順次」「判断」「反復」の3種類のみの構造を使用して、アルゴリズムを表現したものです。 | |||||||||||||||||||||||||||||||||||
2. 擬似言語の構成 | |||||||||||||||||||||||||||||||||||
擬似言語は、「宣言部」と「処理部」から構成されています。 ●宣言部 宣言部では、プログラムの名称と変数の定義を行います。 「プログラム名称」「変数の定義」を先頭に「○」をつけて記述します。また、関数の場合は、引数・返却値の指定があります。関数については後述します。 ●処理部 実際のアルゴリスムである処理を記述します。アルゴリズムは以下の3つを組み合わせて表現します。 ・順次構造 ・判断構造 ・反復構造(ループ構造) ●コメント(注釈) 「コメント」は、説明のために使用します。プログラムの動作に影響はありません。次のようにします。 /*この中にコメントを記述*/ |
|||||||||||||||||||||||||||||||||||
3. 宣言部 | |||||||||||||||||||||||||||||||||||
●プログラム名称 プログラム名称は、「○合計を求める」のように記述します。 ●変数の定義 変数の種類には、以下のものがあります。
○整数型:sum のようにします。2つの実数型の変数 A Bを定義する場合は、 ○実数型:A, B のようにカンマで区切ります。●配列の定義 配列の場合は、以下のようにします。
/*100個の要素のsumという配列です*/ ※配列のインデックス(添字)は「0」か「1」より開始されます。問題文に記載されていますので、開始インデックスを間違わないようにしてください。 2次元配列は、以下のようにします。 ○文字型:moji[10][5] ※10行5列の文字型のmojiという変数名の配列を定義しています。●レコード型の定義 これは、複数の変数をまとめたものです。例えば、学校の生徒の個人情報をレコード型で定義すると以下のようになります。 ○レコード:生徒 (整数型:生徒番号. 文字型:氏名[20]. 文字型:電話番号[12]) のように定義します。変数の区切りは、ピリオドを指定します。また、レコード型は配列でも定義できます。上記を100個の配列で定義すると以下のようになります。○レコード:生徒[100] (整数型:生徒番号. 文字型:氏名[20]. 文字型:電話番号[12]) |
|||||||||||||||||||||||||||||||||||
4. 処理部 | |||||||||||||||||||||||||||||||||||
順次構造 これは、命令の記述です。「・」を先頭につけます。・A ← B これは、代入文と言い、変数Bの内容をAへ格納しています。また、四則演算や余りを求めるには、以下の算術演算子を使用します。算術演算子
・M ← M + 1 これは、変数Mの内容にプラス1しています。判断構造 条件を指定して処理を分岐します。条件には以下を使用します。条件演算子
A ≧ 100 とします。論理演算は、以下のように指定します。 論理演算子
A ≧=100 and A ≦ =200 とします。
反復構造 反復構造には、「前判定反復構造」「ループ回数が分かっている時の反復構造」「後判定反復構造」の3種類があります。●反復構造(前判定反復構造)
●反復構造(ループ回数が分かっている時の反復構造) ループ構造では、繰り返す回数が分かっている場合、以下のように記述できます。 ■ 変数名:初期値, 条件式, 増分 今回は、変数「i」が1を初期値として、i<=100の間、ループして、iは1ずつ加算されます。このような場合、以下のように記述できます。■ i :1, i<=100, 1 ●反復構造(後判定反復構造) 反復構造では、最初に必ず1回、ループの中の処理を実行して、ループ条件を最後に確認する「後判定反復構造」があります。 |
|||||||||||||||||||||||||||||||||||
5. 関数 | |||||||||||||||||||||||||||||||||||
「関数」とは、「副プログラム」とも言います。「C言語の関数」「Javaでのメソッド」「VBでのプロシージャ」「フローチャートのサブルーチン」のことで、「あるまとまった処理」のことです。関数では、「関数名」「引数」「戻り値」を記述します。 最近の問題は、この関数での疑似言語の出題がほとんどです。引数・戻り値の意味は、問題文に説明があります。
関数の書き方
|
|||||||||||||||||||||||||||||||||||
6. 実際の問題 | |||||||||||||||||||||||||||||||||||
実際の試験問題は 平成27年秋期の問題では、「こちら」よりご確認ください。 |
|||||||||||||||||||||||||||||||||||
7. まとめ | |||||||||||||||||||||||||||||||||||
擬似言語の文法的な部分に注目して説明をしました。これだけの知識だけで、擬似言語の文法は理解可能かと思います。あとは、
問題文の仕様を把握してアルゴリズムの解読が出来るかどうかが、解答の分かれ目かと思います。 擬似言語の問題は、文字型配列やレコード型が多いのですが、ファイル処理の問題も過去に出題されています。ファイル処理の場合は、「ファイルの読み込み処理」は「関数」として定義されています。問題文より、ここでこの関数の処理概要を把握して下さい。 |
アルゴリズムについては、一から学びたい方は、当サイトの「アルゴリズム制作講座(e-ラーニング)」をお勧めします。
メニューへ戻る