×
データ構造とアルゴリズム

試験でのポイント

基本情報技術者試験のアルゴリズムやプログラミング分野において、引数の概念はあらゆる問題の根底に関わってきます。

まず用語の定義として、「仮引数(かりひきすう)」と「実引数(じつひきすう)」の違いを問われることがあります。「関数を定義する側」の宣言文に書かれている、データを受け取るための変数が「仮引数(Parameter)」です。一方、「関数を呼び出す側」が実際に関数に渡す具体的な値や変数のことを「実引数(Argument)」と呼びます。この2つの用語の対応関係を正確に覚えておきましょう。

試験の疑似言語問題(午後・科目B)を解く際の最大のポイントは、前述した「値渡し」と「参照渡し」の区別を正確に行うことです。問題文の冒頭や仕様の説明部分に、「配列を引数として渡した場合は参照渡しとする」「単一の変数を渡した場合は値渡しとする」といったルールが明記されていることが非常に多いです。

トレース(プログラムの手動実行)を行う際、引数として配列が関数に渡され、関数内でその配列の中身が並べ替えられたり(ソート)、値が書き換えられたりする処理があった場合、メイン処理に戻った後もその配列の変更が「引き継がれている」ことを前提として次の行を読んでいかなければなりません。これを値渡しだと勘違いして、「元の配列は元のままだ」と思ってトレースを進めると、最終的な出力結果を完全に間違えてしまいます。関数が呼び出された際には、どのデータが関数に渡され、関数終了後に呼び出し元のデータがどう変化しているか(あるいは変化していないか)を、余白に図や表を描いて正確に把握することが合格への絶対条件となります。

関連する用語

関数、戻り値、値渡しと参照渡し