ITパスポート 学習ページ|テクノロジ系・基礎理論
アルゴリズムとプログラムの読み方
アルゴリズム問題では、処理を上から順に追い、条件分岐と繰返しで変数がどう変わるかを確認します。探索や整列は、どのような順序でデータを見る方法なのかを押さえます。
順次・選択・繰返し
アルゴリズムの基本は、処理を記述順に実行する順次、条件によって処理を分ける選択、同じ処理を繰り返す繰返しの三つです。複雑な処理も、これらを組み合わせて表現できます。
選択では条件式が成立するかどうかによって実行する処理を変えます。繰返しでは回数や条件に応じて同じ処理を何度も実行します。
問題では、変数の初期値を書き出してから1行ずつ追うとミスを減らせます。代入後の値を次の処理で使うため、変数の値を毎回更新して追跡するのが基本です。
変数の値を1行ずつ更新して処理を追う
条件分岐を正確に追う
ifは条件が成立したときに処理を実行し、elseは成立しなかった場合の処理を表します。elseifを使えば複数の条件を順に判定できます。
条件が複数ある場合は、どの順番で判定されるかにも注意します。最初に成立した条件の処理を行った後、同じif文の後続のelseifを続けて実行するわけではありません。
大小比較や等値比較だけでなく、余りを利用して偶数・奇数などを判定する問題もあります。条件が成立する値だけを表にして確認すると整理しやすくなります。
ifは条件成立時の経路を一つずつ追う
forとwhileの違い
forは、回数や値の範囲が決まった繰返しを表すときに使いやすい構造です。例えば1から5まで順に値を変えながら処理する場合などに適しています。
whileは、指定した条件が成立している間、処理を繰り返します。whileでは条件を確認する時点と、ループ内で変数がどう変化するかをセットで追うことが大切です。
繰返しの問題では、処理回数を数えるだけでなく、最後の1回が実行されるかどうかを確認します。終了時の変数値と、最後に実行したときの変数値を混同しないようにします。
繰返しは条件判定と更新の順番を見る
擬似言語の記号を読む
アルゴリズムは、流れ図や擬似言語を使って表現できます。擬似言語では、変数、条件式、繰返し、関数などを一定の書き方で示します。
代入は計算結果や値を変数に入れる操作で、右辺を計算して左辺の変数に保存します。関数では、外部から受け取る値を引数、処理結果として返す値を戻り値といいます。
代入は数学の等式とは異なり、変数の現在値を書き換える操作です。例えばx←x+1は、現在のxに1を加えた値を新しいxとします。
←は右辺を計算して左辺へ代入する
探索方法を選ぶ
目的のデータを探す代表的な方法に線形探索法があります。先頭などから順に一つずつ調べる方法で、データが整列されていなくても使えます。
2分探索法は、整列済みのデータの中央付近を調べ、探索範囲を絞っていく方法です。2分探索法を使う前提として、探索対象が順序に従って並んでいることが必要です。
データ数が増えると、毎回一つずつ確認する方法と範囲を半分ずつ狭める方法では、調べる回数の増え方が異なります。試験では名称だけでなく、整列の有無や探索手順から判断します。
2分探索は整列済みデータを半分ずつ絞る
整列アルゴリズム
データを大小などの順序に並べ替える処理がソートです。代表例として、最小値などを選んで順に配置する選択ソートや、隣り合う要素を比較して交換するバブルソートがあります。
クイックソートでは基準となる値を使ってデータをグループに分けながら整列します。アルゴリズムごとに比較や交換の進め方が異なります。
探索と整列は目的が異なります。探索は目的の値を見つける処理、整列はデータの並び順を整える処理です。
探索は見つける処理、整列は並べ替える処理
プログラミングとは
プログラミングは、考えたアルゴリズムをプログラム言語で記述し、コンピュータで実行できる形にすることです。アルゴリズムが処理手順そのものを表すのに対し、プログラムはそれを具体的な言語で表現したものです。
同じ処理手順でも、使うプログラム言語によって書き方は異なります。先に処理手順を考え、それを実行可能な形で記述するのがプログラミングと捉えます。
アルゴリズムを言語で実行可能にする
本番の形で解いてみる
プログラム(擬似言語)の問題(このページのために作った問題・本番と同じ四肢択一)
次の擬似言語を実行したとき、変数totalの最終値はどれか。
1○整数型: total, i 2total ← 0 3for(iを1から4まで1ずつ増やす) 4 total ← total + i 5endfor
- 4
- 6
- 10
- 16
答えと解説を見る
正解: 10
totalには1、2、3、4が順に加算されます。0+1+2+3+4=10です。
まちがえやすい点: iの最終値だけを答えないようにします。
プログラム(擬似言語)の問題(このページのために作った問題・本番と同じ四肢択一)
次の関数をjudge(7)として呼び出したときの戻り値はどれか。
1○整数型: judge(整数型: x) 2if(x > 10) 3 return 1 4elseif(x > 5) 5 return 2 6else 7 return 3 8endif
- 1
- 2
- 3
- 戻り値なし
答えと解説を見る
正解: 2
7は10より大きくないので最初の条件は不成立ですが、5より大きいので2を返します。条件分岐では上から順に判定します。
まちがえやすい点: elseifは最初のifが不成立だった場合に評価される。
基本の問題(このページのために作った問題・本番と同じ四肢択一)
2分探索法でデータを探索するときの前提として、最も適切なものはどれか。
- 探索対象があらかじめ整列されている
- 探索対象が連結リストとして格納されている
- 探索対象の件数が事前に分かっている
- 探索対象の値が全て異なっている
答えと解説を見る
正解: 探索対象があらかじめ整列されている
2分探索法では、中央の値との大小関係から探索範囲を半分に絞るため、探索対象が整列されている必要があります。件数既知や値の重複なしは前提ではありません。
まちがえやすい点: 2分探索に必要なのは整列であり、値が全て異なることではない。
この内容を問題で確かめる
読んだところを、本番と同じ四肢択一の10問セットで思い出してみましょう。
ITパスポートの問題を解く →このページの内容は、IPA「ITパスポート試験 シラバス Ver.6.5」(2026年1月公表)の範囲にもとづきます(2026年10月確認)。