基本情報技術者試験対策(45)「擬似言語(06)関数」

スポンサーリンク
IT系
Telecommuting or remote work concept with a girl working on a laptop while sitting at home. Flat cartoon vector illustration

関数

何度も使うためのひとまとまりの処理である。 同じ処理内容を複数回実行したい場合、 同じ内容のプログラムを何度も書くことはせず、関数として一度書いておき、 それを何度も呼び出して再利用する形式にする。 これにより、 プログラム量が減り、 プログラムの誤りが少なくなったり、 作業効率が上がったりする。

関数の各部の名称

関数は、丸かっこにより判別できる。 丸かっこの左隣にあるものが関数名である。 プログラム中に関数が存在すると、その関数を呼び出す。 関数の各部の名称は、次の通りである。

関数の呼出しがあると、同じ関数名で定義された、関数の宣言の行 (呼出し先の関数) ヘジャンプする。 その後、「return」があると、戻り値を持って、呼出し元に戻る。 関数の実行手順は、以下の通りである。

関数の実行手順

引数を持って、呼出し先の関数へジャンプする。
②関数の引数に値を格納する。
③関数内の処理を実行する。
④return により戻り値を持って元に戻る。

関数の実行手順を使った処理イメージは、以下の通りである。

「sum (3,4)」として呼出し先の関数へジャンプすると、戻り値7を持って呼出し元に戻る。 さらに、呼出し元の「result ←」により、戻り値7が変数 result に格納される。

手続

戻り値を返さない種類の関数である。 手続の場合、 [関数の実行手順]の④から「returnにより戻り値を持って」を取り去り、単に「元に戻る」となる。

プログラムの終了

プログラム (関数・手続) の終了は、次の手がかりにより見つけられる。

変数の有効範囲

変数をどこから利用 (値の格納・値の取出し) できるかという範囲である。 プログラムでは、変数の有効範囲ができるだけ狭い局所変数引数を使用するようにして、プログラム内で思いがけず変数の値が変更されるリスクを低減させる。

一方で、利便性を高めたり、プログラム終了後も値を残して再利用したりするために、 変数の有効範囲が広い大域変数を使用することがある。 変数の種類と、対応する有効範囲は、以下の通りである。

局所変数※・引数

※一般にローカル変数ともいう。
見分け方・ 有効範囲・トレースでの注意点は、以下の通りである。

・見分け方: プログラム (関数・手続) 内で宣言された変数・引数。
・有効範囲: 局所変数・ 引数が定義された行以降の、同一プログラム内からのみ利用できる。つまり、他のプログラムからは利用できない
・トレース:プログラムが終了すると、 局所変数・引数の値はすべて消去され, 再利用はできない。

大域変数※

※一般にグローバル変数ともいう。
見分け方・有効範囲・トレースでの注意点は、以下の通りである。

・見分け方: 「大域:」付きで宣言された変数。 プログラムの冒頭で宣言されることが多い。
・有効範囲: どこからでも利用できる
・トレース: プログラム実行前に最初に初期値が格納される。 すべてのプログラム (関数・手続) が終了しても、大域変数の値は残り、 そのまま再利用できる

有効範囲の例は、以下の通りである。 矢印は、プログラム中の各変数の有効範囲を示す。

局所変数と大域変数

局所変数と大域変数の違いをまとめると、以下の通りである。

局所変数は、プログラムが終了すると、 局所変数の値はすべて消去され、再利用はできない。
大域変数は、プログラム実行前に最初に初期値が格納される。 すべてのプログラムが終了しても、 大域変数の値は残りそのまま利用できる

変数名の重複

局所変数・引数・大域変数の名前が重複する場合の考え方は、以下の通りである。

・局所変数・ 引数・大域変数の名前が重複する場合、局所変数・ 引数の値を用いる。
・つまり、 大域変数sと局所変数sが両方とも存在する状況で, 「sを出力する」 を実行すると、 出力するのは局所変数sの値である。

なお、局所変数と引数は、名前が重複することはない。

参考
 情報処理教科書 出るとこだけ!基本情報技術者[科目B]第4版 橋本 祐史 (著) 翔泳社



コメント

タイトルとURLをコピーしました