<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>「厳選5題」過去問 | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Mon, 20 Apr 2026 07:08:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.29</generator>
	<item>
		<title>「厳選5題」過去問と解説｜令和元年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/r01_autumn/</link>
		<pubDate>Thu, 13 Feb 2020 06:52:58 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=3661</guid>
		<description><![CDATA[<p>ここでは、令和元年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないと [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/r01_autumn/">「厳選5題」過去問と解説｜令和元年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_2/2019r01a_fe_am_qs.pdf" rel="noopener" target="_blank">令和元年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<div class="blue-grey-text pad_20 grey lighten-5 mag_h40">
<i class="material-icons light-blue-text">info</i> <span style="font-size: small">本記事ではわかりやすいよう、問題にシンタックスハイライトを入れています</span>
</div>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}.blk-u{border-bottom:1px solid #263238}dd,dl.inline dd{margin-left:2em}table{font-size:.85em;}.card-panel>pre{margin:1em -24px;padding:auto 24px}table.first-col-center td:first-child,table.first-col-center th:first-child{text-align:center}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>増分バックアップと差分バックアップの違いを覚えよう</h2>
<div class="card-panel mag_h30">
問 19　(令和元年度 秋期)</p>
<p>バックアップ方式の説明のうち，増分バックアップはどれか。　ここで，最初のバックアップでは，全てのファイルのバックアップを取得し， OS が管理しているファイル更新を示す情報はリセットされるものとする。</p>
<dl class="inline">
<dt>ア</dt>
<dd>最初のバックアップの後，ファイル更新を示す情報があるファイルだけをバックアップし，ファイル更新を示す情報は変更しないでそのまま残しておく。　</dd>
<dt>イ</dt>
<dd>最初のバックアップの後，ファイル更新を示す情報にかかわらず，全てのファイルをバックアップし，ファイル更新を示す情報はリセットする。　</dd>
<dt>ウ</dt>
<dd>直前に行ったバックアップの後，ファイル更新を示す情報があるファイルだけをバックアップし，ファイル更新を示す情報はリセットする。　 </dd>
<dt>工</dt>
<dd>直前に行ったバックアップの後，ファイル更新を示す情報にかかわらず，全てのファイルをバックアップし，ファイル更新を示す情報は変更しないでそのまま残しておく。　</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>データのバックアップ方式には、問題文に示された「増分バックアップ」の他にも、「差分バックアップ」と「フルバックアップ」があります。</p>
<p>選択肢は、いずれかのバックアップ方式に該当するものとなっていますので、<span class="u">この問題を通して、バックアップ方式の種類をまとめて覚えましょう。　</span></p>
<p>&nbsp;</p>
<p>最初に、最もわかりやすいフルバックの説明をしましょう。</p>
<p><span class="bold">フルバック</span>は、フル（ full = 全て）という言葉が示す通り、全てのデータをバックアップします。　選択肢の中では、「全てのファイルをバックアップし」と示されている選択肢イと選択肢エが、フルバックアップに該当します。</p>
<p>次に、増分バックアップと差分バックアップを説明しましょう。</p>
<p><span class="bold">増分バックアップ</span>は、直前に行われた何らかのバックアップ（フルバックアップ、増分バックアップ、差分バックアップ）から、変更のあった部分（これが増分です）だけをバックアップします。</p>
<p><span class="bold">差分バックアップ</span>は、直前に行われたフルバックアップから変更のあった部分（これが差分です）をバックアップします。</p>
<p>&nbsp;</p>
<p>増分と差分の違いがよくわからないと思いますので、具体例を示しましょう。</p>
<p>休日の日曜日にフルバックアップを取り、月曜日～土曜日の業務時間終了後にフルではないバックアップを取るとしましょう。</p>
<ul class="background c-round">
<li>増分バックアップの場合は、それぞれの曜日に、<span class="u">前日からの変更分だけ</span>のバックアップを取ります</li>
<li>差分バックアップの場合は、それぞれの曜日に、<span class="u">日曜日からの変更分</span>のバックアップを取ります</li>
</ul>
<table class="striped mag_h30 first-col-center responsive-width">
<thead>
<tr>
<th>曜日</th>
<th>増分バックアップ</th>
<th>差分バックアップ</th>
</tr>
</thead>
<tr>
<td>日</td>
<td>フルバックアップ</td>
<td>フルバックアップ</td>
</tr>
<tr>
<td>月</td>
<td>月曜日の変更分だけバックアップ</td>
<td>月曜日の変更分をバックアップ</td>
</tr>
<tr>
<td>火</td>
<td>火曜日の変更分だけバックアップ</td>
<td>月～火曜日の変更分をバックアップ</td>
</tr>
<tr>
<td>水</td>
<td>水曜日の変更分だけバックアップ</td>
<td>月～水曜日の変更分をバックアップ</td>
</tr>
<tr>
<td>木</td>
<td>木曜日の変更分だけバックアップ</td>
<td>月～木曜日の変更分をパックアップ</td>
</tr>
<tr>
<td>金</td>
<td>金曜日の変更分だけパックアップ</td>
<td>月～金曜日の変更分をバックアップ</td>
</tr>
<tr>
<td>土</td>
<td>土曜日の変更分だけバックアップ</td>
<td>月～土曜日の変更分をパックアップ</td>
</tr>
</table>
<p>増分バックアップと差分バックアップの違いがわかっても、どっちがどっちなのかを覚えにくいでしょう。</p>
<p>英語で示すと、増分は <span class="bold">increment （増加）</span>であり、差分は <span class="bold">difference （違い）</span>です。　このことから「前日からの増加が増分であり、フルバックアップとの違いが差分である」のように、自分流の覚え方を考えてください。</p>
<p>&nbsp;</p>
<p>それでは、残りの選択肢を見てみましょう。</p>
<dl class="mag_h30">
<dt>選択肢ア</dt>
<dd>ファイル更新を示す情報があるファイルだけをバックアップして、ファイル更新を示す情報は変更しないのですから、前日にバックアップしたファイルも次の日にバックアップすることになります。　これは、差分バックアップです。　</dd>
<dt>選択肢ウ</dt>
<dd>ファイル更新を示す情報があるファイルだけをバックアップして、ファイル更新を示す情報をリセットするのですから、前日にバックアップしたファイルは次の日にバックアップしないことになります。　これは、増分バックアップです。　</dd>
</dl>
<p>増分バックアップの説明を選ぶ問題なので、選択肢ウが正解です。</p>
<p><span class="chip">解答</span>　ウ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>SQL のグループ化のポイントをつかもう</h2>
<div class="card-panel mag_h30">
問 26　(令和元年度 秋期)</p>
<p>&#8220;得点&#8221; 表から，学生ごとに全科目の点数の平均を算出し，平均が 80 点以上の学生の学生番号とその平均点を求める。　a に入れる適切な字句はどれか。　ここで，実線の下線は主キーを表す。</p>
<div class="mag_lt30">得点(<span class="blk-u">学生番号</span>, <span class="blk-u">科目</span>, 点数)</div>
<p>〔 SQL 文〕</p>
<pre class="mag_bt20">
<code class="language-sql">SELECT 学生番号, AVG(点数)
FROM 得点 GROUP BY ［　　　a　　　］</code>
</pre>
<pre>
<code class="language-sql">ア　科目 HAVING AVG(点数) >= 80
イ　科目 WHERE 点数 >= 80
ウ　学生番号 HAVING AVG(点数) >= 80
エ　学生番号 WHERE 点数 >= 80 </code>
</pre>
<p><span class="grey-text hide-on-med-and-up mag_h10 small-text"><i class="material-icons light-blue-text mag_rt05">swipe</i>SQL 文は横スクロールできます</span>
</div>
<div class="chip">解説</div>
<p>SQL の SELECT 命令でデータを取得するときに、 <code class="language-sql"> GROUP BY 列名 </code> と指定することで、データをグループ化できます。</p>
<p>グループ化した場合は、 SELECT のあとに指定できるのは、<span class="u">GROUP BY のあとにある列か、 AVG 関数や MAX 関数などの集約関数だけ</span>です。　なぜだかわかりますか？</p>
<p>それは、グループ化したのに、グループの個々のデータを取得できたらおかしいからです。</p>
<p>たとえば、この問題とは違う例ですが、社員を「性別」でグループ化したときに、「男性」というグループから「山田太郎」という個々の「氏名」を取得できたらおかしいでしょう。</p>
<p>「男性」グループから抽出できるのは、「男性」という性別および、そのグループの年齢の平均値や最大値などだけです。</p>
<p>&nbsp;</p>
<p>それでは、問題を見てみましょう。</p>
<p>選択肢アとイは、 <code class="language-sql"> GROUP BY 科目 </code> であり、選択肢ウとエは、 <code class="language-sql"> GROUP BY 学生番号 </code>です。　SELECT のあとに指定されているのは <code class="language-sql"> 学生番号 </code> という列名と <code class="language-sql"> AVG(点数)  </code> という集約関数です。</p>
<p>したがって、 <code class="language-sql"> GROUP BY 学生番号 </code> となっている選択肢ウとエが適切です。</p>
<p>さらに、問題文に「平均が 80 点以上」という条件が示されているので、 <code class="language-sql"> HAVING AVG(点数) >= 80 </code> の選択肢ウが正解です。</p>
<p><span class="u">グループに条件を指定するときは、<code class="language-sql"> WHERE </code> ではなく <code class="language-sql"> HAVING </code> を使う</span>ことも覚えておいてください。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ウ</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/sql/">SQL</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>この機会に CSMA/CD という長い略語の意味を覚えよう</h2>
<div class="card-panel mag_h30">
問 31　(令和元年度 秋期)</p>
<p>CSMA / CD 方式の LAN に接続されたノードの送信動作として，適切なものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>各ノードに論理的な順位付けを行い，送信権を順次受け渡し，これを受け取ったノードだけが送信を行う。　</dd>
<dt>イ</dt>
<dd>各ノードは伝送媒体が使用中かどうかを調べ，使用中でなければ送信を行う。　衝突を検出したらランダムな時間の経過後に再度送信を行う。　</dd>
<dt>ウ</dt>
<dd>各ノードを環状に接続して，送信権を制御するための特殊なフレームを巡回させ，これを受け取ったノードだけが送信を行う。　</dd>
<dt>エ</dt>
<dd>タイムスロットを割り当てられたノードだけが送信を行う。　</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>もしも、この問題のテーマとなっている「 CSMA / CD 」という長い略語の意味をご存じでないなら、この機会にぜひ覚えてください。</p>
<p>Carrier Sense Multiple Access with Collision Detection（ <span class="u">/ は with を意味</span>します）です。　これは、LAN のプロトコルとしてよく使われているイーサネットの接続方式を示した言葉です。</p>
<p>&nbsp;</p>
<p>イーサネットに接続された通信機器がデータを送る場合の送信動作を以下に示します。</p>
<ol class="background c-round">
<li>まずケーブル上に他の信号が流れていないことを確認します。　これが、 <span class="u">Carrier Sense（キャリア信号の確認）</span>です</li>
<li>もしも、他の信号が流れていないならデータを送り、そうでないなら信号がなくなるまで待機します。　これによって、複数の通信機器が同じケーブルを利用できます。　<br />これが、 <span class="u">Multiple Access（複数が利用する）</span>です</li>
<li>複数の通信機器が同時にデータを送った場合には、衝突が起こりそれが検知されます。　これが、 <span class="u">with Collision Detection（衝突の検出付き）</span>です</li>
<li>衝突が起きた場合は、お互いにランダムな時間待機して、データを再送します</li>
</ol>
<p>この仕組みをまとめて、CSMA / CD = Carrier Sense Multiple Access with Collision Detection と呼ぶのです。</p>
<figure><figcaption>図　CSMA / CD方式の送信動作</figcaption><img class="materialboxed hoverable responsive-width z-depth-5 pad_10 white" data-caption="図　CSMA/CD方式の送信動作" src="../../wp-content/uploads/2020/02/figure_csma_cd.png" loading="lazy"><br />
</figure>
<p>それでは、問題の選択肢を見てみましょう。</p>
<p>選択肢の中にある「ノード」とは、ネットワークに接続された通信機器のことです。　CSMA / CD に該当するのは、</p>
<p>「伝送媒体が使用中かどうかを調べ（ Carrier Sense ）」<br />
「送信中でなければ通信を行う（それによって複数ノードが利用できるので Multiple Access ）」<br />
「衝突を検出したら（ Collision Detection ）」</p>
<p>とある、選択肢イです。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　イ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>試験によく出るネットワーク構成を知っておこう</h2>
<div class="card-panel mag_h30">
問 42　(令和元年度 秋期)</p>
<p>1 台のファイアウォールによって，外部セグメント， DMZ ，内部セグメントの三つのセグメントに分割されたネットワークがあり，このネットワークにおいて， Web サーバと，重要なデータをもつデータベースサーバから成るシステムを使って，利用者向けの Web サービスをインターネットに公開する。　インターネットからの不正アクセスから重要なデータを保護するためのサーバの設置方法のうち，最も適切なものはどれか。　ここで， Web サーバでは，データベースサーバのフロントエンド処理を行い，ファイアウォールでは，外部セグメントと DMZ との間，及び DMZ と内部セグメントとの間の通信は特定のプロトコルだけを許可し，外部セグメントと内部セグメントとの間の直接の通信は許可しないものとする。</p>
<dl class="inline">
<dt>ア</dt>
<dd>Web サーバとデータベースサーバを DMZ に設置する。　</dd>
<dt>イ</dt>
<dd>Web サーバとデータベースサーバを内部セグメントに設置する。　</dd>
<dt>ウ</dt>
<dd>Web サーバを DMZ に，データベースサーバを内部セグメントに設置する。　</dd>
<dt>エ</dt>
<dd>Web サーバを外部セグメントに，データベースサーバを DMZ に設置する。　</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>社内のネットワーク構成には、様々な形式がありますが、<span class="u"></span>基本情報技術者試験では、よく出る定番の構成があります。　</span></p>
<p>それは、以下に示したように、<span class="u">DMZ（ = 非武装地帯）</span>と<span class="u">内部セグメント</span>の 2 つのネットワークを<span class="u">ファイアウォール</span>で区切る、という構成です。</p>
<ul class="background c-round">
<figure><figcaption>図　試験によく出る定番のネットワーク構成</figcaption><img class="materialboxed hoverable responsive-width pad_10 z-depth-5" data-caption="図　試験によく出る定番のネットワーク構成" src="../../wp-content/uploads/2020/02/figure_lan.jpg" loading="lazy"><br />
</figure>
<p class="indigo-text"><span class="u">ファイアウォールの役割</span></p>
<li>外部セグメント（インターネット）と内部セグメントの通信を禁止</li>
<li>外部セグメントと DMZ の通信、および内部セグメントと DMZ の通信を許可</li>
<p class="indigo-text"><span class="u">構成のパターン</span></p>
<li>外部セグメントから直接利用される Web サーバ、メールサーバ、プロキシサーバ（代理人サーバ）などを <span class="bold">DMZ</span> に設置</li>
<li>重要なデータを持つデータベースサーバやユーザーが業務を行う端末（ PC ）を <span class="bold">内部セグメント</span> に設置</li>
</ul>
<p>外部セグメントからデータベースサーバを利用する場合は、 <span class="u">DMZ にある Web サーバを介して間接的に使う</span>ことになります。</p>
<p>内部セグメントにある端末からインターネットにアクセスする場合は、 <span class="u">DMZ にあるプロキシサーバを介して間接的にアクセスする</span>ことになります。</p>
<p>&nbsp;</p>
<p>それでは、選択肢を見てみましょう。</p>
<p>この問題に登場するのは、Web サーバとデータベースサーバです。　Web サーバを DMZ に設置して、データベースサーバーを内部セグメントに設置する、と説明している選択肢ウが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ウ</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/ネットワーク/">ネットワーク</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>テストにおけるスタブとドライバの役割を知っておこう</h2>
<div class="card-panel mag_h30">
問 48　(令和元年度 秋期)</p>
<p>テストで使用するスタブ又はドライバの説明のうち，適切なものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>スタブは，テスト対象モジュールからの戻り値の表示・印刷を行う。　</dd>
<dt>イ</dt>
<dd>スタブは，テスト対象モジュールを呼び出すモジュールである。　</dd>
<dt>ウ</dt>
<dd>ドライバは，テスト対象モジュールから呼び出されるモジュールである。　</dd>
<dt>エ</dt>
<dd>ドライバは，引数を渡してテスト対象モジュールを呼び出す。　</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>基本情報技術者試験には、かなり地味な用語なのですが、よく出るものがあります。　この問題のテーマになっている<span class="bold">「スタブ」</span>と<span class="bold">「ドライバ」</span>は、その好例です。</p>
<p>日本語に直訳すると、スタブ（ stub ）は「木の切り株」という意味で、ドライバ（ driver ）は「運転手」という意味です。　これらは、プログラムのテストに関する用語です。</p>
<p>&nbsp;</p>
<p>一般的に、1 つのシステムは、複数のモジュール（構成要素）に分けて開発されます。</p>
<div class="background c-round">
<figure><figcaption>図　上位モジュールと下位モジュール</figcaption><img class="materialboxed hoverable responsive-width z-depth-5 pad_10" data-caption="図　上位モジュールと下位モジュール" src="../../wp-content/uploads/2020/02/figure_main_sub.jpg" loading="lazy"><br />
</figure>
<p>モジュールには、上位モジュール（他のモジュールを使う側のモジュール）と、下位モジュール（他のモジュールから使われる側のモジュール）があります。</p>
<p>たとえば、 main というモジュールがあり、その中で sub というモジュールを使っている場合は、 main が上位モジュールで、 sub が下位モジュールです。</p>
<ul>
<li>モジュールを使うことを<span class="bold">「呼び出す」</span>と呼びます</li>
<li>モジュールに渡して処理させるデータを<span class="bold">「引数（ひきすう）」</span>と呼びます</li>
<li>モジュールが処理結果として返すデータを<span class="bold">「戻り値」</span>と呼びます</li>
</ul>
</div>
<dl>
<dt class="bold">スタブ</dt>
<dd>上位モジュールを単独でテストするときには、テスト用の下位モジュールを作ります。　これが「スタブ」です。<br />
  スタブは、上位モジュールから渡された引数を表示や印字するので、引数の内容が適切であるかどうかを確認できます。</p>
<figure class="mag_h30 blue-grey-text center"><figcaption>図　スタブの役割</figcaption><img class="white materialboxed hoverable responsive-width z-depth-5 pad_10" data-caption="図　スタブの役割" src="../../wp-content/uploads/2020/02/figure_stub.png" loading="lazy"><br />
  </figure>
</dd>
<dt class="bold">ドライバ</dt>
<dd>下位モジュールを単独でテストするときには、テスト用の上位モジュールを作ります。　これが「ドライバ」です。<br />
  ドライバは、下位モジュールから返された戻り値を表示や印字するので、戻り値の内容が適切であるかどうかを確認できます。</p>
<figure class="mag_h30 blue-grey-text center"><figcaption>図　ドライバの役割</figcaption><img class="white materialboxed hoverable responsive-width z-depth-5 pad_10" data-caption="図　ドライバの役割" src="../../wp-content/uploads/2020/02/figure_driver.png" loading="lazy"><br />
  </figure>
</dd>
</dl>
<p>それでは、問題の選択肢を見てみましょう。</p>
<dl class="inline">
<dt>ア</dt>
<dd>スタブは、テスト対象の上位モジュールからの引数の表示や印字を行うので、選択肢アは不適切です。　</dd>
<dt>イ</dt>
<dd>スタブは、テスト対象の上位モジュールから呼び出されるモジュールなので、選択肢イは不適切です。　</dd>
<dt>ウ</dt>
<dd>ドライバは、テスト対象の下位モジュールを呼び出すモジュールなので、選択肢ウは不適切です。　</dd>
<dt>エ</dt>
<dd>ドライバは、引数を渡してテスト対象の下位モジュールを呼び出すので、選択肢エは適切です。　</dd>
</dl>
<p>したがって、選択肢エが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　エ</p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。　<span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/r01_autumn/">「厳選5題」過去問と解説｜令和元年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説｜平成31年度 春期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h31_spring/</link>
		<pubDate>Mon, 23 Dec 2019 07:40:17 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[IPアドレス]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=3397</guid>
		<description><![CDATA[<p>ここでは、平成 31 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h31_spring/">「厳選5題」過去問と解説｜平成31年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_1/2019h31h_fe_am_qs.pdf" rel="noopener" target="_blank">平成 31 年度 春期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>dt{font-weight:700}dd,dl.inline dd{margin-left:2em}h2 .chip{vertical-align:middle;background:#3f51b5;color:#fff;margin-right:.75em}.chip i{font-size:2em!important}pre,code{font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#eceff1;color:#263238;}pre{padding:1em 1.5em;margin:1.5em 0;}code{padding:.15em .5em;}table{font-size:.85em;}th{text-align:center;}@media only screen and (min-width:601px){.responsive-width{width:50%;margin:auto}}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>dpi の意味がわかれば計算できます</h2>
<div class="card-panel mag_h30">
問 11　(平成 31 年度 春期)</p>
<p>96 dpi のディスプレイに 12 ポイントの文字をビットマップで表示したい。 正方フォントの縦は何ドットになるか。 ここで， 1 ポイントは 1/72 インチとする。</p>
<p>ア　8　　イ　9　　ウ　12　　<br class="hide-on-med-and-up">エ　16
</div>
<div class="chip">解説</div>
<p>基本情報技術者試験の計算問題の多くは、それが IT の現場でよく行われているというものではなく、<span class="u">「仕組みを知っていれば計算できるよね！」や「用語の意味を知っていれば計算できるよね！」という趣旨のもの</span> です。</p>
<p>この問題は、「 dpi という用語の意味を知っていれば計算できるよね！」です。</p>
<p>&nbsp;</p>
<p>dpi は、dots per inch　（ドット / インチ）の略で、ディスプレイの 1 インチの幅に何ドットを表示できるかを示します。 ここでは、 96 dpi なので、 1 インチに 96 ドットを表示できます。</p>
<p>1 ポイントを 1 / 72 インチとするので、 12 ポイントは</p>
<pre>12 ×（ 1 / 72 ）
= 12 / 72
= 1 / 6 インチ
</pre>
<p>です。</p>
<ol class="background c-round">
<li>12 ポイントの正方フォントなので、縦も横も<br /><code>12 ポイント = 1 / 6 インチ</code></li>
<li>1 インチが 96 ドットなので、 1 / 6 インチは<br /><code>( 1 / 6 ) × 96 = 16 ドット</code></li>
</ol>
<p>したがって、選択肢エが正解です。</p>
<p>16 ドットの正方フォントの例を、以下に示します。</p>
<figure><figcaption><i class="material-icons light-blue-text mag_rt05 pad_05">description</i>16 ドットの正方フォントの例</figcaption><img class="hoverable materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q11_figure.jpg" alt="" loading="lazy" /><br />
</figure>
<p><span class="chip mag_tp30">解答</span>　エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>オープンソースの定義を知っておこう</h2>
<div class="card-panel mag_h30">
問 20　(平成 31 年度 春期)</p>
<p>OSI によるオープンソースソフトウェアの定義に従うときのオープンソースソフトウェアに対する取扱いとして，適切なものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>ある特定の業界向けに作成されたオープンソースソフトウェアは，ソースコードを公開する範囲をその業界に限定することができる。</dd>
<dt>イ</dt>
<dd>オープンソースソフトウェアを改変して再配布する場合，元のソフトウェアと同じ配布条件となるように，同じライセンスを適用して配布する必要がある。</dd>
<dt>ウ</dt>
<dd>オープンソースソフトウェアを第三者が製品として再配布する場合，オープンソースソフトウェアの開発者は第三者に対してライセンス費を請求することができる。</dd>
<dt>エ</dt>
<dd>社内での利用などのようにオープンソースソフトウェアを改変しても再配布しない場合，改変部分のソースコードを公開しなくてもよい。</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>オープンソースという言葉は、「ソースコードが公開されている」という意味ですが、オープンソースのソフトウェアが満たすべき条件は、それだけではありません。</p>
<p>OSI （ Open Source Initiative ）という組織によって、<a href="https://opensource.jp/osd/osd-japanese.html" rel="noopener" target="_blank">オープンソースの定義</a> として、以下の項目が取り決められています（ここでは、わかりやすい表現に書き換えています）。 これらの定義に照らし合わせて、選択肢を見てみましょう。</p>
<ol class="mag_h30 background c-round">
<li>ソフトウェアを販売あるいは無料で配布することを制限してはならない</li>
<li>配布するソフトウェアはソースコードを含んでいなければならない</li>
<li>派生ソフトウェアを元のソフトウェアと同じ条件で配布することを許可しなければならない</li>
<li>変更後は、元の作者のソースコードとは独立したものでなければならない</li>
<li>配布において、特定のグループに対する差別をしてはならない</li>
<li>配布において、利用する分野に対する差別をしてはならない</li>
<li>利用権は、ソフトウェアが配布された者全てに対して等しく認めなければならない</li>
<li>利用権を、特定製品でのみ有効にしてはならない</li>
<li>利用権は、一緒に配布されるソフトウェアを制限してはならない</li>
<li>利用権に、特定の技術に依存する規定があってはならない</li>
</ol>
<dl class="mag_h40">
<dt>選択肢ア</dt>
<dd>「公開する範囲を特定業界に限定する」ですから、定義の 5 や 6 に対して不適切です。</dd>
<dt>選択肢イ</dt>
<dd>「改変したソフトを、元のソフトと同じライセンスにする必要がある」は、定義の 3 に対して適切に思えますが、定義の 3 は「同じ条件で配布することを許可しなければならない（同じ条件でなくてもよい）」であって、「同じ条件で配布しなければならない」ではないので、不適切です。</dd>
<dt>選択肢ウ</dt>
<dd>「オープンソースの開発者がライセンス費を請求できる」ですから、定義の 1 に対して不適切です。</dd>
<dt>選択肢エ</dt>
<dd>定義の 2 に対して不適切に思えますが、定義の 2 は「配布するプログラム」なのですから、配布しない場合は、ソースコードを公開する必要はありません。</dd>
</dl>
<p>したがって、選択肢エが適切であり正解です。</p>
<p><span class="chip mag_tp30">解答</span>　エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>GUI 部品の種類と用途を知っておこう</h2>
<div class="card-panel mag_h30">
問 24　(平成 31 年度 春期)</p>
<p>GUI の部品の一つであるラジオボタンの用途として，適切なものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>幾つかの項目について，それぞれの項目を選択するかどうかを指定する。</dd>
<dt>イ</dt>
<dd>幾つかの選択項目から一つを選ぶときに，選択項目にないものはテキストボックスに入力する。</dd>
<dt>ウ</dt>
<dd>互いに排他的な幾つかの選択項目から一つを選ぶ。</dd>
<dt>エ</dt>
<dd>特定の項目を選択することによって表示される一覧形式の項目から一つを選ぶ。</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>デスクトップアプリや Web アプリを操作するためのビジュアルな部品を「 GUI 部品」と呼びます。 以下は、Windows のデスクトップアプリの GUI 部品の例です。</p>
<div class="row">
<figure class="col m6 s12 mag_tp00"><figcaption class="mag_tp00">Windows のデスクトップアプリの GUI 部品の例</figcaption><img class="mag_bt30 hoverable materialboxed z-depth-1" data-caption="Windows のデスクトップアプリの GUI 部品の例"
  src="../../wp-content/uploads/2019/12/q24_figure.jpg" style="margin:auto;" alt="" loading="lazy" /><br />
</figure>
<dl class="col m6 s12">
<dt>ラベル</dt>
<dd>文字列を表示する</dd>
<dt>テキストボックス</dt>
<dd>文字列を入力する</dd>
<dt>コンボボックス</dt>
<dd>リストから選択、または文字列を入力する</dd>
<dt>リストボックス</dt>
<dd>リストから選択する</dd>
<dt>フレーム</dt>
<dd>GUI 部品をグループにまとめる</dd>
<dt>チェックボックス</dt>
<dd>任意の数の項目を選択する</dd>
<dt>ラジオボタン</dt>
<dd>1 つだけの項目を選択する</dd>
<dt>ボタン</dt>
<dd>入力を確定またはキャンセルする</dd>
</dl>
</div>
<dl class="background c-round">
<dt>選択肢ア</dt>
<dd>複数の項目を選択するので、チェックボックスです</dd>
<dt>選択肢イ</dt>
<dd>選択するか、または入力するので、コンボボックスです</dd>
<dt>選択肢ウ</dt>
<dd>排他的に 1 つを選ぶので、ラジオボタンです</dd>
<dt>選択肢エ</dt>
<dd>一覧から 1 つを選ぶので、リストボックスです</dd>
</dl>
<p>ここでは、ラジオボタンの用途を選ぶので、選択肢ウが正解です。</p>
<p><span class="chip mag_tp30">解答</span>　ウ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>すべて 0 とすべて 1 が、ホストアドレスに使えない理由を知っておこう</h2>
<div class="card-panel mag_h30">
問 32　(平成 31 年度 春期)</p>
<p>192.168.0.0/23 (サブネットマスク 255.255.254.0) の IPv4 ネットワークにおいて，ホストとして使用できるアドレスの個数の上限はどれか。</p>
<p>ア　23　　イ　24　　ウ　254　　<br class="hide-on-med-and-up">エ　510
</div>
<div class="chip">解説</div>
<p>IPv4 の IP アドレス は、 32 ビットです。</p>
<p>192.168.0.0/23 の /23 は、IP アドレスの上位 23 ビットがサブネットワークのアドレスであり、残りの下位 9 ビットがホスト（ネットワークに接続される機器）のアドレスであることを示しています。</p>
<p>9 ビットで表せる数値は、000000000 ～ 111111111 の 512 通りですが、これらの中で、<span class="bold">すべて 0 の 000000000 と、すべて 1 の 111111111 は、ホストのアドレスとして使えません。</span></p>
<p>したがって、 512 から 2 を引いた 510 通りのアドレスが使えるので、選択肢エが正解です。</p>
<p>&nbsp;</p>
<p>すべて 0 とすべて 1 が、ホストアドレスに使えない理由を知っておきましょう。</p>
<dl class="background c-round">
<dt>ホストのアドレスがすべて 0 の 000000000</dt>
<dd><span class="u">サブネットワークのアドレスを示すもの</span>となります。 <br />32 ビットの上位 23 ビットだけを切り出すのではなく、 32 ビットの下位 9 ビットをすべて 0 にすることで、サブネットワークのアドレスを表すのです。 <br />これは、たとえば「山田太郎」という人名の苗字を「山田00」と表すようなものです。</dd>
<dt>ホストのアドレスがすべて 1 の 11111111</dt>
<dd><span class="u">ブロードキャスト（一斉同報）を示すもの</span>となります。 <br />ブロードキャストとは、同じサブネットワークの中にあるすべてのホストを宛先にしてデータを送ることです。</dd>
</dl>
<p><span class="chip mag_tp30">解答</span>　エ</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/IPアドレス/">IP アドレス</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>ROI は、 ROI という言葉が計算方法を示しています</h2>
<div class="card-panel mag_h30">
問 65　(平成 31 年度 春期)</p>
<p>投資案件において， 5 年間の投資効果を ROI ( Return On Investment ) で評価した場合，四つの案件 a ～ d のうち，最も ROI が高いものはどれか。 ここで，割引率は考慮しなくてもよいものとする。</p>
<div class="table-container">
<p class="grey-text hide-on-med-and-up mag_h10 small-text"><i class="material-icons light-blue-text mag_rt05">swipe</i>表は横スクロールできます</p>
<p>a</p>
<table class="bordered centered">
<thead>
<tr>
<th>年目</th>
<th></th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
</tr>
</thead>
<tbody>
<tr>
<th class="center">利益</th>
<td></td>
<td>15</td>
<td>30</td>
<td>45</td>
<td>30</td>
<td>15</td>
</tr>
<tr>
<th class="center">投資額</th>
<td>100</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>b</p>
<table class="bordered centered">
<thead>
<tr>
<th>年目</th>
<th></th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
</tr>
</thead>
<tbody>
<tr>
<th class="center">利益</th>
<td></td>
<td>105</td>
<td>75</td>
<td>45</td>
<td>15</td>
<td>0</td>
</tr>
<tr>
<th class="center">投資額</th>
<td>200</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>c</p>
<table class="bordered centered">
<thead>
<tr>
<th>年目</th>
<th></th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
</tr>
</thead>
<tbody>
<tr>
<th class="center">利益</th>
<td></td>
<td>60</td>
<td>75</td>
<td>90</td>
<td>75</td>
<td>60</td>
</tr>
<tr>
<th class="center">投資額</th>
<td>300</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>d</p>
<table class="bordered centered">
<thead>
<tr>
<th>年目</th>
<th></th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
</tr>
</thead>
<tbody>
<tr>
<th class="center">利益</th>
<td></td>
<td>105</td>
<td>105</td>
<td>105</td>
<td>105</td>
<td>105</td>
</tr>
<tr>
<th class="center">投資額</th>
<td>400</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<p>ア　a　　イ　b　　ウ　c　　<br class="hide-on-med-and-up">エ　d
</div>
<div class="chip">解説</div>
<p>基本情報技術者試験の計算問題の多くが「仕組みを知っていれば計算できるよね！」や「用語の意味を知っていれば計算できるよね！」という趣旨のものであることは、この記事の最初に示したテクノロジ系の問題だけでなく、<span class="u">マネジメント系とストラテジ系の問題でも同様</span>です。</p>
<p>この問題は、ストラテジ系であり、 ROI という用語の意味がわかれば、計算できます。</p>
<p>&nbsp;</p>
<p>ROI は、 Return On Investment の略であり、 Return（利益） / Investment（投資）で計算できます。 On という言葉が、 / という計算に相当します。 つまり、 ROI という言葉が、 ROI の計算方法を示しているのです。</p>
<dl class="background c-round">
<dt>案件 a</dt>
<dd>Return が <code>15 ＋ 30 ＋ 45 ＋ 30 ＋ 15 = 135</code> で、Investment が 100 なので、<br /><code>ROI = 135 / 100 = 1.35</code> です</dd>
<dt>案件 b</dt>
<dd>Return が <code>105 ＋ 75 ＋ 45 ＋ 15 ＋ 0 = 240</code> で、Investment が 200 なので、<br /><code>ROI = 240 / 200 = 1.20</code> です</dd>
<dt>案件 c</dt>
<dd>Return が <code>60 ＋ 75 ＋ 90 ＋ 75 ＋ 60 = 360</code> で、Investment が 300 なので、<br /><code>ROI = 360 / 300 = 1.20</code> です</dd>
<dt>案件 d</dt>
<dd>Return が <code>105 ＋ 105 ＋ 105 ＋ 105 ＋ 105 = 525</code> で、Investment が 400 なので、<br /><code>ROI = 525 / 400 ≒ 1.31</code> です</dd>
</dl>
<p>したがって、最も ROI が高いのは案件 a であり、選択肢アが正解です。</p>
<p><span class="chip mag_tp30">解答</span>　ア</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/ROI/">ROI</a></p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h31_spring/">「厳選5題」過去問と解説｜平成31年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説｜平成21年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h21_autumn/</link>
		<pubDate>Mon, 23 Dec 2019 04:38:14 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[IPアドレス]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[オブジェクト指向]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[論理回路]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=3353</guid>
		<description><![CDATA[<p>ここでは、平成 21 年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h21_autumn/">「厳選5題」過去問と解説｜平成21年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2009h21_2/2009h21a_fe_am_qs.pdf" rel="noopener" target="_blank">平成 21 年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}table{font-size:.85em;}dd,dl.inline dd{margin-left:2em}@media screen and (min-width:601px){.responsive-width{width:60%}}pre,code{font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#eceff1;color:#263238;}pre{padding:1em 1.5em;margin:1.5em 0;}code{padding:.15em .5em;}pre{}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>CUI 環境でディレクトリを指定する方法を知っておこう</h2>
<div class="card-panel mag_h30">
問 19　(平成 21 年度 秋期)</p>
<p>A ， B というディレクトリ名をもつ複数個のディレクトリが図の構造で管理されている。</p>
<figure>
<img class="mag_h30 hoverable materialboxed responsive-width" data-caption="問 19" src="../../wp-content/uploads/2019/12/q19_figure.jpg" alt="" loading="lazy" /><br />
</figure>
<p>カレントディレクトリを &yen;A&yen;B → .. → ..&yen;B → .&yen;A の順に移動させた場合，最終的なカレントディレクトリはどこか。 ここで，ディレクトリの指定方法は次のとおりとする。</p>
<p>〔ディレクトリの指定方法〕</p>
<dl class="inline">
<dt>(1)</dt>
<dd>ディレクトリは， &#8220;ディレクトリ名 &yen;･･･&yen; ディレクトリ名&#8221; のように，経路上の ディレクトリを順に &#8220;&yen;&#8221; で区切って並べた後に &#8220;&yen;&#8221; とディレクトリ名を指定する。 </dd>
<dt>(2)</dt>
<dd>カレントディレクトリは &#8220;.&#8221; で表す。 </dd>
<dt>(3)</dt>
<dd>1階層上のディレクトリは &#8220;..&#8221; で表す。  </dd>
<dt>(4)</dt>
<dd>始まりが &#8220;&yen;&#8221; のときは，左端にルートディレクトリが省略されているものとする。 </dd>
<dt>(5)</dt>
<dd>始まりが &#8220;&yen;&#8221; ， &#8220;.&#8221; ， &#8220;..&#8221;  のいずれでもないときは，左端にカレントディレクトリ配下であることを表す &#8220;.&yen;&#8221; が省略されているものとする。 </dd>
</dl>
<p>ア　&yen;A　　イ　&yen;A&yen;A　　<br class="hide-on-med-and-up">ウ　&yen;A&yen;B&yen;A　　エ　&yen;B&yen;A
</div>
<div class="chip">解説</div>
<p>UNIX 系の OS や Windows などを操作するには、</p>
<ul>
<li>ウインドウのメニューやアイコンを操作するビジュアルな <span class="bold">GUI（ Graphical User Interface ）</span>環境</li>
<li>コマンドをキー入力して操作する <span class="bold">CUI（ Character User Interface ）</span>環境</li>
</ul>
<p>があります。 GUI 環境でフォルダと呼ばれるものは、 CUI 環境で<span class="bold">ディレクトリ</span>と呼ばれます。</p>
<p>この問題では、 CUI 環境におけるカレントディレクトリ（現在の操作対象のディレクトリ）の移動がテーマになっています。 問題の図に示されたディレクトリの構造で、指定された通りにカレントディレクトリを移動してみましょう。</p>
<p>&nbsp;</p>
<p>はじめは、 &yen;A&yen;B がカレントディレクトリです。 先頭の &yen; はルートを示し、それ以降の &yen; はディレクトリの区切りを示します。</p>
<p>したがって、 &yen;A&yen;B は「ルートの下の A 、その下の B 」という意味であり、以下がカレントディレクトリになります（これ以降では、カレントディレクトリを赤色の円で囲んで示します）。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure2-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p>次に、 &#8220;..&#8221; に移動します。  &#8220;..&#8221; は、「 1 つ上のディレクトリ」を意味するので、現在位置から 1 つ上に上がって、以下がカレントディレクトリになります。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure3-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p>次に、 ..&yen;B に移動します。 これは、「 1 つ上のディレクトリに上がって、その下の B 」という意味であり、以下がカレントディレクトリになります。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure4-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p>最後に、 .&yen;Aに移動します。  &#8220;.&#8221; は、「カレントディレクトリ」を意味するので、現在位置から A に下がって、以下がカレントディレクトリになります。</p>
<p>このディレクトリは、「ルートの下の B 、その下の A 」なので、 &yen;B&yen;A です。 したがって、選択肢エが正解です。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure5-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p><span class="chip mag_tp30">解答</span>　エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>半加算器と全加算器の違いを知っておこう</h2>
<div class="card-panel mag_h30">
問 25　(平成 21 年度 秋期)</p>
<p>図は全加算器を表す論理回路である。 図中の x に 1 ， y に 0 ， z に 1 を入力したとき，出力となる c(けた上げ数) ， s(和) の値はどれか。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed" style="margin:auto;" src="../../wp-content/uploads/2019/12/q25_figure.jpg" alt="" loading="lazy" /><br />
</figure>
<table class="centered responsive-width mag_h30">
<thead>
<tr>
<th></th>
<th>c</th>
<th>s</th>
</tr>
</thead>
<tbody>
<tr>
<td>ア</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>イ</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>ウ</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>エ</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
<div class="chip">解説</div>
<p>この連載では、かつて<a href="../how2judge_nesessary_unnesessary/#i-5">半加算器の問題（平成 21 年度 春期 問 25 ）</a>を取り上げました。</p>
<p>半加算器は、 XOR 演算と AND 演算を使って、 1 桁の 2 進数を加算するものです。 複数桁の 2 進数を加算するには、半加算器だけでなく、全加算器も必要になります。</p>
<p>&nbsp;</p>
<p>例として、 0101 と 0011 という 4 ビットの 2 進数を加算するとしましょう。 最下位桁は、その桁にある 2 つの数値を足すだけであり、これは半加算器で行えます。</p>
<p>最下位桁より上の桁は、その桁にある 2 つの数値と、下位桁からの桁上がり、全部で 3 つの数値を足すことになります。 これを実現するのが、<span class="bold">全加算器</span>です。</p>
<p>したがって、 4 ビットの 2 進数の加算は、以下のように、 1 つの半加算器と 3 つの全加算器で実現されることになります。</p>
<figure><figcaption>図　4 ビットの加算の例</figcaption><img class="materialboxed z-depth-5" data-caption="図　4 ビットの加算の例" src="../../wp-content/uploads/2020/11/4bit_adder.png" loading="lazy" style="margin: auto;"><br />
</figure>
<p>問題に示された全加算器の図を見てください。</p>
<p>左側の x 、 y 、 z は、加算する 3 つの数字です。 右側の c は計算結果の桁上がり（ carry ）で、 s は sum （和）です。</p>
<p>ここでは、 x = 1 、 y = 0 、 z = 1 とするので、計算結果は、 1 + 0 + 1 = 10 になり、 c が 1 で s が 0 です。 したがって、選択肢ウが正解です。</p>
<p>&nbsp;</p>
<p>全加算器の内部では、半加算器を 2 つ使っています。 以下に全加算器の仕組みを示します。</p>
<ol class="background c-round">
<figure>
<img class="hoverable materialboxed responsive-width pad_05" data-caption="全加算器" src="../../wp-content/uploads/2019/12/q25_figure3.jpg" alt="" loading="lazy" /><br />
</figure>
<li>x と y を半加算器 1 で足す</li>
<li>その結果の s と z を半加算器 2 で足す</li>
<li>その結果の s を全加算器の s とする</li>
<li>半加算器 1 の c と半加算器 2 の c を OR 回路につなぎ、その結果が全加算器の c とする</li>
</ol>
<p><span class="chip mag_tp30">解答</span>　ウ</p>
<div class="divider mag_tp40 mag_bt10"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>加算器 / 半加算器に関する詳しい記事</p>
<p><a href="../../mastering_tech/digital_logic/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s3 m2 flex pad_00"><img src="../../wp-content/uploads/2020/11/digital_logic_cover-300x169.png" width="640" height="360" /></div>
<div class="col s9 m10 pad_10 blue-grey-text bold">基本情報でわかる 論理演算 「真理値表を書けば、半加算器と全加算器の仕組みがわかる」</div>
</div>
<p></a></p>
<div class="divider mag_bt40 mag_tp10"></div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>サブネットマスクと CIDR 表記の対応を知っておこう</h2>
<div class="card-panel mag_h30">
問 39　(平成 21 年度 秋期)</p>
<p>IP アドレス 10.1.2.146 ，サブネットマスク 255.255.255.240 のホストが属するサブネットワークはどれか。</p>
<p>ア　10.1.2.132/26　　<br class="hide-on-med-and-up">イ　10.1.2.132/28<br />
ウ　10.1.2.144/26　　<br class="hide-on-med-and-up">エ　10.1.2.144/28
</div>
<div class="chip">解説</div>
<p>サブネットワークとは、 1 つのネットワークを分割したものです。 IPv4 の IP アドレスでは、サブネットマスクおよび CIDR（ Classless Inter-Domain Routing 、サイダー）表記によって、サブネットワークを示すことができます。</p>
<p>この問題は、255.255.255.240 というサブネットマスクが、 CIDR 表記ではどのようになるかを、選択肢から選ぶものです。</p>
<p>&nbsp;</p>
<p>IPv4 の IP アドレスのサイズは、 32 ビットです。 255.255.255.240 というサブネットマスクを 2 進数で表記してみましょう。</p>
<p class="grey-text hide-on-med-and-up mag_h10 small-text"><i class="material-icons light-blue-text mag_rt05">swipe</i>横スクロールできます</p>
<pre>11111111.11111111.11111111.11110000</pre>
<p>32 ビットの上位 28 ビットに 1 が並び、残りの下位 4 ビットに 0 が並んでいます。</p>
<p>このように、サブネットマスクは、上位桁に 1 が並び下位桁に 0 が並んだ形式になっていて、 <span class="bold">1 が並んだ部分がサブネットワーク（ネットワークとサブネットのアドレス）</span>で、 <span class="bold">0 が並んだ部分がホストアドレスである</span>ことを示しています。</p>
<p>&nbsp;</p>
<p>10.1.2.146 という IP アドレスのサブネットワークを求めてみましょう。 10.1.2.146 を 2 進数で表記します。</p>
<pre>00001010.00000001.00000010.10010010</pre>
<p>ここでは、上位 28 ビットがサブネットワークなので、</p>
<pre>00001010.00000001.00000010.1001xxxx</pre>
<p>になります。</p>
<p><code>xxxx</code> の部分は、「設定なし」という意味にしたいので、 0 で埋めて、</p>
<pre>00001010.00000001.00000010.10010000</pre>
<p>とします。</p>
<p>これを 10 進数表記にすると、 10.1.2.144 です。</p>
<p>&nbsp;</p>
<p>サブネットワークを 10.1.2.144 と示しただけでは、上位何桁までがサブネットワークなのかがわかりません。 そこで、 CIDR 表記が使われます。</p>
<p>CIDR 表記は、<span class="bold"> / の後に上位桁の桁数を示したもの</span> です。</p>
<p>ここでは、上位 28 ビットがサブネットワークなので、それを /28 で示します。 したがって、 10.1.2.144/28 となっている選択肢エが正解です。</p>
<p><span class="chip mag_tp30">解答</span>　エ</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/IPアドレス/" class="tag">IP アドレス</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>UML のクラス図とシーケンス図の役割を知っておこう</h2>
<div class="card-panel mag_h30">
問 45　(平成 21 年度 秋期)</p>
<p>UML 2.0 で定義している図のうち，動的な振る舞いを表現するものはどれか。</p>
<p>ア　オブジェクト図　　<br class="hide-on-med-and-up">イ　クラス図<br />
ウ　シーケンス図　　<br class="hide-on-med-and-up">エ　パッケージ図
</div>
<div class="chip">解説</div>
<p>UML 2.0 では、 13 種類の図が定義されていますが、試験によく出るのは、<span class="bold">クラス図</span>と<span class="bold">シーケンス図</span>です。</p>
<p>これらは、オブジェクト指向において最も重要な概念である<span class="bold">「オブジェクト」と「メッセージ」を示すもの</span>です。</p>
<dl class="background c-round">
<dt class="bold">クラス図</dt>
<dd>オブジェクトの<span class="bold">静的な構造</span>（構成要素と関連）</dd>
<dt class="bold">シーケンス図</dt>
<dd>オブジェクトの<span class="bold">動的な振る舞い</span>（メッセージの受け渡し）</dd>
</dl>
<p>この問題は、動的な振る舞いを表現する図を選ぶのですから、選択肢ウのシーケンス図が正解です。</p>
<p>&nbsp;</p>
<p>言葉だけではイメージがつかめないと思いますので、クラス図とシーケンス図の簡単な例をお見せしましょう。 ここでは、ユーザーとコンピュータがジャンケンをするプログラムを作るとします。</p>
<div class="background c-round">
プログラムが、どのような構成要素を持つクラスから構成され、どのように関連しているのかを示すのが、クラス図です。 クラス図では、四角形を 3 つに区切り、上から順にクラス名、属性（クラスが持つデータ）、振る舞い（クラスが持つ処理）を記述します。</p>
<p>ここでは、「ユーザー」「コンピュータ」「審判」という 3 つのクラスがあるとしています。</p>
<figure class="center"><figcaption class="chip mag_h10"><i class="material-icons blue-text mag_rt05">description</i>クラス図の例</figcaption><img class="hoverable materialboxed responsive-width pad_05" data-caption="クラス図の例" src="../../wp-content/uploads/2019/12/q45_figure.jpg" alt="" loading="lazy" /><br />
</figure>
<p>「審判」から「ユーザー」と「コンピュータ」に伸びた破線の矢印は、「審判」が「ユーザー」と「コンピュータ」を使うことを意味します。 クラス図にも振る舞いがありますが、動的ではありません。 そのクラスが、その振る舞いを持っていることを示しているだけなので、静的です。
</p></div>
<div class="background c-round">
プログラムの実行時には、クラスがメモリにロードされます。 これを<span class="bold">「クラスのインスタンス」または「オブジェクト」</span>と呼びます。 シーケンス図は、プログラムの実行時のオブジェクト間のメッセージの受け渡しを示します。</p>
<figure class="center"><figcaption class="chip mag_h10"><i class="material-icons blue-text mag_rt05">description</i>シーケンス図の例</figcaption><img class="hoverable materialboxed responsive-width pad_05" data-caption="シーケンス図の例" src="../../wp-content/uploads/2019/12/q45_figure2.jpg" alt="" loading="lazy" /><br />
</figure>
<ul class="background c-round">
<p class="post-title">シーケン図の見方</p>
<li>四角形で囲まれた「：クラス名」は、そのクラスのインスタンス（オブジェクト）を意味します</li>
<li>そこから下に伸びた破線は、インスタンスの存在期間を示します</li>
<li>図の上から下に時間が経過するとして、実線の矢印でメッセージ（他のオブジェクトの振る舞いの呼び出し）を示します</li>
<li>破線の矢印でメッセージへの応答を示します。 縦長の四角形は、処理を行っている区間を示します</li>
</ul>
<p>このようにして、シーケンス図は、オブジェクトの動的な振る舞いを表現するのです。
</p></div>
<p><span class="chip mag_tp30">解答</span>　ウ</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/UML/" class="tag">UML</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>カプセル化、継承、多態性の意味を知っておこう</h2>
<div class="card-panel mag_h30">
問 46　(平成 21 年度 秋期)</p>
<p>オブジェクト指向でシステムを開発する場合のカプセル化の効果はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>オブジェクトの内部データ構造やメソッドの実装を変更しても，ほかのオブジェクトがその影響を受けにくい。 </dd>
<dt>イ</dt>
<dd>既存の型に加えてユーザ定義型を追加できるので，問題領域に合わせてプログラムの仕様を拡張できる。 </dd>
<dt>ウ</dt>
<dd>子クラスとして派生するので，親クラスの属性を子クラスが利用できる。 </dd>
<dt>エ</dt>
<dd>同一メッセージを送っても，受け手のオブジェクトによって，それぞれが異なる 動作をするので，メッセージを受け取るオブジェクトの種類が増えても，メッセージを送るオブジェクトには影響がない。 </dd>
</dl>
</div>
<div class="chip">解説</div>
<p>先ほどの問題で示したように、オブジェクト指向の最も基本となる概念は、オブジェクトとメッセージですが、それらの次に重要な概念として、カプセル化、継承、多態性があります。</p>
<p>この問題では、カプセル化がテーマになっていますが、選択肢の中には、継承と多態性に関する説明もあります。</p>
<p>&nbsp;</p>
<p>カプセル化とは、属性と振る舞いをまとめて 1 つのオブジェクトにすることです。 まとめることによって、属性や振る舞いの変更がオブジェクトの内部で対処できるようになり、外部に影響を与えにくくなります。</p>
<p>したがって、カプセル化の効果に該当するのは、選択肢アであり、これが正解です。</p>
<dl class="background c-round">
<dt class="bold">継承とは</dt>
<dd>既存のクラス（親クラス）を改造することなく、必要な機能を付け足して新たなクラス（子クラス）を作成することです。 <br />子クラスは、親クラスの属性と振る舞いを利用できます。 <br />継承の効果に該当するのは、選択肢ウです。 </dd>
<dt class="bold">多態性とは</dt>
<dd>同じ構文の振る舞い（同じメッセージで呼び出せる振る舞い）を、複数のオブジェクトが持つことです。 <br />これによって、オブジェクトを利用する側は、同じメッセージで、様々なオブジェクトを利用できます。 <br />多態性の効果に該当するのは、選択肢エです。 </dd>
</dl>
<p><span class="chip mag_tp30">解答</span>　ア</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/オブジェクト指向/" class="tag">オブジェクト指向</a></p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h21_autumn/">「厳選5題」過去問と解説｜平成21年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成22年度 春期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_spring/</link>
		<pubDate>Mon, 25 Nov 2019 04:58:39 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[テクニック 具体的な値を想定]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[正規化]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=3120</guid>
		<description><![CDATA[<p>ここでは、平成 22 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_spring/">「厳選5題」過去問と解説 | 平成22年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2010h22_1/2010h22h_fe_am_qs.pdf" rel="noopener" target="_blank">平成 22 年度 春期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>pre{margin-right:-24px!important;margin-left:-24px!important;padding-right:24px!important;padding-left:24px!important}blockquote p{color:#607d8b}table{font-size:.85em;}@media screen and (min-width:601px){.responsive-width{width:60%}}</style>
<h2>【厳選問題 1 】<br />CPU がカチカチ信号で動作しているイメージをつかもう</h2>
<div class="card-panel mag_h30">
問 9　(平成 22 年度 春期)</p>
<p>表の CPI と構成比率で，3 種類の演算命令が合計 1,000,000 命令実行されるプログラムを，クロック周波数が 1 GHz のプロセッサで実行するのに必要な時間は何ミリ秒か。</p>
<table class="centered mag_h20 responsive-width">
<thead>
<tr>
<th>演算命令</th>
<th>CPI ( Cycles Per Instruction )</th>
<th>構成比率 ( % )</th>
</tr>
<tbody>
<tr>
<td>浮動小数点加算</td>
<td>3</td>
<td>20</td>
</tr>
<tr>
<td>浮動小数点乗算</td>
<td>5</td>
<td>20</td>
</tr>
<tr>
<td>整数演算</td>
<td>2</td>
<td>60</td>
</tr>
</tbody>
</thead>
</table>
<p>ア　0.4　　イ　2.8　　ウ　4.0　　エ　28.0
</p></div>
<div class="chip">解説</div>
<p>「クロック周波数」や「 CPI 」という言葉をご存知ですか？ ご存知でないなら、この問題で覚えてください。</p>
<p>コンピュータの演算制御装置であるプロセッサ（ CPU とも呼びます）は、時計のようにカチカチと繰り返される電気信号で動作していて、これを<span class="mag_w05 bold">クロック信号</span>と呼びます。<br />
1 秒間にプロセッサに与えられるクロック信号の数を<span class="mag_w05 bold">クロック周波数</span>と呼び<span class="bold mag_w05">Hz（ヘルツ）</span>という単位で示します。</p>
<p>たとえば、クロック周波数が 1 GHz なら、1 秒間に 1 G 個= 1 × 10<sup>9</sup> 個のクロック信号がプロセッサに与えられます。</p>
<p>プロセッサが解釈・実行する命令は、命令の種類によって何個のクロック信号が必要なのかが決まっていて、これを<span class="mag_w05 bold">CPI（ Cycles Per Instruction ）</span>という単位で示します。</p>
<p>たとえば、3 個のクリック信号で解釈・実行できる命令の CPI は、3 です。ここまでが、この問題を解くために必要な知識です。</p>
<p>&nbsp;</p>
<p>それでは、問題を解いてみましょう。</p>
<p>3 種類の演算命令があり、それぞれ CPI の値が異なります。ここでは、命令の構成比率（プログラムの中で使われている比率）が示されているので、3 つの命令を平均した CPI は、</p>
<div class="background c-round">
3 × 0.2 + 5 × 0.2 + 2 × 0.6 = 2.8
</div>
<p>になります。</p>
<p>プログラムの中には、全部で 1000000 命令あるので、プログラムを実行するのに必要はクロック数は、全部で</p>
<div class="background c-round">
2.8 × 1000000 = 2.8 × 10<sup>6</sup> 個
</div>
<p>です。</p>
<p>これを 1 GHz のクロック周波数、つまり 1 秒間に 1 G 個= 1 × 10<sup>9</sup> 個のクロック信号が与えられるプロセッサで実行するのですから、</p>
<div class="background c-round">
（ 2.8 × 10<sup>6</sup> ）÷（ 1 × 10<sup>9</sup> ）<br />
= 2.8 × 10<sup>-3</sup><br />
= 2.8 ミリ秒
</div>
<p>かかります。したがって、選択肢イが正解です。</p>
<p><span class="chip">解答</span>イ</p>
<h2>【厳選問題 2 】<br />ターンアラウンドタイムの意味を知っていればわかります</h2>
<div class="card-panel mag_h30">
問 15　(平成 22 年度 春期)</p>
<p>一つのジョブについての，ターンアラウンドタイム，CPU 時間，入出力時間及び処理待ち時間の四つの時間の関係を表す式はどれか。ここで，ほかのオーバヘッド時間は考慮しないものとする。</p>
<p>ア　処理待ち時間 = CPU 時間 + ターンアラウンドタイム + 入出力時間<br />
イ　処理待ち時間 = CPU 時間 &#8211; ターンアラウンドタイム + 入出力時間<br />
ウ　処理待ち時間 = ターンアラウンドタイム &#8211; CPU 時間 &#8211; 入出力時間<br />
エ　処理待ち時間 = 入出力時間 &#8211; CPU 時間 &#8211; ターンアラウンドタイム
</p></div>
<div class="chip">解説</div>
<p>選択肢に「処理待ち時間 = 」という式が並んでいますが、この問題のテーマは「処理待ち時間」ではありません。<span class="bold">「ターンアラウンドタイムの意味を知っていますか？」</span> という問題です。</p>
<p>&nbsp;</p>
<p>「ターンアラウンドタイム」は、「バッチ処理」の処理時間を示すものです。</p>
<p>バッチ（ batch ）は、「束」という意味であり、バッチ処理は「複数データをまとめて処理すること」を意味します。</p>
<p>たとえば、1 日の営業時間に発生した数多くのデータを、営業時間後にまとめて処理するのが、バッチ処理です。バッチ処理では、データの演算だけでなく、<span class="bold">データの入出力にも多くの時間がかかります。</span></p>
<p>したがって、バッチ処理の処理時間であるターンアラウンドタイムは、</p>
<div class="background c-round">
ターンアラウンドタイム = データの演算時間 + データの入出力時間
</div>
<p>という式になります。</p>
<p>&nbsp;</p>
<p>選択肢では、「データの演算時間」を「 CPU 時間」と示し、「データの入出力時間」を「入出力時間」と示しています。</p>
<p>さらに「処理待ち時間」という項目がありますが、これはバッチ処理にかかる時間なので、ターンアラウンドタイムに加えます。</p>
<p>&nbsp;</p>
<p>以上のことから、</p>
<div class="background c-round">
ターンアラウンドタイム = CPU 時間 + 入出力時間 + 処理待ち時間
</div>
<p>という式ができ、これを「処理待ち時間 = 」に変形すると、</p>
<div class="background c-round">
処理待ち時間 = ターンアラウンド &#8211; CPU 時間 &#8211; 入出力時間
</div>
<p>になります。したがって、選択肢ウが正解です。</p>
<p><span class="chip">解答</span>ウ</p>
<h2>【厳選問題 3 】<br />落ち着いてやってみれば、とっても簡単な計算です</h2>
<div class="card-panel mag_h30">
問 17　(平成 22 年度 春期)</p>
<p>あるオンラインリアルタイムシステムでは，20 件/秒の頻度でトランザクションが発生する。このトランザクションは CPU 処理と 4 回の磁気ディスク入出力処理を経て終了する。磁気ディスク装置の入出力処理時間は 40 ミリ秒 / 回であり，CPU 処理時間は十分に短いものとする。それぞれの磁気ディスク装置が均等にアクセスされるとしたとき，このトランザクション処理には最低何台の磁気ディスク装置が必要か。</p>
<p>ア　3　　イ　4　　ウ　5　　エ　6
</p></div>
<div class="chip">解説</div>
<p>一見して「うわっ！ 難しそう」と思われる問題ですが、落ち着いてやってみれば、とっても簡単な問題です。<span class="bold">こういう問題を練習しておくと、「やればできる！」という自信が付きます。</span></p>
<p>少しずつ問題の内容を見てみましょう。</p>
<blockquote><p>あるオンラインリアルタイムシステムでは、20 件 / 秒の頻度でトランザクションが発生する</p></blockquote>
<p>とは、単に「 1 秒間に 20 件の処理が発生する」と考えれば OK です。トランザクションは、処理のまとまりを意味する言葉であり、1 件、2 件と数えます。</p>
<blockquote><p>このトランザクションは CPU 処理と 4 回の磁気ディスク入出力処理を経て終了する</p></blockquote>
<p>とあり、さらに</p>
<blockquote><p>磁気ディスク装置の入出力時間は 40 ミリ秒 / 回であり、CPU 時間は十分に短いものとする</p></blockquote>
<p>なので、1 件のトランザクションの処理時間は、短い CPU 時間を無視して、4 回の磁気ディスク入出力処理だけの時間になります。</p>
<p>これは、4 回 × 40 ミリ秒 / 回 = 160 ミリ秒です。</p>
<blockquote><p>それぞれの磁気ディスク装置が均等にアクセスされるとしたとき、このトランザクション処理には最低何台の磁気ディスク装置が必要か</p></blockquote>
<p>ですから、1 秒間に 20 件のトランザクションを処理するために必要な磁気ディスク装置の台数を求めればよいのです。</p>
<p>1 件のトランザクションあたり 160 ミリ秒かかるので、1 台の磁気ディスク装置は、</p>
<div class="background c-round">
1 秒当たり、1 秒 ÷ 160 ミリ秒<br />
= 1000 ミリ秒 ÷ 160 ミリ秒<br />
= 6.25 件
</div>
<p>のトランザクションを処理できます。0.25 という中途半端な処理はできないので、端数を切り捨てて 6 件です。</p>
<p>1 台で 6 件を処理できるので、20 件を処理するには、20 件 ÷ 6 件 = 3.33・・・台の磁気ディスク装置が必要であり、端数を切り上げて 4 台です。</p>
<p>したがって、選択肢イが正解です。どうです？ とっても簡単な問題だったでしょう！</p>
<p><span class="chip">解答</span>イ</p>
<h2>【厳選問題 4 】<br />この問題で第3正規形かどうかを判断する方法を覚えよう</h2>
<div class="card-panel mag_h30">
問 30　(平成 22 年度 春期)</p>
<p>&#8220;発注伝票&#8221; 表を第3 正規形に書き換えたものはどれか。ここで、下線部は主キーを表す。</p>
<pre class="language-none">
発注伝票 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 商品名, 注文数量)
</pre>
<pre class="language-none">
ア  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">商品番号</span>, 商品名)

イ  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 商品名)

ウ  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">商品番号</span>, 商品名)

エ  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">商品番号</span>, 商品名, 注文数量)
</pre>
</div>
<div class="chip">解説</div>
<p>関係データベースの正規化理論がテーマの問題です。</p>
<p>正規化理論では、表の状態を「非正規形」「第 1 正規形」「第 2 正規形」「第 3 正規形」に区別し、それぞれ以下のように定義しています。</p>
<p>「繰り返し」「部分従属性」「推移従属性」が排除すべきものであり、すべてを排除した状態が第3正規形です。</p>
<dl class="mag_h30 background c-round">
<dt>非正規形</dt>
<dd>繰り返しがある。</dd>
<dt>第 1 正規形</dt>
<dd>繰り返しを排除している。</dd>
<dt>第 2 正規形</dt>
<dd>第 1 正規形を満たし、さらに部分従属性を排除している。</dd>
<dt>第 3 正規形</dt>
<dd>第 2 正規形を満たし、さらに推移従属性を排除している。</dd>
</dl>
<p>理論的に考えると難しいのですが、第 3 正規形とは、早い話が「主キーに従属した列だけの表」です。</p>
<p>主キーとは、レコード（行）を特定できるユニークな情報を持つ列です。<br />
従属とは「列 A によって列 B が特定できる」ということです。</p>
<p>これを「 A → B 」のように矢印で示すとわかりやすいでしょう。</p>
<p>以下は、第 3 正規形の表の例です。A 、B 、C 、D 、E は、何らかの情報を持った列だとします。</p>
<p>主キーは、下線を付けた A です。主キー A から B 、C 、D 、E に向かって従属性の矢印が引けています。このような矢印だけが引ければ、第 3 正規形だと判断できます。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q30_h22_s_figure1.png"><br />
</figure>
<p>それでは、問題を見てみましょう。</p>
<p>問題では「表名（ 列名1, 列名2, ・・・）」という形式で表を示していますが、わかりやすいように列を枠で囲んで表を示します。</p>
<p>問題に示された「発注伝票」表は、「注文番号」と「商品番号」の 2 つの列をセットにして主キーにしています。このような主キーを「複合キー」と呼びます。</p>
<p>従属性の線を引くと、以下のように、「注文数量」は、複合キーの「注文番号」と「商品番号」に従属しますが、「商品名」は「商品番号」だけに依存します。</p>
<p>これを「部分従属性」と呼び、部分従属性の線があると第 3 正規形ではありません。第 3 正規形は、「主キーに従属した列だけの表」だからです。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q30_h22_s_figure2.png"><br />
</figure>
<p>このような場合には、「注文番号」と「商品番号」の複合キーに従属する「注文数量」を持つ表 1 と、「商品番号」に従属する「商品名」を持つ表 2 に分割します。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q30_h22_s_figure3.png"><br />
</figure>
<p>したがって、選択肢ウが正解です。</p>
<p><span class="chip">解答</span>ウ</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/正規化" class="tag">正規化</a></p>
<h2>【厳選問題 5 】<br />M や N を使った式は、具体例を想定すればわかります</h2>
<div class="card-panel mag_h30">
問 41　(平成 22 年度 春期)</p>
<p>パスワードに使用できる文字の種類の数を M ，パスワードの文字数を n とするとき，設定できるパスワードの理論的な総数を求める数式はどれか。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q41_h22_s_figure1.png"><br />
</figure>
</div>
<div class="chip">解説</div>
<p>M 種類の文字で文字数 n のパスワードを作ると、その総数はいくつになりますか？ という問題です。</p>
<p>このように M だの n だのと言っている問題には、定番の解法があります。それは、<span class="bold">「 M や n に具体的な数値を想定する」</span>です。</p>
<p>選択肢があるのですから、その具体例を代入して同じ値になるものが正解です。</p>
<p>&nbsp;</p>
<p>例として、M = 3 種類の文字「 A 」「 B 」「 C 」で、文字数 n = 2 のパスワードを作るとしましょう。</p>
<p>パスワードの総数は、<br />
「 AA 」「 AB 」「 AC 」「 BA 」「 BB 」「 BC 」「 CA 」「 CB 」「 CC 」<br />
の 9 通りです。</p>
<p>選択肢に示された式に、M = 3、n = 2 を代入すると、以下になります。</p>
<dl class="mag_h30">
<dt>選択肢ア</dt>
<dd>3<sup>2</sup> = 9</dd>
<dt>選択肢イ</dt>
<dd>( 3 × 2 × 1 ) / ( 1 ) = 6</dd>
<dt>選択肢ウ</dt>
<dd>( 3 × 2 × 1 ) / ( ( 2 × 1 ) × ( 1 ) ) = 3</dd>
<dt>選択肢エ</dt>
<dd>( 4 × 3 × 2 × 1 ) / ( ( 2 × 1 ) × ( 2 × 1 ) ) = 6</dd>
</dl>
<p>9 になっている選択肢アが正解です。</p>
<p><span class="chip">解答</span>ア</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/テクニック-具体的な値を想定/" class="tag">テクニック 具体的な値を想定</a></p>
<p>&nbsp;</p>
<div class="divider mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。<span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_spring/">「厳選5題」過去問と解説 | 平成22年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成22年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_autumn/</link>
		<pubDate>Tue, 19 Nov 2019 09:42:31 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[ディスク]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[情報落ち]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=2847</guid>
		<description><![CDATA[<p>ここでは、平成 22 年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_autumn/">「厳選5題」過去問と解説 | 平成22年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2010h22_2/2010h22a_fe_am_qs.pdf" rel="noopener" target="_blank">平成 22 年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>table{font-size:.85em;}dl.inline dd{margin-left:2em;}</style>
<h2>【厳選問題 1 】<br />
誤差の名称を具体例に対応付けて覚えよう！</h2>
<div class="card-panel mag_h30">
問 2　(平成 22 年度 秋期)</p>
<p>けた落ちの説明として，適切なものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>値がほぼ等しい浮動小数点数同士の減算において，有効けた数が大幅に減ってしまうことである。 </dd>
<dt>イ</dt>
<dd>演算結果が，扱える数値の最大値を超えることによって生じる誤差のことである。 </dd>
<dt>ウ</dt>
<dd>数表現のけた数に限度があるとき，最小のけたより小さい部分について四捨五入，切上げ又は切捨てを行うことによって生じる誤差のことである。  </dd>
<dt>エ</dt>
<dd>浮動小数点数の加算において，一方の数値の下位のけたが結果に反映されないことである。 </dd>
</dl>
</div>
<div class="chip">解説</div>
<p>コンピュータの計算において生じる誤差には、</p>
<p>「丸め誤差」<br />
「桁あふれ」<br />
「情報落ち」<br />
「桁落ち」</p>
<p>などの種類があります。 それぞれを、具体例を示して説明しますので、誤差の名称と対応付けて覚えてください。</p>
<p>コンピュータの内部では、2 進数が使われていますが、わかりやすいように、10 進数で具体例を示します。</p>
<div class="background c-round">
<h3 class="indigo-text mag_tp00">丸め誤差</h3>
<p>コンピュータは、有限な機械なので、無限に続く数を表現できません。</p>
<p>たとえば、2 ÷ 3 ＝ 0.66666・・・・ と無限に続く数は、途中で打ち切られて 0.666666667 となり、正確な値とは異なった値になります。</p>
<p>これが、丸め誤差です。 打ち切られた値は、四捨五入、切り上げ、切り捨てのいずれかを行った値になります。 0.666666667 は、四捨五入されています。
</p></div>
<div class="background c-round">
<h3 class="indigo-text mag_tp00">桁あふれ</h3>
<p>コンピュータは、CPU の内部にあるレジスタを使って計算を行います。 レジスタのサイズは、固定的であり有限です。</p>
<p>たとえば、32 ビット CPU なら、レジスタのサイズは 32 ビットであり、10 進数で 2147483647 ～ &#8211; 2147483648（約 21 億～約 &#8211; 21 憶）の数を取り扱えます。</p>
<p>この CPU を使って、20 億と 10 億を加算するとどうなるでしょう。</p>
<p>結果の 30 億 が、取り扱える数の範囲を超えてしまい、つまり桁があふれてしまい、正しい結果が得られません。 これが、桁あふれです。
</p></div>
<div class="background c-round">
<h3 class="indigo-text mag_tp00">情報落ち</h3>
<p>これは、浮動小数点数で、極端に大きな数と小さな数を加減算したときに生じます。</p>
<p>たとえば、1.23 × 10<sup>100</sup> ＋ 4.56 × 10 <sup>-100</sup> という加算を行うとしましょう。</p>
<p>大きな値の指数に揃えて、<br />
1.23 × 10<sup>100</sup> ＋ 0.000 ・・・ 000456 × 10<sup>100</sup><br />
という計算を行うことになります。</p>
<p>456 の前には、0 が 200 個ありますが、こんなに多くの桁を取り扱うことはできないので、途中で打ち切られ、<br />
1.23 × 10<sup>100</sup> ＋ 0.000 ・・・ 0 × 10<sup>100</sup><br />
という計算、つまり 1.23 × 10<sup>100</sup> ＋ 0 というゼロを足す計算を行うことになってしまいます。</p>
<p>456 という情報が消えてしまいました。 これが、情報落ちです。
</p></div>
<div class="background c-round">
<h3 class="indigo-text mag_tp00">桁落ち</h3>
<p>これは、浮動小数点数で、値が近い2つの数を減算したときに生じます。</p>
<p>桁落ちの原因は、浮動小数点数で正規化が行われることにあります。 ここでは、小数点以下第 1 桁が 0 でないように正規化するとします。</p>
<p>たとえば、0.00123 なら、0.123 × 10<sup>-2</sup> に正規化します。</p>
<p>桁落ちの例として、値が近い 0.12345 と 0.12344 を減算するとしましょう。</p>
<p>現在する前の有効桁は、どちらも小数点以下 5 桁です。</p>
<p>0.12345 &#8211; 0.12344 ＝ 0.00001 ですが、正規化によって 0.00001 ＝ 0.1 × 10<sup>-4</sup> になり、有効桁が小数点以下 1 桁に減ります。 これが、桁落ちです。
</div>
<p>誤差の具体例を見て、誤差の名称と意味がわかりましたね。 それでは、問題を見てみましょう。</p>
<p>桁落ちの説明を選ぶものなので、「値がほぼ等しい浮動小数点数同士の減算において、有効桁数が大幅に減ってしまう」という選択肢アが正解です。</p>
<p>選択肢イ、ウ、エは、それぞれ、桁あふれ、丸め誤差、情報落ちの説明です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ア</p>
<h2>【厳選問題 2 】<br />
確率の乗法定理と加法定理の使い方を覚えよう！</h2>
<div class="card-panel mag_h30">
問 3　(平成 22 年度 秋期)</p>
<p>表は，ある地方の天気の移り変わりを示したものである。 例えば，晴れの翌日の天気は，40 % の確率で晴れ，40 % の確率で曇り，20 % の確率で雨であることを表している。 天気の移り変わりが単純マルコフ過程であると考えたとき，雨の 2 日後が晴れである確率は何 % か。</p>
<table class="bordered centered responsive-width">
<caption class="right-align">単位 %</caption>
<thead>
<tr>
<th></th>
<th>翌日晴れ</th>
<th>翌日曇り</th>
<th>翌日雨</th>
<tr>
</thead>
<tbody>
<tr>
<td>晴れ</td>
<td>40</td>
<td>40</td>
<td>20</td>
</tr>
<tr>
<td>曇り</td>
<td>30</td>
<td>40</td>
<td>30</td>
</tr>
<tr>
<td>雨</td>
<td>30</td>
<td>50</td>
<td>20</td>
</tr>
</tbody>
</table>
<p>ア　15　　イ　27　　ウ　30　　エ　33
</p></div>
<div class="chip">解説</div>
<p>基本情報技術者試験には、確率の問題がよく出題されます。 中学で習ったと思いますが、確率には「乗法定理」と「加法定理」があります。</p>
<p>2 つの事象が連続して起きる確率は、それぞれの確率を掛けて求められます。 これが、乗法定理です。<br />
2 つの事象のいずれかが起きる確率は、それぞれの確率を足して求められます。 これが、加法定理です。</p>
<p>この問題では、確率の乗法定理と加法定理を使います。</p>
<p>&nbsp;</p>
<p>たとえば、サイコロを 2 回振って、1 回目に 1 が出て、2 回目に 6 が出る確率は、<br />
1 回目に 1 が出る確率の 1/6 と、<br />
2 回目に 6 が出る確率の 1/6 を掛けて、<br />
1/6 × 1/6 ＝ 1/36 です。</p>
<p>サイコロを 1 回振って 1 と 6 のいずれかが出る確率は、<br />
1 が出る確率の 1/6 と、<br />
6 が出る確率の 1/6 を足して、<br />
1/6 ＋ 1/6 ＝ 2/6 ＝ 1/3 です。</p>
<p>いかがでしょう。 確率の乗法定理と加法定理を、思い出していただけましたか？</p>
<p>&nbsp;</p>
<p>それでは、問題を解いてみましょう。 ここでは、雨の 2 日後が晴れである確率を求めます。</p>
<p>これには、以下の 3 つのパターンがあります。</p>
<ol class="background c-round">
<li>雨 → 晴れ → 晴れ</li>
<li>雨 → 曇り → 晴れ</li>
<li>雨 → 雨 → 晴れ</li>
</ol>
<p>それぞれのパターンの確率は、連続して起きる確率なので、確率の乗法定理で求められます。 以下のようになります。</p>
<ol class="background c-round">
<li>0.3 × 0.4 ＝ 0.12</li>
<li>0.5 × 0.3 ＝ 0.15</li>
<li>0.2 × 0.3 ＝ 0.06</li>
</ol>
<p>雨の 2 日後が晴れである確率は、これら 3 つのパターンのいずれかが起きる確率なので、確率の加法定理で求めることができ、以下のように 33 % になります。</p>
<div class="background c-round">
0.12 ＋ 0.15 ＋ 0.06 ＝ 0.33（ 33 % ）
</div>
<p>したがって、選択肢エが正解です。</p>
<p>問題文の中にある「単純マルコフ過程」とは、1 つ前の状態だけから次に起こる事象が決まる、という意味なのですが、ここでは気にする必要はありません。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　エ</p>
<h2>【厳選問題 3 】<br />
磁気ディスク装置のデータ読み取り時間の計算方法のポイントを知ろう！</h2>
<div class="card-panel mag_h30">
問 14　(平成 22 年度 秋期)</p>
<p>表に示す仕様の磁気ディスク装置において，1,000 バイトのデータの読取りに要する平均時間は何ミリ秒か。 ここで，コントローラの処理時間は平均シーク時間に含まれるものとする。</p>
<table class="bordered responsive-width">
<tr>
<th>回転数</th>
<td>6,000 回転/分</td>
</tr>
<tr>
<th>平均シーク時間</th>
<td>10 ミリ秒</td>
</tr>
<tr>
<th>転送速度</th>
<td>10 M パイト / 秒</td>
</tr>
</table>
<p>ア　15.1　　イ　16.0　　ウ　20.1　　工　21.0
</p></div>
<div class="chip">解説</div>
<p>基本情報技術者試験に出題される計算問題の多くは、<span class="bold">実務で使われる有用な計算ではなく「仕組みがわかっていれば計算できるよね？」</span>という趣旨ものです。</p>
<p>この問題は、「磁気ディスク装置がデータを読み書きする仕組みを知っているよね？」という問題です。</p>
<dl class="background c-round">
<dt class="bold">磁気ディスク装置</dt>
<dd>データを記憶した <span class="bold">ディスク</span> と、データを読み書きする <span class="bold">ヘッド</span> から構成されています。 </dd>
<dd>ディスクの上には、 <span class="bold">トラック</span> と呼ばれる記憶領域が並んでいます。 </dd>
<dt class="bold">平均シーク時間</dt>
<dd>ヘッドの下をデータが通過すると、データを読み書きできますが、その前に、ヘッドを、目的のデータがあるトラックの上に移動する時間が必要です。 </dd>
<dt class="bold">平均回転待ち時間</dt>
<dd>さらに、データの先頭がヘッドの真下に来るまで待つ時間も必要になります。 </dd>
</dl>
<p>ここまでを知っていれば、問題を解くことができます。</p>
<p>&nbsp;</p>
<p>平均シーク時間は、問題に示されていて 10 ミリ秒です。<br />
平均回転待ち時間は、ディスクが半回転する時間です。</p>
<p>回転待ち時間は、最も運が良ければ 0 で、最も運が悪ければディスク 1 回転分なので、平均すると半回転分になるのです。</p>
<p>ディスクの回転数が 6000 回転 / 分ですから、<br />
1 回転は 60 秒 ÷ 6000 ＝ 10 ミリ秒であり、<br />
半回転は 10 ミリ秒 ÷ 2 ＝ 5 ミリ秒です。</p>
<p>&nbsp;</p>
<p>平均シーク時間の 10 ミリ秒と、平均回転待ち時間の 5 ミリ秒を足した 15 ミリ秒が、データを読み書きする前に必要な時間です。</p>
<p>これに、データを読み書きする時間を足せば、答えを得られます。</p>
<p>ここでは、1000 バイトのデータを、10 M バイト / 秒で読み取るので、1000 ÷ 10 M ＝ 0.1 ミリ秒の時間がかかります。</p>
<p>したがって、15 ＋ 0.1 ＝ 15.1 ミリ秒の選択肢アが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ア</p>
<p>&nbsp;</p>
<p><i class="material-icons teal-text text-lighten-2">label</i> 関連タグ: <a href="../../tag/ディスク" class="chip teal white-text">ディスク</a></p>
<h2>【厳選問題 4 】<br />
英語の意味と対応付けて、リーダ、チャレンジャ、フォロワ、ニッチャの戦略を区別しよう！</h2>
<div class="card-panel mag_h30">
問 67　(平成 22 年度 秋期)</p>
<p>競争上のポジションで， フォロワの基本戦略はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>シェア追撃などのリーダ攻撃に必要な差別化戦略</dd>
<dt>イ</dt>
<dd>市場チャンスに素早く対応する模倣戦略</dd>
<dt>ウ</dt>
<dd>製品，市場の専門特化を図る特定化戦略</dd>
<dt>エ</dt>
<dd>全市場をカバーし，最大シェアを確保する全方位戦略</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>同じ市場で競い合う複数の企業がある場合、それぞれの企業は、「リーダ」「チャレンジャ」「フォロワ」「ニッチャ」に分類でき、それぞれに合った戦略を取ります。</p>
<p>どのような戦略なのかは、それぞれの英語の意味からわかるでしょう。</p>
<dl class="background c-round">
<dt class="bold">リーダ</dt>
<dd>市場占有率が最大の企業ですから、選択肢エの「全市場をカバーし、最大シェアを確保する全方位戦略」が適切です。 </dd>
<dt class="bold">チャレンジャ</dt>
<dd>リーダに挑戦する企業ですから、選択肢アの「シェア追撃などのリーダ攻撃に必要な差別化戦略」が適切です。 </dd>
<dt class="bold">フォロワ</dt>
<dd>業績をあげている企業におとなしく付いていく（フォローする）企業ですから、選択肢イの「市場チャンスに素早く対応する模倣戦略」が適切です。 </dd>
<dt class="bold">ニッチャ</dt>
<dd>他の企業が手を出さない隙間（ニッチ）で業績を上げるので、選択肢ウの「製品、市場の専門特化を図る特定化戦略」が適切です。 </dd>
</dl>
<p>ここでは、フォロワの戦略を選ぶので、選択肢イが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　イ</p>
<h2>【厳選問題 5 】<br />
日本語の意味どおりに、導入期、成長期、成熟期、衰退期の戦略を判断しよう！</h2>
<div class="card-panel mag_h30">
問 68　(平成 22 年度 秋期)</p>
<p>プロダクトライフサイクルにおける成長期の特徴はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>市場が商品の価値を理解し始める。 商品ラインもチャネルも拡大しなければならない。 この時期は売上も伸びるが，投資も必要である。 </dd>
<dt>イ</dt>
<dd>需要が大きくなり，製品の差別化や市場の細分化が明確になってくる。 競争者間の競争も激化し，新品種の追加やコストダウンが重要となる。  </dd>
<dt>ウ</dt>
<dd>需要が減ってきて，撤退する企業も出てくる。 この時期の強者になれるかどうかを判断し，代替市場への進出なども考える。 </dd>
<dt>エ</dt>
<dd>需要は部分的で，新規需要開拓が勝負である。 特定ターゲットに対する信念に満ちた説得が必要である。 </dd>
</div>
<div class="chip">解説</div>
<p>製品を市場に投入してから撤退するまでを「プロダクトライフサイクル」と呼び、その中には「導入期」「成長期」「成熟期」「衰退期」があります。</p>
<p>それぞれの意味は、日本語の意味から判断できます。 それぞれの選択肢が、どの期に該当するか考えてみましょう。</p>
<p>基本情報技術者試験には、ヒッカケ問題が出ないので、素直に常識的な判断をすればOKです。</p>
<dl class="background c-round">
<dt>選択肢ア</dt>
<dd>市場が商品の価値を理解し始め、売上も「伸びる」のですから「成長期」です。 </dd>
<dt>選択肢イ</dt>
<dd>需要が大きくなり、競争が激化するのですから、「導入期」「成長期」「成熟期」「衰退期」の中では、「成熟期」が適切です。 </dd>
<dt>選択肢ウ</dt>
<dd>需要が減り、代替市場への進出を考えるのですから、「衰退期」です。 </dd>
<dt>選択肢エ</dt>
<dd>新規需要開拓のために、特定ターゲットに信念に満ちた説得をするので、「導入期」です。 </dd>
</dl>
<p>以上のことから、選択肢アが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ア</p>
<div class="divider mag_tp60 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_autumn/">「厳選5題」過去問と解説 | 平成22年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成23年度 春期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h23_spring/</link>
		<pubDate>Mon, 28 Oct 2019 12:36:12 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[午前問題]]></category>
		<category><![CDATA[計算問題]]></category>
		<category><![CDATA[論理式]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=2493</guid>
		<description><![CDATA[<p>ここでは、平成 23 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h23_spring/">「厳選5題」過去問と解説 | 平成23年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_1/2011h23tokubetsu_fe_am_qs.pdf" rel="noopener" target="_blank">平成 23 年度 春期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>これは、ド・モルガンの法則だ！</h2>
<style>.bar{border-top: solid 1px;padding-top: 4px;}.italic-text{font-style:italic;font-family:Times;font-weight:600;}h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}.mag_auto{margin:1.5em auto;}</style>
<div class="card-panel mag_h30">
問 1　(平成 23 年度 春期)</p>
<p>論理式 <span class="italic-text"><span class="bar"> ( <span style="border-top: solid 1px">A</span> + B )・( A + <span style="border-top: solid 1px">C</span> )</span></span> と等しいものはどれか。 ここで，・は論理積，+ は論理和，<span class="italic-text"><span style="border-top: solid 1px">X</span></span> は <span class="italic-text">X</span> の否定を表す。</p>
<p>ア　<span class="italic-text">A・<span style="border-top: solid 1px">B</span> + <span style="border-top: solid 1px">A</span>・C</span><br />
イ　<span class="italic-text"><span style="border-top: solid 1px">A</span>・B + A・<span style="border-top: solid 1px">C</span></span><br />
ウ　<span class="italic-text"> ( A + <span style="border-top: solid 1px">B</span> )・( <span style="border-top: solid 1px">A</span> + C )</span><br />
エ　<span class="italic-text">( <span style="border-top: solid 1px">A</span> + B )・( A + <span style="border-top: solid 1px">C</span> )</span>
</div>
<div class="chip">解説</div>
<p>「問題文に示された論理式と等しい論理式を、選択肢の中から選べ」という問題です。 この手の問題を解くには、以下の 3 つの方法があります。</p>
<ol class="background c-round">
<li>変数に具体的な値（真と偽）を想定して、同じ演算結果になるものを選ぶ</li>
<li>ベン図を書いて、同じ領域になるものを選ぶ</li>
<li>問題文に示された論理式を変形して、選択肢と同じ形にする</li>
</ol>
<p>どの方法でも問題を解くことができますが、効率的に解ける方法を選ぶべきです。</p>
<p>&nbsp;</p>
<p>この問題は、「ド・モルガンの法則」を知っていれば、「3. 問題文に示された論理式を変形して、選択肢と同じ形にする」が効率的だと気付くはずです。</p>
<p>ド・モルガンの法則を堅苦しく示すと、以下のようになります。</p>
<p>ここでは、問題に合わせて、AND（かつ）を ・ 、OR（または） + 、NOT（でない）を ￣ で表しています。</p>
<div class="background c-round">
<h3 class="indigo-text mag_tp00">ド・モルガンの法則</h3>
<p class="post-title italic-text"><span style="border-top: solid 1px">A ・ B</span> ＝ <span style="border-top: solid 1px">A</span> + <span style="border-top: solid 1px">B</span></p>
<p class="post-title italic-text"><span style="border-top: solid 1px">A + B</span> ＝ <span style="border-top: solid 1px">A</span> ・ <span style="border-top: solid 1px">B</span></p>
</div>
<p>このような堅苦しい式を見ると「こんなの覚えられないよ！」と思うでしょう。 ご安心ください。</p>
<p><span class="u">ド・モルガンの法則は、人間の自然な感覚として理解できるもの</span>です。</p>
<p>&nbsp;</p>
<p>式の A に「イケメン」、B に「金持ち」という具体例を入れてみましょう。</p>
<p>以下のようになります。 いかがですか？ 「なんだ、当たり前のことじゃないか！」と納得していただけるでしょう。</p>
<figure><figcaption>図　具体例を入れたド・モルガンの法則</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/10/img_de_morgan.png" loading="lazy"><br />
</figure>
<p>それでは、問題を解いてみましょう。</p>
<p>問題文に示された論理式を、ド・モルガンの法則を使って変形すると、以下のようになります。</p>
<div class="card-panel mag_h30">
図　問題文に示された論理式を、ド・モルガンの法則を使って変形する</p>
<p><span class="italic-text"><span class="bar">( <span style="border-top: solid 1px">A</span> + B )・( A + <span style="border-top: solid 1px">C</span> )</span></span></p>
<p>= <span class="italic-text"><span class="bar">( <span style="border-top: solid 1px">A</span> + B )</span> + <span class="bar">( A + <span style="border-top: solid 1px">C</span> )</span></span></p>
<p>= <span class="italic-text"><span class="bar">( <span style="border-top: solid 1px">A</span></span> + <span style="border-top: solid 1px">B</span> ) + ( <span style="border-top: solid 1px">A</span> + <span class="bar"><span style="border-top: solid 1px">C</span> )</span></span></p>
<p><span class="italic-text">= ( A + <span style="border-top: solid 1px">B</span> ) + ( <span style="border-top: solid 1px">A</span> ・ C )</span></p>
<p><span class="italic-text">= A ・ <span style="border-top: solid 1px">B</span> + <span style="border-top: solid 1px">A</span> ・ C</span>
</div>
<p>バーが二重になったときは、否定の否定なので、バーを取ることができます。<br />
・ 演算の方が + 演算より優先順位が高いので、・ 演算を囲むカッコは不要です。</p>
<p>変形した結果は、選択肢アと同じ式になりました。 アが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ア</p>
<p>&nbsp;</p>
<p><i class="material-icons teal-text text-lighten-2">label</i> 関連タグ: <a href="../../tag/論理式" class="chip teal white-text">論理式</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>状態遷移表で文字列の形式を検査する方法を覚えておこう！</h2>
<div class="card-panel mag_h30">
問 4　(平成 23 年度 春期)</p>
<p>次の表は，文字列を検査するための状態遷移表である。 検査では，初期状態を a とし，文字列の検査中に状態が e になれば不合格とする。</p>
<p>解答群で示される文字列のうち，不合格となるものはどれか。 ここで，文字列は左端から検査し，解答群中の△は空白を表す。</p>
<figure>
  <img class="materialboxed z-depth-5 responsive-width mag_auto" src="../../wp-content/uploads/2019/10/h23s_am_q4_table.png" loading="lazy"><br />
</figure>
<p>ア　+0010　　イ　-1　　ウ　12.2　　エ　9.△</p></div>
<div class="chip">解説</div>
<p>この問題を初めて見た人は、「いったい何がいいたいのかわからない？」と思うでしょう。</p>
<p>この問題は、「与えられた文字列が、特定の形式に合致しているかどうかを、状態遷移意表を使って検査する」というものです。</p>
<p>初期状態が a であり、文字列の検査中に状態が e になったら不合格です（つまり、最後まで検査して e にならなければ合格です）。</p>
<p>あれこれ言葉で説明するより、実際にやってみた方が理解が早いでしょう。</p>
<p>&nbsp;</p>
<p>ここでは、選択肢アの「 +0010 」を検査してみます。</p>
<p>この文字列を左から右に向かって 1 文字ずつ取り出し、その文字の種類に応じて状態を遷移させます。</p>
<p>以下では、現在どの状態にいるのかを、状態を ○ で囲んで示します。 初期状態は a なので、a を <i class="material-icons red-text">panorama_fish_eye</i> で囲みます。</p>
<figure><figcaption>図　初期状態は a である</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2019/10/h23s_am_q4_table_1.png" loading="lazy"><br />
</figure>
<p>「 +0010 」の最初の文字は「 + 」という「符号」なので、表を右にたどって、状態 c に遷移することがわかります。</p>
<figure><figcaption>図　状態 a で「 + 」という「符号」なので状態 c に遷移する</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2019/10/h23s_am_q4_table_2.png" loading="lazy"><br />
</figure>
<p>状態 c に遷移して、「 +0010 」の次の文字は「 0 」という「数字」です。<br />
表を右にたどって、状態 b に遷移することがわかります。</p>
<figure><figcaption>図　状態 c で「 0 」という「数字」なので状態 b に遷移する</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2019/10/h23s_am_q4_table_3.png" loading="lazy"><br />
</figure>
<p>状態 b に遷移して、「 +0010 」の次の文字は「 0 」という「数字」です。<br />
表を右にたどって、状態 b に遷移する（同じ状態のままにする）ことがわかります。</p>
<figure><figcaption>図　状態 b で「 0 」という「数字」なので状態 b に遷移する（同じ状態のままにする）</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2019/10/h23s_am_q4_table_4.png" loading="lazy"><br />
</figure>
<p>「 +0010 」のこの後の文字も「 1 」と「 0 」という数字なので、最後の文字を取り出したときの状態は b です。</p>
<p>状態が e にならなかったので、この文字列は合格です。 いかがですか？</p>
<p>「与えられた文字列が、特定の形式に合致しているかどうかを、状態遷移意表を使って検査する」ということの意味を、ご理解いただけたでしょう。</p>
<p>&nbsp;</p>
<p>同様の方法で、選択肢イの「 －1 」を検査すると、最後の文字を取り出したときの状態は b になります（合格です）。<br />
選択肢ウの「 12.2 」を検査すると、最後の文字を取り出したときの状態は e になります（不合格です）。<br />
選択肢エの「 9.△ 」を検査すると、最後の文字を取り出したときの状態は a になります（合格です）。</p>
<p>したがって、ウが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ウ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>伸びて行くから「木」なのです！</h2>
<div class="card-panel mag_h30">
問 5　(平成 23 年度 春期)</p>
<p>空の 2 分探索木に，8，12， 5， 3，10，7， 6 の順にデータを与えたときにできる 2 分探索木はどれか。 ア　パスワードに対応する利用者 ID のハッシュ値を登録しておき，認証時に入力された利用者 ID をハッシュ関数で変換して参照した登録パスワードと入力パスワードを比較する。</p>
<div class="flex wrap">
<div class="col s6 m3">
ア</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_option_a.png" loading="lazy"></figure>
</div>
<div class="col s6 m3">
イ</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_option_i.png" loading="lazy"></figure>
</div>
<div class="col s6 m3">
ウ</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_option_u.png" loading="lazy"></figure>
</div>
<div class="col s6 m3">
エ</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_option_e.png" loading="lazy"></figure>
</div>
</div>
</div>
<div class="chip">解説</div>
<p>二分探索木は、1 つのデータが 2 つに枝分かれして、より小さいデータを左側に、より大きいデータを右側につないだものです。</p>
<p>枝分かれするので木なのですが、もう 1 つ、木らしい特徴があります。</p>
<p>それは、データを与えることで、徐々に伸びていくことです。</p>
<p>この問題では、8 、12 、5 、3 、10 、7 、6 の順にデータが与えられます。 これによって、以下の手順で木が伸びていきます。</p>
<p class="mag_h20">図　データを与えることで木が伸びていく</p>
<div class="flex wrap">
<div class="col s4 center">
手順1. 8 を与える</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_step_1.png" loading="lazy"></figure>
</div>
<div class="col s4 center">
手順2. 12 を与える</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_step_2.png" loading="lazy"></figure>
</div>
<div class="col s4 center">
手順3. 5 を与える</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_step_3.png" loading="lazy"></figure>
</div>
<div class="col s4 center">
手順4. 3 を与える</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_step_4.png" loading="lazy"></figure>
</div>
<div class="col s4 center">
手順5. 10 を与える</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_step_5.png" loading="lazy"></figure>
</div>
<div class="col s4 center">
手順6. 7 を与える</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_step_6.png" loading="lazy"></figure>
</div>
<div class="col s4 center">
手順7. 6 を与える</p>
<figure><img class="hoverable materialboxed" src="../../wp-content/uploads/2019/10/h23s_am_q5_step_7.png" loading="lazy"></figure>
</div>
</div>
<p>最後のデータの 6 を与えた時点で、選択肢エと同じ形状の木になりました。 エが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>計算問題への苦手意識を克服しよう！(その 1 )</h2>
<div class="card-panel mag_h30">
問 19　(平成 23 年度 春期)</p>
<p>Web サーバとデータベースサーパ各 1 台で構成されているシステムがある。 次の運用条件の場合，このシステムでは最大何 TPS 処理できるか。 ここで，各サーバの CPU は， 1 個とする。</p>
<p>〔運用条件〕</p>
<ol class="mag_h30">
<li>トランザクションは，Web サーバを経由し，データベースサーバで SQL が実行される。</li>
<li>Web サーバでは，1 トランザクション当たり，CPU 時間を1ミリ秒使用する。</li>
<li>データベースサーバでは，1 トランザクション当たり，データベースの 10 データブロックにアクセスする SQL が実行される。 1 データブロックのアクセスに必要なデータベースサーバの CPU 時間は，0.2 ミリ秒である。</li>
<li>CPU 使用率の上限は，Web サーバが 70 % ，データベースサーバが 80 % である。 </li>
<li>トランザクション処理は，CPU 時間だけに依存し，Web サーバとデータベースサーバは互いに独立して処理を行うものとする。</li>
</ol>
<p>ア　400　　イ　500　　ウ　700　　エ　1,100
</p></div>
<div class="chip">解説</div>
<p>筆者の講師経験上、「計算問題が苦手です！」という人が多いようです。 しかし、それは多くの場合、<span class="bold">誤解</span>です。</p>
<p>基本情報技術者試験の計算問題を解くために、<span class="bold">特殊な計算式を知っている必要はなく、複雑な計算も要求されない</span>からです。 どの問題も<span class="u">「仕組みを知っていれば計算できるよね！」</span>という趣旨のものです。 問題が解けないのは、<span class="bold">計算が苦手だからではなく、仕組みを知らないから</span>です。</p>
<p>それに気付いて、苦手意識を克服していただくために、この問題を解いてみましょう。</p>
<blockquote class="background">
<p class="mag_h05 bold">「 TPS って何だか知っていますか？」<br />
「システムの性能は、ボトルネックとなる部分（最も遅い部分）で決まることを知っていますか？」</p>
</blockquote>
<p>という問題です。</p>
<p>まず、Web サーバーの TPS ( Transactions Per Second 、1 秒間に処理できるトランザクションの数) を求めてみましょう。</p>
<p>1トランザクション当たり CPU 時間を 1 ミリ秒を使用するのですから、</p>
<div class="background c-round">
1 秒 ÷ 1 ミリ秒 ＝ 1000 TPS
</div>
<p>です。</p>
<p>ただし、CPU 使用率の上限が 70 % なので、実際には、</p>
<div class="background c-round">
1000 TPS × 0.7 ＝ 700 TPS
</div>
<p>になります。</p>
<p>&nbsp;</p>
<p>次に、データベースサーバの TPS を求めてみましょう。</p>
<ol class="background c-round">
<li>1 トランザクション当たり、データベースの 10 ブロックにアクセスする SQL を実行し、</li>
<li>1 データブロックのアクセスに必要なCPU 時間が 0.2 ミリ秒なので、</li>
<li>1 トランザクション当たり 10 × 0.2 ミリ秒 ＝ 2 ミリ秒の CPU 時間を使います。</li>
</ol>
<p>TPS は、1 秒 ÷ 2 ミリ秒 ＝ 500 TPS ですが、CPU 使用率の上限が 80 % なので、実際には、</p>
<div class="background c-round">
500 TPS × 0.8 ＝ 400 TPS
</div>
<p>になります。</p>
<p>Web サーバが 700 TPS で、データベースサーバが 400 TPS なので、遅い方のデータベースサーバがボトルネックとなって、このシステムの性能は、400 TPS です。 アが正解です。</p>
<p>いかがですか？ 計算が難しいのではなく、仕組みを知っているかどうかがポイントですね。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　ア</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>計算問題への苦手意識を克服しよう！(その 2 )</h2>
<div class="card-panel mag_h30">
問 23　(平成 23 年度 春期)</p>
<p>Java などのバイトコードプログラムをインタプリタで実行する方法と，コンパイルしてから実行する方法を次の条件で比較するとき，およそ何行以上のバイトコードであれば，コンパイル方式の方がインタプリタ方式よりも処理時間 (コンパイル時間も含む) が短くなるか。</p>
<p>〔条件〕</p>
<ol>
<li>実行時間はプログラムの行数に比例する。</li>
<li>同じ 100 行のパイトコードのプログラムをインタプリタで実行すると 0.2 秒掛かり，コンパイルしてから実行すると 0.003 秒掛かる。</li>
<li>コンパイル時間は 100 行当たり 0.1 秒掛かる。</li>
<li>コンパイル方式の場合は，プログラムの行数に関係なくファイル入出力，コンパイラ起動などのために常に 0.15 秒のオーバヘッドが掛かる。</li>
<li>プログラムファイルのダウンロード時間など，そのほかの時間は無視して考える。</li>
</ol>
<p>ア　50　　イ　75　　ウ　125　　エ　155
</p></div>
<div class="chip">解説</div>
<p>計算問題への苦手意識を克服するために、もう 1 問やってみましょう。</p>
<p>これは、</p>
<blockquote class="background">
<p class="mag_h05 bold">「インタプリタで実行する場合と、コンパイラで実行する場合で、それぞれに必要とされる時間を知っていますか？」</p>
</blockquote>
<p>という問題です。</p>
<p>バイトコードの行数を b 行（ b は、バイトコードの頭文字です）として、それぞれの実行時間を求めてみましょう。</p>
<p>&nbsp;</p>
<p>インタプリタで実行する場合に必要とされるのは、コードの解釈・実行時間だけです。</p>
<p>ここでは、</p>
<p>100 行のバイトコードあたり 0.2 秒かかるので、 b 行では、</p>
<div class="background c-round">( b / 100 ) × 0.2 秒</div>
<p>かかります。</p>
<p>コンパイラで実行する場合に必要とされるのは、コンパイル時間、実行時間、その他のオーバーヘッドの時間です。</p>
<dl class="background c-round">
<dt class="bold">コンパイル時間</dt>
<dd>100 行当たり 0.1 秒かかる</dd>
<dd>b 行では、( b / 100 ) × 0.1 秒かかる</dd>
<dt class="bold">実行時間</dt>
<dd>100 行当たり 0.003 秒</dd>
<dd>b 行では、( b / 100 ) × 0.003 秒かかる</dd>
<dt class="bold">その他のオーバーヘッドの時間</dt>
<dd>行数に関係なく 0.15 秒かかる</dd>
</dl>
<p>以上を合計すると、</p>
<div class="background c-round">
( b / 100 ) × 0.1 秒 + ( b / 100 ) × 0.003 秒 + 0.15 秒
</div>
<p>になります。</p>
<p>&nbsp;</p>
<p>この問題は、「コンパイラの処理時間 ＜ インタプリタの処理時間」となる行数を求めるものなので、以下の不等式を解いて、</p>
<div class="background c-round">
( b / 100 ) × 0.1 秒 + ( b / 100 ) × 0.003 秒 + 0.15 秒 ＜ ( b / 100 ) × 0.2 秒<br />
b ＞ 154.6・・・
</div>
<p>となります。 したがって、エの 155 が正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>　エ</p>
<div class="divider mag_tp60 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h23_spring/">「厳選5題」過去問と解説 | 平成23年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成23年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h23_autumn/</link>
		<pubDate>Sun, 20 Oct 2019 07:44:00 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[午前問題]]></category>
		<category><![CDATA[論理回路]]></category>
		<category><![CDATA[論理式]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=2377</guid>
		<description><![CDATA[<p>ここでは、平成23年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとで [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h23_autumn/">「厳選5題」過去問と解説 | 平成23年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_2/2011h23a_fe_am_qs.pdf" rel="noopener" target="_blank">平成23年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip,img{vertical-align:middle}.italic-text{font-style:italic;font-family:Times;font-weight:600;}pre{font-family:consolas,'Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#fafafa;color:#37474f;border-radius:.5em;padding:1em;font-size:1em}.bar{text-decoration:overline}dl.inline dd{margin-left:2em}h2 .chip{background:#3f51b5;color:#fff;margin-right:.75em}.chip i{font-size:2em!important}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>バッカス・ナウア記法の読み方を知っておこう</h2>
<div class="card-panel mag_h30">
問 4　(平成 23 年度 秋期)</p>
<p>次の規則から生成することができる式はどれか。</p>
<p>〔規則〕</p>
<pre>
<式> ::= <変数> | (<式> + <式>) | <式>＊<式>
<変数> ::= A | B | C | D
<span class="grey-text small-text hide-on-med-and-up"><i class="material-icons mag_rt05">info</i>横へスクロールできます</span>
</pre>
<p>ア　A + ( B + C ) *  D　　<br class="hide-on-med-and-up">イ　( A + B ) + ( C + D )<br />
ウ　( A + B ) ＊ ( C + D )　　<br class="hide-on-med-and-up">エ　( A ＊ B ) + ( C ＊ D )
</div>
<div class="chip">解説</div>
<p>「規則」の部分に何やら不思議な表記がありますが、これは「バッカス・ナウア記法」と呼ばれるものです。</p>
<p>バッカスは、1950 年代に FORTRAN というプログラミング言語を開発した人物で、ナウアは、そのお弟子さんです。バッカス・ナウア記法は、両者によって考案された、プログラミング言語の文法の表記方法です。</p>
<p>バッカス・ナウア記法では、</p>
<pre>左辺 ::= 右辺</pre>
<p>という構文で、「左辺とは右辺である」を示します。<br />
縦棒（ | ）は、「または」を意味します。</p>
<p>これだけわかれば、問題に示された 2 行の「規則」の意味がわかるでしょう。</p>
<p>&nbsp;</p>
<p>1 行目は、「式とは、変数、または、( 式 ＋ 式 ) 、または、式 ＊ 式、である」という意味です。<br />
2 行目は、「変数とは、A 、または B 、または C 、または D である」という意味です。</p>
<p>＋ はカッコで囲み、＊ はカッコで囲まないことがポイントです。</p>
<p>&nbsp;</p>
<p>それでは、選択肢を見てみましょう。</p>
<p>アは、A の後にある ＋ をカッコで囲んでいないので、規則に合っていません。<br />
イは、( A ＋ B ) と ( C ＋ D ) の間にある ＋ をカッコで囲んでいないので、規則に合っていません。<br />
ウは、規則に合っています。<br />
エは、( A ＊ B ) と ( C ＊ D ) の間にある ＋ をカッコで囲んでいないので、規則に合っていません。</p>
<p>したがって、ウが正解です。</p>
<p><span class="chip">解答</span>ウ</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/論理式" class="tag">論理式</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>論理式をベン図で表す練習をしておこう</h2>
<div class="card-panel mag_h30">
問 26　(平成 23 年度 秋期)</p>
<p>論理式 <span class="italic-text">X = <span class="bar">A</span> ・ B  +  A ・<span class="bar">B</span>　+　<span class="bar">A</span> ・ <span class="bar">B</span></span> と同じ結果が得られる論理回路はどれか。ここで，論理式中の・は論理積，+ は論理和，<span class="italic-text"><span class="bar">X</span></span> は <span class="italic-text">X</span> の否定を表す。</p>
<div class="row">
<div class="col m6 s12">ア　<img loading="lazy" src="../../wp-content/uploads/2019/10/q26_option_a.png" alt="" /></div>
<div class="col m6 s12">イ　<img loading="lazy" src="../../wp-content/uploads/2019/10/q26_option_i.png"></div>
<div class="col m6 s12">ウ　<img loading="lazy" src="../../wp-content/uploads/2019/10/q26_option_u.png" alt="" /></div>
<div class="col m6 s12">エ　<img loading="lazy" src="../../wp-content/uploads/2019/10/q26_option_e.png"></div>
</div>
</div>
<div class="chip">解説</div>
<p>これまでの連載の中で、論理式や論理回路の問題に対して、<a href="../../tag/テクニック-具体的な値を想定して解く/">「具体的な値を想定して解く」</a>という解法を紹介しましたが、別の解法もあります。</p>
<p>それは、<span class="bold">「ベン図に表して解く」</span>です。</p>
<p>この問題は、「ベン図に表して解く」という解法が合っています。実際にやってみて、「これは、A と B に具体的な値を想定して解くより、ベン図に表して解いた方が簡単だ！」ということを実感してください。</p>
<p>&nbsp;</p>
<p>この問題では、論理積（AND 演算）、論理和（ OR 演算）、否定（ NOT 演算）を、・ 、＋ 、<span class="bar">　</span> 上付き線（バー）で表しています。</p>
<p>論理演算で注意してほしいのは、<span class="bold">否定 ＞ 論理積 ＞ 論理和の順に優先順位が高い</span> ことです。</p>
<p>したがって、問題文に示された論理式は、<br />
「 A でなく、かつ、B である」<br />
または<br />
「 A であり、かつ、B でない」<br />
または<br />
「 A でなく、かつ、B でない」<br />
という意味です。</p>
<p>&nbsp;</p>
<p>これをベン図に示してみましょう。以下のようになります。</p>
<figure><figcaption class="grey-text mag_h10">図　問題文に示された論理式をベン図に示したもの</figcaption><img data-caption="図　問題文に示された論理式をベン図に示したもの" class="materialboxed hoverable z-depth-5" src="../../wp-content/uploads/2019/10/q26_figure.jpg" loading="lazy"><br />
</figure>
<p>このベン図が示している領域は、A と B の交わりを除いた部分です。</p>
<p>交わりは、AND 演算なので、A AND B を除いた部分、すなわち NOT (A AND B) であり、A NAND B です。</p>
<p>選択肢のアは AND 回路、イは NAND 回路、ウは OR 回路、エは NOR 回路です。</p>
<p>したがって、イが正解です。</p>
<p><span class="chip">解答</span>イ</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/論理回路" class="tag">論理回路</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>パスワードの盗用を防止する方法を知っておこう</h2>
<div class="card-panel mag_h30">
問 42　(平成 23 年度 秋期)</p>
<p>入力パスワードと登録パスワードを用いて利用者を認証する方法において，パスワードファイルへの不正アクセスによる登録パスワードの盗用防止策はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>パスワードに対応する利用者 ID のハッシュ値を登録しておき，認証時に入力された利用者 ID をハッシュ関数で変換して参照した登録パスワードと入力パスワードを比較する。</dd>
<dt>イ</dt>
<dd>パスワードをそのまま登録したファイルを圧縮しておき，認証時に復元して，入力されたパスワードと比較する。</dd>
<dt>ウ</dt>
<dd>パスワードをそのまま登録しておき，認証時に入力されたパスワードと登録内容をともにハッシュ関数で変換して比較する。</dd>
<dt>エ</dt>
<dd>パスワードをハッシュ値に変換して登録しておき，認証時に入力されたパスワードをハッシュ関数で変換して比較する。</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>ID とパスワードを使って利用者を認証するサーバには、それらを記録したパスワードファイルがあります。「そのファイルを盗まれたら、不正アクセスされてしまう！」と心配になるでしょう。</p>
<p>でもご安心ください。ちゃんと盗用防止策が施されています。</p>
<p>それは、パスワードをハッシュ値に変換して記録することです。その仕組みを、シンプルな具体例で説明しましょう。</p>
<p>&nbsp;</p>
<p>ID が「 seplus 」でパスワードが「 abc123 」だとしましょう。これらをそのままパスワードファイルに記録すると、盗まれたらアウトです。</p>
<p>そこで、あらかじめ取り決めておいた計算方法で、パスワードを数値に変換して記録します。</p>
<p>この数値が、<span class="bold">ハッシュ値</span> です。</p>
<p>&nbsp;</p>
<p>ここでは、「パスワードを構成するすべての文字の ASCII コードを足す」という計算方法を使うことにします。</p>
<p>「 abc123 」というパスワードのハッシュ値は、97 ＋ 98 ＋ 99 ＋ 49 ＋ 50 ＋ 51 ＝ 444 になります。<br />
パスワードファイルには、「 seplus 」という ID と、「 444 」というハッシュ値を記録するのです。</p>
<p>利用者がログインするときには、入力された「 abc123 」というパスワードから「 444 」というハッシュ値が計算され、それがパスワードファイルに記録されているハッシュ値と一致すれば、本人であると認証されます。</p>
<p>もしも、パスワードファイルが盗まれても、「 abc123 」というパスワードは盗まれないので、不正アクセスはできません。</p>
<div class="pink lighten-5 pad_20 c-round">
「いやいや、そんなことはない！ 444 というハッシュ値は盗まれてしまうのだから、 444 というハッシュ値になるパスワードを用意すれば、不正アクセスできてしまうじゃないか！<br />
たとえば、 bbb 222 というパスワードのハッシュ値は、 444 になる！」
</div>
<p>と思われるでしょう。</p>
<p>たしかに、「パスワードを構成するすべての文字の ASCII コードを足す」という単純な計算方法では、同じハッシュ値になるパスワードを簡単に用意できてしまいます。</p>
<p>そこで、実際には、同じハッシュ値を得るパスワードを見つけるのが困難になるように、もっと複雑な計算方法が使われているのです。</p>
<p>&nbsp;</p>
<p>それでは、選択肢を見てみましょう。</p>
<p>アは利用者 ID をハッシュ値にして登録、<br />
イはパスワードを圧縮して登録、<br />
ウはパスワードをそのまま登録してハッシュ値を比較、<br />
エはパスワードをハッシュ値に変換して登録</p>
<p>なので、エが正解です。</p>
<p><span class="chip">解答</span>エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>ウイルスを検出する様々な方法を知っておこう</h2>
<div class="card-panel mag_h30">
問 43　(平成 23 年度 秋期)</p>
<p>コンピュータウイルス対策ソフトのパターンマッチング方式を説明したものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>感染前のファイルと感染後のファイルを比較し，ファイルに変更が加わったかどうかを調べてウイルスを検出する。</dd>
<dt>イ</dt>
<dd>既知ウイルスのシグネチャコードと比較して，ウイルスを検出する。</dd>
<dt>ウ</dt>
<dd>システム内でのウイルスに起因する異常現象を監視することによって，ウイルスを検出する。</dd>
<dt>エ</dt>
<dd>ファイルのチェックサムと照合して，ウイルスを検出する。</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>コンピュータウイルス対策ソフトがウイルスを検出する方法には、</p>
<ul class="background c-round">
<li>チェックサム法（ check sum ＝ チェック用の合計値）</li>
<li>コンペア法（ compare ＝ 比較）</li>
<li>パターンマッチング法（ pattern matching ＝ パターンの一致）</li>
<li>ヒューリスティック法（ heuristic ＝ 発見）</li>
<li>ビヘイビア法（ behavior ＝ 振る舞い）</li>
</ul>
<p>などがあります。それぞれの特徴を以下に示します。</p>
<table class="striped block responsive-width" style="font-size:.85em">
<thead>
<tr>
<th>名称</th>
<th>検出方法</th>
</tr>
</thead>
<tbody>
<tr>
<th>チェックサム法</th>
<td>ファイルのチェックサムが合わなければ感染していると判断する</td>
</tr>
<tr>
<th>コンペア法</th>
<td>ウイルスに感染していない原本と比較して、異なっていれば感染していると判断する</td>
</tr>
<tr>
<th>パターンマッチング法</th>
<td>既知のウイルスの特徴を記録しておき、プログラムの中に一致する部分があれば、感染していると判断する</td>
</tr>
<tr>
<th>ヒューリスティック法</th>
<td>ウイルスが行う動作を決めておき、プログラムの中に一致する動作があれば、感染していると判断する</td>
</tr>
<tr>
<th>ビヘイビア法</th>
<td>プログラムの動作を監視し、通信量やエラーの急激な増加などの異常があれば、感染していると判断する</td>
</tr>
</tbody>
</table>
<p>選択肢を見てみましょう。</p>
<p>アは、感染前と感染後のファイルを比較するので、コンペア法です。<br />
イは、既知ウイルスのシグネチャコード（特徴）と比較するので、パターンマッチング法です。<br />
ウは、異常現象を監視するので、ビヘイビア法です。<br />
エは、チェックサムと照合するので、チェックサム法です。</p>
<p>したがって、イが正解です。</p>
<p>&nbsp;</p>
<p><span class="chip">解答</span>イ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>ソフトウェア開発手法の種類を知っておこう</h2>
<div class="card-panel mag_h30">
問 50　(平成 23 年度 秋期)</p>
<p>要求分析から実装までの開発プロセスを繰り返しながら，システムを構築していくソフトウェア開発手法はどれか。</p>
<p>ア　ウォータフォールモデル　　<br class="hide-on-med-and-up">イ　スパイラルモデル<br />
ウ　プロトタイピングモデル　　<br class="hide-on-med-and-up">エ　リレーショナルモデル
</div>
<div class="chip">解説</div>
<p>基本情報技術者試験で取り上げられるソフトウェア開発手法の種類は、ウォータフォールモデル、プロトタイピングモデル、スパイラルモデルの 3 つです。午前試験は、四択問題なので、もう 1 つ選択肢が必要です。</p>
<p>そこで、リレーショナルモデルという無関係な用語を選択肢に入れています。リレーショナルモデルは、データベースに関する用語です。</p>
<p>&nbsp;</p>
<p>ウォータフォールモデルは、全体で進捗を合わせて、開発工程を後戻りしないようにする手法です。ウォーターフォール（ waterfall ）は、「滝」という意味です。後戻りしないことを滝に例えているのです。</p>
<p>プロトタイピングモデルは、プロトタイプ（ prototype ＝ 試作品）を作ってから開発を行う手法です。</p>
<p>スパイラルモデルは、要求分析から実装までの開発工程を繰り返す手法です。スパイラル（ spiral ）は、「らせん」という意味で、繰り返すことを表しています。</p>
<p>したがって、イが正解です。</p>
<p><span class="chip">解答</span>イ</p>
<div class="divider mag_h50"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。<span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h23_autumn/">「厳選5題」過去問と解説 | 平成23年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成24年度 春期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_spring/</link>
		<pubDate>Wed, 18 Sep 2019 09:23:13 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[2進数]]></category>
		<category><![CDATA[PPM]]></category>
		<category><![CDATA[テクニック 具体的な値を想定]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[工数]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=2130</guid>
		<description><![CDATA[<p>ここでは、平成 24 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_spring/">「厳選5題」過去問と解説 | 平成24年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2012h24_1/2012h24h_fe_am_qs.pdf" rel="noopener" target="_blank">平成 24 年度 春期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}dl.inline dd{margin-left:5em;}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>自分流に具体例を書けばイメージをつかめます</h2>
<div class="card-panel mag_h30">
問 7　(平成 24 年度 春期)</p>
<p>多数のデータが単方向リスト構造で格納されている。 このリスト構造には，先頭ポインタとは別に、末尾のデータを指し示す末尾ポインタがある。 次の操作のうち，ポインタを参照する回数が最も多いものはどれか。</p>
<p>ア　リストの先頭にデータを挿入する。<br />
イ　リストの先頭のデータを削除する。<br />
ウ　リストの末尾にデータを挿入する。<br />
エ　リストの末尾のデータを削除する。
</p></div>
<div class="chip">解説</div>
<p>この問題を見て「まったくイメージが思い浮かばない！」と思った人が多いでしょう。</p>
<p>このような問題は、自分流の具体例を書いてみましょう。 そうすれば、イメージをつかめます。 以下に具体例の例を示しますので、参考にしてください。</p>
<p>&nbsp;</p>
<p>単方向リストですから、1 つの要素が「データの値」と「ポインタ（次にどこいつながっているか）」という 2 つの情報を持っています。</p>
<p>ここでは、要素数 5 個のリストを想定して、それぞれのデータを「あ」「い」「う」「え」「お」とします。</p>
<p>それぞれの要素に 100 番地、200 番地、300 番地、400 番地、500 番地という適当なアドレスを想定して、個々の要素のポインタを設定します。</p>
<p>先頭の要素のアドレスを持つ先頭ポインタと、末尾の要素のアドレスを持つ末尾ポインタがあるので、それらに 100 番地と 500 番地を設定します。 リストのつながりを矢印で示して、具体例のできあがりです。</p>
<figure><figcaption>図　自分流の具体例を書いた例</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/my_own_figure_pointer.png" loading="lazy"><br />
</figure>
<p>具体例が書けたので、問題を解く準備ができました。 ポインタを参照する回数が最も多い操作を選ぶ問題なので、それぞれの選択肢の操作を実際にやってみましょう。</p>
<p>選択肢アの「リストの先頭にデータを挿入する」は、</p>
<ol class="background c-round">
<li>600 番地に「か」という要素を追加することを想定し、先頭ポインタを参照して（ 1 回目）、その 100 番地という情報を追加した要素のポインタに設定し、先頭ポインタを 600 番地に変更</li>
</ol>
<p>します。</p>
<p>ポインタの参照は、1 回だけです。</p>
<figure><figcaption>図　ア　リストの先頭にデータを挿入する</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/my_own_figure_option_a.png" loading="lazy"><br />
</figure>
<p>選択肢イの「リストの先頭のデータを削除する」は、</p>
<ol class="background c-round">
<li>先頭ポインタを参照して（ 1 回目）</li>
<li>先頭の要素のポインタを参照して（ 2 回目）、その 200 番地という情報を先頭ポインタに設定</li>
</ol>
<p>します。</p>
<p>ポインタの参照は、2 回です。</p>
<figure><figcaption>図　イ　リストの先頭のデータを削除する</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/my_own_figure_option_i.png" loading="lazy"><br />
</figure>
<p>選択肢ウの「リストの末尾にデータを挿入する」は、</p>
<ol class="background c-round">
<li>600 番地に「か」「次はなし」という要素を追加することを想定し、末尾ポインタを参照して（ 1 回目）、末尾の要素の「次はなし」を追加した要素の「次は 600 番地」に変更し、さらに末尾ポインタを「末尾は 600 番地」に変更</li>
</ol>
<p>します。</p>
<p>ポインタの参照は、1 回だけです。</p>
<figure><figcaption>図　ウ　リストの末尾にデータを挿入する</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/my_own_figure_option_u.png" loading="lazy"><br />
</figure>
<p>選択肢エの「リストの末尾のデータを削除する」は、</p>
<ol class="background c-round">
<li>末尾ポインタを参照して（ 1 回目）「末尾は 500 番地」を記憶しておき、</li>
<li>先頭ポインタを参照して（ 2 回目）100 番地の要素にアクセスし、</li>
<li>その要素のポインタを参照して（ 3 回目）「次は 500 番地」ではないので 200 番地の要素にアクセスし、</li>
<li>その要素のポインタを参照して（ 4 回目）「次は 500 番地」ではないので 300 番地の要素にアクセスし、</li>
<li>その要素のポインタを参照して（ 5 回目）「次は 500 番地」ではないので 400 番地の要素にアクセスし、</li>
<li>その要素のポインタを参照して（ 6 回目）「次は 500 番地」なのでそれを「次はなし」に変更し、末尾ポインタを「末尾は 400 番地」に変更</li>
</ol>
<p>します。</p>
<p>ポインタの参照は、6 回です。</p>
<figure><figcaption>図　エ　リストの末尾のデータを削除する</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/my_own_figure_option_e.png" loading="lazy"><br />
</figure>
<p>以上のことから、ポインタを参照する回数が最も多い操作は、選択肢エです。</p>
<p><span class="chip mag_tp30">解答</span> エ</p>
<div class="grey lighten-5 pad_20 c-round">
<i class="material-icons indigo-text">search</i> 関連タグ <a class="tag" href="../../tag/テクニック-具体的な値を想定/">テクニック 具体的な値を想定</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>事前にしっかりと練習しておけば試験当日に焦りません</h2>
<div class="card-panel mag_h30">
問 20　(平成 24 年度 春期)</p>
<p>次の条件で四つのジョブが CPU 処理及び印刷を行う場合に，最初の CPU 処理を開始してから最後の印刷が終了するまでの時間は何分か。</p>
<ol>
〔条件〕</p>
<li>多重度 1 で実行される。</li>
<li>各ジョブの CPU 処理時間は 20 分である。</li>
<li>各ジョブは CPU 処理終了時に 400 M バイトの印刷データをスプーリングする。<br />
スプーリング終了後に OS の印刷機能が働き，プリンタで印刷される。</li>
<li>プリンタは 1 台であり，印刷速度は 100 M バイト当たり 10 分である。</li>
<li>CPU 処理と印刷機能は同時に動作可能で，互いに影響を及ぼさない。</li>
<li>スプーリングに要する時間など，条件に記述されていない時間は無視できる。</li>
</ol>
<p>ア　120　　イ　160　　ウ　180　　エ　240
</p></div>
<div class="chip">解説</div>
<p>もしも、この問題を試験当日に初めて見たら、「ジョブ」「多重度」「スプーリング」という言葉に惑わされて、「何これ！ どうやって解くの？」と大いに焦るでしょう。 こういう問題こそ、事前にしっかりと練習しておくべきです。</p>
<p>&nbsp;</p>
<p>まず、言葉の意味を説明しましょう。</p>
<dl class="background c-round">
<dt class="bold">「ジョブ」</dt>
<dd>プログラムのことです。</dd>
<dt class="bold">「多重度」</dt>
<dd>同時に実行されるプログラムの数のことです。</dd>
</dl>
<p>ここでは、「多重度 1 」ですから、同時に実行されるプログラムはなく、1 つのプログラムの実行が終了してから、次のプログラムの実行が開始されます。</p>
<p>「スプーリング」とは、低速の周辺装置へ出力するデータを OS が預かる機能です。</p>
<p>ここでは、低速なプリンタへの印刷データを OS が預かっています。</p>
<p>問題文の 6. に</p>
<blockquote>
<p class="grey-text">「スプーリングに要する時間など、条件に記述されていない時間は無視できる」</p>
</blockquote>
<p>とあるので、スプーリングは瞬時に行われます。</p>
<p>したがって、CPU 処理と印刷処理を行う個々のジョブから見ると、CPU 処理が終わった時点で瞬時に印刷処理（実際にはスプーリング）が終了し、次のジョブを開始できます。</p>
<p>OS は、プリンタの処理速度に合わせて、預かった印刷データを出力します。</p>
<p>&nbsp;</p>
<p>次に、それぞれの処理時間を確認しましょう。</p>
<p>ジョブは、全部で 4 つあり、それぞれが 20 分の CPU 処理と瞬時の印刷処理（スプーリング）を行います。</p>
<p>個々のジョブの印刷データが 400 M バイトで、プリンタの印刷速度が 100 M バイトあたり 10 分です。</p>
<p>したがって、個々のジョブの印刷には、400 M バイト × 100 M バイト × 10 分 ＝ 40 分かかります。</p>
<p>&nbsp;</p>
<p>CPU 処理と印刷処理の順序を図に書いてみましょう。</p>
<p>4 つのジョブを A 、B 、C 、D とし、それぞれの CPU 処理と印刷処理を色分けして示します。 CPU 処理が終わると、すぐに次の CPU 処理が開始されること、印刷処理は、CPU 処理とは別に、順番に行われることがポイントです。</p>
<figure><figcaption>図　CPU 処理と印刷処理の順序</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/my_own_figure_option_e.png" loading="lazy"><br />
</figure>
<p>図を書いたことで、最初の CPU 処理を開始しから最後の印刷処理が終了するまでの時間は、180 分あることがわかりました。 ウが正解です。</p>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>ハードウェアの問題は 2 進数の問題です</h2>
<div class="card-panel mag_h30">
問 25　(平成 24 年度 春期)</p>
<p>7セグメント LED 点灯回路で，出力ポートに 16 進数で 6D を出力したときの表示状態はどれか。 ここで， P7 を最上位ビット(MSB)， P0  を最下位ビット( LSB )とし， ポート出力が 1 のとき， LED は点灯する。</p>
<figure>
  <img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2019/09/h24_spring_q25_figure.png" loading="lazy"><br />
</figure>
<div class="row">
<div class="col s3">
ア　<img src="../../wp-content/uploads/2019/09/h24_spring_q25_option_a.png">
</div>
<div class="col s3">
イ　<img src="../../wp-content/uploads/2019/09/h24_spring_q25_option_i.png">
</div>
<div class="col s3">
ウ　<img src="../../wp-content/uploads/2019/09/h24_spring_q25_option_u.png">
</div>
<div class="col s3">
エ　<img src="../../wp-content/uploads/2019/09/h24_spring_q25_option_e.png">
</div>
</div>
</div>
<div class="chip">解説</div>
<p>私の講師経験では、「ハードウェアが苦手です」という受験者が多いようです。</p>
<p>そんな人が、この問題を見たら「何これ？ 電気回路なんてわからない！」と思うでしょう。</p>
<p>でも、ご安心ください。</p>
<p>基本情報技術者試験のハードウェアの問題は、結局のところ 2 進数の問題だからです。 電気回路がわからなくても、 2 進数がわかれば問題を解けます。</p>
<p>&nbsp;</p>
<p>ディジタルの電気回路では、1 本の電線で 2 進数の 1 桁の情報が伝達されます。</p>
<p>この問題では、出力ポート（データを出力する窓口）にある P0 ～ P7 の 8 本の電線を使って、8 桁の 2 進数が出力され、それぞれが 7 セグメント LED の a ～ Dt に接続されます。</p>
<p>7セグメント LED とは、7 つの LED を数字の 8 の形に並べ、それらのいくつかを点灯させることで数字や文字の形にするものです。 この LED には、小数点（ドット）を示す LED もあります。</p>
<p>&nbsp;</p>
<p>問題に、「ポート出力が 1 のとき、LED は点灯する」とあります。</p>
<p>これは、P0 ～ P7 の 8 本の電線につながった a ～ Dt のうち、1 が伝達されているものが点灯するという意味です。</p>
<p>ここでは、16 進数で 6D ＝ 2 進数で 01101101 を出力しています。</p>
<p>P7 が最上位ビットで、P0 が最下位ビットなので、Dt 、g 、f 、e 、d 、c 、b 、a のうち、1 になっている g 、f 、d 、c 、a が点灯します。</p>
<figure><figcaption>図　01101101 の出力による LED の点灯</figcaption><img class="materialboxed z-depth-5" style="width:50%;margin:auto;" src="../../wp-content/uploads/2019/09/h24_spring_q25_led.png" loading="lazy"><br />
</figure>
<p>これによって、数字の 5 の形になります。 正解は、ウです。</p>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<div class="grey lighten-5 pad_20 c-round">
<i class="material-icons indigo-text">search</i> 関連タグ <a class="tag" href="../../tag/2進数">2進数</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>算数の文章問題の大人版だと思って解いてください</h2>
<div class="card-panel mag_h30">
問 53　(平成 24 年度 春期)</p>
<p>設計書の作成状況が表のとおりであるとき， 3 種類の設計書全ての作成を完了させるために必要な今後の工数(人時)は幾らか。</p>
<table class="bordered mag_h20 centered responsive-width">
<thead>
<tr>
<th>設計書</th>
<th>作成枚数<br />(枚)</th>
<th>1 枚当たりの所要工数<br />(人時)</th>
<th>現在までの作成済み枚数<br />(枚)</th>
</tr>
</thead>
<tbody>
<tr>
<td>基本設計書</td>
<td>80</td>
<td>5</td>
<td>80</td>
</tr>
<tr>
<td>概要設計書</td>
<td>300</td>
<td>2</td>
<td>200</td>
</tr>
<tr>
<td>詳細設計書</td>
<td>500</td>
<td>2</td>
<td>50</td>
</tr>
</tbody>
</table>
<p>ア　550　　イ　900　　ウ　1100　　エ　2000
</p></div>
<div class="chip">解説</div>
<p>この問題を見て「何これ？ 工数の計算方法なんて知らない！」と思ったなら、心配しなくて大丈夫です。</p>
<p>基本情報には、事前に公式を暗記する必要がある問題が出たことがありません。 常識的な考えで計算できます。</p>
<p>小学校や中学校の算数で、「文章問題（文章を読んで計算式を考える問題）」がありましたが、その大人版のようなものです。</p>
<p>&nbsp;</p>
<p>それでは、常識的な考えで、問題を解いてみましょう。</p>
<p>基本設計書は、80 枚のうち 80 枚が作成済みなので、残りの工数はありません。</p>
<p>概要設計書は、300 枚のうち 200 枚が作成済みなので、残り 100 枚です。 1 枚当たりの所要工数が 2 人時なので、この 100 枚には 2 × 100 ＝ 200 人時の工数がかかります。</p>
<p>詳細設計書は、500 枚のうち 50 枚が作成済みなので、残り 450 枚です。 1 枚当たりの所要工数が 2 人時なので、この 450 枚には 2 × 450 ＝ 900 人時の工数がかかります。</p>
<p>&nbsp;</p>
<p>以上のことから、3 種類の設計書全ての作成を完成させるために必要な今後の工数は、200 人時 ＋ 900 人時 ＝ 1100 人時であり、ウが正解です。</p>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<div class="grey lighten-5 pad_20 c-round">
<i class="material-icons indigo-text">search</i> 関連タグ <a class="tag" href="../../tag/工数/">工数</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>花形、金のなる木、問題児、負け犬は、そう呼ばれる理由で覚えよう</h2>
<div class="card-panel mag_h30">
問 67　(平成 24 年度 春期)</p>
<p>プロダクトポートフォリオマネジメント( PPM )における &#8220;花形&#8221; を説明したものはどれか。</p>
<p>ア　市場成長率，市場占有率ともに高い製品である。 成長に伴う投資も必要とするので，資金創出効果は大きいとは限らない。<br />
イ　市場成長率，市場占有率ともに低い製品である。 資金創出効果は小さく，資金流出量も少ない。<br />
ウ　市場成長率は高いが，市場占有率が低い製品である。 長期的な将来性を見込むことはできるが，資金創出効果の大きさは分からない。<br />
エ　市場成長率は低いが，市場占有率は高い製品である。 資金創出効果が大きく，企業の支柱となる資金源である。
</p></div>
<div class="chip">解説</div>
<p>この問題を見て「何これ？ 花形って役者のことじゃないの！」と思われて当然です。 もともと英語だった言葉を、日本人の感覚に合わせて意訳したものだからです。</p>
<p>プロダクト・ポートフォリオ・マネジメント（ Product Portfolio Management ＝ PPM ）は、1970 年代に米国の Boston Consulting Group が提唱した経営資源（製品や事業など）のマネジメント手法です。 経営資源を、市場成長率と市場占有率の高低から、Stars 、Cash Cows 、Question Marks 、Dogs の 4 つに分類します。</p>
<p>これらが、「花形」「金のなる木」「問題児」「負け犬」と意訳されているのです。 それぞれが何であるかは、丸暗記ではなく、そう呼ばれる理由を納得して覚えてください。 そうすれば、決して忘れません。</p>
<figure><figcaption>図　プロダクト・ポートフォリオ・マネジメント</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/ppm.png" loading="lazy"><br />
</figure>
<p>市場成長率が高ければ、お金がかかることになります。 市場占有率が高ければ、お金を稼ぐことになります。</p>
<ul class="background c-round">
<li>市場成長率が高く、市場占有率も高い経営資源は、お金がかかりますが、お金も稼ぐので、<span class="bold">花形</span>です。</li>
<li>市場成長率が低く、市場占有率が高い経営資源は、お金がかからないのに、お金を稼ぐので、<span class="bold">金のなる木</span>です。</li>
<li>市場成長率が高いのに、市場占有率が低い経営資源は、お金をかけているのに、お金を稼がないので、<span class="bold">問題児</span>です。</li>
<li>そして、市場成長率が低く、市場占有率も低い経営資源は、お金がかかりませんが、お金も稼がないので、<span class="bold">負け犬</span>です。</li>
</ul>
<p>それでは、選択肢を見てみましょう。</p>
<p>選択肢アは、市場成長率、市場占有率ともに高い製品なので、花形です。 したがって、正解はアです。</p>
<p>念のため他の選択肢も見ておきましょう。</p>
<dl class="background c-round inline">
<dt>選択肢イ</dt>
<dd>市場成長率、市場占有率ともに低い製品なので、負け犬です。</dd>
<dt>選択肢ウ</dt>
<dd>市場成長率が高く、市場占有率が高い製品なので、問題児です。</dd>
<dt>選択肢エ</dt>
<dd>市場成長率が低く、市場占有率が高い製品なので、金のなる木です。</dd>
</dl>
<p><span class="chip mag_tp30">解答</span> ア</p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_spring/">「厳選5題」過去問と解説 | 平成24年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成24年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_autumn/</link>
		<pubDate>Wed, 11 Sep 2019 07:58:20 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[2進数]]></category>
		<category><![CDATA[FIFO LRU LFU]]></category>
		<category><![CDATA[アルゴリズム]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=1989</guid>
		<description><![CDATA[<p>ここでは、平成24年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとで [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_autumn/">「厳選5題」過去問と解説 | 平成24年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2012h24_2/2012h24a_fe_am_qs.pdf">平成24年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}.mag_auto{margin:1.5em auto;}table{font-size:.85em;}.border td{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12);border-top:1px solid rgba(0,0,0,.12);}.half-width{width:50%;margin:auto;}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>2 の補数表現と算術右シフトをマスターしよう</h2>
<div class="card-panel mag_h30">
<p>問 1　(平成 24 年度 秋期)</p>
<p>8 ビットの 2 進数 11010000 を右に 2 ビット算術シフトしたものを，00010100 から<br />
減じた値はどれか。 ここで，負の数は 2 の補数表現によるものとする。</p>
<p>ア　00001000　　イ　00011111　　<br class="hide-on-med-and-up">ウ　00100000　　エ　11100000
</div>
<div class="chip">解説</div>
<p>この問題を解くには、「 2 の補数表現」および「算術右シフト」の知識が必要になります。</p>
<p>これらを「苦手です！」という人が多いようですが、それならばこそ、この問題を通して苦手を克服してください。 苦手を克服すれば、確実に得点アップにつながるからです。</p>
<p>&nbsp;</p>
<p><span class="bold">2 の補数表現は、マイナス符号を使わずに 0 と 1 だけでマイナスの数を表す仕組み</span> です。</p>
<p>2 の補数表現では、2 進数の最上位桁を「符号ビット」と呼び、符号ビットが 0 ならプラスの数を表し、 1 ならマイナスの数を表します。</p>
<p>問題に示された <span class="bold">1</span>1010000 は、最上位桁が 1 なので、マイナスの数を表しています。</p>
<p>ここまでは、OK でしょうか？</p>
<p>&nbsp;</p>
<p><span class="u">算術右シフトは、右方向つまり下位桁に桁をずらして、割り算を行うこと</span>です。</p>
<p>その際に、桁をずらしても符号ビットが変わらないように、符号ビットを除いた部分をシフトします。 そして、シフトして空いた上位桁には、符号ビットと同じ数を入れます。</p>
<p>ここでは、 11010000 を 2 ビット算術右シフトするのですから、</p>
<p>最上位桁の [ 1 ] 1010000 を除いた<br />
1 [ 1010000 ] の部分を下位桁に 2 桁ずらして<br />
1 [ xx10100 ] とし、<br />
空いた上位桁の<br />
1 [ xx ] 10100 の部分に符号ビットと同じ 1 を入れて、<br />
1 [ 11 ] 10100<br />
にします。</p>
<p>空いた桁に符号ビットと同じ値を入れることで、ちゃんと割り算の結果になるのです。</p>
<p>ここまでは、OK でしょうか？</p>
<p>&nbsp;</p>
<p>もう少しで問題が解けますから、がんばってください。</p>
<p>11010000 を 2 ビット算術右シフトした結果は、<br />
11110100 になりました。 符号ビットが 1 なので、 11110100 は、マイナスの数です。</p>
<p>これを 00010100 から引くのですから、 11110100 を同じ絶対値のままプラスの値にして足せばよいことになります。</p>
<p>マイナスの数を引くのは、同じ絶対値のプラスの数を足すことと同じだからです。</p>
<p>たとえば、 8 -（ -5 ）は、8 + 5 です。</p>
<p>ここまでは、OK でしょうか？</p>
<p>&nbsp;</p>
<p>2 の補数表現では、「反転して 1 を足す」という操作を行うことで、同じ絶対値のまま、プラスの数をマイナスの数に、マイナスの数をプラスの数に変換できます。</p>
<p>11110100 を反転する（ 0 を 1 に、 1 を 0 にする）と、<br />
00001011 です。<br />
00001011 に 1 を足すと、<br />
00001100 です。</p>
<p>したがって、結果は、<br />
00010100 + 00001100 = 00100000<br />
となり、ウが正解です。 いかがでしょう。</p>
<p>何となくわかったなら、実際に、手作業で計算を行ってみてください。 そうすれば、きっと 2 の補数表現と算術右シフトをマスターできるはずです！</p>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/2進数" class="chip teal white-text">2 進数</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>探索アルゴリズムの計算量のオーダを覚えよう</h2>
<div class="card-panel mag_h30">
問 3　(平成 24 年度 秋期)</p>
<p>探索方法とその実行時間のオーダの適切な組合せはどれか。 ここで，探索するデータの数を <em>n</em> とし，ハッシュ値が衝突する (同じ値になる) 確率は無視できるほど小さいものとする。 また，実行時間のオーダが <em>n<sup>2</sup></em> であるとは，<em>n</em> 個のデータを処理する時間が <em>cn<sup>2</sup></em> (c は定数) で抑えられることをいう。</p>
<table class="mag_h30 bordered centered responsive-width">
<thead>
<tr>
<th></th>
<th>2 分探索</th>
<th>線形探索</th>
<th>ハッシュ探索</th>
</tr>
</thead>
<tbody>
<tr>
<td>ア</td>
<td><em>log<sub>2</sub>n</em></td>
<td><em>n</em></td>
<td>1</td>
</tr>
<tr>
<td>イ</td>
<td><em>nlog<sub>2</sub>n</em></td>
<td><em>n</em></td>
<td><em>log<sub>2</sub>n</em></td>
</tr>
<tr>
<td>ウ</td>
<td><em>nlog<sub>2</sub>n</em></td>
<td><em>n<sup>2</sup></em></td>
<td>1</td>
</tr>
<tr>
<td>エ</td>
<td><em>n<sup>2</sup></em></td>
<td>1</td>
<td><em>n</em></td>
</tr>
</tbody>
</table>
</div>
<div class="chip">解説</div>
<p>あれこれ難しそうなことが書かれていますが、この問題のテーマは<span class="bold">「計算量のオーダ」</span>です。</p>
<p>「計算量」とは、計算の量、つまり処理回数のことで、同じ目的のアルゴリズムを比較するために使われます。</p>
<p>&nbsp;</p>
<p>基本情報技術者試験では、<span class="bold">「データが n 個ある場合の最大の処理回数を n を使った式で示したもの」を 計算量 </span>とします。</p>
<p>実際の処理回数は、<br />
2n<sup>2</sup> + 5n + 7<br />
のように係数や定数を持つものとなりますが、それらを省略して、さらに最大の次数で示します。</p>
<p>2n<sup>2</sup> + 5n + 7 という処理回数の場合は、係数と定数を省略して<br />
n<sup>2</sup> + n<br />
とし、さらに最大の次数である<br />
n<sup>2</sup><br />
で示します。 これが「オーダ」です。 オーダ（ order ）は、直訳すると「次数」や「規模」という意味です。</p>
<p>&nbsp;</p>
<p>この問題は、<span class="u">探索という同じ目的を持った「二分探索」「線形探索」「ハッシュ探索」という 3 つのアルゴリズムのオーダを知っていますか？</span> という内容です。</p>
<p>線形探索のオーダが、最もわかりやすいので、まず、それでオーダのイメージをつかんでください。</p>
<p><span class="u">線形探索は、「配列の先頭から順に 1 つずつ要素をチェックする」というアルゴリズム</span>です。</p>
<p>要素が 10 個あれば、最大で 10 回の処理を行います。<br />
要素が 100 個あれば、最大で 100 回の処理を行います。<br />
要素が n 個あれば、最大で n 回の処理を行います。</p>
<p>したがって、線形探索のオーダは n です。</p>
<figure><figcaption>図　線形探索のオーダは n である</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q3_figure.png" loading="lazy"><br />
</figure>
<p>次は、ハッシュ探索です。</p>
<p><span class="u">ハッシュ探索は、「データの値に計算式を適用して格納場所を決める」というアルゴリズム</span>です。</p>
<p>たとえば、「データの値を 10 で割った余りを求める」という計算式を適用すれば、</p>
<p>58 というデータの格納場所は、<br />
58 mod 10 = 8<br />
になります（ mod は、割り算の余りを求める演算子だとします）。</p>
<p>この仕組みから、ハッシュ探索のオーダは、理想的には 1（ 1 回の処理で目的の値が見つかる）です。 データの値がわかれば、 1 回の処理で格納場所がわかるからです。</p>
<p>&nbsp;</p>
<p>ここで「理想的」と断っているのは、後から同じ格納場所になってしまうデータが生じた場合は、別の場所に格納することになるので、 1 回の処理で格納場所がわからないからです。</p>
<p>そこで、問題文には、「ハッシュ値が衝突する（同じ値になる）確率は無視できるほど小さいものとする」と示されています。</p>
<p>「ハッシュ値」とは、計算式で得られた格納場所のことです。 これが同じ値になる確率が無視できるほど小さいのですから、ここでは、ハッシュ法のオーダは 1 で OK です。</p>
<figure><figcaption>図　ハッシュ法のオーダは理想的には 1 である</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q3_hash.png" loading="lazy"><br />
</figure>
<p>最後に二分探索のオーダです。 これは、<br />
log<sub>2</sub>n<br />
という表現になります。</p>
<p>log は、高校で習ったはずですが、意味を覚えていますか？ </p>
<p>もしも、忘れてしまったら、<br />
「 <span class="bold">log<sub>2</sub>n は、 n 個のものを 1 個にする分割回数</span>である」<br />
ということと、<br />
具体例として<br />
「 <span class="bold">log<sub>2</sub>8 = 3（ 8 個のものを 1 個にする分割回数は 3 である）</span>」<br />
を覚えてください。</p>
<p>要素数 8 個の配列は、</p>
<p>1 回目の分割で 8 個が 4 個になり、<br />
2 回目の分割で 4 個が 2 個になり、<br />
3 回目の分割で 2 個が 1 個になります。</p>
<p>この最後の 1 個までチェックするのが、最大の処理回数になります。</p>
<p><span class="u">二分探索は、「探索対象の真ん中の値をチェックし、その結果から探索対象を二分割して絞り込むことを繰り返す」というアルゴリズム</span>です。 だから、二分探索の計算量は、log<sub>2</sub>n なのです。</p>
<figure><figcaption>図　二分探索のオーダは分割回数を意味する log<sub>2</sub>n である</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q3_log.png" loading="lazy"><br />
</figure>
<p>以上のことから、正解はアです。</p>
<p><span class="chip mag_tp30">解答</span> ア</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/アルゴリズム" class="chip teal white-text">アルゴリズム</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>ビット数とコードのイメージをつなげよう</h2>
<div class="card-panel mag_h30">
<p>問 4　(平成 24 年度 秋期)</p>
<p>英字の大文字 ( A ~ Z ) と数字 ( 0 ~ 9 ) を同一のビット数で一意にコード化するには，少なくとも何ビットが必要か。<br />
ア　5　　イ　6　　ウ　7　　エ　8
</p></div>
<div class="chip">解説</div>
<p>「コード化（符号化）」とは、本来は数値でない情報を、数値に置き換えて表すことです。 置き換えられた数値を「コード」と呼びます。</p>
<p>この問題は、文字と数字を 2 進数のコードにするには、何ビット（ 2 進数で何桁）が必要になるかを答えるものです。</p>
<p>&nbsp;</p>
<p>2 進数の 1 ビットは、 0 と 1 の 2 種類のコードを表せます。</p>
<dl class="background c-round">
<dt>2 ビットなら</dt>
<dd>00 、 01 、 10 、 11 の 4 種類</dd>
<dt>3 ビットなら</dt>
<dd>000 、 001 、 010 、 011 、 100 、 101 、 110 、 111 の 8 種類</dd>
</dl>
<p>つまり、 1 ビットで 2 種類のコードを表せ、その後はビット数が 1 桁増えるごとに表せるコードの種類が 2 倍になるのです。</p>
<p>選択肢に示された 5 ビット、6 ビット、7 ビット、8 ビットで表せるコードの種類は、以下のようになります。</p>
<dl class="background c-round">
<dt>5 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 = 32 種類</dd>
<dt>6 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 × 2 = 64 種類</dd>
<dt>7 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 × 2 × 2 = 128 種類</dd>
<dt>8 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 256 種類</dd>
</dl>
<p>A ～ Z の 26 文字と 0 ～ 9 の 10 文字を合わせると 36 文字なので、全部で 36 種類のコードが必要です。</p>
<p>5 ビットの 32 種類では足りません。 6 ビットの 64 種類あれば足りるので、イの 6 ビットが正解です。</p>
<p><span class="chip mag_tp30">解答</span> イ</p>
<p>&nbsp;</p>
<p>以下に、36 文字を 6 ビットのコードに置き換えた例を示します。 これを見れば、ビット数とコードのイメージがつながるでしょう。</p>
<p>未使用のコードがあるので、もったいない感じがしますが、5 ビットでは足りないので、6 ビットにしなければなりません。</p>
<div class="row mag_h30">
<div class="col m6">
<table class="striped centered">
<thead>
<tr>
<th>コード</th>
<th>文字</th>
<th>コード</th>
<th>文字</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>A</td>
<td>10000</td>
<td>Q</td>
</tr>
<tr>
<td>1</td>
<td>B</td>
<td>10001</td>
<td>R</td>
</tr>
<tr>
<td>10</td>
<td>C</td>
<td>10010</td>
<td>S</td>
</tr>
<tr>
<td>11</td>
<td>D</td>
<td>10011</td>
<td>T</td>
</tr>
<tr>
<td>100</td>
<td>E</td>
<td>10100</td>
<td>U</td>
</tr>
<tr>
<td>101</td>
<td>F</td>
<td>10101</td>
<td>V</td>
</tr>
<tr>
<td>110</td>
<td>G</td>
<td>10110</td>
<td>W</td>
</tr>
<tr>
<td>111</td>
<td>H</td>
<td>10111</td>
<td>X</td>
</tr>
<tr>
<td>1000</td>
<td>I</td>
<td>11000</td>
<td>Y</td>
</tr>
<tr>
<td>1001</td>
<td>J</td>
<td>11001</td>
<td>Z</td>
</tr>
<tr>
<td>1010</td>
<td>K</td>
<td>11010</td>
<td>0</td>
</tr>
<tr>
<td>1011</td>
<td>L</td>
<td>11011</td>
<td>1</td>
</tr>
<tr>
<td>1100</td>
<td>M</td>
<td>11100</td>
<td>2</td>
</tr>
<tr>
<td>1101</td>
<td>N</td>
<td>11101</td>
<td>3</td>
</tr>
<tr>
<td>1110</td>
<td>O</td>
<td>11110</td>
<td>4</td>
</tr>
<tr>
<td>1111</td>
<td>P</td>
<td>11111</td>
<td>5</td>
</tr>
</tbody>
</table>
</div>
<div class="col m6">
<table class="striped centered">
<thead>
<tr>
<th>コード</th>
<th>文字</th>
<th>コード</th>
<th>文字</th>
</tr>
</thead>
<tbody>
<tr>
<td>100000</td>
<td>6</td>
<td>110000</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100001</td>
<td>7</td>
<td>110001</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100010</td>
<td>8</td>
<td>110010</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100011</td>
<td>9</td>
<td>110011</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100100</td>
<td>(未使用)</td>
<td>110100</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100101</td>
<td>(未使用)</td>
<td>110101</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100110</td>
<td>(未使用)</td>
<td>110110</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100111</td>
<td>(未使用)</td>
<td>110111</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101000</td>
<td>(未使用)</td>
<td>111000</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101001</td>
<td>(未使用)</td>
<td>111001</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101010</td>
<td>(未使用)</td>
<td>111010</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101011</td>
<td>(未使用)</td>
<td>111011</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101100</td>
<td>(未使用)</td>
<td>111100</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101101</td>
<td>(未使用)</td>
<td>111101</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101110</td>
<td>(未使用)</td>
<td>111110</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101111</td>
<td>(未使用)</td>
<td>111111</td>
<td>(未使用)</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>仮想記憶のページインとページアウトを手作業で練習しておこう</h2>
<div class="card-panel mag_h30">
<p>問 19　(平成 24 年度 秋期)</p>
<p>ページング方式の仮想記憶において，ページ置換えアルゴリズムに LRU 方式を採用する。 主記憶に割り当てられるページ枠が 4 のとき，ページ 1 , 2 , 3 , 4 , 5 , 2 , 1 , 3 , 2 , 6 の順にアクセスすると，ページ 6 をアクセスする時点で置き換えられるページはどれか。 ここで，初期状態では主記憶にどのページも存在しないものとする。</p>
<p>ア　1　　イ　2　　ウ　4　　エ　5
</p></div>
<div class="chip">解説</div>
<p>「ページング方式の仮想記憶」とは、プログラムやデータを「ページ」と呼ばれる固定サイズで区切り、<span class="bold">実メモリ（主記憶）と仮想メモリ（ハードディスク）の間で、ページの入れ換えをすること</span> です。</p>
<p>実メモリの容量が足りなくなったときに、今度使われる可能性が低いページを仮想メモリに追い出し（ページアウト）、空いたページに必要なページを読み込む（ページイン）のです。</p>
<p>&nbsp;</p>
<p>具体例が示されて「仮想記憶のページアウトとページインを手作業でやりなさい」という問題は、午前試験にも午後試験にもよく出題されます。</p>
<p>なかなか面倒な作業なので、事前に練習しておかないと戸惑うと思います。 ここでやっておきましょう。</p>
<p>&nbsp;</p>
<p>この問題では、ページ枠（実メモリのページ数）が 4 個で、LRU 方式でページの入れ換えを行います。</p>
<p>LRU は、Least Recently Used の略で、直訳すると「最も～でない、最近、使われる」であり、わかりやすい言葉にすると「最後に使われてから最も時間が経過したページを入れ換える」です。</p>
<p>&nbsp;</p>
<p>紙の上に 4 つの枠を書いてください。 これが、実メモリの 4 ページを表します。 最初は、どのページも未使用です。</p>
<p>ここに、 1 、2 、3 、4 、5 、2 、 1 、3 、2 、6 の順にアクセスして（利用して）いきます。</p>
<p>実メモリが空いていれば、そのままページインします。 実メモリが一杯のときは、LRU 方式でページアウトしてからページインします（これがページの入れ換えです）。</p>
<p>この問題では、最後の 6 をアクセスするときにページアウトされるページを答えます。</p>
<p>&nbsp;</p>
<p>以下に手順を示しますので、やり方がわかったら、実際にやってみてください。 ★ マークは、LRU 方式におけるページアウトの対象となるページを意味しています。 このようなマークを付けるとわかりやすいはずです。</p>
<ol class="mag_h30 background c-round">
<li class="mag_h20">初期状態</li>
<table class="half-width centered border bordered">
<tr>
<td>(空き)</td>
</tr>
<tr>
<td>(空き)</td>
</tr>
<tr>
<td>(空き)</td>
</tr>
<tr>
<td>(空き)</td>
</tr>
</table>
<li class="mag_h20"> 1 をアクセスする（ 1 がページインされる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1</td>
</tr>
<tr>
<td>　</td>
</tr>
<tr>
<td>　</td>
</tr>
<tr>
<td>　</td>
</tr>
</table>
<li class="mag_h20"> 2 をアクセスする（ 2 がページインされる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>　</td>
</tr>
<tr>
<td>　</td>
</tr>
</table>
<li class="mag_h20"> 3 をアクセスする（ 3 がページインされる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>　</td>
</tr>
</table>
<li class="mag_h20"> 4 をアクセスする（ 4 がページインされ、 1 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
<li class="mag_h20"> 5 をアクセスする（ 1 がページアウトされ、5 がページインされ、2 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5</td>
</tr>
<tr>
<td>2 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
<li class="mag_h20"> 2 をアクセスする（ 3 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
<li class="mag_h20"> 1 をアクセスする（ 3 がページアウトされ、 1 がページインされ、4 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>4 <i class="material-icons">grade</i></td>
</tr>
</table>
<li class="mag_h20"> 3 をアクセスする（ 4 がページアウトされ、3 がページインされ、5 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
<li class="mag_h20"> 2 をアクセスする</li>
<table class="half-width centered border bordered">
<tr>
<td>5 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
<li class="mag_h20"> 6 をアクセスする（ 5 がページアウトされ、6 がページインされ、 1 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>6</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
</ol>
<p>6 をアクセスするときにページアウトされるのは、ページ 5 です。 したがって、エが正解です。</p>
<p><span class="chip mag_tp30">解答</span> エ</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/fifo-lru-lfu" class="chip teal white-text">FIFO LRU LFU</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>  関係データベースの参照の整合性の意味を覚えよう</h2>
<div class="card-panel mag_h30">
問 31　(平成24年度 秋期)</p>
<p>関係データベースの &#8220;注文&#8221; 表の &#8220;顧客番号&#8221; は，&#8221;顧客&#8221; 表の主キー &#8220;顧客番号&#8221; を参照する外部キーである。 このとき，参照の整合性を損なうデータ操作はどれか。  ここで，ア ~ エの記述におけるデータの並びは，それぞれの表の列の並びと同順とする。</p>
<div class="row mag_h30">
<div class="col s6">
<table class="bordered centered">
<caption>注文</caption>
<thead>
<tr>
<th>伝票番号</th>
<th>顧客番号</th>
</tr>
</thead>
<tbody>
<tr>
<td>0001</td>
<td>C005</td>
</tr>
<tr>
<td>0002</td>
<td>K001</td>
</tr>
<tr>
<td>0003</td>
<td>C005</td>
</tr>
<tr>
<td>0004</td>
<td>D010</td>
</tr>
</tbody>
</table>
</div>
<div class="col s6">
<table class="bordered centered">
<caption>顧客</caption>
<thead>
<tr>
<th>顧客番号</th>
<th>顧客名</th>
</tr>
</thead>
<tbody>
<tr>
<td>C005</td>
<td>福島</td>
</tr>
<tr>
<td>D010</td>
<td>千葉</td>
</tr>
<tr>
<td>K001</td>
<td>長野</td>
</tr>
<tr>
<td>L035</td>
<td>宮崎</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="mag_h10">
ア　&#8221;顧客&#8221; 表の行　<span style="border: 1px solid;">　L035　</span><span style="border: 1px solid;">　宮崎　</span>　を削除する。
</div>
<div class="mag_h10">
イ　&#8221;注文&#8221; 表に行　<span style="border: 1px solid;">　0005　</span><span style="border: 1px solid;">　D010　</span>　を追加する。
</div>
<div class="mag_h10">
ウ　&#8221;注文&#8221; 表に行　<span style="border: 1px solid;">　0006　</span><span style="border: 1px solid;">　F020　</span>　を追加する。
</div>
<div class="mag_h10">
エ　&#8221;注文&#8221; 表の行　<span style="border: 1px solid;">　0002　</span><span style="border: 1px solid;">　K001　</span>　を削除する。
</div>
</div>
<div class="chip">解説</div>
<p>この問題のテーマは、関係データベースの「参照の整合性」です。</p>
<p>関係データベースの DBMS（ Data Base Management System ）には、参照の整合性を保つ機能があり、それを損なう操作を受け付けません。</p>
<p>それがどういう意味なのか、この問題を通して覚えてください。</p>
<p>&nbsp;</p>
<p>関係データベースでは、表に「主キー」を設定します。 <span class="bold">主キーは、他と重複しないユニークな列</span> であり、それによってレコードを特定できます。 注文表では、伝票番号が主キーであり、顧客表では、顧客番号が主キーです。</p>
<p>&nbsp;</p>
<p>注文表の列には、顧客表の主キーである顧客番号があります。 このような <span class="bold">他の表の主キーを「外部キー」</span> と呼びます。</p>
<p>「ある表の外部キー」→「他の表の主キー」で、表から表を参照できます。 参照とは、表から他の表をたどることであり、「リレーションシップ」とも呼びます。</p>
<figure><figcaption>図　「ある表の外部キー」→「他の表の主キー」で表から表を参照できる</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q31_relation.png" loading="lazy"><br />
</figure>
<p>参照の整合性とは、参照先のレコードが存在するように保つ機能です。</p>
<p>たとえば、先ほどの例で、顧客表の<br />
［ C005　福島 ］<br />
というレコードを削除する操作をすると、注文表の<br />
［ 0001　C005 ］<br />
というレコードからたどれなくなってしまうので（参照ができなくなってしまうので）、その操作を DBMS が受け付けません。</p>
<p>これで、参照の整合性の意味をおわかりいただけましたね。 それでは、選択肢を見てみましょう。</p>
<p>&nbsp;</p>
<p>選択肢アは、顧客表の［ L035　宮崎 ］というレコードを削除しています。 注文表には［ L035　宮崎 ］を参照しているレコードはないので、参照の整合性は損なわれません。</p>
<p>選択肢イは、注文表に［ 0005　D010 ］というレコードを追加しています。 顧客表には［ D010　千葉 ］というレコードがあるので、参照の整合性は損なわれません。</p>
<p>選択肢ウは、注文表に［ 0006　F020 ］というレコードを追加しています。 顧客表には［ F020 ］という顧客番号のレコードはないので、この操作をすると参照の整合性が損なわれます。 したがって、ウが正解です。</p>
<p>念のため選択肢エも確認しておきましょう。 注文表から［ 0002　K001 ］を削除しても、参照の向きが注文表から顧客表なので、参照の整合性は損なわれません。</p>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/データベース" class="chip teal white-text">データベース</a>
</div>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_autumn/">「厳選5題」過去問と解説 | 平成24年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成25年度 春期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h25_spring/</link>
		<pubDate>Fri, 09 Aug 2019 09:32:10 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[公開鍵秘密鍵]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[逆ポーランド記法]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=1938</guid>
		<description><![CDATA[<p>ここでは、平成 25 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しない [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h25_spring/">「厳選5題」過去問と解説 | 平成25年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2013h25_1/2013h25h_fe_am_qs.pdf">平成 25 年度 春期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}.box{padding:.5em 2em;border:1px solid #3f51b5;width:50%;max-width:200px;text-align:center;}.box+.box{border-top:none;}.background h3{margin:.5em 0}.background dt{font-weight:700;margin:1em auto}li{margin-left:1.5em;}table{font-size:.85em;}@media only screen and (max-width:600px){dl dd,dl.background dd{margin-left:0}}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>アルゴリズムをしっかりと丁寧に覚えてください</h2>
<div class="card-panel mag_h30">
問 6　(平成 25 年度 春期)</p>
<p>図は，逆ポーランド表記法で書かれた式 abcd+++ をスタックで処理するときのスタックの変化の一部を表している。 この場合，スタックの深さは最大で 4 となる。 最大のスタックの深さが最も少ない逆ポーランド表記法の式はどれか。</p>
<figure>
<img class="materialboxed hoverable z-depth-5 responsive-width" src="../../wp-content/uploads/2019/08/h25_spring_q6_figure.png" loading="lazy"><br />
</figure>
<p>ア　ab+c+d+　イ　ab+cd++<br />
ウ　abc++d+　エ　abc+d++
</p></div>
<div class="chip">解説</div>
<p>連載の <a href="../h26_autumn">第 10 回（平成 26 年度秋期）</a> で、通常の計算式を逆ポーランド表記法に変換する問題を取り上げました。</p>
<p>コンピュータで式の計算結果を求めるには、通常の表記法式より逆ポーランド表記法の方が、簡単なアルゴリズムで実現できます。 そのアルゴリズムを知ってますか？ というのが、この問題のテーマです。</p>
<p>市販教材では、滅多に紹介されていないアルゴリズムなので、この問題を通して覚えておきましょう。 以下に手順を示します。</p>
<ol class="mag_h30 background c-round">
<h3>逆ポーランド表記法の式の計算結果を求めるアルゴリズム</h3>
<li>式の先頭から 1 つずつ順番に要素を取り出す。 </li>
<li>要素が値なら、それをスタックにプッシュする（格納する）。 </li>
<li>要素が演算子なら、スタックから 2 つの要素をポップし（取り出し）、それらの演算結果をプッシュする。 </li>
<li>式の要素がなくなるまで、 1. ～ 3. を繰り返す。 </li>
<li>最後にスタックに残った値が式の計算結果なので、それをポップする。 </li>
</ol>
<p>何とも不思議な手順に思えるかもしれませんが、逆ポーランド表記法では<br />
［値1］［値2］［演算子］<br />
の順に要素が並んでいるので、これは当然の手順です。</p>
<p>式の先頭から 1 つずつ順番に要素を取り出すと、［値1］と［値2］まででは、まだ演算方法がわからないので、それらをスタックにプッシュして一時保存しておくのです。</p>
<p>そして、［演算子］を取り出したときに、その演算対象である［値1］と［値2］をスタックからポップして演算を行います。</p>
<p>演算結果をスタックにプッシュするのは、その先も式が続く場合があるからです。</p>
<p>&nbsp;</p>
<p>こういうことは、中途半端に覚えられるものではありません。 具体例を示しますので、しっかりと丁寧に覚えてください。</p>
<p>たとえば、 3 + 4 × 5 という計算をするとします。</p>
<p>これを逆ポーランド表記法にすると<br />
［3］［4］［5］［×］［+］<br />
です。 先ほど示した手順で、計算結果を求めてみましょう。</p>
<p>以下のようになります。 この例では、スタックの最大の深さ（スタックに格納された最大の要素数）は、 3 です。</p>
<ol class="mag_h30 background c-round">
<h3>例　［3］［4］［5］［×］［+］の計算結果を求める</h3>
<li>［3］を取り出す。 </li>
<li>［3］は値なので、スタックにプッシュする。
<div class="box">3</div>
</li>
<li>［4］を取り出す。 </li>
<li>［4］は値なので、スタックにプッシュする。
<div class="box">4</div>
<div class="box">3</div>
</li>
<li>［5］を取り出す。 </li>
<li>［5］は値なので、スタックにプッシュする。
<div class="box">5</div>
<div class="box">4</div>
<div class="box">3</div>
</li>
<li>［×］を取り出す。 </li>
<li>［×］は演算子なので、スタックから 5 と 4 をポップし、4 × 5 の演算結果である 20 をプッシュする。
<div class="box">20</div>
<div class="box">3</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから 20 と 3 をポップし、 3 + 20 の演算結果である 23 をプッシュする。
<div class="box">23</div>
</li>
<li>最後にスタックに残った 23 が式の計算結果なので、それをポップする。 </li>
<li>計算結果の 23 が得られる。 </li>
</ol>
<p>それでは、問題を見てみましょう。</p>
<p>選択肢に示された逆ポーランド表記法の式の中で、計算結果を求めたときに、スタックの最大の深さが、最も少ないものはどれか？ という問題です。</p>
<p>先ほど説明した手順で、スタックの絵を書いてみましょう。</p>
<ol class="mag_h30 background c-round">
<span class="bold">選択肢ア　［a］［b］［+］［c］［+］［d］［+］の計算結果を求める</span></p>
<li>［a］を取り出す。 </li>
<li>［a］は値なので、スタックにプッシュする。
<div class="box">a</div>
</li>
<li>［b］を取り出す。 </li>
<li>［b］は値なので、スタックにプッシュする。
<div class="box">b</div>
<div class="box">a</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから b と a をポップし、それらの演算結果である a + b をプッシュする。
<div class="box">a + b</div>
</li>
<li>［c］を取り出す。 </li>
<li>［c］は値なので、スタックにプッシュする。
<div class="box">c</div>
<div class="box">a + b</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから c と a + b をポップし、それらの演算結果である a + b + c をプッシュする。
<div class="box">a + b + c</div>
</li>
<li>［d］を取り出す。 </li>
<li>［d］は値なので、スタックにプッシュする。
<div class="box">d</div>
<div class="box">a + b + c</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから d と a + b + c をポップし、それらの演算結果である a + b + c + d をプッシュする。
<div class="box">a + b + c + d</div>
</li>
<li>最後にスタックに残った a + b + c + d が式の計算結果なので、それをポップする。 </li>
<li>計算結果の a + b + c + dが得られる。 </li>
<li>選択肢アのスタックの最大の深さは、 3 です。 </li>
</ol>
<ol class="mag_h30 background c-round">
<span class="bold">選択肢イ　［a］［b］［+］［c］［d］［+］［+］の計算結果を求める</span></p>
<li>［a］を取り出す。 </li>
<li>［a］は値なので、スタックにプッシュする。
<div class="box">a</div>
</li>
<li>［b］を取り出す。 </li>
<li>［b］は値なので、スタックにプッシュする。
<div class="box">b</div>
<div class="box">a</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから b と a をポップし、それらの演算結果である a + b をプッシュする。
<div class="box">a + b</div>
</li>
<li>［c］を取り出す。 </li>
<li>［c］は値なので、スタックにプッシュする。
<div class="box">c</div>
<div class="box">a + b</div>
</li>
<li>［d］を取り出す。 </li>
<li>［d］は値なので、スタックにプッシュする。
<div class="box">d</div>
<div class="box">c</div>
<div class="box">a + b</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから d と c をポップし、それらの演算結果である c + d をプッシュする。
<div class="box">c + d</div>
<div class="box">a + b</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから c + d と a + b をポップし、それらの演算結果である a + b + c + d をプッシュする。
<div class="box">a + b + c + d</div>
</li>
<li>最後にスタックに残った a + b + c + dが式の計算結果なので、それをポップする。 </li>
<li>計算結果の a + b + c + dが得られる。 </li>
<li>選択肢イのスタックの最大の深さは、 3 です。 </li>
</ol>
<ol class="mag_h30 background c-round">
<span class="bold">選択肢ウ　［a］［b］［c］［+］［+］［d］［+］の計算結果を求める</span></p>
<li>［a］を取り出す。 </li>
<li>［a］は値なので、スタックにプッシュする。
<div class="box">a</div>
</li>
<li>［b］を取り出す。 </li>
<li>［b］は値なので、スタックにプッシュする。
<div class="box">b</div>
<div class="box">a</div>
</li>
<li>［c］を取り出す。 </li>
<li>［c］は値なので、スタックにプッシュする。
<div class="box">c</div>
<div class="box">b</div>
<div class="box">a</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから c と b をポップし、それらの演算結果である b + c をプッシュする。
<div class="box">b + c</div>
<div class="box">a</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから b + c と a をポップし、それらの演算結果である a + b + c をプッシュする。
<div class="box">a + b + c</div>
</li>
<li>［d］を取り出す。 </li>
<li>［d］は値なので、スタックにプッシュする。
<div class="box">d</div>
<div class="box">a + b + c</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから d と a + b + c をポップし、それらの演算結果である a + b + c + d をプッシュする。
<div class="box">a + b + c + d</div>
</li>
<li>最後にスタックに残った a + b + c + dが式の計算結果なので、それをポップする。 </li>
<li>計算結果の a + b + c + dが得られる。 </li>
<li>選択肢ウのスタックの最大の深さは、 3 です。 </li>
</ol>
<ol class="mag_h30 background c-round">
<span class="bold">選択肢エ　［a］［b］［c］［+］［d］［+］［+］の計算結果を求める</span></p>
<li>［a］を取り出す。 </li>
<li>［a］は値なので、スタックにプッシュする。
<div class="box">a</div>
</li>
<li>［b］を取り出す。 </li>
<li>［b］は値なので、スタックにプッシュする。
<div class="box">b</div>
<div class="box">a</div>
</li>
<li>［c］を取り出す。 </li>
<li>［c］は値なので、スタックにプッシュする。
<div class="box">c</div>
<div class="box">b</div>
<div class="box">a</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから c と b をポップし、それらの演算結果である b + c をプッシュする。
<div class="box">b + c</div>
<div class="box">a</div>
</li>
<li>［d］を取り出す。 </li>
<li>［d］は値なので、スタックにプッシュする。
<div class="box">d</div>
<div class="box">b + c</div>
<div class="box">a</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから d と b + c をポップし、それらの演算結果である b + c + d をプッシュする。
<div class="box">b + c + d</div>
<div class="box">a</div>
</li>
<li>［+］を取り出す。 </li>
<li>［+］は演算子なので、スタックから b + c + d と a をポップし、それらの演算結果である a + b + c + d をプッシュする。
<div class="box">a + b + c + d</div>
</li>
<li>最後にスタックに残った a + b + c + dが式の計算結果なので、それをポップする。 </li>
<li>計算結果の a + b + c + dが得られる。 </li>
<li>選択肢ウのスタックの最大の深さは、 3 です。 </li>
</ol>
<p>以上のことから、スタックの最大の深さが最も少ないのは、選択肢アの 2 です。</p>
<p>これで、逆ポーランド表記法の式の計算結果を求めるアルゴリズムを覚えられましたね。</p>
<p><span class="chip mag_tp30">解答</span>ア</p>
<div class="divider mag_h20"></div>
<p class="blue-grey-text small-text mag_w10 mag_h00"> (補足) この問題では、選択肢に示された式の計算結果がすべて同じになっています。 それは、問題の例に合わせて、演算の優先順位を示すカッコを省略しているからです。</p>
<div class="divider mag_h20"></div>
<p class="grey lighten-5 pad_20 c-round"><i class="material-icons grey-text mag_rt05">search</i>タグで関連記事をチェック<a href="../../tag/逆ポーランド記法" class="tag mag_lt05">逆ポーランド記法</a><a href="../../tag/スタック" class="tag mag_lt05">スタック</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>ハッシュ法に関する用語をまとめて覚えよう</h2>
<div class="card-panel mag_h30">
問 7　(平成 25 年度 春期)</p>
<p>10 進法で 5 桁の数 a<sub>1</sub> a<sub>2</sub> a<sub>3</sub> a<sub>4</sub> a<sub>5</sub> を，ハッシュ法を用いて配列に格納したい。 ハッシュ関数を mod(a<sub>1</sub> + a<sub>2</sub> + a<sub>3</sub> + a<sub>4</sub> + a<sub>5</sub>, 13) とし、求めたハッシュ値に対応する位置の配 列要素に格納する場合， 54321 は配列のどの位置に入るか。 ここで， mod(x , 13) は、 x を 13 で割った余りとする。</p>
<figure>
<img class="materialboxed hoverable z-depth-5" style="margin:auto;" src="../../wp-content/uploads/2019/08/h25_spring_q7_figure.png" loading="lazy"><br />
</figure>
<p>ア　1　　イ　2　　ウ　7　　エ　11
</p></div>
<div class="chip">解説</div>
<p><span class="bold">「ハッシュ法」</span>は、アルゴリズムの分野で、とてもよく出題されるテーマです。</p>
<p>ハッシュ法に関連して、<span class="bold">「ハッシュ関数」</span>と<span class="bold">「ハッシュ値」</span>という用語がありますので、この問題を通してまとめて覚えておきましょう。</p>
<p>&nbsp;</p>
<p>ハッシュ法では、データの値から格納場所を決めます。 そのために使われる計算式を「ハッシュ関数」と呼び、ハッシュ関数で得られた値（格納場所）をハッシュ値と呼びます。</p>
<p>ここでは、<br />
mod(a<sub>1</sub> + a<sub>2</sub> + a<sub>3</sub> + a<sub>4</sub> + a<sub>5</sub>, 13)<br />
という計算式が、ハッシュ関数です。</p>
<p>このハッシュ関数で、問題に示された 54321 というデータの格納場所を求めると、</p>
<p>mod(5 + 4 + 3 + 2 + 1, 13)<br />
= mod(15, 13)<br />
= 15 を 13 で割った余り<br />
= 2</p>
<p>になります。</p>
<p>したがって、選択肢イが正解です。</p>
<p>&nbsp;</p>
<p>ハッシュ（hash）は、「ごた混ぜ」という意味です。</p>
<p><span class="bold">ハッシュド・ビーフという料理のハッシュと同じ</span> です。 ハッシュ法の考案者が、このアィディアにハッシュ法という名前を付けたのです。</p>
<p>たとえば、 11111 、 22222 、 33333 という値の格納場所を、先ほどのハッシュ関数で求めてみましょう。</p>
<p>11111 は 5 、<br />
22222 は 10 、<br />
33333 は 2</p>
<p>になります。 5 、 10 、 2 というあちこちに（ごた混ぜに）格納されるので、ハッシュなのです。</p>
<p>&nbsp;</p>
<p>この問題には登場しませんが、ハッシュ法に関して、<span class="bold">「シノニム」</span> という用語もあるので覚えておきましょう。</p>
<p>シノニムとは、ハッシュ値が同じになってしまうデータのことです。</p>
<p>たとえば、 12345 というデータと 54321 というデータは、どちらもハッシュ値が 2 になります。 シノニム（ synonym ）は、「同義語」という意味です。</p>
<p>ハッシュ値が同じになるデータは、ハッシュ法において同義語なのです。</p>
<p>もしも、シノニムが生じた場合は、ハッシュ値とは異なる場所に格納します。 そのためのアルゴリズムは、いくつか考えられますが、必ず問題に示されているので、どうぞご心配なく。</p>
<p><span class="chip mag_tp30">解答</span>イ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>メモリのアドレス指定方式をまとめて覚えよう</h2>
<div class="card-panel mag_h30">
問10　(平成 25 年度 春期)</p>
<p>主記憶のデータを図のように参照するアドレス指定方式はどれか。</p>
<figure>
<img class="materialboxed hoverable z-depth-5" style="margin:auto;" src="../../wp-content/uploads/2019/08/h25_spring_q10_figure.png" loading="lazy"><br />
</figure>
<p>ア　間接アドレス指定　　<br class="hide-on-med-and-up">イ　指標アドレス指定<br />
ウ　相対アドレス指定　　<br class="hide-on-med-and-up">エ　直接アドレス指定
</div>
<div class="chip">解説</div>
<p>コンピュータの記憶装置であるメモリ（この問題では「主記憶」と呼んでいます）の内部には、データを格納する箱が並んでいます。</p>
<p>それぞれの箱には、識別のための番号が割り振られていて、それを「アドレス」と呼びます。 アドレス（ address ）を直訳すると「番地」なので、アドレスの数値は、 20 番地 や 25 番地 と呼びます。</p>
<p>プログラムの命令で、処理の対象となるデータが格納されたアドレスを指定する方式には、いくつかの種類があり、それぞれに名前が付けられています。</p>
<p>この問題は、アドレス指定方式の名前と意味がわかるかどうかを問うものです。</p>
<p>&nbsp;</p>
<p>選択肢には、 4 つのアドレス指定方式が示されていますが、ウの「相対アドレス指定」は、やや特殊なものなので、その他の「直接アドレス指定」「間接アドレス指定」「指標アドレス指定」の3つの意味をしっかりと覚えてください。</p>
<dl class="background c-round">
<dt>直接アドレス指定</dt>
<dd>たとえば「 100 番地のデータを読み出して処理せよ」という方式です。 </dd>
<dd>処理の対象となるデータが格納された 100 番地というアドレスを直接指定しています。 だから、直接アドレス指定 と呼ぶのです。 </dd>
<dt>間接アドレス指定</dt>
<dd>たとえば「 100 番地のデータを読み出したら、その値が示すアドレスに処理の対象となるデータがあるので、それを読み出して処理せよ」という方式です。 </dd>
<dd>もしも、 100 番地 に 200 という値が格納されていたら、 200 番地 に処理の対象となるデータがあります。 直接 200 番地 を指定せずに、 100 番地 を通して間接的に指定しているので、間接アドレス指定 と呼ぶのです。 </dd>
<dt>指標アドレス指定</dt>
<dd>たとえば「 100 番地 を起点として、そこから 10 番地先にあるデータを読み出して処理せよ」という方式です。 </dd>
<dd>この場合、起点からの距離を示す 10 を指標（インデックス）と呼びます。 指標を使うので、指標アドレス指定 と呼ぶのです。 </dd>
</dl>
<p>それでは、問題を見てみましょう。</p>
<p>問題に示された図では、 20 番地 のデータを読み出し、そこに 25 という値が格納されていて、 25 番地 に処理の対象となるデータがあります。</p>
<p>これは、間接アドレス指定 です。 したがって、選択肢アが正解です。</p>
<p><span class="chip mag_tp30">解答</span>ア</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>こういう問題こそ練習しておくべきです</h2>
<div class="card-panel mag_h30">
問 21　(平成 25 年度 春期)</p>
<p>次の仕様のバックアップシステムにおいて，金曜日に変更されたデータの増分バックアップを取得した直後に磁気ディスクが故障した。 修理が完了した後，データを復元するのに必要となる時間は何秒か。 ここで，増分バックアップは直前に行ったバックアップとの差分だけをバックアップする方式であり，金曜日に変更されたデータの増分バックアップを取得した磁気テープは取り付けられた状態であって，リストア時には磁気テープを1本ごとに取り替える必要がある。 また，次の仕様に示された以外の時間は無視する。</p>
<table class="bordered mag_h30 responsive-width">
<caption>[バックアップシステムの仕様]</caption>
<thead>
<tr>
<th>バックアップ媒体</th>
<th>磁気テープ (各曜日ごとの7本を使用) </th>
</tr>
</thead>
<tbody>
<tr>
<td>フルバックアップを行う曜日</td>
<td>毎週日曜日</td>
</tr>
<tr>
<td>増分バックアップを行う曜日</td>
<td>月曜日～土曜日の毎日</td>
</tr>
<tr>
<td>フルバックアップのデータ量</td>
<td>100 G バイト</td>
</tr>
<tr>
<td>磁気テープからのリストア時間</td>
<td>10 秒/GB </td>
</tr>
<tr>
<td>磁気テープの取替え時間</td>
<td>100 秒 / 本</td>
</tr>
<tr>
<td>変更されるデータ量</td>
<td>5 G バイト / 日</td>
</tr>
</tbody>
</table>
<p>ア　1,250　　イ　1,450　　<br class="hide-on-med-and-up">ウ　1,750　　ェ　1,850
</div>
<div class="chip">解説</div>
<p>たっぷりと計算をさせられそうで、見るだけで嫌になってしまうような問題ですね。</p>
<p>しかし、こういう問題こそ練習しておくべきです。 なぜなら、事前に練習しておかないと、試験当日に、どこから手を付けてよいか悩んでしまうからです。</p>
<p>問題を解く手順を説明しますので、しっかりと練習しておきましょう。</p>
<p>&nbsp;</p>
<p>まず、フルバックアップの 100 GB をとった日曜日から、磁気ディスクが故障した金曜日の増分バックアップ後までの、データ量を書き出してみましょう。</p>
<p>問題文に「増分バックアップは直前に行ったバックアップとの差分だけ」と示され、バックアップシステムの仕様に「変更されるデータ量」が「 5 G バイト / 日」とあるので、月曜日から金曜日の増分バックアップは、それぞれ 5 G バイトです。</p>
<table class="bordered responsive-width">
<tbody>
<tr>
<td>日曜日</td>
<td>フルバックアップ 100 GB</td>
</tr>
<tr>
<td>月曜日</td>
<td>増分バックアップ 5 GB</td>
</tr>
<tr>
<td>火曜日</td>
<td>増分バックアップ 5 GB</td>
</tr>
<tr>
<td>水曜日</td>
<td>増分バックアップ 5 GB</td>
</tr>
<tr>
<td>木曜日</td>
<td>増分バックアップ 5 GB</td>
</tr>
<tr>
<td>金曜日</td>
<td>増分バックアップ 5 GB</td>
</tr>
</tbody>
</table>
<p>次に、データを復元するために必要となる「磁気テープの取り替え」と「磁気テープからのリストア」の作業内容を書き出してみましょう。</p>
<table class="bordered responsive-width">
<tbody>
<tr>
<td>日曜日の 100 GB の磁気テープに取り換える</td>
</tr>
<tr>
<td>日曜日の 100 GB の磁気テープからリストアする</td>
</tr>
<tr>
<td>月曜日の 5 GB の磁気テープに取り換える</td>
</tr>
<tr>
<td>月曜日の 5 GB の磁気テープからリストアする</td>
</tr>
<tr>
<td>火曜日の 5 GB の磁気テープに取り換える</td>
</tr>
<tr>
<td>火曜日の 5 GB の磁気テープからリストアする</td>
</tr>
<tr>
<td>水曜日の 5 GB の磁気テープに取り換える</td>
</tr>
<tr>
<td>水曜日の 5 GB の磁気テープからリストアする</td>
</tr>
<tr>
<td>木曜日の 5 GB の磁気テープに取り換える</td>
</tr>
<tr>
<td>木曜日の 5 GB の磁気テープからリストアする</td>
</tr>
<tr>
<td>金曜日の 5 GB の磁気テープに取り換える</td>
</tr>
<tr>
<td>金曜日の 5 GB の磁気テープに取り換える</td>
</tr>
</tbody>
</table>
<p>次に、それぞれの作業の時間を書き出してみましょう。</p>
<p>磁気テープの取り換え作業は、データ量にかかわらず 100 秒 / 本 です。 磁気テープからのリストア作業は、 10 秒 / G バイト です。</p>
<table class="bordered mag_h30 responsive-width">
<tbody>
<tr>
<td>日曜日の 100 GB の磁気テープに取り換える</td>
<td>100 秒</td>
</tr>
<tr>
<td>日曜日の 100 GB の磁気テープからリストアする</td>
<td>1000 秒</td>
</tr>
<tr>
<td>月曜日の 5 GB の磁気テープに取り換える</td>
<td>100 秒</td>
</tr>
<tr>
<td>月曜日の 5 GB の磁気テープからリストアする</td>
<td>50 秒</td>
</tr>
<tr>
<td>火曜日の 5 GB の磁気テープに取り換える</td>
<td>100 秒</td>
</tr>
<tr>
<td>火曜日の 5 GB の磁気テープからリストアする</td>
<td>50 秒</td>
</tr>
<tr>
<td>水曜日の 5 GB の磁気テープに取り換える</td>
<td>100 秒</td>
</tr>
<tr>
<td>水曜日の 5 GB の磁気テープからリストアする</td>
<td>50 秒</td>
</tr>
<tr>
<td>木曜日の 5 GB の磁気テープに取り換える</td>
<td>100 秒</td>
</tr>
<tr>
<td>木曜日の 5 GB の磁気テープからリストアする</td>
<td>50 秒</td>
</tr>
<tr>
<td>金曜日の 5 GB の磁気テープに取り換える</td>
<td>100 秒</td>
</tr>
<tr>
<td>金曜日の 5 GB の磁気テープからリストアする</td>
<td>50 秒</td>
</tr>
</tbody>
</table>
<p>最後に、すべての作業時間を合計します。<br />
(100 + 1000) + (100 + 50) × 5 = 1850 秒<br />
となるので、選択肢エが正解です。</p>
<p>もしも、この問題を難しいと感じたなら、<span class="bold">「他にも似たような問題を探してやってみよう」とは思わずに、この問題を何度も繰り返し練習</span> してください。</p>
<p>試験では、同じ問題が何度も再利用されているからです。</p>
<p><span class="chip mag_tp30">解答</span>エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>ディジタル署名におけるハッシュ関数の意味も知っておこう</h2>
<div class="card-panel mag_h30">
問 37　(平成 25 年度 春期)<br />
手順に示す処理を実施したとき，メッセージの改ざんの検知の他に，受信者 B がセキュリティ上できることはどれか。</p>
<ol class="c-round mag_h30 pad_h20 pad_rt20" style="border:.1em solid #e4e4e4">
<div class="chip">手順</div>
<p>送信者 A の処理</p>
<li>メッセージから，ハッシュ関数を使ってダイジェストを生成する。  </li>
<li>秘密に保持していた自分の署名生成鍵を用いて， 1. で生成したダイジェストからメッセージの署名を生成する。  </li>
<li>メッセージと， 2. で生成したデータを受信者 B に送信する。 </li>
<p>受信者 B の処理</p>
<li>受信したメッセージから，ハッシュ関数を使ってダイジェストを生成する。  </li>
<li>受信したデータ， 4. で生成したダイジェスト及び送信者 A の署名検証鍵を用いて，署名を検証する。 </li>
</ol>
<dl class="inline">
<dt>ア</dt>
<dd>メッセージが送信者 A からのものであることの確認</dd>
<dt>イ</dt>
<dd>メッセージの改ざん部位の特定</dd>
<dt>ウ</dt>
<dd>メッセージの盗聴の検知</dd>
<dt>エ</dt>
<dd>メッセージの漏えいの防止</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>先ほどの厳選問題 2 でハッシュ法に関する用語を紹介しましたが、その中にあったハッシュ関数という用語は、ディジタル署名でも使われます。</p>
<p>IT 業界では、<span class="bold">同じ事物を様々な用語で呼んだり、同じ用語を様々な場面で使うことがあります。</span> そのため「正式名称は何だろう？」とか「自分の知ってる意味と違う？」などと思うと、余計にわかりにくくなります。</p>
<p>&nbsp;</p>
<p>「いろいろあるのだ！」と思えばよいのです。 それを知っていただくために、この問題を選びました。</p>
<p>&nbsp;</p>
<p>問題に示された「メッセージ」とは、ネットワークで送る文書のことです。</p>
<p>ディジタル署名では、この文書を構成するすべての文字を使って計算を行うハッシュ関数を用意します。</p>
<p>そして、そのハッシュ関数で得られたハッシュ値（問題では「ダイジェスト」と呼んでいます）を、送信者 A しから知らない <span class="bold">秘密鍵（問題では「署名生成鍵」と呼んでいます）で暗号化</span> して、それをディジタル署名とします。</p>
<ol class="background c-round">
<li>送信者 A は、メッセージ と ディジタル署名 を受信者 B に送ります。</li>
<li>受信者 B は、送信者 A と同じハッシュ関数（ハッシュ関数の計算方法は秘密ではありません）を使って、受け取った文書のハッシュ値を求めます。</li>
<li>さらに、送信者 A の <span class="bold">公開鍵（問題では「署名検証鍵」と呼んでいます）を使って、受け取ったディジタル署名を復号</span> してハッシュ値を得ます。</li>
</ol>
<p>これら 2 つのハッシュ値が一致したら、文書に改ざんがないことと、送信者 A になりますましがないこと（メッセージが送信者 A からのものであること）を確認できます。</p>
<p>なぜなら、もしも <span class="bold">文書に改ざんがあれば、ハッシュ値が一致しない</span> からです。</p>
<p>送信者 A の公開鍵でディジタル署名が復号できたのは、送信者が確かに送信者 A だからです。 したがって、正解は、選択肢アです。</p>
<p>&nbsp;</p>
<p>この問題のテーマは、ディジタル署名の仕組みを知っているかどうかを問うものでしたが、 IT 業界では、同じ事物を様々な用語で呼んだり、同じ用語を様々な場面で使うことがある、ということにも注目してください。</p>
<p><span class="chip mag_tp30">解答</span>ア</p>
<p class="grey lighten-5 pad_20 c-round"><i class="material-icons grey-text mag_rt05">search</i>タグで関連記事をチェック<a href="../../tag/公開鍵秘密鍵" class="tag mag_lt05">公開鍵秘密鍵</a></p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h25_spring/">「厳選5題」過去問と解説 | 平成25年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
	</channel>
</rss>
