前回、②に戻り、学習2週目を振り返りました。今回は、科目Bのアルゴリズムに入る前に押さえておきたい「関数(手続き)」の定義と呼び出し方を整理します。
関数(手続き)とは
関数(手続き)とは、決まった処理のまとまりに名前をつけて、必要なときに呼び出して使えるようにしたものです。同じ処理を何度も書く代わりに、一度定義しておけば、必要な場所で呼び出すだけで済みます。
疑似言語では、「関数」と「手続き」という言葉が使われますが、基本的には同じ「処理のまとまり」を指していると捉えておけば十分です。
関数の定義の書き方
疑似言語での関数の定義は、次のような形で書かれます。
○整数型:合計を求める(整数型:a, 整数型:b) 整数型:結果 結果 ← a + b return 結果
この場合、「合計を求める」という名前の関数が、aとbという2つの値(引数)を受け取り、その合計を結果として返す、という意味になります。「return」は、関数の処理結果を呼び出し元に返すためのキーワードです。
引数と戻り値
関数を理解するうえで欠かせないのが、「引数」と「戻り値」の考え方です。
- 引数:関数を呼び出すときに、関数に渡す値
- 戻り値:関数の処理が終わったときに、呼び出し元に返される値
先ほどの例なら、aとbが引数、resultの値(aとbの合計)が戻り値にあたります。
関数の呼び出し方
定義した関数は、「関数名(渡す値)」という形で呼び出します。例えば、「合計を求める(3, 5)」と書かれていれば、3と5を渡して関数を呼び出し、その戻り値として8が返ってくる、という流れになります。
トレースするときの注意点
関数が出てくるトレース問題では、「呼び出した瞬間に、いったん関数の中に処理が移る」という点を意識するようにしています。
呼び出し元の処理を続けながら関数の中身を読んでしまうと、値の対応関係が混乱してしまいます。「呼び出し元→関数の中→戻り値を受け取って呼び出し元に戻る」という順番を、1つずつ丁寧に追うことが大切だと感じています。
学習してみた感想
関数は、条件分岐や繰り返しに比べて、最初は少し抽象的に感じました。ただ、「引数を渡して、戻り値を受け取る」という一往復の流れとして捉えたことで、構造がすっきり見えてきました。
次回は、この関数の応用でもある「再帰処理」の考え方を、図解しながら整理します。
