情報処理教科書 基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版




PROLOGUE アルゴリズム問題の解き方のコツ(はじめに)

現在の基本情報技術者試験では,アルゴリズムの表記に,フローチャートではなく擬似言語が使用されています。この擬似言語は,基本情報技術者試験独自のものなので,開発の現場で目にすることはありません。したがって,擬似言語に苦手意識をもっている人が多くいます。

しかし,擬似言語を克服しないと,基本情報技術者試験に合格することは困難です。配点が高い午後の必須問題として,擬似言語によるアルゴリズム問題が出題されるからです。午後の選択問題の中で,擬似言語が使われることもあります。さらに,表計算問題のマクロも,擬似言語で表記されます。

本書は,苦手な擬似言語を克服して,午後試験のアルゴリズム問題が解けるようになるための学習書です。本書の内容は,大きく2部構成になっています。CHAPTER1~CHAPTER4では,基本的なアルゴリズムを題材にして,擬似言語をスラスラ読めるようにします。CHAPTER5~CHAPTER6では,実際に試験に出題された過去問題を題材にして,解法のポイントを掴み,試験に合格できる実践力を身に付けます。

アルゴリズム問題の解説書は,長たらしく手順を解説するだけになってしまいがちです。本書では,どうしてその手順であることがわかるのか,どのように問題を読み進めればよいのか,どうやって答えを選ぶのか,これらに重点を置いて,できるだけ手短に解説します。本書が,擬似言語によるアルゴリズム問題に対する苦手意識を克服するきっかけとなれば幸いです。

矢沢久雄

FLOW 本書で擬似言語を克服する流れ

CHAPTER1 擬似言語とは何か
擬似言語が採用された経緯や,フローチャートとの違いを知ります。
克服度 10%

CHAPTER2 擬似言語の仕様
試験問題に添付されている擬似言語の仕様の意味を理解します。
克服度 30%

CHAPTER3 擬似言語を読む練習
基本的なアルゴリズムの穴埋め問題で,擬似言語を読む練習をします。
克服度 50%

CHAPTER4 擬似言語を読む練習の仕上げ
ここまでの練習の仕上げとして,試験問題レベルの擬似言語を読んでみます。
克服度 60%

CHAPTER5 アルゴリズム問題の解き方のコツ
現在の試験制度の過去問題を使って,問題を解くコツを習得します。
克服度 80%

CHAPTER6 アルゴリズム問題演習
制限時間を設けて,現在の試験制度の過去問題にチャレンジします。
克服度 100%

Q&A 擬似言語に関するQ&A

Q1 JIS規格でも何でもない擬似言語を覚える気になれません。
参照 CHAPTER1
「CHAPTER1 擬似言語とは何か」をお読みください。擬似言語が採用された経緯を知り,フローチャートより擬似言語の方が表現できることが多いとわかります。フローチャートと擬似言語の対応を見て,擬似言語を身近に感じられるようになります。午後アルゴリズム問題の配点が高いことと,アルゴリズム以外の問題でも擬似言語が使われていることを知れば,擬似言語を覚える意義を感じられます。

Q2 試験問題に掲載されている擬似言語の仕様の意味がわかりません。
参照 CHAPTER2
「CHAPTER2 擬似言語の仕様」をお読みください。具体例を示して,擬似言語の仕様を詳しく説明します。それによって,試験当日に,擬似言語の仕様を見直す必要がなくなります。

Q3 擬似言語の意味はわかるのですが,試験問題のプログラムが読めません。
参照 CHAPTER3 CHAPTER4 読者特典
「CHAPTER3 擬似言語を読む練習」をお読みください。いきなり試験問題ではなく,基本的なアルゴリズムで擬似言語を読む練習をしましょう。その上で「CHAPTER4 擬似言語を読む練習の仕上げ」に進んで,練習の仕上げをしてください。さらに「読者特典! 動く擬似言語」も,大いにご活用ください。

Q4 問題を解くのに時間がかかってしまいます。
参照 CHAPTER5 CHAPTER6
「CHAPTER5 アルゴリズム問題の解き方のコツ」をお読みください。試験問題の読み方,プログラムの流れを追う方法,選択肢の選び方など,短い時間内に問題を解くコツを掴めます。その上で「CHAPTER6 アルゴリズム問題演習」を読んで,実力を確認してください。

Q5 教材の内容は理解できるのですが,実際の試験問題を解く自信がありません。
参照 CHAPTER1-6
本書を繰り返し読んでください。擬似言語の仕様,基本的なアルゴリズム,そして問題の解き方のコツへの理解が深まり,自信がもてるようになります。

矢沢 久雄 (著)
出版社 ‏ : ‎ 翔泳社; 第2版 (2016/12/16)、出典:出版社HP

CONTENTS

本書の使い方
読者特典! 動く擬似言語

CHAPTER1 001 擬似言語とは何か
01 情報処理技術者試験に擬似言語が採用された経緯
午後のアルゴリズム問題がフローチャートから擬似言語に変わった
擬似言語が採用された理由は見当たらない
02 フローチャートと擬似言語の対応
処理の流れの種類
順次の流れを示すフローチャートと擬似言語
分岐の流れを示すフローチャートと擬似言語
繰返しの流れを示すフローチャートと擬似言語
03 繰返しの継続条件と終了条件
継続条件と終了条件の違い
終了条件から継続条件への置換
04 フローチャートと擬似言語の違い
関数と変数の宣言
「S←キー入力」と「S←Input()」
05 選択問題でも擬似言語が使われる場面
選択問題でも擬似言語が使われる
表計算でも擬似言語が使われる

CHAPTER2 擬似言語の仕様
01 変数の宣言とデータ型
試験問題に添付されている擬似言語の仕様
変数の宣言
データ型の種類
擬似言語のプログラムの構造
変数への値の代入
配列の宣言
文字列型の変数と文字型の配列
二次元配列
二次元配列の縦方向と横方向
02 関数の宣言と呼出し
関数の引数と戻り値
引数で処理結果を返すこともできる
戻り値で処理結果を返す関数の処理内容
出力用の引数で処理結果を返す関数の処理内容
戻り値で処理結果を返す関数の呼出し
出力用の引数で処理結果を返す関数の呼出し
グローバル変数とローカル変数
03 演算子
演算子の種類と優先順位
除算における注意事項
関係演算
論理演算
04 処理の流れ
条件が真のときだけ処理を行う分岐
条件の真偽によって二つの処理に分岐する
三つ以上の処理に分岐する
前判定の繰返し
後判定の繰返し
ループカウンタを使った繰返し
ループカウンタと配列の添え字を対応させる
多重ループ
繰返しの継続条件のチェック回数とループカウンタの値
05 コメント
コメントの構文
コメントが大きなヒントになる

CHAPTER3 擬似言語を読む練習
擬似言語を読む練習の手順
01 ユークリッドの互除法
「ユークリッドの互除法」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
プログラムの穴埋め練習
02 うるう年の判定
「うるう年の判定」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
03 配列の最大値
「配列の最大値」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
04 線形探索
「線形探索」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
05 二分探索
「二分探索」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
06 バブルソート
「バブルソート」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
07 数字列を数値に変換する
「数字列を数値に変換する」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
08 2進数の乗算
「2進数の乗算」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
09 再帰呼出し
「再帰呼出し」のアルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習

CHAPTER4 擬似言語を読む練習の仕上げ
擬似言語を読む練習の仕上げで取り上げる過去問題
01 整列アルゴリズム(挿入法)123
「整列アルゴリズム(挿入法)」アルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
02 スタックを使って実数値を10進数字列に変換する
「スタックを使って実数値を10進数字列に変換する」アルゴリズムとデータの説明
プログラムの内容の説明
プログラムのトレース練習
03 リストの逐次探索処理
「リストの逐次探索処理」アルゴリズムとデータの説明
プログラムの内容の説明(MakeList関数)
プログラムの内容の説明(OrganizingSearch関数)
プログラムのトレース練習(MakeList関数)
プログラムのトレース練習(OrganizingSearch関数)

CHAPTER5 アルゴリズム問題の解き方のコツ
解き方のコツを掴むために取り上げる過去問題
すべての問題に共通した解法のコツ
01 「図形の塗替え」で掴む解き方のコツ
平成21年度・春期 基本情報技術者 午後・問8
プログラムの説明とプログラム
具体的な値を想定して処理の流れをトレースする
選択肢を見て消去法で考える
mやnの数式を見たら具体例を代入する
02 「マージソート」で掴む解き方のコツ
平成22年度・春期 基本情報技術者 午後・問8
プログラムの説明とプログラム
選択肢をグループ分けすることで正解の候補を大きく絞る
選択肢の異なる部分に注目する
03 「符号付き2進整数の乗算」で掴む解き方のコツ
平成22年度・秋期 基本情報技術者 午後・問8
プログラムの説明とプログラム
2進数の取り扱いに慣れておく
具体例として示された図の中にデータを書き込んで行く
仕組みがわからなくても答えを選べる場合がある

CHAPTER6 アルゴリズム問題演習
01 平成24年度・春期 基本情報技術者 午後・問8 「ビットの検査」
演習のために取り上げる過去問題
問題
解答・解説
02 平成25年度・春期 基本情報技術者 午後・問8 「食料品店の値引き処理」
問題
解答・解説
03 平成25年度・秋期 基本情報技術者 午後・問8 「文字列の圧縮」
問題
解答・解説

索引

矢沢 久雄 (著)
出版社 ‏ : ‎ 翔泳社; 第2版 (2016/12/16)、出典:出版社HP

DIRECTIONS 本書の使い方

本書の対応試験区分
本書の内容は,独立行政法人情報処理推進機構(IPA)が試験運営する国家試験「情報処理技術者試験」のうち,次の試験区分で出題される内容に対応しています。
基本情報技術者試験 午後試験

学習ツール
学習しやすいよう,本書では以下のツールを用意し,随所に掲載しています。

CHAPTER1~CHAPTER4
基本的なアルゴリズムを題材に,擬似言語をスラスラ読めるようになることを目指して,学習を進めます。基本情報技術者試験の午後アルゴリズム問題(問8)になかなか正解できない方は,擬似言語に慣れることからはじめましょう。

構文を示しています。前後の本文で,実際の使用方法を説明しています。
擬似言語で書かれたプログラムやプログラムの一部を掲載しています。
試験で問われるポイントや,問題を解く上でのアドバイスなどを掲載しています。

CHAPTER3では,擬似言語のプログラムの動作を確認できる資料を用意しています。詳しくはPXIV~の「読者特典! 動く擬似言語」をご覧ください。

見出しにこのマークがある節は,ダウンロードできる資料があります。
基本的なアルゴリズムを,文章で示しています。

CHAPTER3~CHAPTER4の節末には,学習の仕上げとして,プログラムをトレースするための練習問題と,プログラムの穴埋め問題を用意しています。

ポイント確認問題 学習した内容を理解できたか,その場ですぐに確認できる問題を用意しています。
表に実際に値を書き込んで,プログラムをトレースしましょう。

すべての学習項目と問題に,学習時間や解答時間の目安を示してあります。試験では,制限時間内に問題を解かなければなりません。学習するときから,時間を意識する習慣を持っておきましょう。

CHAPTER5~CHAPTER6
過去問題を解いて,基本情報技術者試験の午後アルゴリズム問題の攻略方法を身に付けていきましょう。
出典を明記した過去問題と正解は,IPAのホームページにも掲載されています。
独立行政法人情報処理推進機構(IPA)
情報処理技術者試験センター

読者特典!動く擬似言語

本書のCHAPTER3に示された擬似言語のサンプルプログラムの動作を示す解説資料を,下記URLからダウンロードできます。
http://www.shoeisha.co.jp/book/download/9784798150468/

資料はマイクロソフト社のPowerPointで作成されています(.ppt形式)。PDFファイルも収録しています。ファイルは節ごとにまとめ,zip形式で圧縮していますので,解凍してご利用ください。

この資料を見ることで,擬似言語によるプログラムの処理の流れと変数の値の変化が手に取るようにわかるようになり,擬似言語への苦手意識が一気に解消されるでしょう。ぜひご活用ください。

1 ページ(スライド)を進めるたびにプログラムが1行ずつ実行され,まるで動画
を見ているかのように,プログラムの動作を確認できます。

次に実行される行を矢印で示します。
次に実行される行の処理内容を説明します。

2 変数の値の変化は,色を付けてわかりやすいようにしています。

読者特典のご利用に関する注意事項

上記サイトで提供している解説資料は,本書をご購入いただいた方に限り,ご利用いただけます。
データの配布,複製,譲渡,販売に関する行為,および著作権を侵害する行為は禁止いたします。
著者および出版社のいずれも,上記サイトで提供している解説資料に対して何らかの保証をするものではなく,この解説資料に基づくいかなる運用結果に関しても,一切の責任を負いません。お客様の責任においてご利用ください。

矢沢 久雄 (著)
出版社 ‏ : ‎ 翔泳社; 第2版 (2016/12/16)、出典:出版社HP