関数の引数・戻り値と変数の範囲を追う
引数の順、戻り値、変数の使える範囲をたどる14問と六つの記述課題です。
学年・内容の目安 高校「情報Ⅰ」。授業の復習や教材の準備に使えます。公開教材の利用条件を確認し、年少の生徒には講師が紙の教材を用意します。
学習内容や既習事項に合わせて使う独自の練習です。文部科学省の認定教材や、教科書・入試の全範囲を網羅する教材ではありません。
高等学校「情報Ⅰ」(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未満なら「個別に確認」と表示します。料金を返す関数は、その表示の判断を行いません。
練習する
選択問題では答えを一つ選び、入力問題では指定された形式で答えます。判断の根拠や途中の手順は、記述課題で講師と確認します。
入力した答えは、ページを再読み込みするか離れるまで、このページのメモリ上に保持されます。保存済みの下書き、アカウントの成績、自動の宿題提出は作成されません。
自分の答えと記述
確認問題・資料・講師と使う課題
資料:呼び出すときに値を渡す
資料Aで「追加(7)」が返す値はいくつですか。数値を入力します。
答えと解説
11
7をnに入れ、7+4=11を返します。
資料:呼び出すときに値を渡す
資料Aの「追加(7)」で、関数に渡す引数はどれですか。
- 7。呼び出すときに括弧に入れた値。
- 4。関数の内側でnに足す値。
- 11。計算が終わってから関数が返す値。
答えと解説
7。呼び出すときに括弧に入れた値。
渡す値7と、返す値11を区別します。
資料:二つの引数を順に対応させる
資料Bで「差(5, 9)」の戻り値はいくつですか。数値を入力します。
答えと解説
−4
aに5、bに9が入るので5−9=−4です。
資料:二つの引数を順に対応させる
資料Bで「差(9, 5)」と「差(5, 9)」の違いはどれですか。
- どちらも、渡した値の合計を返す。
- 渡す順が変わるので、引き算の結果も変わる。
- 関数が値を小さい順に並べ直すので、結果は同じ。
答えと解説
渡す順が変わるので、引き算の結果も変わる。
渡す順にaとbへ入るため、どちらから引くかが変わります。
資料:戻り値を受け取り、表示する
資料Cで最後に表示される値はいくつですか。数値を入力します。
答えと解説
12
二倍(6)は12を返し、「結果」が12になるので、次の指示で12が表示されます。
資料:戻り値を受け取り、表示する
資料Cで「結果を表示」の指示を省いたとき、何が起こりますか。
- 関数の呼び出し自体が行われない。
- 12が計算されて、自動で画面に出る。
- 結果に12が入るが、画面への表示は行わない。
答えと解説
結果に12が入るが、画面への表示は行わない。
計算して返すことと、その値を表示することは別です。
資料:同じ名前でも別の変数として扱う
資料Dで青を渡した後の「表示」と「結果」を、呼び出し元での値として二つの欄に入力します。
呼び出し元で保持する値 時点 表示 結果 呼び出す前 待機 まだ使わない 青を渡して受け取った後 □ □ 答えと解説
表示: 待機 / 結果: 受付
内側から受付が返って結果に入ります。外側の表示には代入しないので待機です。
資料:同じ名前でも別の変数として扱う
資料Dで、関数内の「表示」を変えても外側の「表示」が変わらないのはなぜですか。
- 関数の内側の変数は、同じ名前でも外側と別だから。
- 変数の名前が同じなら外側の値を関数が読み直すから。
- 関数からは、名前のない値だけを返せるから。
答えと解説
関数の内側の変数は、同じ名前でも外側と別だから。
この例では関数の内側で作った変数は、呼び出し元の変数とは別です。
資料:呼び出すたびに作業用の値を作る
資料Eで2回の戻り値の並びはどれですか。
- 8、14。
- 8、6。
- 5、2。
答えと解説
8、6。
呼び出しごとに0から始めるので、一度目は8、二度目は6です。
資料:呼び出すたびに作業用の値を作る
資料Eの手順を変え、二度目の合計を0ではなく一度目の結果から始めると、どんな間違いが起きますか。
- 二度目の引数の順が入れ替わる。
- 一度目の値が二度目の入力から消える。
- 一度目の合計まで二度目の結果に足す。
答えと解説
一度目の合計まで二度目の結果に足す。
前の合計を持ち越すと、二度目に渡した数だけの合計ではなくなります。
資料:戻り値を外側の変数に入れる
資料Fの「行先←振分(白)」が終わり、「状態←行先」をまだ実行していないときの値を二つの欄に入力します。
外側で代入する前後の表 時点 行先 状態 関数から戻った直後 □ □ 状態←行先の後 南 南 答えと解説
行先: 南 / 状態: 待機
白を渡すと南を返すので行先は南です。その時点では状態にまだ代入していません。
資料:戻り値を外側の変数に入れる
資料Fで「状態←行先」を実行した後、「状態」には何が入りますか。
- 「南」。
- 「白」。
- 「待機」。
答えと解説
「南」。
その時点の行先の値である南を状態に代入します。
資料:返した結果を使う次の処理を決める
資料Gで4個を「料金」に渡すといくら返りますか。数値を入力します。
答えと解説
320
4×80=320です。
資料:返した結果を使う次の処理を決める
資料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以上かを判断し、「まとめて確認」を表示すると示す。
ワークシート
学習内容と参考資料
日本の学習指導要領
高等学校「情報Ⅰ」(3)。イ(イ)の関数による処理の分割と、関係の明確化。 · 2026-11-09
学習内容と参考資料授業・宿題・次の記録につなげる
資料をもとにした判断や計算の手順を、生徒と一緒に確かめましょう。印刷する場合は生徒用と講師用を分け、記述課題は講師用の基準で確認します。年少の生徒には講師が紙の教材を用意します。生徒用のログインを使う場合は、利用条件と同意の手順を確認してください。
講師の方へ
教材にリンクを保存し、必要なときに生徒と共有できます。
この練習問題を保存ワークシート: 関数の引数・戻り値と変数の範囲を追う
MomentDesk · https://momentdesk.com/ja/practice/trace-function-arguments-returns-and-variable-scope/
値を渡す先、戻る値とその使い方、変数を使う場所を順に説明します。
文部科学省:高等学校学習指導要領解説 情報編 · 文部科学省:「情報Ⅰ」教員研修用教材
読む文章・資料
呼び出すときに値を渡す
資料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未満なら「個別に確認」と表示します。料金を返す関数は、その表示の判断を行いません。
資料:呼び出すときに値を渡す
資料Aで「追加(7)」が返す値はいくつですか。数値を入力します。
途中の計算・単位・理由・確認答え:
資料:呼び出すときに値を渡す
資料Aの「追加(7)」で、関数に渡す引数はどれですか。
- 7。呼び出すときに括弧に入れた値。
- 4。関数の内側でnに足す値。
- 11。計算が終わってから関数が返す値。
途中の計算・単位・理由・確認答え:
資料:二つの引数を順に対応させる
資料Bで「差(5, 9)」の戻り値はいくつですか。数値を入力します。
途中の計算・単位・理由・確認答え:
資料:二つの引数を順に対応させる
資料Bで「差(9, 5)」と「差(5, 9)」の違いはどれですか。
- どちらも、渡した値の合計を返す。
- 渡す順が変わるので、引き算の結果も変わる。
- 関数が値を小さい順に並べ直すので、結果は同じ。
途中の計算・単位・理由・確認答え:
資料:戻り値を受け取り、表示する
資料Cで最後に表示される値はいくつですか。数値を入力します。
途中の計算・単位・理由・確認答え:
資料:戻り値を受け取り、表示する
資料Cで「結果を表示」の指示を省いたとき、何が起こりますか。
- 関数の呼び出し自体が行われない。
- 12が計算されて、自動で画面に出る。
- 結果に12が入るが、画面への表示は行わない。
途中の計算・単位・理由・確認答え:
資料:同じ名前でも別の変数として扱う
資料Dで青を渡した後の「表示」と「結果」を、呼び出し元での値として二つの欄に入力します。
呼び出し元で保持する値 時点 表示 結果 呼び出す前 待機 まだ使わない 青を渡して受け取った後 □ □ 途中の計算・単位・理由・確認答え:
資料:同じ名前でも別の変数として扱う
資料Dで、関数内の「表示」を変えても外側の「表示」が変わらないのはなぜですか。
- 関数の内側の変数は、同じ名前でも外側と別だから。
- 変数の名前が同じなら外側の値を関数が読み直すから。
- 関数からは、名前のない値だけを返せるから。
途中の計算・単位・理由・確認答え:
資料:呼び出すたびに作業用の値を作る
資料Eで2回の戻り値の並びはどれですか。
- 8、14。
- 8、6。
- 5、2。
途中の計算・単位・理由・確認答え:
資料:呼び出すたびに作業用の値を作る
資料Eの手順を変え、二度目の合計を0ではなく一度目の結果から始めると、どんな間違いが起きますか。
- 二度目の引数の順が入れ替わる。
- 一度目の値が二度目の入力から消える。
- 一度目の合計まで二度目の結果に足す。
途中の計算・単位・理由・確認答え:
資料:戻り値を外側の変数に入れる
資料Fの「行先←振分(白)」が終わり、「状態←行先」をまだ実行していないときの値を二つの欄に入力します。
外側で代入する前後の表 時点 行先 状態 関数から戻った直後 □ □ 状態←行先の後 南 南 途中の計算・単位・理由・確認答え:
資料:戻り値を外側の変数に入れる
資料Fで「状態←行先」を実行した後、「状態」には何が入りますか。
- 「南」。
- 「白」。
- 「待機」。
途中の計算・単位・理由・確認答え:
資料:返した結果を使う次の処理を決める
資料Gで4個を「料金」に渡すといくら返りますか。数値を入力します。
途中の計算・単位・理由・確認答え:
資料:返した結果を使う次の処理を決める
資料Gで4個の場合、呼び出し元が行う処理はどれですか。
- 料金の関数を使わず、「個別に確認」と表示する。
- 320を受け取り、300以上なので「まとめて確認」と表示する。
- 300を関数の戻り値に変えてから「個別に確認」と表示する。
途中の計算・単位・理由・確認答え:
資料と考え方を講師と確かめる
ここからは講師と確認する記述問題です。自動採点の点数には含みません。
資料:呼び出すときに値を渡す
資料Aで「追加(9)」を呼ぶ場合の引数、関数の中で行う計算、戻り値を順に書きましょう。
資料:二つの引数を順に対応させる
資料Bで「差(8, 3)」の引数を逆にした場合と比べます。a、bに入る値と、二つの戻り値を説明しましょう。
資料:戻り値を受け取り、表示する
資料Cで5の2倍を求めて表示するには、関数と呼び出し元が何を担当するか説明しましょう。
資料:同じ名前でも別の変数として扱う
資料Dで二つの「表示」が別の変数であることを、呼び出した後の「表示」と「結果」の値を使って説明しましょう。
資料:呼び出すたびに作業用の値を作る
資料Eで、2と1を渡した後に1と1を渡します。毎回どこで合計を初期化し、何を返すか説明しましょう。
資料:返した結果を使う次の処理を決める
資料Gで、5個ならどの値が関数から返り、どの表示になるかを、分担とともに説明しましょう。
解答: 関数の引数・戻り値と変数の範囲を追う
11
7をnに入れ、7+4=11を返します。
7。呼び出すときに括弧に入れた値。
渡す値7と、返す値11を区別します。
−4
aに5、bに9が入るので5−9=−4です。
渡す順が変わるので、引き算の結果も変わる。
渡す順にaとbへ入るため、どちらから引くかが変わります。
12
二倍(6)は12を返し、「結果」が12になるので、次の指示で12が表示されます。
結果に12が入るが、画面への表示は行わない。
計算して返すことと、その値を表示することは別です。
表示: 待機 / 結果: 受付
内側から受付が返って結果に入ります。外側の表示には代入しないので待機です。
関数の内側の変数は、同じ名前でも外側と別だから。
この例では関数の内側で作った変数は、呼び出し元の変数とは別です。
8、6。
呼び出しごとに0から始めるので、一度目は8、二度目は6です。
一度目の合計まで二度目の結果に足す。
前の合計を持ち越すと、二度目に渡した数だけの合計ではなくなります。
行先: 南 / 状態: 待機
白を渡すと南を返すので行先は南です。その時点では状態にまだ代入していません。
「南」。
その時点の行先の値である南を状態に代入します。
320
4×80=320です。
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以上かを判断し、「まとめて確認」を表示すると示す。