基本情報技術者試験 (FE) 科目 B — 擬似言語

配列 — 添字が 1 から始まる仕様と操作

定義

擬似言語の配列は「型の配列: 名前 ← {要素1, 要素2, ...}」で宣言する。添字は 1 から始まり、arr[1] が先頭要素、arr[要素数] が末尾要素になる。0 番目の要素は存在しない。

配列は「型の配列: 名前 ← {要素1, 要素2, ...}

複数の値をまとめて扱いたいときは配列を使います。

整数型の配列: 点数 ← {70, 85, 92, 60, 78}
文字列型の配列: 名前 ← {"太郎", "花子", "次郎"}

型の配列 で「その型の要素だけを入れる配列」を宣言します。 初期値は波括弧 { ... } の中にカンマ区切りで並べます。 配列も宣言と初期化はまとめて 1 行に書けます。

添字は 1 から始まる (0 ではない)

基本情報の擬似言語では、配列の添字は 1 から始まります。 Java や Python の 0 始まりとは違うので、これが最も引っかかりやすいポイントです。

点数[1]   // 先頭要素 → 70
点数[3]   // 3 番目 → 92
点数[5]   // 末尾要素 → 78

点数[0]点数[6] にアクセスすると「添字が範囲外」の実行時エラーになります。 下のコードでエラーの様子を確認できます。

待機中
エディタを読み込み中…

変数

まだ実行されていません

出力

まだ出力はありません (print で表示します)

ブラウザで動かしてみる

配列と for を組み合わせて、5 人分の点数の合計を求める例です。 for の i は 1 から 5 まで動くので、点数[i] で 1 番目から 5 番目までを順に足していきます。

待機中
エディタを読み込み中…

変数

まだ実行されていません

出力

まだ出力はありません (print で表示します)

出力は 385 になります。一行ずつ実行 を押していくと、合計 が 70, 155, 247, 307, 385 と積み上がっていく様子を追えます。

要素の書き換えと最大値の探索

点数[i] ← 新しい値 の形で要素を書き換えることもできます。 次の例は「最初の要素を仮の最大値として、 残りの要素と比べて更新していく」典型的な最大値探索です。

待機中
エディタを読み込み中…

変数

まだ実行されていません

出力

まだ出力はありません (print で表示します)

出力は 92 です。 「先頭を仮の最大値にする → 残りと比べて大きければ更新する」というアルゴリズムは、 科目 B の頻出パターンなのでコードを目で追えるようにしておきましょう。

Python / TypeScript との違い

擬似言語が 1 始まりなのに対し、Python も TypeScript も 0 始まりです。 この実行シミュレーターの 多言語横並び比較ツール で変換すると、擬似言語の arr[i] が Python / TypeScript の arr[i - 1] に置き換わり、「擬似言語は 1 始まりなので -1」 というコメントが自動で付きます。

なぜ -1 されるのか、その理由を目で確かめると、 「擬似言語の添字と実際の言語の添字がずれる」感覚が体に染みつきます。

試験でつまずきやすいポイント

  • 1 始まりを忘れる: 「n 個の要素なら for は 1 から n まで」 — 0 から始めると 1 個ずつずれた答えになる
  • 範囲外アクセス: 点数[n + 1] のように 1 つ超えた添字を書いてしまう
  • 初期値の型と配列の型がずれる: 整数型の配列に {1.5, 2, 3} のような実数を入れると型不整合エラー
  • 配列を関数に渡す: 擬似言語では 「配列を丸ごと引数にする」ような書き方は避けられがちで、 要素数と要素を別々に受け取る問題文が多い

配列が読めるようになったら、最後のレッスン 関数と手続き に進みましょう。処理をまとめて名前を付けると、コードがぐっと読みやすくなります。

よくある疑問

Q.なぜ配列が 1 始まりなのですか?
A.IPA が試験用に定めた擬似言語の仕様がそうなっているためです。Java や Python など多くの言語が 0 始まりなのに対し、擬似言語は 1 始まりです。「1 番目の要素」「n 番目の要素」という日本語表現と一致するので、初学者には直感的だという設計方針です。
Q.配列の長さはどう取得しますか?
A.基本情報の擬似言語には配列長を取得する共通の組み込み関数はなく、問題文で「要素数を n とする」のように与えられるのが普通です。実行シミュレーターで配列を扱うときも、要素数を別変数に持たせて扱ってください。
Q.arr[0] にアクセスしたらどうなりますか?
A.配列の 0 番目は存在しないので、実行時エラー (添字が範囲外) になります。この実行シミュレーターでは「配列の添字は 1 から始まります」というヒント付きのエラーが表示されます。

理解できたか試す / 自由に動かす

この構文をもっと練習する(おすすめ書籍)

本セクションはAmazonアソシエイトのリンクを含みます。

オンライン個別指導

プログラムの読み方でつまずいたら。

たいてっくが、アルゴリズムの追い方から SQL・データベース設計まで、1対1で学習をサポートします。「コードを目で追っても何をしているか分からない」段階からで大丈夫です。まずは無料相談から。

無料相談を予約する →
受講者の声 (DB・SQL コース)
menta レビュー原文を見る →
  • 教え方も上手で、お人柄も良いメンターです。DB周りの知識はもちろん、何より、しっかり教えてあげようという姿勢がとてもありがたかったです。データベース、SQLの学習を考えている方にはおススメです。
    H 様DB・SQL コース受講
  • 体系的に知識を教えてくださり、実際の業務でも大変役立っております。特に短い時間で効率よく知識の習得や、練習をできているのは期待以上でした。
    M 様DB・SQL コース受講
  • 大変充実したコンテンツでわかりやすいご説明をありがとうございました。基本的な質問にも丁寧にご説明いただき、また業務のご相談にも乗って頂き大変有意義な時間でした。
    K 様DB・SQL コース受講