← 教科書一覧へ入出力と手続・関数
標準約 16 分アルゴリズムとプログラミング
概要
本ユニットでは、プログラムが外部とデータをやり取りする入出力と、処理をひとまとまりの部品にする手続・関数、そして部品へ値を渡す引数・受け取る戻り値を学びます。プログラムを再利用しやすく分かりやすく作るための基本で、擬似言語の読解にも直結するため試験でも重要なテーマです。
用語(5)
入出力
プログラムが外部からデータを受け取り、結果を外部へ渡すこと。
入出力とは、プログラムがキーボードやファイルなど外部からデータを受け取る「入力」と、画面やファイルへ結果を送り出す「出力」をまとめた概念です。プログラムは入力されたデータを処理し、その結果を出力する、という流れで動きます。
入力がなければ処理する材料がなく、出力がなければ結果を確認できません。この入力・処理・出力という基本の流れは、あらゆるプログラムに共通します。
試験では、入力・処理・出力の3つの役割の区別や、後で学ぶ引数(部品への入力)・戻り値(部品からの出力)が、この入出力の考え方と対応している点を押さえておくとよいでしょう。
たとえ料理に例えると、材料を受け取るのが入力、調理が処理、できた料理を出すのが出力です。材料(入力)がないと作れず、料理(出力)が出ないと食べられません。
記憶フック入出力といえば入力・処理・出力の基本の流れ
手続
一連の処理をまとめて名前を付けた部品。戻り値を返さない。
手続(プロシージャ)とは、いくつかの処理をひとまとめにして名前を付けた部品のことです。同じ処理を何度も使うとき、手続として定義しておけば、名前を呼ぶだけで実行でき、プログラムが短く分かりやすくなります。
手続の特徴は、呼び出した側へ計算結果(戻り値)を返さない点です。「画面に表示する」「ファイルに書き込む」のように、結果を返すより何かの動作を行うこと自体が目的のときに使われます。
試験では、戻り値を返す関数との違いがよく問われます。手続=戻り値なし、関数=戻り値あり、と対比して覚えるのがポイントです。
たとえ「玄関の掃除をする」という作業手順に名前を付けたようなものです。頼めば実行してくれますが、何か品物を持ち帰ってくる(戻り値)わけではありません。
記憶フック手続といえば処理をまとめた部品で戻り値なし
関数
処理をまとめ、結果(戻り値)を呼出し元へ返す部品。
関数とは、一連の処理をまとめた部品で、手続と違い計算結果である戻り値を呼び出した側へ返す点が特徴です。引数として値を受け取り、処理した結果を戻り値として返します。
例えば「2つの数を受け取り合計を返す」関数なら、引数に数値を渡すと、合計が戻り値として返ってきます。返ってきた値はそのまま計算や別の処理に使えます。
試験では、引数(入力)→関数内の処理→戻り値(出力)という流れと、戻り値を返さない手続との違いが頻出です。関数は部品の入出力インタフェースを理解する中心となる概念です。
たとえ自動販売機のようなものです。お金(引数)を入れると処理が行われ、商品(戻り値)が出てきます。入れた値に応じて結果が返ってくる点が手続との違いです。
記憶フック関数といえば引数を受け取り戻り値を返す部品
引数
手続・関数を呼び出すとき渡す値。部品への入力にあたる。
引数(ひきすう)とは、手続や関数を呼び出すときに渡す値のことです。部品に「この値で処理してほしい」と材料を渡す役割で、部品にとっての入力にあたります。
例えば合計を求める関数に3と5を渡すと、この3と5が引数です。引数を変えれば、同じ関数でも違う結果が得られるため、1つの部品をいろいろな場面で使い回せます。
試験では、引数が部品への入力であること、戻り値(出力)と対をなすことが問われます。渡す側と受け取る側で引数の個数や順番が対応している必要がある点も理解しておきましょう。
たとえ自動販売機に入れるお金や、ボタンで選ぶ商品の指定が引数です。何を入れて何を選ぶか(引数)によって、出てくる商品(結果)が変わります。
記憶フック引数といえば部品に渡す値(入力)
戻り値
関数が処理結果として呼出し元へ返す値。部品からの出力。
戻り値(返り値)とは、関数が処理した結果として、呼び出した側へ返す値のことです。引数が部品への入力なら、戻り値は部品からの出力にあたり、両者は対の関係にあります。
例えば合計を求める関数に3と5を渡すと、戻り値として8が返ってきます。この8をそのまま画面に表示したり、別の計算に使ったりできます。
試験では、戻り値を返すのが関数、返さないのが手続という違いが頻出です。引数(入力)と戻り値(出力)がセットで部品の入出力インタフェースを構成する、という全体像を押さえておきましょう。
たとえ自動販売機にお金(引数)を入れて出てくる商品が戻り値です。入れた指定に応じて返ってくる結果であり、何も出てこない手続とはここが違います。
記憶フック戻り値といえば関数が返す結果(出力)
まとめ
要点
- 入出力は、外部からデータを受け取る入力と結果を送り出す出力で、入力・処理・出力があらゆるプログラムの基本の流れである。
- 手続も関数も処理をまとめた再利用できる部品だが、手続は戻り値を返さず、関数は戻り値を返す点が決定的な違いである。
- 引数は部品への入力として呼出し時に渡す値、戻り値は部品からの出力として呼出し元へ返す値であり、両者は対をなす。
- 引数(入力)と戻り値(出力)がセットで、手続・関数の入出力インタフェースを構成する。
- 部品化により同じ処理を名前を呼ぶだけで再利用でき、プログラムが短く分かりやすくなる。
記憶フック一覧
- 入出力: 入出力といえば入力・処理・出力の基本の流れ
- 手続: 手続といえば処理をまとめた部品で戻り値なし
- 関数: 関数といえば引数を受け取り戻り値を返す部品
- 引数: 引数といえば部品に渡す値(入力)
- 戻り値: 戻り値といえば関数が返す結果(出力)
関連の過去問演習は今後のアップデートで追加予定です。