平成28年秋期試験午前問題 午後問13

問13 ソフトウェア開発(表計算)

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

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

〔ワークシート:状態遷移〕
 作業とは,建物の改築状態をある状態から別の状態にするための行為とする。20種類の状態があり,各状態には,1~20の番号(以下,状態IDという)が振られている。
 改築作業の作業工程は,一つ以上の作業を順に施すことをいう。一連の作業による改築状態の遷移を,状態IDの列で表現する。これを,状態遷移列と呼ぶ。
 はじめに,作業による改築状態の遷移の関係,及び各作業の作業日数を入力したワークシート"状態遷移"を作成した。ワークシート"状態遷移"を,図1に示す。
pm13_1.gif
  • セル C2~V2 には,作業開始時の状態IDを1から順に入力する。同様にセル B3~B22 には,作業終了時の状態IDを1から順に入力する。
  • セル C3~V22 には,対応する状態間を直接遷移する作業が存在すれば作業に掛かる日数(以下,作業日数という)を,存在しなければ0を入力する。作業日数は,100日以下の整数値である。例えば,図1のセル C4 の値は,作業開始時の状態IDが1であって,作業終了時の状態IDが2となる作業が存在し,その作業は5日掛かることを表している。また,セル C6 の値は,作業開始時の状態IDが1であって,作業終了時の状態IDが4となる作業が存在しないことを表している。
  • 全ての作業について,作業開始時の状態IDよりも作業終了時の状態IDの方が大きい。

〔ワークシート:作業工程〕
 状態遷移列を入力すると,その状態遷移列が存在するかどうかを判定し,存在する場合は作業工程の総日数を算出するワークシート"作業工程"を作成した。ワークシート"作業工程"において,状態選移列が存在する場合の例と状態遷移列が存在しない場合の例を,図2に示す。
pm13_2.gif
  • セル A3~A22 には,状態遷移列を構成する状態IDをセル A3 から順に入力する。最後の状態IDが入力されているセルよりも下のセルには空値が入力されている。同じ状態IDが2回以上入力されることはない。
  • セル B3 には,0を入力する。セル B4~B22 には,同じ行の列Aの状態IDへ1行上の列Aの状態IDから直接選移するのに必要な作業日数が表示される。直接遷移する作業が存在しない場合は,"×"が表示される。同じ行の列Aのセルの値が空値の場合は0が表示される。
  • セル C3 には,0を入力する。セル C4~C22 には,セル A4~A22 の各状態IDへ,セル A3 に入力されている状態IDから遷移するのに必要な作業の総日数が表示される。同じ行の列Aの状態IDへ1行上の列Aの状態IDから直接遷移する作業が存在しない場合は,"×"が表示される。一つ上のセルの値が"×"の場合は,"×"が表示される。同じ行の列Aのセルの値が空値の場合は,一つ上のセルと同じ値が表示される。
  • セル C23 には,状態遷移列が存在する場合は,作業工程の総日数が表示され,存在しない場合は"×"が表示される。

設問1

ワークシート"作業工程"の作成手順(1)~(4)中の に入れる正しい答えを,解答群の中から選べ。
  • セル B3 及びセル C3 に0を入力する。
  • 次の式をセル B4 に入力し,セル B5~B22 に複写する。
     IF(A4=null,0,IF(a>0,a,'×'))
  • 次の式をセル C4 に入力し,セル C5~C22 に複写する。
     IF(b,'×',c)
  • 次の式をセル 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:
  • a=
  • b=
  • c=

解説

この設問の解説はまだありません。
〔ワークシート:作業主程(拡張)〕
 状態遷移列の先頭になる状態ID(以下,開始状態IDという)と状態遷移列の最後になる状態ID(以下,終了状態IDという)を入力すると,作業工程の総日数が最小になる状態遷移列を求める機能を追加したワークシート"作業工程(拡張)"を作成し,マクロ CalculateMinimum とマクロ DisplayMinimumPath を格納した。作成したワークシート"作業工程(拡張)"の例を,図3に示す。
 なお,ワークシート"作業工程"を拡張することによって,関数"表引き"の引数で与えられた行又は列の位置の値が空値になることがある。その場合は,関数"表引き"は空値を返す。
pm13_3.gif
  • セル F2 に開始状態IDを,セル F3 に終了状態IDを入力し,マクロ CalculateMinimum を実行した後,マクロ DisplayMinimumPath を実行する。
  • マクロ CalculateMinimum の仕様は,次のとおりである。
    1. セル H3~H22 には,1から順に状態IDを格納する。
    2. セル I3~I22 には,開始状態IDから各行の列Hで示す状態IDまで遷移するのに必要な作業の総日数の最小値を格納する。状態遷移列が存在しない場合は9999を格納する。
    3. セル J3~J22 には,開始状態IDから各行の列Hで示す状態IDまで遷移するのに必要な作業の総日数が最小となる状態遷移列における,その状態IDの直前の状態IDを格納する。開始状態IDに対応するセルの場合は0を格納する。また,状態,遷移列が存在しない場合は空値を格納する。
  • マクロ DisplayMinimumPath は,セル A3~A22 に作業工程の総日数が最小となる状態遷移列を格納する。終了状態IDを格納したセルよりも下のセルには空値を格納する。開始状態IDから終了状態IDまでの状態遷移列が存在しない場合は,セル A3~A22 には全て空値を格納する。

設問2

マクロ DisplayMinimumPath 中の に入れる正しい答えを,解答群の中から選べ。
pm13_4.gif
d に関する解答群
  • Current<F2
  • Current<F3
  • Current<F3-F2
  • Current=0
  • 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: 0,I<NumWork,1
  • I: 0,I≦NumWork,1
  • I: 1,I≦NumWork,1
  • I: NumWork-1,I≧0,-1
  • I: NumWork,I>0,-1
  • I: NumWork,I≧0,-1
解答選択欄
  • d:
  • e:
  • f:
  • d=
  • e=
  • f=

解説

この設問の解説はまだありません。

Pagetop