関数の引数・戻り値と変数の範囲を追う

引数の順、戻り値、変数の使える範囲をたどる14問と六つの記述課題です。

学年・内容の目安 高校「情報Ⅰ」。授業の復習や教材の準備に使えます。公開教材の利用条件を確認し、年少の生徒には講師が紙の教材を用意します。

学習用の練習の使い方

学習内容や既習事項に合わせて使う独自の練習です。文部科学省の認定教材や、教科書・入試の全範囲を網羅する教材ではありません。

解説を読む

関数に何を渡し、何を受け取るかを追います。内側の作業用の変数と、呼び出し元で使う変数も区別します。

必要な予備知識

変数に値を代入することと、順に処理することを知っていること。

  1. 関数を呼ぶとき、指定された順で引数を渡します。
  2. 戻り値は呼び出し元で受け取り、次の処理に使えます。
  3. 関数の内側で作る変数は、この教材では外側の同名の変数と区別します。

解き方の例

数に1を足して返す関数へ3を渡すと4が返ります。呼び出し元は4を保存したり、表示したりできます。

よくある間違い

  • 渡す値を、処理が終わって返る値と取り違える。
  • 戻り値が、そのまま画面に出ると考える。
  • 内側と外側の同名の変数を一つだと考える。

資料と考え方を講師と確かめる

値を渡す先、戻る値とその使い方、変数を使う場所を順に説明します。

値を渡して結果を受け取る単純な関数を扱います。言語固有の変数の範囲や、渡されたデータ自体を書き換える処理は扱いません。

文部科学省:高等学校学習指導要領解説 情報編 · 文部科学省:「情報Ⅰ」教員研修用教材

読む文章・資料

呼び出すときに値を渡す

資料Aの関数「追加」は、受け取った数を仮引数nに入れ、nに4を足した値を返します。「追加(7)」と呼ぶとき、7が引数です。返した値を使う場合は、呼び出し元で受け取ります。

二つの引数を順に対応させる

資料Bの関数「差」は、最初に受け取った値をa、次の値をbに入れ、a−bを返します。呼び出すときは、aに入れる値を先に書きます。

戻り値を受け取り、表示する

資料Cで関数「二倍」は受け取った値の2倍を返すだけで、表示はしません。「結果←二倍(6)」の後、「結果を表示」と指示します。戻り値を変数に入れる処理と、表示する処理は別です。

同じ名前でも別の変数として扱う

資料Dでは、呼び出し元に「表示」があり、値は「待機」です。関数「判定」はその内側にも別の変数「表示」を作り、入力が青ならその値を「受付」にして返します。呼び出し元では「結果←判定(青)」とし、元の「表示」には代入しません。

呼び出すたびに作業用の値を作る

資料Eの関数は、呼び出されるたびに内側の合計を0にし、受け取った二つの数を足した値を返します。最初に3と5、次に4と2を渡します。内側の合計は次の呼び出しへ持ち越しません。

戻り値を外側の変数に入れる

資料Fで呼び出し元の「状態」は初め「待機」です。関数「振分」は青を受け取ると「北」、白を受け取ると「南」を返します。「行先←振分(白)」の後で、「状態←行先」と代入します。

返した結果を使う次の処理を決める

資料Gの関数「料金」は個数に80を掛けた値を返します。呼び出し元で、戻り値が300以上なら「まとめて確認」、300未満なら「個別に確認」と表示します。料金を返す関数は、その表示の判断を行いません。

練習する

選択問題では答えを一つ選び、入力問題では指定された形式で答えます。判断の根拠や途中の手順は、記述課題で講師と確認します。

入力した答えは、ページを再読み込みするか離れるまで、このページのメモリ上に保持されます。保存済みの下書き、アカウントの成績、自動の宿題提出は作成されません。

確認問題・資料・講師と使う課題

  1. 資料:呼び出すときに値を渡す

    資料Aで「追加(7)」が返す値はいくつですか。数値を入力します。

    答えと解説

    11

    7をnに入れ、7+4=11を返します。

  2. 資料:呼び出すときに値を渡す

    資料Aの「追加(7)」で、関数に渡す引数はどれですか。

    • 7。呼び出すときに括弧に入れた値。
    • 4。関数の内側でnに足す値。
    • 11。計算が終わってから関数が返す値。
    答えと解説

    7。呼び出すときに括弧に入れた値。

    渡す値7と、返す値11を区別します。

  3. 資料:二つの引数を順に対応させる

    資料Bで「差(5, 9)」の戻り値はいくつですか。数値を入力します。

    答えと解説

    −4

    aに5、bに9が入るので5−9=−4です。

  4. 資料:二つの引数を順に対応させる

    資料Bで「差(9, 5)」と「差(5, 9)」の違いはどれですか。

    • どちらも、渡した値の合計を返す。
    • 渡す順が変わるので、引き算の結果も変わる。
    • 関数が値を小さい順に並べ直すので、結果は同じ。
    答えと解説

    渡す順が変わるので、引き算の結果も変わる。

    渡す順にaとbへ入るため、どちらから引くかが変わります。

  5. 資料:戻り値を受け取り、表示する

    資料Cで最後に表示される値はいくつですか。数値を入力します。

    答えと解説

    12

    二倍(6)は12を返し、「結果」が12になるので、次の指示で12が表示されます。

  6. 資料:戻り値を受け取り、表示する

    資料Cで「結果を表示」の指示を省いたとき、何が起こりますか。

    • 関数の呼び出し自体が行われない。
    • 12が計算されて、自動で画面に出る。
    • 結果に12が入るが、画面への表示は行わない。
    答えと解説

    結果に12が入るが、画面への表示は行わない。

    計算して返すことと、その値を表示することは別です。

  7. 資料:同じ名前でも別の変数として扱う

    資料Dで青を渡した後の「表示」と「結果」を、呼び出し元での値として二つの欄に入力します。

    呼び出し元で保持する値
    時点表示結果
    呼び出す前待機まだ使わない
    青を渡して受け取った後□□
    答えと解説

    表示: 待機 / 結果: 受付

    内側から受付が返って結果に入ります。外側の表示には代入しないので待機です。

  8. 資料:同じ名前でも別の変数として扱う

    資料Dで、関数内の「表示」を変えても外側の「表示」が変わらないのはなぜですか。

    • 関数の内側の変数は、同じ名前でも外側と別だから。
    • 変数の名前が同じなら外側の値を関数が読み直すから。
    • 関数からは、名前のない値だけを返せるから。
    答えと解説

    関数の内側の変数は、同じ名前でも外側と別だから。

    この例では関数の内側で作った変数は、呼び出し元の変数とは別です。

  9. 資料:呼び出すたびに作業用の値を作る

    資料Eで2回の戻り値の並びはどれですか。

    • 8、14。
    • 8、6。
    • 5、2。
    答えと解説

    8、6。

    呼び出しごとに0から始めるので、一度目は8、二度目は6です。

  10. 資料:呼び出すたびに作業用の値を作る

    資料Eの手順を変え、二度目の合計を0ではなく一度目の結果から始めると、どんな間違いが起きますか。

    • 二度目の引数の順が入れ替わる。
    • 一度目の値が二度目の入力から消える。
    • 一度目の合計まで二度目の結果に足す。
    答えと解説

    一度目の合計まで二度目の結果に足す。

    前の合計を持ち越すと、二度目に渡した数だけの合計ではなくなります。

  11. 資料:戻り値を外側の変数に入れる

    資料Fの「行先←振分(白)」が終わり、「状態←行先」をまだ実行していないときの値を二つの欄に入力します。

    外側で代入する前後の表
    時点行先状態
    関数から戻った直後□□
    状態←行先の後南南
    答えと解説

    行先: 南 / 状態: 待機

    白を渡すと南を返すので行先は南です。その時点では状態にまだ代入していません。

  12. 資料:戻り値を外側の変数に入れる

    資料Fで「状態←行先」を実行した後、「状態」には何が入りますか。

    • 「南」。
    • 「白」。
    • 「待機」。
    答えと解説

    「南」。

    その時点の行先の値である南を状態に代入します。

  13. 資料:返した結果を使う次の処理を決める

    資料Gで4個を「料金」に渡すといくら返りますか。数値を入力します。

    答えと解説

    320

    4×80=320です。

  14. 資料:返した結果を使う次の処理を決める

    資料Gで4個の場合、呼び出し元が行う処理はどれですか。

    • 料金の関数を使わず、「個別に確認」と表示する。
    • 320を受け取り、300以上なので「まとめて確認」と表示する。
    • 300を関数の戻り値に変えてから「個別に確認」と表示する。
    答えと解説

    320を受け取り、300以上なので「まとめて確認」と表示する。

    関数は料金を返し、呼び出し元がしきい値を使って判断します。

資料と考え方を講師と確かめる

資料:呼び出すときに値を渡す

資料Aで「追加(9)」を呼ぶ場合の引数、関数の中で行う計算、戻り値を順に書きましょう。

答えと解説

引数は9で、関数の中でnを9として9+4を計算し、13を返します。

入れる値と返る値を別々に書くと処理が追いやすくなります。

  • 引数9をnへ渡すと示す。
  • 9に4を足して13を返すと示す。

資料:二つの引数を順に対応させる

資料Bで「差(8, 3)」の引数を逆にした場合と比べます。a、bに入る値と、二つの戻り値を説明しましょう。

答えと解説

差(8, 3)はa=8、b=3なので5です。差(3, 8)はa=3、b=8なので−5です。

二つの引数が同じ役割ではないので、順が変わると結果も変わります。

  • 二つの呼び出しで各値が入る場所を示す。
  • 8−3=5、3−8=−5と戻り値を示す。

資料:戻り値を受け取り、表示する

資料Cで5の2倍を求めて表示するには、関数と呼び出し元が何を担当するか説明しましょう。

答えと解説

二倍(5)を呼ぶと、関数が5を2倍して10を返します。呼び出し元が受け取った10を表示します。

変数に代入してから表示する書き方も、戻り値を直接表示に渡す書き方も使えます。

  • 関数が5から10を計算して返すと示す。
  • 受け取った10を表示するのは呼び出し元だと示す。

資料:同じ名前でも別の変数として扱う

資料Dで二つの「表示」が別の変数であることを、呼び出した後の「表示」と「結果」の値を使って説明しましょう。

答えと解説

内側の表示は受付に変わり、その値が結果へ入ります。呼び出し元の表示には代入していないので、値は待機のままです。

名前だけでなく、その変数をどこで作ったかを確かめます。

  • 内側の値が受付になり、外側の結果に渡ると示す。
  • 外側の表示には代入していないので待機のままと説明する。

資料:呼び出すたびに作業用の値を作る

資料Eで、2と1を渡した後に1と1を渡します。毎回どこで合計を初期化し、何を返すか説明しましょう。

答えと解説

呼び出すたび、関数の内側の合計を0にします。一度目は3、二度目は2を返します。

以前の呼び出しの作業用の値をそのまま使いません。

  • 関数の内側で呼び出しごとに合計を0にする。
  • 2+1で3、1+1で2を返すと示す。

資料:返した結果を使う次の処理を決める

資料Gで、5個ならどの値が関数から返り、どの表示になるかを、分担とともに説明しましょう。

答えと解説

関数は5×80=400を返します。呼び出し元は400が300以上だと判断し、「まとめて確認」と表示します。

計算する部分と、計算結果で何をするかを分けます。

  • 5個の料金400が関数から返ると示す。
  • 呼び出し元が300以上かを判断し、「まとめて確認」を表示すると示す。

ワークシート

印刷用PDFを教材としてアップロード · 宿題に添付

学習内容と参考資料

日本の学習指導要領

高等学校「情報Ⅰ」(3)。イ(イ)の関数による処理の分割と、関係の明確化。 · 2026-11-09

学習内容と参考資料

文部科学省 · 冊子31ページ。「情報Ⅰ」のコンピュータとプログラミング。

文部科学省 · 冊子33ページ。イ(イ)の関数による処理の分割と、関係の明確化。

授業・宿題・次の記録につなげる

資料をもとにした判断や計算の手順を、生徒と一緒に確かめましょう。印刷する場合は生徒用と講師用を分け、記述課題は講師用の基準で確認します。年少の生徒には講師が紙の教材を用意します。生徒用のログインを使う場合は、利用条件と同意の手順を確認してください。

講師の方へ

教材にリンクを保存し、必要なときに生徒と共有できます。

この練習問題を保存