配列操作の擬似言語

擬似言語の配列操作を学びます。

科目Bで頻出の配列操作。要素アクセスとループの組み合わせを理解しましょう。

日野 こむぎ(普段) 日野 こむぎ

擬似言語で配列ってどう書くの?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

「{要素1, 要素2, 要素3}」のように {} で表記し、a[1] のように [] でアクセスするのよ。

青木 澪(普段) 青木 澪

重要なのは、IPA擬似言語では配列のインデックスが 1から始まる こと。
0始まりのプログラム言語と違うので注意!

○ 手続: arrayMax(整数型の配列: a)
  整数型: i, max
  max ← a[1]
  for (i を 2 から aの要素数 まで 1 ずつ増やす)
    if (a[i] > max)
      max ← a[i]
    endif
  endfor
  return max
青木 澪(普段) 青木 澪

これは配列の最大値を返す手続きね。
最初に a[1] を仮の最大値として、2番目以降と比較しながら大きい方に更新していく、古典的なアルゴリズムよ。

桃井 すみれ(普段) 桃井 すみれ

{3, 1, 4, 1, 5} を渡したら、どうなりますかぁ?

青木 澪(笑顔) 青木 澪

max ← a[1] でまず 3 から始まるわね。
i=2 では a[2]=1 で 3>1 だから変化なし。
i=3 では a[3]=4 で 4>3 なので max=4。
i=4 は 1 で変化なし。
i=5 は 5>4 なので max=5。
最終的に 5 を返すことになるわ。

日野 こむぎ(普段) 日野 こむぎ

ふむふむ、インデックスは1から始まって、要素数は「aの要素数」で取れるってことね。
あたしメモする!

藤森 さやか 先生(普段) 藤森 さやか 先生

そうそう。
配列の長さを扱うときは「aの要素数」と書くのが擬似言語の特徴なのよ。
これも頻出の記法ね。

確認クイズ

上記の arrayMax 手続に配列 {7, 2, 9, 1, 5} を渡した場合の戻り値はいくつか。

  1. 1
  2. 5
  3. 7
  4. 9
こたえを見る

正解: 4. 9

max ← 7 (初期値)、i=2: 2<7、i=3: 9>7なので max=9、i=4: 1<9、i=5: 5<9。最終的な max は 9 です。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。