HOME»基本情報技術者平成30年春期問題»午後問10
基本情報技術者過去問題 平成30年春期 午後問10
⇄問題文と設問を画面2分割で開く⇱問題PDF問10 ソフトウェア開発(COBOL)
次のCOBOLプログラムの説明及びプログラムを読んで,設問1,2に答えよ。
〔プログラムの説明〕
Web上でショッピングサイトを運営しているP社では,注文を受けて入金確認の処理を待っている商品の注文情報を注文ファイルに格納し,前日に入金された情報を入金ファイルに格納する。P社では毎朝日時に入金確認の処理を実行し,注文ファイルの情報と入金ファイルの情報を突き合わせて結果リストを印字する。このとき,入金が確認できなかった商品の注文情報は,出荷待ちファイルに格納する。前処理として,注文ファイルには,前日にプログラムを実行した際に出力された出荷待ちファイルの情報と,前日に受けた商品の注文情報を格納しておく。
このショッピングサイトでは,代金の支払方法として,銀行振込,コンビニ払い,クレジットカード払い(以下,カード払いという),商品着払い(以下,着払いという)のいずれかを,注文時に選択できる。注文時に選択した支払方法と入金方法が異なることはない。銀行振込及びコンビニ払いによる入金の情報が入金ファイルに格納され,入金が確認できた注文を出荷対象とする。支払方法にカード払い又は着払いが選択された場合は,注文を受けた翌日に出荷する。
〔プログラムの説明〕
Web上でショッピングサイトを運営しているP社では,注文を受けて入金確認の処理を待っている商品の注文情報を注文ファイルに格納し,前日に入金された情報を入金ファイルに格納する。P社では毎朝日時に入金確認の処理を実行し,注文ファイルの情報と入金ファイルの情報を突き合わせて結果リストを印字する。このとき,入金が確認できなかった商品の注文情報は,出荷待ちファイルに格納する。前処理として,注文ファイルには,前日にプログラムを実行した際に出力された出荷待ちファイルの情報と,前日に受けた商品の注文情報を格納しておく。
このショッピングサイトでは,代金の支払方法として,銀行振込,コンビニ払い,クレジットカード払い(以下,カード払いという),商品着払い(以下,着払いという)のいずれかを,注文時に選択できる。注文時に選択した支払方法と入金方法が異なることはない。銀行振込及びコンビニ払いによる入金の情報が入金ファイルに格納され,入金が確認できた注文を出荷対象とする。支払方法にカード払い又は着払いが選択された場合は,注文を受けた翌日に出荷する。
- 注文ファイルは,図1に示すレコード様式の順ファイルである。
- 注文番号には,注文ごとに一意に割り振られた番号が設定されている。注文番号として,99999999 が割り振られることはない。
- 注文日時には,西暦の年,月,日と,24時間表記の時,分,秒が,それぞれ4桁,2桁,2桁,2桁,2桁,2桁で設定されている。
- 請求金額には,正の整数が設定されている。
- 支払種別には,注文時に選択された支払方法が,銀行振込,コンビニ払い,カード払い,着払いのそれぞれに対応する値,1,2,3,4で設定されている。
- レコードは,注文番号の昇順に整列されている。
- 入金ファイルは,図2に示すレコード様式の順ファイルである。
- 注文番号には,入金が確認できた注文の注文番号が設定されている。
- 入金日時には,西暦の年,月,日と,24時間表記の時,分,秒が,それぞれ4桁,2桁,2桁,2桁,2桁,2桁で設定されている。
- 入金金額には,正の整数が設定されている。
- 入金種別には,入金方法が,銀行振込,コンビニ払いのそれぞれに対応する値,1,2で設定されている。
- レコードは,注文番号の昇順に整列されている。同じ注文番号のレコードが複数格納されることはない。
- 出荷待ちファイルは,図3に示すレコード様式の順ファイルである。支払方法に銀行振込又はコンビニ払いが選択された注文のうち,入金を確認できなかった商品の注文情報が格納される。
- 各項目の内容は,注文ファイルのレコード様式と同じである。
- 結果リストの印字様式を図4に示す。見出しは印刷済みとする。
- 結果リストには,出荷する注文と,エラーと判定した注文の情報を印字する。結果欄に印字するコードと意味を表1に示す。
- 差額欄には,入金金額から請求金額を減算した金額を印字する。結果欄のコードが 10 の場合は,請求金額欄と差額欄に 0 を印字する。支払方法がカード払い,着払いのいずれかであった場合は,入金金額欄と差額欄には,0 を印字する。
- 判定がエラーの場合は,出荷待ちファイルに情報は出力せず,個別に対処する。
設問1
プログラム中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
- ORD-EOF
- ORD-EOF AND RCP-EOF
- ORD-EOF OR RCP-EOF
- RCP-EOF
b,c に関する解答群
- ORD-AMMT = RCP-AMMT
- ORD-AMMT = ZERO
- ORD-AMMT NOT = RCP-AMMT
- ORD-CODE = 1 OR 2
- ORD-CODE = 3 OR 4
- ORD-CODE = RCP-CODE
d に関する解答群
- ADD 1 TO PRT-NO
- MOVE SPACE TO PRT-REC
- SET ORD-EOF RCP-EOF TO TRUE
- WRITE PRT-REC
解答選択欄
- a:
- b:
- c:
- d:
解答
- a=イ
- b=オ
- c=ア
- d=エ
解説
この設問の解説はまだありません。
設問2
支払方法に銀行振込又はコンビニ払いが選択された注文のうち,注文日の翌日を1日目として,7日を過ぎて入金が確認できなかった注文の注文番号を表示するようにプログラムを変更する。表2中の に入れる正しい答えを,解答群の中から選べ。ここで,組込み関数 INTEGER-OF-DATE は,引数に指定された YYYYMMDD 形式の日付を西暦1601年1月1日からの通算の日数に変換して返す。
e に関する解答群
- 行番号51と52の間
- 行番号53と54の間
- 行番号65と66の間
- 行番号71と72の間
f に関する解答群
- W-CNT < 7
- W-CNT = 7
- W-CNT > 7
- W-CNT NOT = 7
解答選択欄
- e:
- f:
解答
- e=イ
- f=ウ
解説
この設問の解説はまだありません。