メインコンテンツへスキップ
教材一覧に戻る
ITパスポート

アルゴリズムとプログラミング

最終確認日:

このしょうまなぶこと

テクノロジけい 45 もんのうち、このしょう5〜8 もんほどの出題しゅつだいがあります。「アプリがデータをどう整理せいりして保管ほかんしているの?」「1000 けんなかから目的もくてきのデータをさがすのに、どうすればはやいの?」「プログラミング言語げんごはなぜあんなに種類しゅるいがあるの?」「問題もんだいしゅうてくる擬似ぎじ言語げんごってなに?」といった、コンピュータに手順てじゅんおしえてうごかすための基礎きそあつかしょうです。

とく擬似ぎじ言語げんご(iパス独自どくじ読解どっかいようコード)を追跡ついせきする問題もんだい毎年まいとしかなら出題しゅつだいされます。数式すうしき計算けいさんする数学すうがくとはちがい、順番じゅんばんどおりに実行じっこうして結果けっかもとめる」思考しこう訓練くんれん必要ひつようです。あわてず、変数へんすうあたいかみきながらいちずつトレースするのが鉄則てっそく

学習がくしゅうゴール

このしょうえた時点じてんで、以下いかができるようになっていることを目指めざします。

  • 主要しゅようデータ構造でーたこうぞう配列はいれつ連結リストれんけつりすとスタックすたっくキューきゅーグラフぐらふ)をシナリオから判別はんべつできる
  • 探索たんさくアルゴリズム(線形探索せんけいたんさく2 分探索にぶんたんさく)の計算量けいさんりょう判別はんべつして、データりょうおうじて選択せんたくできる
  • 整列せいれつアルゴリズム(バブルソートばぶるそーと選択ソートせんたくそーとクイックソートくいっくそーと等)の計算けいさんりょう比較ひかくできる
  • 擬似ぎじ言語げんごいて、変数へんすう制御構文せいぎょこうぶん(if・for・while)の動作どうさをトレースできる
  • プログラミング言語げんご分類ぶんるいコンパイラこんぱいら型・インタプリタいんたぷりた型・スクリプト言語すくりぷとげんご)を判別はんべつできる
  • HTML・XML・JSON・CSV の使つかけを判別はんべつできる

試験しけんでは: データ構造こうぞうは「用途ようと最適さいてき構造こうぞう」、アルゴリズムは「計算けいさんりょう比較ひかく」、擬似ぎじ言語げんごは「あたえられた入力にゅうりょくなに出力しゅつりょくするか」の 3 パターンが定番ていばんです。

1. データ構造こうぞう

データ構造こうぞうは「データを整理せいりして保管ほかんするかたち」。おな情報じょうほうでも整理せいり仕方しかたで、追加ついか検索けんさく削除さくじょのしやすさがおおきくわります。たとえばスーパーでものリストをつくるとき、順番じゅんばん配列はいれつ)か、優先ゆうせん順位じゅんいれつ(キュー)か、げていく(スタック)かで、使つか勝手がってわるのとおなじ。用途ようとおうじて最適さいてき構造こうぞうえらぶのがプログラマーのうでせどころで、試験しけんでも「この場面ばめんではどの構造こうぞう使つかうか」が頻出ひんしゅつです。

1.1 配列はいれつ(Array)

配列はいれつおなかたのデータを連続れんぞくした領域りょういきならべたもの一番いちばんシンプルで基本きほんてきなデータ構造こうぞうで、なん番目ばんめ」(インデックス)を指定していすれば一瞬いっしゅんせるのが特徴とくちょう。ただし途中とちゅう要素ようそ挿入そうにゅうしたり削除さくじょしたりすると、後続こうぞく要素ようそ全部ぜんぶずらす必要ひつようがあるのでおそくなります。

  • おなかたのデータを連続れんぞく領域りょういきならべる(メモリじょうみつならぶ)
  • インデックス添字そえじ、0 からはじまる)で要素ようそにアクセス → O(1)
  • 要素ようそ挿入そうにゅう削除さくじょ後続こうぞく要素ようそをずらす必要ひつようがありおそい → O(n)
  • 用途ようと: 成績せいせきひょう画像がぞうのピクセル配列はいれつとき系列けいれつデータ

具体ぐたいれい: 生徒せいと 30 ひと点数てんすう配列はいれつscores[0]〜scores[29]保管ほかん。3 ばん生徒せいと点数てんすうscores[2]一瞬いっしゅんれる。ただし「5 ばんと 6 ばんあたらしい生徒せいと挿入そうにゅう」すると、6 ばん以降いこう 25 ひとぶんを 1 つずつうしろにずらす必要ひつようがある。

1.2 リスト(List)

リスト連結れんけつリスト)は、かく要素ようそ要素ようそ場所ばしょすポインタ」つデータ構造こうぞう配列はいれつとはぎゃくに、挿入そうにゅう削除さくじょはやく、検索けんさくおそという特性とくせいがあります。メモリじょうでバラバラな位置いちにあっても、ポインタでつなげて論理ろんりてき順序じゅんじょたもちます。

  • かく要素ようそ要素ようそすポインタ
  • たん方向ほうこうリストつぎだけす(一方いっぽう通行つうこう
  • 双方向そうほうこうリスト前後ぜんご両方りょうほうす(ぎゃくはし可能かのう
  • 循環じゅんかんリスト末尾まつび先頭せんとうす(ぐるぐるまわる)
  • 挿入そうにゅう削除さくじょはや(ポインタのつなぎえだけ) → O(1)
  • 検索けんさくおそ先頭せんとうから順番じゅんばん辿たどるしかない) → O(n)
  • 用途ようと: LRU キャッシュ、音楽おんがくプレイヤーの再生さいせいリスト、ブラウザの履歴りれき

っかけ: 配列はいれつ検索けんさくはやい・挿入そうにゅうおそい、リストは挿入そうにゅうはやい・検索けんさくおそせい反対はんたい特性とくせいなので、用途ようと使つかける頻繁ひんぱん検索けんさくするなら配列はいれつ頻繁ひんぱん挿入そうにゅう削除さくじょするならリスト。

1.3 スタック(Stack)

スタックは「かさねたさら」のように、最後さいごれたものが最初さいしょデータ構造こうぞうりゃくして LIFO(Last In, First Out、後入あとい先出さきだし)とびます。プログラムの関数かんすうし(どこからばれたかをおぼえてもどる)や、エディタの Undo 機能きのう直前ちょくぜん操作そうさす)で使つかわれています。

  • LIFO(Last In, First Out)= 後入あとい先出さきだ
  • 操作そうさ: pushむ)・popじょうからす)
  • イメージ: あらったさらかさねる使つかときいちばんじょうから
  • 用途ようと: 関数かんすう管理かんり(コールスタック)、Undo 機能きのうしき括弧かっこ評価ひょうか、DFS 探索たんさく

具体ぐたいれい: エディタで「A を入力にゅうりょく → B を入力にゅうりょく → C を入力にゅうりょく → Undo」とすると、直前ちょくぜん入力にゅうりょくした C が最初さいしょされる。これは入力にゅうりょく履歴りれきをスタックに push し、Undo で pop しているから。

1.4 キュー(Queue)

キューは「レジの行列ぎょうれつ」のように、最初さいしょはいったものが最初さいしょデータ構造こうぞうりゃくして FIFO(First In, First Out、先入さきい先出さきだし)。プリンタの印刷いんさつ行列ぎょうれつ、メッセージキュー、タスクスケジューラなど、順番じゅんばん必要ひつよう場面ばめんひろ使つかわれます。

  • FIFO(First In, First Out)= 先入さきい先出さきだ
  • 操作そうさ: enqueue末尾まつび追加ついか)・dequeue先頭せんとうからし)
  • イメージ: レジの行列ぎょうれつさきならんだひとから会計かいけい
  • 用途ようと: 印刷いんさつ行列ぎょうれつメッセージキュータスクスケジューラ、BFS 探索たんさく

スタック(LIFO)

後入あとい先出さきだ

位置いち要素ようそ
頂上ちょうじょうpopC(最後さいごに push)
B
A(最初さいしょに push)

最後さいごんだ C が最初さいしょ

用途ようと: 関数かんすうし、Undo(やりなおし)、数式すうしき括弧かっこ解析かいせき

キュー(FIFO)

先入さきい先出さきだ

[dequeue ←] A → B → C [← enqueue]

最初さいしょれた A が最初さいしょ

用途ようと: 印刷いんさつ行列ぎょうれつ、メッセージキュー、タスクスケジューラ

頻出ひんしゅつっかけ: スタック = かみたてむ(LIFO)キュー = レジの行列ぎょうれつ(FIFO)のイメージ。「きゃくさんがならんでいる順番じゅんばん対応たいおうする」のがキュー、「かさねたさらうえから」のがスタック。pop / push / enqueue / dequeue の用語ようご区別くべつ

1.5 木構造きこうぞう(Tree)

構造こうぞう階層かいそう関係かんけい表現ひょうげんするデータ構造こうぞう。フォルダ階層かいそう組織そしき、HTML/XML の構造こうぞうなど、まわりにあふれています。家系かけい上下じょうげさかさにしたかたちうえしも)で表現ひょうげんするのが慣習かんしゅうです。

  • ルート()・えだおや兄弟きょうだいなどの用語ようご
  • 分木ぶんぎかくノードが最大さいだい 2 つのつ(ひだりみぎ
  • ふん探索たんさくひだり < おや < みぎ性質せいしつつ → 探索たんさく高速こうそく
  • 平衡木へいこうぎ(AVL など)— たかさのバランスをとって最悪さいあく計算けいさんりょう保証ほしょう
  • 用途ようと: フォルダ階層かいそう、HTML/XML の DOM、データベースの B インデックス

具体ぐたいれい: PC のフォルダ階層かいそう構造こうぞうそのもの。「デスクトップ > プロジェクト > 2026 > 資料しりょう.docx」という階層かいそうは、デスクトップを(ルート)としてした枝分えだわかれする。HTML の <html> > <body> > <div>おな構造こうぞう

1.6 グラフ

グラフは「ノード(てん」と「エッジ(せん」で物事ものごとのつながりをあらわデータ構造こうぞう。SNS の友達ともだち関係かんけい地図ちず道路どうろもう、Web ページのリンク構造こうぞうなど、ネットワークじょう関係かんけいあつかうのに使つかいます。構造こうぞうちがい、閉路へいろ(ループ)や複雑ふくざつ網状もうじょう表現ひょうげんできます。

  • ノード(頂点ちょうてんエッジ(へん関係かんけい表現ひょうげん
  • 有向ゆうこうグラフ — エッジに方向ほうこうがある(Twitter のフォローとう
  • 無向むこうグラフ双方向そうほうこう(Facebook の友達ともだち道路どうろ双方そうほう通行つうこうとう
  • 重みおもみきグラフ — エッジにコスト(距離きょり時間じかん)がある
  • 用途ようと: ネットワーク経路けいろ探索たんさく(カーナビ・地下鉄ちかてつ経路けいろ)、SNS の関係かんけい分析ぶんせきレコメンド

具体ぐたいれい: Google マップの「最短さいたん経路けいろ検索けんさく」はグラフ探索たんさく典型てんけい交差点こうさてんをノード、道路どうろをエッジ距離きょり所要しょよう時間じかん重みおもみとして、目的もくてきまでの最短さいたん経路けいろダイクストラほうなどで計算けいさんしています。

1.7 ハッシュテーブル

ハッシュテーブルは、キーから直接ちょくせつ場所ばしょ計算けいさんして高速こうそく検索けんさくできるデータ構造こうぞう辞書じしょ(dict)連想れんそう配列はいれつ(Map)ともばれます。平均へいきん O(1)検索けんさく挿入そうにゅうできる最強さいきょうクラスのはや特徴とくちょうで、Python や JavaScript の dict / Object などの標準ひょうじゅんデータがたとしてまれています。

  • キーハッシュ関数はっしゅかんすう数値すうち変換へんかん配列はいれつインデックスとして使つか
  • 検索けんさく挿入そうにゅう削除さくじょすべて平均へいきん O(1)
  • 欠点けってん: 順序じゅんじょ保証ほしょうされない、ハッシュ衝突しょうとつ対策たいさく必要ひつよう
  • 用途ようと: 辞書じしょ連想れんそう配列はいれつ、データベース索引さくいん、キャッシュ(Memcached、Redis)

具体ぐたいれい: 社員しゃいん番号ばんごう社員しゃいん情報じょうほう検索けんさくで、配列はいれつ線形せんけい探索たんさくなら全員ぜんいんスキャンが必要ひつようだが、ハッシュテーブルなら社員しゃいん番号ばんごうをハッシュ関数かんすう変換へんかんしてすぐにデータ位置いちがわかる。100 まんにん規模きぼでも一瞬いっしゅん

2. アルゴリズム

アルゴリズムは「問題もんだい手順てじゅん」のこと。おな問題もんだいくにも複数ふくすう手順てじゅんがあり、計算けいさんりょう処理しょり時間じかん増加ぞうかりつ比較ひかくします。データが 1 まんけんか 100 まんけんかで、最適さいてき手順てじゅんわってきます。試験しけんでは 線形せんけい探索たんさく vs 二分にぶん探索たんさく」「バブルソート vs クイックソート」計算けいさんりょう比較ひかく定番ていばんです。

2.1 探索たんさくアルゴリズム

探索たんさくは「データのなかから目的もくてきあたいつける」処理しょり。データがソートかどうかで、使つかえるアルゴリズムがおおきくわります。ソートされていないデータには線形せんけい探索たんさくしか使つかえないが、ソートみデータならふん探索たんさく圧倒的あっとうてきはやくなります。

アルゴリズム特徴とくちょう計算けいさんりょうソート前提ぜんてい
線形探索せんけいたんさく先頭せんとうからじゅん比較ひかくO(n)不要ふよう
二分探索にぶんたんさくソートみデータを半分はんぶんずつしぼO(log n)必要ひつよう
ハッシュ探索ハッシュたんさくハッシュ関数かんすう直接ちょくせつアクセスO(1)不要ふよう

ふん探索たんさく動作どうさ(ソート配列はいれつ[1,3,5,7,9,11,13,15]から 11 をさがす)

Step範囲はんい中央ちゅうおう比較ひかくつぎ範囲はんい
1[1,3,5,7,9,11,13,15]711 > 7みぎ半分はんぶん[9,11,13,15]
2[9,11,13,15]11一致いっち発見はっけん

2 ステップで発見はっけん線形せんけい探索たんさくなら最大さいだい 6 ステップ)

n=8 で比較ひかく: 線形せんけい探索たんさく = 最大さいだい 8 かい(O(n)) / 二分にぶん探索たんさく = 最大さいだい 3 かい(O(log n)) n=10⁶ なら 100 まんかい vs 20 かい — n がおおきいほどひろがる

頻出ひんしゅつっかけ: ふん探索たんさくは「ソートみ」が前提ぜんてい。ソートされていない配列はいれつ二分にぶん探索たんさく使つかえない。一方いっぽう線形せんけい探索たんさくはソート不要ふよう。データりょうおおきい場合ばあい事前じぜんソート + 二分にぶん探索たんさく」が「線形せんけい探索たんさく」より圧倒的あっとうてきはやくなる。

2.2 整列せいれつアルゴリズム

整列せいれつ(ソート)はデータを大小だいしょうじゅんならえる処理しょり単純たんじゅん手法しゅほう(バブル・選択せんたく挿入そうにゅう)は実装じっそう簡単かんたんだがおそ(O(n²))、高度こうど手法しゅほう(クイック・マージ・ヒープ)は実装じっそう複雑ふくざつだがはや(O(n log n))。データりょうすくなければ単純たんじゅん手法しゅほうでも十分じゅうぶんすうまんけん以上いじょうなら高度こうど手法しゅほう必須ひっすです。

アルゴリズム特徴とくちょう計算けいさんりょう
バブルソートばぶるそーと隣接りんせつ比較ひかく交換こうかん。シンプルO(n²)
選択ソートせんたくそーと最小値さいしょうち先頭せんとうかえO(n²)
挿入ソートそうにゅうそーと整列せいれつ部分ぶぶん挿入そうにゅうO(n²)
クイックソートくいっくそーと基準きじゅん(pivot)で分割ぶんかつ平均へいきん O(n log n)
マージソートまーじそーと分割ぶんかつ統治とうち統合とうごうO(n log n)
ヒープソートひーぷそーとヒープひーぷ構造こうぞう利用りようO(n log n)

おぼかた: 単純たんじゅんけい 3 兄弟きょうだい(バブル・選択せんたく挿入そうにゅう)は O(n²)高速こうそくけい 3 兄弟きょうだい(クイック・マージ・ヒープ)は O(n log n)計算けいさんりょう桁違けたちがいは、n=10,000 で単純たんじゅんけい 1 おくかい vs 高速こうそくけい 13 まんかいという圧倒的あっとうてきになる。

2.3 再帰さいき

再帰さいき関数かんすう自分じぶん自身じしん仕組しくみ。複雑ふくざつ処理しょりを「自分じぶんおな問題もんだいちいさいばん」に分解ぶんかいしてくアプローチで、構造こうぞう探索たんさく分割ぶんかつ統治とうちほうなどで必須ひっすのテクニックです。プログラムが直感ちょっかんてきけるが、停止ていし条件じょうけん間違まちがえると無限むげんループになるので注意ちゅうい

れい: かいじょう計算けいさん

function 階乗(n):
    if n == 0: return 1
    return n × 階乗(n - 1)

2.4 計算けいさんりょう(オーダー記法きほう

計算けいさんりょうは「入力にゅうりょくサイズ n がおおきくなったとき、処理しょり時間じかんがどうえるか」をあらわ尺度しゃくどO 記法きほう(ビッグオー記法きほう)であらわします。コンピュータの性能せいのうがっても、計算けいさんりょうわるいアルゴリズムはだい規模きぼデータで実用じつよう不能ふのうになります。データりょうおうじて適切てきせつなアルゴリズムをえらための指標しひょうです。

記法きほう名称めいしょうれい特徴とくちょう
O(1)定数ていすう時間じかん配列はいれつのインデックスアクセス、ハッシュ探索たんさく最速さいそく。データりょう依存いぞんしない
O(log n)たいすう時間じかん二分にぶん探索たんさく平衡木へいこうぎ探索たんさく非常ひじょうはや
O(n)線形せんけい時間じかん線形せんけい探索たんさく配列はいれつ最大値さいだいち検索けんさくデータりょう比例ひれい
O(n log n)じゅん線形せんけい時間じかんクイックソート、マージソートソートの実用じつよう限界げんかい
O(n²)じょう時間じかんバブルソート、選択せんたくソート、じゅうループだい規模きぼデータでおそ
O(2^n)指数しすう時間じかん部分ぶぶん集合しゅうごう列挙れっきょそうたり探索たんさく実用じつよう困難こんなん

具体ぐたいれい(n=1,000 のとき): O(1) = 1 操作そうさ / O(log n) ≈ 10 / O(n) = 1,000 / O(n log n) ≈ 10,000 / O(n²) = 1,000,000 / O(2^n) = 事実じじつじょう無限むげん桁違けたちがいのるので、計算けいさんりょうひくいアルゴリズムをえらぶことが重要じゅうよう

3. プログラム言語ぷろぐらむげんご

プログラミング言語げんご人間にんげんがコンピュータに命令めいれいするための言語げんご用途ようとによって得意とくい分野ぶんやことなるため複数ふくすう言語げんご存在そんざいし、現代げんだいのエンジニアは2〜3 言語げんご状況じょうきょう使つかけるのが普通ふつうです。試験しけんでは「この用途ようと最適さいてき言語げんごは?」「コンパイラがたとインタプリタがたちが」などが頻出ひんしゅつします。

3.1 言語げんご分類ぶんるい

プログラミング言語げんごいくつかのじく分類ぶんるいできます。機械きかいへの距離きょりで「てい水準すいじゅん高水準こうすいじゅん」、実行じっこう方式ほうしきで「コンパイラがた・インタプリタがた」、使つかかたで「スクリプト言語げんご」など、複数ふくすう分類ぶんるいかさなります。おなじ Python でも「高水準こうすいじゅん + インタプリタがた + スクリプト言語げんご」のように 3 つすべてに該当がいとうします。

分類ぶんるい特徴とくちょう代表だいひょうれい
低水準言語ていすいじゅんげんご機械きかいちかい。ハードウェアを直接ちょくせつ制御せいぎょ機械きかい、アセンブリ言語げんご
高水準言語こうすいじゅんげんご人間にんげんちかい。きやすいC、JavaPython
コンパイラこんぱいら実行じっこうまえ機械きかい一括いっかつ変換へんかん(コンパイル)。実行じっこうはやC、C++、Java
インタプリタいんたぷりた逐次ちくじ解釈かいしゃくしながら実行じっこう開発かいはつはやいが実行じっこうおそPython、JavaScriptRuby
スクリプト言語すくりぷとげんご簡易かんい記述きじゅつ実行じっこう解釈かいしゃくPython、JavaScript、PHP

っかけ: Java はコンパイラがただがバイトコードにコンパイルされて、JVM うえ実行じっこうされるため厳密げんみつには「コンパイラ + インタプリタ」のハイブリッド。試験しけんで「Java はコンパイラがた」とわれたら正解せいかい、「インタプリタがた」とだけわれたらあやまり。

3.2 代表だいひょうてきプログラム言語げんご

かく言語げんごには得意とくい分野ぶんやがあり、そのため複数ふくすう言語げんご共存きょうぞんしています。AI/機械きかい学習がくしゅうなら PythonWeb フロントエンドなら JavaScriptだい規模きぼ業務ぎょうむシステムなら Java、のように用途ようとえらびます。試験しけんでは言語げんご用途ようと対応たいおう頻出ひんしゅつです。

言語げんごおも用途ようと特徴とくちょう
PythonAI・機械きかい学習がくしゅう・データ分析ぶんせき科学かがく計算けいさんライブラリが豊富ほうふ
JavaScriptWeb フロントエンド・Node.jsブラウザで直接ちょくせつうご主要しゅよう言語げんご
Java業務ぎょうむシステム・AndroidJVM でプラットフォーム依存いぞん
C / C++OS・組込くみこみ・高速こうそく処理しょりハードウェアにちか高速こうそく
RubyWeb 開発かいはつ(Ruby on Rails)記述きじゅつ簡潔かんけつ
Go / Rustサーバ・システム近年きんねん人気にんき高速こうそく並列へいれつ処理しょり
Swift / KotliniOS / Androidかくプラットフォームの主流しゅりゅう
SQLデータベース操作そうさ宣言せんげんがた専用せんよう領域りょういき
R統計とうけい解析かいせき学術がくじゅつ研究けんきゅう

3.3 プログラムの基本きほん構造こうぞう

どんなプログラム言語げんごでも、3 つの基本きほん構造こうぞう組み合わせくみあわせ処理しょり記述きじゅつできます。これは 1966 ねんにベーム・ヤコピーニによって数学すうがくてき証明しょうめいされた事実じじつで、構造こうぞうプログラミング基礎きそとなっています。

  • 順次じゅんじ(Sequence)— うえからじゅん実行じっこう
  • 分岐ぶんき(Selection)— 条件じょうけん処理しょり選択せんたく(if / switch / case)
  • 反復はんぷく(Iteration)— かえ実行じっこう(for / while / do-while)

具体ぐたいれい: 「テストの点数てんすうによって評価ひょうかける」プログラムは順次じゅんじ + 分岐ぶんきける。「ぜん生徒せいと点数てんすう集計しゅうけいする」は順次じゅんじ + 反復はんぷくける。「生徒せいとごとに点数てんすう評価ひょうかけ、集計しゅうけい」は順次じゅんじ + 分岐ぶんき + 反復はんぷく組み合わせくみあわせ

3.4 変数へんすうとデータがた

変数へんすうあたいれる名前なまえきのはこデータがたはこれられるあたい種類しゅるいめるルール。整数せいすう文字もじれつぜて計算けいさんできないのは、データがたことなるから。現代げんだい言語げんごではかた自動じどう判定はんていするものもある(Python・JavaScript)が、明示めいじてきかた言語げんご(Java・C++・TypeScript)のほうバグが傾向けいこうにあります。

  • 変数へんすうあたい格納かくのうする「はこ」。名前なまえけて中身なかみ
  • 定数ていすう変更へんこうしないあたい宣言せんげん不可ふか
  • 基本きほんデータがた:
    • 整数せいすうがた(int) — 1, 100, -5 など
    • 実数じっすうがた(float / double) — 3.14, 2.71 など
    • 文字もじがた(char) — 'A', 'あ' など
    • 論理ろんりがた(boolean) — true / false
    • 文字もじれつがた(string) — "Hello" など
  • 複合ふくごうデータがた:
    • 配列はいれつ — インデックスでアクセス
    • 連想れんそう配列はいれつ辞書じしょ・Map) — キー→あたいのペア

4. 擬似ぎじ言語げんご

IT パスポート試験しけんでは、特定とくてい言語げんご依存いぞんしない「擬似ぎじコード」でアルゴリズムがわれます。Python や Java をらなくてもめるように、共通きょうつう記法きほうかれた"疑似ぎじ言語げんご"を能力のうりょく必要ひつようです。毎年まいとしかなら出題しゅつだいされる領域りょういきで、変数へんすううごきをかみいてトレースするのが合格ごうかく鉄則てっそくです。

4.1 基本きほん構文こうぶん

擬似ぎじ言語げんご構文こうぶん代入だいにゅう分岐ぶんき反復はんぷくの 3 要素ようそ中心ちゅうしん日本語にほんごじりかれることもおおく、自然しぜん言語げんごちか記述きじゅつでアルゴリズムの本質ほんしつ問いといます。

構文こうぶん意味いみ備考びこう
変数 ← 式代入だいにゅう右辺うへん左辺さへんれる)= ではなく ← を使つか
if (条件)endif分岐ぶんきelse / elseif もある
while (条件)endwhileぜん判定はんてい反復はんぷく条件じょうけんチェック → 実行じっこう最初さいしょから条件じょうけんにせならいち実行じっこうされない
dowhile (条件)判定はんてい反復はんぷく実行じっこう条件じょうけんチェック)すくなくとも 1 かい実行じっこうされる
forendfor計数けいすう反復はんぷく指定してい回数かいすうかえし)i=1,2,...,n のような
// コメント注釈ちゅうしゃくプログラムの動作どうさ影響えいきょうなし

っかけ: while(ぜん判定はんてい)と do-while(判定はんてい初期しょき条件じょうけんにせとき動作どうさちがう。while はいち実行じっこうされない可能かのうせいがあるdo-while は最低さいてい 1 かい実行じっこうされる試験しけんで「すくなくとも 1 かい実行じっこうされる反復はんぷく構文こうぶん」とわれたら do-while。

4.2 関数かんすう

関数かんすうは「入力にゅうりょく処理しょり出力しゅつりょく」の一連いちれん手続てつづきを名前なまえきでパッケージしたもの。おな処理しょりなん使つかまわせるようにするため、現代げんだいプログラミングでは必須ひっすかんがかた引数ひきすうわたしてし、もどります。

function 加算(a, b):
    return a + b

// 呼び出し
結果 ← 加算(3, 5)  // 結果 = 8

4.3 アルゴリズム読解どっかいのコツ

  1. まず変数へんすう初期しょき確認かくにん
  2. ループの回数かいすう条件じょうけん
  3. ループない変数へんすうがどう変化へんかするか追跡ついせき
  4. ループ終了しゅうりょう変数へんすう最終さいしゅうもとめる

具体ぐたいてきあたいれい: 配列はいれつ[3, 1, 4, 1, 5])をれて机上きじょう実行じっこう(トレース)するのが確実かくじつ

5. マークアップ言語まーくあっぷげんご・データ記述きじゅつ

マークアップ言語げんごは「文章ぶんしょう意味いみける」ための言語げんご。HTML で <h1> とタグをけると「これはだい見出しみだし」と意味いみ明示めいじされます。プログラム言語げんごとのちがいは、計算けいさんやロジックをかないてん。データの構造こうぞう記述きじゅつするのがおも用途ようとです。試験しけんでは HTML・XML・JSON・CSV の使つか頻出ひんしゅつします。

5.1 マークアップ言語げんご

言語げんご用途ようと特徴とくちょう
HTMLWeb ページの構造こうぞう記述きじゅつブラウザが解釈かいしゃくして表示ひょうじ
CSSWeb の装飾そうしょく正確せいかくにはマークアップではないが関連かんれん技術ぎじゅつ
XML汎用はんようデータ記述きじゅつ厳密げんみつ構造こうぞう業務ぎょうむシステムで採用さいよう
Markdown軽量けいりょうマークアップ(GitHub・ドキュメントよう可読性かとくせいたか
SGMLHTML・XML の共通祖先きょうつうそせん(1986 ねん ISO 標準ひょうじゅん現代げんだいでは直接ちょくせつ使つかわない

5.2 データ形式けいしき

プログラムかんでデータをわたすためのフォーマット。Web API(Web サービスかん通信つうしん)では JSON が事実じじつじょう標準ひょうじゅん設定せっていファイルには YAML、ひょう計算けいさんとの連携れんけいには CSV、業務ぎょうむシステムかんでは XML が使つかわれます。

形式けいしき特徴とくちょう用途ようと
JSON(JavaScript Object Notation)軽量けいりょうで Web API の標準ひょうじゅんREST API、NoSQL、アプリ設定せってい
XMLタグ構造こうぞう複雑ふくざつなデータを表現ひょうげん可能かのうSOAP API、業務ぎょうむシステム連携れんけい
YAML設定せっていファイルで人間にんげん可読性かとくせい重視じゅうしDocker Compose、Kubernetes、CI/CD 設定せってい
CSVカンマ区切くぎり。おもて計算けいさんあつかいやすいExcel 連携れんけい、ログ、データエクスポート

頻出ひんしゅつ: Web API = JSONひょう計算けいさん連携れんけい = CSV設定せっていファイル = YAML業務ぎょうむシステム連携れんけい = XML対応たいおうおぼえる。とくJSON の軽量けいりょうXML の厳密げんみつ比較ひかく頻出ひんしゅつ

5.3 JSON の例

{
  "name": "山田太郎",
  "age": 30,
  "hobbies": ["読書", "プログラミング"]
}

5.4 HTML の基本きほん構造こうぞう

<!DOCTYPE html>
<html>
  <head>
    <title>ページタイトル</title>
  </head>
  <body>
    <h1>見出し</h1>
    <p>段落テキスト</p>
  </body>
</html>

📋 しょうまつまとめ

さい重要じゅうようポイント 10 連発れんぱつ

  1. スタック(LIFO)とキュー(FIFO)順序じゅんじょぎゃく
  2. ふん探索たんさくは O(log n) — ソートみデータが前提ぜんてい
  3. バブルソートは O(n²)クイックソートは平均へいきん O(n log n)
  4. 再帰さいき自分じぶん自身じしん構造こうぞう
  5. オーダー記法きほう処理しょり時間じかん増加ぞうかりつ
  6. コンパイラ vs インタプリタ一括いっかつ変換へんかん vs 逐次ちくじ解釈かいしゃく
  7. スクリプト言語げんご — Python・JavaScript・PHP
  8. 擬似ぎじ言語げんご読解どっかい変数へんすうをトレースして
  9. HTML・CSS・JavaScript — Web 三種さんしゅ神器じんぎ
  10. JSON は Web API の標準ひょうじゅん

出題しゅつだい傾向けいこうのコツ

  • 擬似ぎじ言語げんご問題もんだい机上きじょう実行じっこう(トレース)で
  • ソート・探索たんさく計算けいさんりょうおぼえる必須ひっす項目こうもく
  • データ構造こうぞうは「なにさきすか」をかたち
この教材きょうざいやくちましたか?

このしょうれんしゅう

ほかのぶんれんしゅうもチェック

いちもんいっとう

情報セキュリティ 一問一答

IT パスポート試験で最重要の情報セキュリティ分野から 20 問を厳選。CIA 3 要素から攻撃手法、暗号・認証、対策技術まで体系的に確認できます。

いちもんいっとう

コンピュータシステム 一問一答

IT パスポート試験のテクノロジ系頻出テーマから 20 問を厳選。CPU/メモリから仮想化・クラウド・RAID・稼働率計算まで、ハードウェアとシステム構成の基礎を体系的に確認。

いちもんいっとう

データベース 一問一答

IT パスポート試験のデータベース分野から 20 問を厳選。主キー/外部キー/正規化/SQL(SELECT・WHERE・JOIN)/ACID/索引まで体系的に確認。

いちもんいっとう

ネットワーク 一問一答

IT パスポート試験のネットワーク分野から 20 問を厳選。LAN/WAN・Wi-Fi セキュリティ・TCP/IP・IP アドレス・DNS・HTTP/HTTPS・IoT 通信まで体系的に確認。

いちもんいっとう

企業と法務 一問一答

IT パスポート試験のストラテジ系の基礎「企業と法務」から 20 問を厳選。経営組織・OR/IE・会計財務・知的財産権・労働関連法規まで体系的に確認。

いちもんいっとう

経営戦略 一問一答

IT パスポート試験の頻出分野「経営戦略」から 20 問を厳選。経営分析フレームワーク・マーケティング・経営管理システム・技術戦略・ビジネスインダストリまで体系的に確認。

いちもんいっとう

システム戦略と企画 一問一答

IT パスポート試験のストラテジ系「システム戦略と企画」から 20 問を厳選。情報システム戦略・業務プロセス改革・クラウドサービス・システム企画調達まで体系的に確認。

いちもんいっとう

開発技術 一問一答

IT パスポート試験のマネジメント系「開発技術」から 20 問を厳選。開発プロセス・設計・テスト手法・アジャイル/スクラム・構成管理・UX デザインまで体系的に確認。

いちもんいっとう

プロジェクトマネジメント 一問一答

IT パスポート試験のマネジメント系「プロジェクトマネジメント」から 20 問を厳選。PMBOK の 10 知識エリア・WBS・スケジュール管理・コスト見積り・リスク管理まで体系的に確認。

いちもんいっとう

サービスマネジメントとシステム監査 一問一答

IT パスポート試験のマネジメント系「サービスマネジメントとシステム監査」から 20 問を厳選。ITIL・SLA/SLM・主要プロセス・サービスデスク・J-SOX・COSO まで体系的に確認。

いちもんいっとう

基礎理論 一問一答

IT パスポート試験のテクノロジ系「基礎理論」から 20 問を厳選。2 進数変換・AND/OR/XOR・確率計算・文字コード・誤差・機械学習 3 分類まで確認。

いちもんいっとう

ソフトウェア 一問一答

IT パスポート試験のテクノロジ系「ソフトウェア」から 20 問を厳選。OS 機能・プロセス/スレッド・圧縮形式・表計算関数・OSS ライセンスまで確認。

いちもんいっとう

情報デザインとメディア 一問一答

IT パスポート試験のテクノロジ系「情報デザインとメディア」から 20 問を厳選。LATCH・UX・アクセシビリティ・RGB/CMYK・JPEG/PNG・MPEG・VR/AR まで確認。

もんだいしゅう

IT パスポート 本試験形式 100 問

IT パスポート試験の全 14 章から出題する本試験準拠の総合問題集 100 問。ストラテジ 32 / マネジメント 18 / テクノロジ 50 の分野別配分・120 分で、実試験と同じスケールの実戦演習が可能。