【情報I】関数とは?DNCLでの書き方を基礎から解説|共通テスト対策
情報Iのプログラミング分野では、**関数(函数)**が重要な学習項目の一つです。この記事では、共通テストで使用されるDNCL(共通テスト手順記述標準言語)を用いて、関数の基本概念から実際の書き方まで、初学者にもわかりやすく解説します。
テックジム東京本校では、情報科目の受験対策指導もご用意しております。
目次
関数とは何か?
関数の定義
関数とは、特定の処理をまとめて名前を付けたものです。一度定義しておけば、何度でも呼び出して使うことができます。
関数を使うメリット:
- 再利用性:同じ処理を何度も書く必要がない
- 可読性:プログラムが読みやすくなる
- 保守性:修正が必要な場合、関数の中身だけを変更すればよい
- 分割統治:複雑な問題を小さな部分に分けて解決できる
関数の構成要素
関数には以下の3つの要素があります:
- 関数名:関数を識別するための名前
- 引数(パラメータ):関数に渡すデータ
- 戻り値(返り値):関数が処理した結果を返す値
DNCLでの関数の書き方
基本構文
DNCLでは、関数は以下のように定義します:
○ 関数名(引数1, 引数2, ...)
処理内容
・・・を返す
または、戻り値がない場合:
○ 手続き名(引数1, 引数2, ...)
処理内容
具体例1:戻り値のある関数
2つの数値の合計を求める関数を作成してみましょう。
○ 合計(a, b)
結果 ← a + b
結果を返す
この関数を呼び出す場合:
総和 ← 合計(10, 20)
総和を表示する
実行結果:30
具体例2:面積を計算する関数
長方形の面積を計算する関数の例です。
○ 長方形の面積(縦, 横)
面積 ← 縦 × 横
面積を返す
使用例:
たて ← 5
よこ ← 8
S ← 長方形の面積(たて, よこ)
Sを表示する
実行結果:40
具体例3:戻り値のない手続き(プロシージャ)
メッセージを表示するだけの手続きの例です。
○ あいさつ(名前)
「こんにちは、」と名前と「さん」を表示する
使用例:
あいさつ(「太郎」)
実行結果:こんにちは、太郎さん
関数を使った実践的な例
例:最大値を求める関数
3つの数値から最大値を求める関数を作成します。
○ 最大値(a, b, c)
最大 ← a
もし b > 最大 ならば
最大 ← b
もし c > 最大 ならば
最大 ← c
最大を返す
使用例:
数値1 ← 15
数値2 ← 42
数値3 ← 28
結果 ← 最大値(数値1, 数値2, 数値3)
結果を表示する
実行結果:42
例:偶数判定関数
数値が偶数かどうかを判定する関数です。
○ 偶数判定(数)
もし 数 % 2 = 0 ならば
真を返す
そうでなければ
偽を返す
使用例:
もし 偶数判定(10) ならば
「偶数です」を表示する
そうでなければ
「奇数です」を表示する
実行結果:偶数です
関数と変数のスコープ
ローカル変数とグローバル変数
- ローカル変数:関数の中でのみ使える変数
- グローバル変数:プログラム全体で使える変数
DNCLでは、関数の中で定義された変数は基本的にローカル変数として扱われます。
x ← 10 # グローバル変数
○ 関数A()
y ← 20 # ローカル変数(関数Aの中でのみ有効)
結果 ← x + y
結果を返す
共通テストでの出題ポイント
共通テストの情報Iでは、関数に関して以下のような問題が出題される可能性があります:
-
関数の定義を読み取る問題
- 与えられた関数が何を計算しているか理解する
-
関数の呼び出し結果を答える問題
- 特定の引数で関数を呼び出したときの戻り値を求める
-
関数を完成させる問題
- 空欄補充形式で関数を完成させる
-
アルゴリズムの理解
- 関数を使った処理の流れを追跡する
練習問題
問題:以下の関数を実行したとき、戻り値はいくつか?
○ 計算(n)
もし n ≦ 1 ならば
1を返す
そうでなければ
結果 ← n + 計算(n - 1)
結果を返す
答え ← 計算(5)
解答:
計算(5) = 5 + 計算(4)
= 5 + (4 + 計算(3))
= 5 + (4 + (3 + 計算(2)))
= 5 + (4 + (3 + (2 + 計算(1))))
= 5 + (4 + (3 + (2 + 1)))
= 5 + 4 + 3 + 2 + 1
= 15
答え:15
これは再帰関数の例で、関数が自分自身を呼び出しています。
まとめ
情報Iで学ぶ関数は、プログラミングの基礎として非常に重要です:
- 関数は処理をまとめて名前を付けたもの
- DNCLでは
○ 関数名(引数)の形式で定義 - 戻り値がある場合は
~を返すを使用 - 関数を使うことでプログラムが読みやすく、保守しやすくなる
- 共通テストでは関数の動作を理解する問題が出題される
関数の概念をしっかり理解することで、より複雑なプログラムも効率的に作成できるようになります。練習問題を繰り返し解いて、関数の動きに慣れていきましょう。
参考:よくある質問
Q1: 関数と手続きの違いは? A: 関数は戻り値があり、手続きは戻り値がありません。DNCLでは戻り値のある処理を「関数」、戻り値のない処理を「手続き」と呼びます。
Q2: 引数は必須ですか? A: いいえ、引数がない関数も作れます。例:○ 現在時刻() 時刻を返す
Q3: 複数の値を返すことはできますか? A: DNCLでは基本的に1つの値を返します。複数の値を扱いたい場合は配列やリストを使います。
関連キーワード:情報I、プログラミング、DNCL、共通テスト、関数、引数、戻り値、アルゴリズム
■らくらくPython塾 – 読むだけでマスター
【現役エンジニア歓迎】プログラミング学習お悩み相談会
【情報I】受験対策・お悩み相談会(オンライン・無料)
【オンライン無料】ゼロから始めるPython爆速講座
■テックジム東京本校
格安のプログラミングスクールといえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
対面型でより早くスキル獲得、月額2万円のプログラミングスクールです。
情報科目の受験対策指導もご用意しております。




