基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成28年 秋期 基本情報技術者 午後 問13
問13   表計算

 次の表計算のワークシート及びマクロの説明を読んで,設問1,2に答えよ。

 

〔表計算の説明〕

 A社では,建物の改築作業を効率的に遂行するスケジュールを決定するために表計算ソフトを用いている。

 

〔ワークシート:状態遷移〕

 作業とは,建物の改築状態をある状態から別の状態にするための行為とする。 20 種類の状態があり,各状態には,1 〜 20 の番号(以下,状態 ID という)が振られている。

 改築作業の作業工程は,一つ以上の作業を順に施すことをいう。一連の作業による 改築状態の遷移を,状態 ID の列で表現する。これを,状態遷移列と呼ぶ。

 はじめに,作業による改築状態の遷移の関係,及び各作業の作業日数を 入力したワークシート“状態遷移”を作成した。ワークシート“状態遷移”を,図1に示す。

 


図 1 ワークシート“状態遷移”

 

(1) セル C2 〜 V2 には,作業開始時の状態 ID を 1 から順に入力する。 同様にセル B3 〜 B22 には,作業終了時の状態 ID を 1 から順に入力する。

(2) セル C3 〜 V22 には,対応する状態間を直接遷移する作業が存在すれば作業に 掛かる日数(以下,作業日数という)を,存在しなければ 0 を入力する。 作業日数は,100 日以下の整数値である。例えば,図1のセル C4 の値は, 作業開始時の状態 ID が 1 であって,作業終了時の状態 ID が 2 となる作業が存在し, その作業は5日掛かることを表している。また,セル C6 の値は, 作業開始時の状態 ID が 1 であって,作業終了時の状態 ID が 4 となる作業が 存在しないことを表している。

(3) 全ての作業について,作業開始時の状態 ID よりも作業終了時の状態 ID の方が大きい。

 

〔ワークシート:作業工程〕

 状態遷移列を入力すると,その状態遷移列が存在するかどうかを判定し, 存在する場合は作業工程の総日数を算出するワークシート“作業工程”を作成した。 ワークシート“作業工程”において,状態遷移列が存在する場合の例と状態遷移列が 存在しない場合の例を,図2に示す。

 


図2 ワークシート“作業工程”の例

 

(1) セル A3 〜 A22 には,状態遷移列を構成する状態 ID をセル A3 から順に入力する。 最後の状態 ID が入力されているセルよりも下のセルには空値が入力されている。 同じ状態 ID が2回以上入力されることはない。

(2) セル B3 には,0 を入力する。セル B4 〜 B22 には,同じ行の列Aの状態 ID へ 1行上の列 A の状態 ID から直接遷移するのに必要な作業日数が表示される。 直接遷移する作業が存在しない場合は,“ ×”が表示される。 同じ行の列 A のセルの値が空値の場合は 0 が表示される。

(3) セル C3 には,0 を入力する。セル C4 〜 C22 には,セル A4 〜 A22 の各状態 ID へ, セル A3 に入力されている状態 ID から遷移するのに必要な作業の総日数が表示される。 同じ行の列 A の状態 ID へ1行上の列 A の状態Dから直接遷移する作業が存在しない場合は, “×”が表示される。一つ上のセルの値が“×”の場合は,“×”が表示される。 同じ行の列 A のセルの値が空値の場合は,一つ上のセルと同じ値が表示される。

(4) セル C23 には,状態遷移列が存在する場合は,作業工程の総日数が表示され, 存在しない場合は“ ×”が表示される。

 

設問1  ワークシート“作業工程”の作成手順 (1) 〜 (4) 中の に入れる正しい答えを,解答群の中から選べ。

 

(1) セル B3 及びセル C3 に 0 を入力する。

(2) 次の式をセル B4 に入力し,セル B5 〜 B22 に複写する。

     IF(A4=null, 0, IF( >0, , '×'))

(3) 次の式をセル C4 に入力し,セル C5 〜 C22 に複写する。

     IF( , '×' , )

(4) 次の式をセル C23 に入力する。

     C22

 

a に関する解答群 ア 表引き(状態遷移!C$3:V$22,A$4,A3)

イ 表引き(状態遷移!C$3:V$22,A4,A$3)

ウ 表引き(状態遷移!C$3:V$22,A4,A3)

エ 表引き(状態遷移!C3:V$22,A$4,A3)

オ 表引き(状態遷移!C3:V$22,A4,A$3)

カ 表引き(状態遷移!C3:V$22,A4,A3)

 

b に関する解答群 ア B4='×'       イ C3='×'

ウ 論理積(B4='×',C3='×')      エ 論理積(B4≠'×', C3≠'×')

オ 論理和(B4='×',C3='×')      カ 論理和(B4≠'×', C3≠'×')

 

c に関する解答群 ア B3+B4         イ C3+B4

ウ C5−B4         エ C5−B5

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます

基本情報技術者試験


〔ワークシート:作業工程(拡張)〕

 状態遷移列の先頭になる状態 ID(以下,開始状態 ID という)と状態遷移列の 最後になる状態 ID(以下,終了状態 ID という)を入力すると, 作業工程の総日数が最小になる状態遷移列を求める機能を追加したワークシート“作業工程(拡張)”を 作成し,マクロ CalculateMinimum とマクロ DisplayMinimumPath を格納した。 作成したワークシート“作業工程(拡張)”の例を,図3に示す。

 なお,ワークシート“作業工程”を拡張することによって,関数“表引き”の引数で 与えられた行又は列の位置の値が空値になることがある。その場合は,関数“表引き”は空値を返す。

 


図3 ワークシート“作業工程(拡張)”の例

 

(1) セル F2 に開始状態 ID を,セル F3 に終了状態 ID を入力し,マクロ CalculateMinimum を実行した後,マクロ DisplayMinimumPath を実行する。

(2) マクロ CalculateMinimum の仕様は,次のとおりである。

@ セル H3 〜 H22 には,1 から順に状態 ID を格納する。

A セル I3 〜 I22 には,開始状態 ID から各行の列 H で示す状態 ID まで 遷移するのに必要な作業の総日数の最小値を格納する。 状態遷移列が存在しない場合は 9999 を格納する。

B セル J3 〜 J22 には,開始状態 ID から各行の列 H で示す状態 ID まで遷移するのに 必要な作業の総日数が最小となる状態遷移列における,その状態 ID の直前の状態 ID を格納する。 開始状態 ID に対応するセルの場合は 0 を格納する。 また,状態遷移列が存在しない場合は空値を格納する。

(3) マクロ DisplayMinimumPath は,セル A3 〜 A22 に作業工程の総日数が 最小となる状態遷移列を格納する。終了状態 ID を格納したセルよりも下のセルには空値を 格納する。開始状態 ID から終了状態 ID までの状態遷移列が存在しない場合は, セル A3 〜 A22 には全て空値を格納する。

 

設問2  マクロ DisplayMinimumPath 中の に入れる正しい答えを, 解答群の中から選べ。

 

〔マクロ:DisplayMinmumPath〕

 

d に関する解答群 ア Current < F2       イ Current < F3       ウ Current < F3 − F2

エ Current = Ø       オ Current = F2       カ Current ≠ F2

 

e に関する解答群 ア 照合検索 (Current, H3:H22, J3:J22)

イ 照合検索 (Current, J3:J22, H3:H22)

ウ 照合検索 (NumWork, H3:H22, J3:J22)

エ 照合検索 (NumWork, J3:J22, H3:H22)

 

f に関する解答群 ア I: Ø, I < NumWork, 1       イ I: Ø, I ≦ NumWork, 1

ウ I: 1, I ≦ NumWork, 1       エ I: NumWork − 1, I ≧ Ø, −1

オ I: NumWork, I > Ø, −1       カ I: NumWork, I ≧ Ø, −1

解答 d ←クリックすると正解が表示されます

解答 e ←クリックすると正解が表示されます

解答 f ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]