【情報I】関数とは?DNCLでの書き方を基礎から解説|共通テスト対策

情報Iのプログラミング分野では、**関数(函数)**が重要な学習項目の一つです。この記事では、共通テストで使用されるDNCL(共通テスト手順記述標準言語)を用いて、関数の基本概念から実際の書き方まで、初学者にもわかりやすく解説します。

テックジム東京本校では、情報科目の受験対策指導もご用意しております。

関数とは何か?

関数の定義

関数とは、特定の処理をまとめて名前を付けたものです。一度定義しておけば、何度でも呼び出して使うことができます。

関数を使うメリット:

  • 再利用性:同じ処理を何度も書く必要がない
  • 可読性:プログラムが読みやすくなる
  • 保守性:修正が必要な場合、関数の中身だけを変更すればよい
  • 分割統治:複雑な問題を小さな部分に分けて解決できる

関数の構成要素

関数には以下の3つの要素があります:

  1. 関数名:関数を識別するための名前
  2. 引数(パラメータ):関数に渡すデータ
  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では、関数に関して以下のような問題が出題される可能性があります:

  1. 関数の定義を読み取る問題

    • 与えられた関数が何を計算しているか理解する
  2. 関数の呼び出し結果を答える問題

    • 特定の引数で関数を呼び出したときの戻り値を求める
  3. 関数を完成させる問題

    • 空欄補充形式で関数を完成させる
  4. アルゴリズムの理解

    • 関数を使った処理の流れを追跡する

練習問題

問題:以下の関数を実行したとき、戻り値はいくつか?

○ 計算(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万円のプログラミングスクールです。
    情報科目の受験対策指導もご用意しております。