<?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>正規表現 | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/tag/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Tue, 21 Jul 2026 09:45:11 +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題」過去問と解説 &#124; 平成28年度 春期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h28_spring/</link>
		<pubDate>Tue, 07 May 2019 10:10:25 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[テクニック 具体的な値を想定]]></category>
		<category><![CDATA[午前問題]]></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=1172</guid>
		<description><![CDATA[<p>ここでは、平成 28 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しない [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h28_spring/">「厳選5題」過去問と解説 | 平成28年度 春期 の過去問やるならこれをやれ</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_2016h28_1/2016h28h_fe_am_qs.pdf" rel="noopener" target="_blank">平成 28 年度 春期 基本情報技術者試験の午前試験</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;}ol>li{margin-left:1.5em;list-style-type:none;counter-increment:cnt;}ol>li::before{content:"(" counter(cnt) ")";margin-right:.5em;}code{background:#eceff1;font-family:'consolas','Courier New',sans-serif!important;color:#263238;padding:.25em .5em;margin:0 .25em;border-radius:.25em;}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>文字列の正規表現の問題は、教わればできます</h2>
<div class="card-panel mag_bt30">
問 3　平成 28 年度 春期</p>
<p>UNIX における正規表現 <code>[A-Z] + [0-9] ＊</code> が表現する文字列の集合の要素となるものはどれか。 ここで，正規表現は次の規則に従う。</p>
<ul>
<li><code>[A-Z]</code> は、大文字の英字 1 文字を表す。 </li>
<li><code>[0-9]</code> は、数字 1 文字を表す。 </li>
<li><code>+</code> は，直前の正規表現の1 回以上の繰返しであることを表す。 </li>
<li><code>＊</code> は，直前の正規表現の0 回以上の繰返しであることを表す。 </li>
</ul>
<p>ア　456789　　イ　ABC+99　　<br class="hide-on-med-and-up">ウ　ABC99＊　　エ　ABCDEF
</div>
<div class="chip">解説</div>
<p><span class="bold">「正規表現」</span>と聞くと、「関係データベースの正規化のこと？」や「浮動小数点数形式のこと？」と思われるかもしれませんが、そうではありません。  この問題の正規表現は、文字列のパターンが、あらかじめ決めておいていた形式に合っているかどうかを判断するためのものです。</p>
<p>正規表現の書き方には、 OS やプログラミング言語によっていくつかの形式がありますが、ここでは UNIX という OS の形式を取り上げています。</p>
<p>&nbsp;</p>
<p>正規表現の書き方は、問題に示されているので、あらかじめ覚えておく必要はありません。  それよりも大事なことは、<span class="u">文字列のパターンは、プログラムの処理の流れと同じ</span>であり、</p>
<ul class="background c-round">
<li>「順次（まっすぐ進む）」</li>
<li>「選択（どれかを選ぶ）」</li>
<li>「反復（繰り返す）」</li>
</ul>
<p>から構成されていることを知ることです。 これを知っていれば、どのような書き方の正規表現であっても、意味を理解できます。</p>
<p>&nbsp;</p>
<p>問題に示された正規表現は、 <code>[A-Z] + [0-9]＊</code> です。 左から右に向かって、このパターンでまっすぐ進みます。</p>
<p>これは、順次です。</p>
<dl class="background c-round">
<dt><code>　[　</code> と <code>　]　</code> で囲まれた部分</dt>
<dd>その中に示されたものから 1 つを選びます。</dd>
<dt><code>[A-Z]</code></dt>
<dd>A から Z の中から 1 文字を選びます。</dd>
<dt><code>[0-9]</code></dt>
<dd>0 から 9 の中から 1 文字を選びます。 <br />これらは、選択です。</dd>
<dt><code>　+　</code></dt>
<dd>直前の 1 文字以上の繰り返し です。</dd>
<dt><code>[A-Z] +</code></dt>
<dd> A から Z の中から 1 文字を選ぶこと を 1 回以上繰り返します。</dd>
<dt><code>　＊　</code></dt>
<dd>直前の 0 回以上の繰り返し です。</dd>
<dt><code>[0-9]＊</code></dt>
<dd>0 から 9 の中から 1 文字を選ぶこと を 0 回以上繰り返します。 <br />これらは、反復です。</dd>
</dl>
<p>これで、正規表現とは何かご理解いただけたでしょう。</p>
<p>&nbsp;</p>
<p>それでは、問題を解いてみましょう。</p>
<p><code>[A-Z]＋[0-9]＊</code> という正規表現は、文字列を左から右に向かって見て、</p>
<p>まず A から Z の中から 1 文字を選ぶことを 1 回以上繰り返し、<br />
次に 0 から 9 の中から 1 文字を選ぶことを 0 回以上繰り返す、</p>
<p>というパターンです。</p>
<dl class="mag_h30">
<dt>選択肢ア 456789</dt>
<dd>A から Z が 1 文字以上ないのでパターンに合っていません。</dd>
<dt>選択肢イ ABC+99</dt>
<dd>文字列の中に + があるのでパターンに合っていません。</dd>
<dt>選択肢ウ ABC99＊</dt>
<dd>文字列の中に ＊ があるのでパターンに合っていません。</dd>
<dt>選択肢エ ABCDEF</dt>
<dd>パターンに合っています。</dd>
</dl>
<p>したがって、正解は、選択肢エです。</p>
<p><span class="chip mag_tp30 mag_rt05">解答</span>エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>音声のサンプリングの計算方法も、教わればわかります</h2>
<div class="card-panel mag_bt30">
問 4　平成 28 年度 春期</p>
<p>PCM 方式によって音声をサンプリング(標本化)して 8 ビットのディジタルデータに変換し，圧縮せずにリアルタイムで転送したところ，転送速度は 64,000 ビット / 秒であった。 このときのサンプリング間隔は何マイクロ秒か。</p>
<p>ア　15.6　　イ　46.8　　ウ　125　　エ　128
</p></div>
<div class="chip">解説</div>
<p>「こんな難しい問題できない！」と思うかもしれませんが、問題で使われている用語の意味と計算方法を教われば、必ずできるようになりますので、とにかくやってみましょう。</p>
<p>問題の冒頭にある「 PCM（ Pulse Code Modulation 、パルス符号変調）方式」とは、データをそのまま 2 進数の符号にする形式です。 つまり、特殊なことはしないという意味なので、気にする必要はありません。</p>
<dl class="background c-round">
<dt class="bold">「サンプリング（標本化）」</dt>
<dd>一定の時間間隔でデータを記録することです。 この時間間隔を「サンプリング間隔」と呼びます。</dd>
<dt class="bold">「転送速度」</dt>
<dd>1 秒間に送るデータの量です。 ここでは、 1 回のサンプリングで 8 ビットのデータが記録されます。 それを、そのまま送ったところ、 1 秒間に 64,000 ビット のデータ量になったのです。</dd>
</dl>
<p>それでは、サンプリング間隔は何マイクロ秒でしょう？ という問題です。</p>
<p>1 回のサンプリングで 8 ビット のデータが得られ、<br />
1 秒間に 64,000 ビット のデータ量になったのですから、<br />
1 秒間に 64,000 ÷ 8 = 8,000 回のデータの記録が行われています。</p>
<p>サンプリング回数を求めるなら 8,000 回で正解なのですが、ここではサンプリング間隔を求めなければなりません。</p>
<p>&nbsp;</p>
<p>1 秒間に 8,000 回ですから、サンプリング間隔は、 1 秒 ÷ 8,000 回 です。 このまま計算するのは、面倒ですが、答えをマイクロ秒単位で求めることになっています。</p>
<p>1 秒 = 1,000,000 マイクロ秒<br />
1 秒 ÷ 8,000 回 = 1,000,000 秒 ÷ 8,000 回 = 1,000 秒 ÷ 8 回<br />
= 125 マイクロ秒</p>
<p>簡単に計算できますね。</p>
<p>したがって、正解は、選択肢ウです。</p>
<p>できましたね！</p>
<p><span class="chip mag_tp30 mag_rt05">解答</span>ウ</p>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/音声サンプリング">音声サンプリング</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>割り算が引き算の繰り返しで実現できることも、教われば納得できます</h2>
<div class="card-panel mag_bt30">
問 8　平成 28 年度 春期</p>
<p>x と y を自然数とするとき，流れ図で表される手続を実行した結果として，適切なものはどれか。</p>
<figure>
<img class="materialboxed z-depth-5" style="margin:auto;" src="../../wp-content/uploads/2019/05/q8_h28_spring_figure.png" loading="lazy"><br />
</figure>
<table class="responsive-width striped">
<thead>
<tr>
<th></th>
<th>q の値</th>
<th>r の値</th>
</tr>
</thead>
<tbody>
<tr>
<td>ア</td>
<td>x ÷ y の余り</td>
<td>x ÷ y の商</td>
</tr>
<tr>
<td>イ</td>
<td>x ÷ y の商</td>
<td>x ÷ y の余り</td>
</tr>
<tr>
<td>ウ</td>
<td>y ÷ x の余り</td>
<td>y ÷ x の商</td>
</tr>
<tr>
<td>エ</td>
<td>y ÷ x の商</td>
<td>y ÷ x の余り</td>
</tr>
</tbody>
</table>
</div>
<div class="chip">解説</div>
<p><span class="bold">「割り算は、引き算の繰り返しで実現できる」</span>ということをご存じですか。</p>
<p>たとえば、 100 ÷ 3 という割り算は、 100 から 3 を引くこと を 繰り返す ことで実現できます。 33 回引けて 1 が余るので、 100 ÷ 3 の 商は 33 で 余りは 1 です。</p>
<p>私の知る限り、市販のほとんどの解説書には、「割り算は、引き算の繰り返しで実現できる」という説明はありません。</p>
<p>当たり前のことだからでしょう。</p>
<p>&nbsp;</p>
<p>しかし、その当たり前のことも、初めて知る人には当たり前ではないはずです。 そして、初めて知る人には当たり前ではないことが、この問題に出ているのです。 ですから、練習しておきましょう。</p>
<p>フローチャート、擬似言語、プログラミング言語のどれで表記されていても、<span class="bold">アルゴリズムを読み取るコツは、わかりやすい具体例を想定すること</span>です。</p>
<p>&nbsp;</p>
<p>ここでは、 100 ÷ 3 という割り算を具体例にしましょう。 100 ÷ 3 という割り算では、 100 から 繰り返し 3 を引く処理を行うことになります。</p>
<div class="background c-round">
引き算をしているのは<code>r ← r - y</code>です。 したがって、 y は 100 ÷ 3 の 3 に相当します。
</div>
<div class="background c-round">
<code>q ← 0</code>で q に初期値として 0 を代入し、<br />
<code>r ← r - y</code>を行うたびに<code>q ← q + 1</code>で q の値をカウントアップ しています。</p>
<p>したがって、 q は 3 を引けた回数であり、割り算の商です。
</p></div>
<div class="background c-round">
<code>r ← x</code>で r に初期値として x を代入し、<br />
<code>r ← r - y</code>で繰り返し r から y を引いている のですから、 x から y を繰り返し引いたのと同じ結果が得られます。</p>
<p>したがって、 x は 100 ÷ 3 の 100 に相当し、ここでは x ÷ y という割り算が行われています。
</p></div>
<div class="background c-round">
<code>r &lt; y</code>という条件が Yes なら、もう r から y が引けないので、繰り返しが終わります。</p>
<p>このとき、 r には 100 ÷ 3 の 余りの 1 が格納されています。
</p></div>
<p>以上のことから、 x ÷ y という割り算を行っていて、 q が商 で、 r が 余り であることがわかりました。 正解は、選択肢イです。</p>
<p><span class="chip mag_tp30 mag_rt05">解答</span>イ</p>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/テクニック-具体的な値を想定">テクニック 具体的な値を想定</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>「何これ？」という問題ですが、教わって覚えてください</h2>
<div class="card-panel mag_bt30">
問 10　平成 28 年度 春期</p>
<p>RISC プロセッサの5段パイプラインの命令実行制御の順序はどれか。 ここで、このパイプラインのステージは次の五つとする。</p>
<ol>
<li>書込み</li>
<li>実行とアドレス生成</li>
<li>命令デコードとレジスタファイル読出し</li>
<li>命令フェッチ</li>
<li>メモリアクセス</li>
</ol>
<p>ア　(3), (4), (2), (5), (1)　　<br class="hide-on-med-and-up">イ　(3), (5), (2), (4), (1)<br />
ウ　(4), (3), (2), (5), (1)　　<br class="hide-on-med-and-up">エ　(4), (5), (3), (2), (1)
</div>
<div class="chip">解説</div>
<p>初めてこの問題を見たなら「何これ？」と思うでしょう。</p>
<p>これは、コンピュータのプロセッサ（ CPU とも呼びます）が、プログラムを解釈・実行するときの手順を答える問題です。</p>
<p>プロセッサには、いくつかの種類があるので、 RISC（ Reduced Instruction Set Computer 、リスク）プロセッサであると断わり、 5 段階の手順で解釈・実行するとしているので、 5 段パイプラインであると断っているのです。</p>
<p><span class="bold">ここでは、これらを気にする必要はありません。</span> RISC やパイプラインをテーマにした問題に遭遇したときに、大いに気にしてください。</p>
<p>&nbsp;</p>
<p>それでは、問題を解くために必要とされる知識をお教えしましょう。</p>
<p><span class="bold">プログラムのひとつの処理は、「 ○○ せよ、△△ を」という形式</span>になっています。 「 ○○ せよ」の部分は、命令であり、「 △△ を」の部分は命令の対象となるデータです。</p>
<p>命令もデータも、メモリの中にあります。</p>
<p>プロセッサは、</p>
<ol class="background c-round">
<li>「命令を読み込む」→</li>
<li>「命令を解釈する」→</li>
<li>「命令を実行する」→</li>
<li>「データを読み込んで演算する」→</li>
<li>「結果をメモリに書き込む」</li>
</ol>
<p>という手順で、プログラムを解釈・実行します。</p>
<figure>
<img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/05/risc.png" loading="lazy"><br />
</figure>
<p>「ええっ、こんな難しいこと覚えられないよ！」と思われるかもしれませんが、決して難しくありません。</p>
<p>繰り返しますが、プログラムのひとつの処理は、命令とデータから構成されています。 命令を先に解釈しないと、どのようなデータが対象になるのかわかりませんね。</p>
<p>そして、命令を解釈するためには、その前に命令を読み込まなければなりません。 命令を読み込んで、解釈したら、実行します。</p>
<p>ここまでが、「(1) 命令を読み込む」→「(2) 命令を解釈する」→「(3) 命令を実行する」という手順です。</p>
<p>&nbsp;</p>
<p>命令を実行したら、命令の対象となるデータが演算されます。 それが、「(4) メモリのデータを読み込んで演算する」です。</p>
<p>演算したら「(5) 結果をメモリに書き込む」を行います。</p>
<p>&nbsp;</p>
<p>これで、(1) から (5) の手順がつながりました。 難しくないでしょう。</p>
<p>&nbsp;</p>
<p>それでは、問題を見てみましょう。</p>
<p>「(1) 命令を読み込む」→「(2) 命令を解釈する」→「(3) 命令を実行する」→「(4) データを読み込んで演算する」→「(5) 結果をメモリに書き込む」という手順が、専門用語を交えて示されています。</p>
<p>問題に示された<br />
「(4) 命令フェッチ」の「フェッチ（ fetch ）」は、「読み込む」という意味です。<br />
「(3) デコード」の「デコード（ decode ）」は、「解釈する」という意味です。</p>
<p>したがって、専門用語を交えると</p>
<div class="background c-round">
(4) 「命令フェッチ」→<br />
(3) 「命令デコード」→<br />
(2) 「実行」→<br />
(5) 「メモリアクセス」→<br />
(1) 「書き込み」
</div>
<p>という順序になります。 正解は、選択肢ウです。</p>
<p><span class="chip mag_tp30 mag_rt05">解答</span>ウ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>計算方法をお教えしますので、暗記でなく仕組みで覚えてください</h2>
<div class="card-panel mag_bt30">
問 12　平成 28 年度春期</p>
<p>表示解像度が 1,000 × 800 ドットで，色数が 65,536 色 ( 210 色) の画像を表示するのに最低限必要なビデオメモリ容量は何 M バイトか。 ここで， 1 M バイト = 1,000 k バイト， 1 K バイト = 1,000 バイトとする。</p>
<p>ア　1.6　　イ　3.2　　ウ　6.4　　エ　12.8
</p></div>
<div class="chip">解説</div>
<p>基本情報技術者試験に出題される計算問題の多くは、実務でそのような計算が必要とされるのではなく、<span class="bold">「仕組みがわかっているなら計算できるよね？」</span>という問題です。</p>
<p>ですから、計算方法を暗記するのではなく、仕組みを覚えて計算できるようになってください。 この問題は、その好例です。</p>
<p>はじめに、仕組みを説明しますので、それを覚えたら計算を行ってみましょう。</p>
<div class="background c-round">
コンピュータの画面には、縦横に小さな粒が並んでいます。 この粒を「ドット」や「ピクセル」や「画素」と呼びます。</p>
<p>それぞれのドットは、メモリの記憶領域に対応付けられていて、このメモリを「ビデオメモリ」や「 VRAM（ Video RAM 、ブイラム）」と呼びます。
</p></div>
<div class="background c-round">
1 つのドットに割り当てられているメモリの記憶容量によって、表現できる色数が決まります。</p>
<p>1 ビット なら 2 色、<br />
2 ビット なら 4 色、<br />
3 ビット なら 8 色、<br />
<i class="material-icons">more_vert</i><br />
N ビット なら 2<sup>N</sup> 色 です。
</div>
<p>ここまでが、この問題を解くために知っておくべき仕組みです。</p>
<p>&nbsp;</p>
<p>それでは、計算を行ってみましょう。</p>
<p>表示解像度が 1,000 × 800 ドットということは、画面に 1,000 × 800 個のドットがあるということです。<br />
色数が 65,536 色（ 2<sup>16</sup> 色）ということは、 1 つのドットに割り当てられるメモリの記憶容量が 16 ビット = 2 バイト ということです。</p>
<p>したがって、画面全体で必要とされるメモリの記憶容量は、</p>
<p><i class="material-icons blue-text mag_rt05">chevron_right</i>1,000 × 800 × 2 = 1,600,000 バイト = 1.6 M バイト</p>
<p>です。</p>
<p>正解は、選択肢アです。</p>
<p>「ええっ、こんな簡単な計算なの！」と思われるでしょう。 「仕組みがわかっているなら計算できるよね？」という問題なので、計算は簡単な場合が多いのです。</p>
<p><span class="chip mag_tp30 mag_rt05">解答</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/h28_spring/">「厳選5題」過去問と解説 | 平成28年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
	</channel>
</rss>
