
今回の基本情報対策は、基礎理論とプログラミングです。2回目になります。桁落ち、キュー、再入可能プログラムなどの問題を選びました。桁落ちや丸め誤差などの誤差は、種類がいくつかあるので、それぞれの特徴を理解しましょう。
問題 1
桁落ちの説明として,適切なものはどれか。 (基本情報技術者試験 平成27年春期 午前問2)
(A) 値がほぼ等しい浮動小数点数同士の減算において,有効桁数が大幅に減ってしまうことである。
(B) 演算結果が,扱える数値の最大値を超えることによって生じる誤差のことである。
(C) 浮動小数点数の演算結果について,最小の桁より小さい部分の四捨五入,切上げ又は切捨てを行うことによって生じる誤差のことである。
(D) 浮動小数点の加算において,一方の数値の下位の桁が結果に反映されないことである。
正解は A。
桁落ちとは、値がほぼ等しい浮動小数点数の差を求めたときに、有効桁数が大幅に減ってしまうことです。
桁落ちの例
→ ほんの少しの差が際立つことが問題
(A) 値がほぼ等しい浮動小数点数同士の減算において,有効桁数が大幅に減ってしまうことである。
これは正しいです。桁落ちの説明です。
(B) 演算結果が,扱える数値の最大値を超えることによって生じる誤差のことである。
これは誤りです。オーバーフローの説明です。
(C) 浮動小数点数の演算結果について,最小の桁より小さい部分の四捨五入,切上げ又は切捨てを行うことによって生じる誤差のことである。
これは誤りです。丸め誤差の説明です。
(D) 浮動小数点の加算において,一方の数値の下位の桁が結果に反映されないことである。
これは誤りです。情報落ちの説明です。情報落ちは、小数を加算したときに、一方の数値の桁の一部が無視されることです。
問題 2
キューに関する記述として,最も適切なものはどれか。 (基本情報技術者試験 平成27年春期 午前問5)
(A) 最後に格納されたデータが最初に取り出される。
(B) 最初に格納されたデータが最初に取り出される。
(C) 添字を用いて特定のデータを参照する。
(D) 二つ以上のポインタを用いてデータの階層関係を表現する。
正解は B。
キュー(queue)とは、先入れ先出し方式を持つデータ構造のことです。いわゆる、待ち行列のことです。
(A) 最後に格納されたデータが最初に取り出される。
これは誤りです。スタックの説明です。スタックはキューと似ていますが、後入れ先出し方式です。
(B) 最初に格納されたデータが最初に取り出される。
これは正しいです。キューの説明で、これは先入れ先出し方式です。
(C) 添字を用いて特定のデータを参照する。
これは誤りです。配列の説明です。
(D) 二つ以上のポインタを用いてデータの階層関係を表現する。
これは誤りです。リストの説明です。
問題 3
再入可能プログラムの特徴はどれか。 (基本情報技術者試験 平成27年春期 午前問7)
(A) 主記憶上のどこのアドレスに配置しても,実行することができる。
(B) 手続の内部から自分自身を呼び出すことができる。
(C) 必要な部分を補助記憶装置から読み込みながら動作する。主記憶領域の大きさに制限があるときに,有効な手法である。
(D) 複数のタスクからの呼出しに対して,並行して実行されても,それぞれのタスクに正しい結果を返す。
正解は D。
再入可能プログラムとは、あるプログラムの処理が終了していないときに、別のプログラムから再度呼び出すことのできるプログラムのことです。
(A) 主記憶上のどこのアドレスに配置しても,実行することができる。
これは誤りです。再配置可能プログラムの説明です。
(B) 手続の内部から自分自身を呼び出すことができる。
これは誤りです。再帰プログラムの説明です。
(C) 必要な部分を補助記憶装置から読み込みながら動作する。主記憶領域の大きさに制限があるときに,有効な手法である。
これは誤りです。オーバレイの説明です。
(D) 複数のタスクからの呼出しに対して,並行して実行されても,それぞれのタスクに正しい結果を返す。
これは正しいです。再入可能プログラムの説明です。
問題 4
Javaのプログラムにおいて,よく使われる機能などを部品化し,再利用できるようにコンポーネント化するための仕様はどれか。 (基本情報技術者試験 平成27年春期 午前問8)
(A) JavaBeans
(B) JavaScript
(C) Javaアプリケーション
(D) Javaアプレット
正解は A。
JavaBeansとは、Java言語で再利用可能なプログラム部品を作成するための仕様のことです。「クラス」の一種でもあります。
(A) JavaBeans
これは正しいです。
(B) JavaScript
これは誤りです。JavaScriptは、スクリプト言語の1つであり、Java言語とは異なります。
(C) Javaアプリケーション
これは誤りです。Javaアプリケーションは、Java言語で作成された、デスクトップで動作するアプリです。
(D) Javaアプレット
これは誤りです。Javaアプレットは、Java言語で作成された、Webブラウザで動作するアプリです。