戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2015年 秋期 午後 問05


決定表を用いた注文機能の設計に関する次の記述を読んで、設問1,2に答えよ。

 T社は、スポーツ用品の小売業者である。このたび、店舗での販売だけでなく、会員制のWebサイトを構築し、インターネット販売を開始することにした。  情報システム部に所属するAさんは、注文機能を構成する処理の一つである、注文確定をさせる前の処理(以下、注文確定前処理という)の設計を担当している。注文機能の流れを、図1に示す。
基本情報技術者試験(平成27年 午後 問5 図1)
 注文確定前処理は、注文情報入力処理(以下、入力処理という)で注文情報の入力が完了した後に呼び出される。注文情報と、入力ファイルの情報を参照して、注文確定可否のチェック、注文額の計算などを行う。注文確定前処理において、エラーがない場合は注文確定処理(以下、確定処理という)へ進み、エラーがある場合は入力処理に戻る。  注文情報を表1に、注文確定前処理が参照する入力ファイルの主な項目を表2に示す。
基本情報技術者試験(平成27年 午後 問5 表1)
基本情報技術者試験(平成27年 午後 問5 表2)   〔注文確定前処理の概要〕  次の(1)~(8)を順に処理する。ただし、処理中にエラーを検出した場合は、該当するエラーメッセージを表示して入力処理に戻る。エラーを検出しなかった場合は、注文確定情報として確定処理に受け渡す。 (1) 必須入力項目の入力チェックを行い、未入力の項目がある場合は、必須項目未入力エラーとする。 (2) 希望納期が未入力の場合は、注文確定前処理を実行している日(以下、処理日という)の1週間後の日付を希望納期として設定する。 (3) 希望納期が処理日以前の場合は、項目関連エラーとする。 (4) 請求先区分が“指定する”であって、請求先情報が未入力である場合は、項目関連エラーとする。 (5) 請求先区分が“届け先と同じ”である場合は、請求先情報に、届け先情報と同じ値を設定する。 (6) 購入対象商品の全てについて、在庫ファイルから在庫数を取得する。 (7) 在庫数が、注文を受けた数(以下、注文数という)よりも少ない商品が存在する場合は、在庫不足エラーとする。 (8) 購入対象商品の全てについて、在庫ファイルの在庫数を更新し、注文額及び①割引額を計算する。
 Aさんは、注文確定前処理の設計に当たって、決定表を用いて仕様を整理した。注文確定前処理の決定表の一部を表3と表4に示す。
基本情報技術者試験(平成27年 午後 問5 表4)

設問1:

問題文を見る
 表3の注文確定前処理の決定表(一部)中のに入れる正しい答えを、解答群の中から選べ。   a~dに関する解答群  ア:希望納期>処理日  イ:希望納期≦処理日  ウ:希望納期が入力されている  エ:希望納期が未入力である  オ:請求先区分が“指定する”である  カ:請求先区分が“届け先と同じ”である  キ:請求先情報が入力されている  ク:請求先情報が未入力である   eに関する解答群 基本情報技術者試験(平成27年 午後 問5 設問1 eに関する解答群)

模範解答

a:ウ、b:ア、c:オ、d:キ、e:イ

解説

解答の導き方

決定表は、条件の組合せごとに実行する処理を整理した表です。条件部の各条件は上から順に確認し、同じ列にある条件をすべて満たしたとき、その列の動作部に「X」がある処理を実行します。「-」は、その条件が真か偽かを問わないことを表します。
まず、表3の条件部にある a~d を、処理の内容と列ごとの動作から考えます。
  1. a は「希望納期が入力されている」です。
    表3では、a が「N」の規則で「希望納期に処理日の1週間後の日付を設定する」に「X」があります。つまり、希望納期が入力されていないときに、日付を設定します。
    したがって、a は「希望納期が入力されている」です。解答群では ウ です。
  2. b は「希望納期>処理日」です。
    希望納期が入力されている場合、その日付が処理日以前なら、概要の(3)によって項目関連エラーになります。表3でも、a が「Y」で b が「N」の列では、項目関連エラーメッセージを表示します。
    よって、b が「Y」のときは希望納期が処理日より後であり、b は「希望納期>処理日」です。解答群では ア です。
  3. c は「請求先区分が“指定する”である」です。
    表3では、c が「N」の列で「請求先情報に届け先情報と同じ値を設定する」に「X」があります。概要の(5)によると、この設定を行うのは、請求先区分が“届け先と同じ”の場合です。
    したがって、c が「N」は“届け先と同じ”を表し、c が「Y」は“指定する”を表します。c は「請求先区分が“指定する”である」です。解答群では オ です。
  4. d は「請求先情報が入力されている」です。
    c が「Y」、つまり請求先区分が“指定する”の場合、請求先情報も入力する必要があります。表3では、c が「Y」で d が「N」の列に、項目関連エラーメッセージを表示します。
    よって、d は「請求先情報が入力されている」です。解答群では キ です。
次に、表3の e を考えます。e は、表3の5列目にある3つの動作に対応する部分です。この列では、必須入力項目は入力済みで、希望納期は未入力です。また、請求先区分は“指定する”で、請求先情報は入力済みです。
希望納期は処理日の1週間後に設定されます。請求先情報も入力済みなので、項目関連エラーは起きません。また、請求先区分は“指定する”なので、届け先情報を請求先情報にコピーする処理も行いません。その後、在庫数を取得して表4の処理に進みます。
つまり、e の上段は「-」、中段は「-」、下段は「X」です。選択肢では イ です。ここで「在庫数を取得して表4を処理する」は、在庫不足かどうかを表4で確認する処理へ進むという意味です。

誤りやすいポイント

  • 希望納期が未入力でも、必須項目未入力エラーになるとは限りません。表1では希望納期に必須入力を示す注記がなく、概要の(2)で処理日から1週間後の日付を設定します。
  • 「希望納期が入力されている」と「希望納期が処理日より後」は別の条件です。入力済みでも、処理日以前なら項目関連エラーになります。
  • 請求先情報が必要かどうかは、請求先区分によって変わります。“指定する”場合は請求先情報が必要ですが、“届け先と同じ”場合は届け先情報を設定します。
  • 表3で在庫数を取得しても、その時点で在庫不足かどうかは確定しません。取得した在庫数を使い、表4で注文数と比べます。
  • 条件部の「-」は、条件が偽という意味ではありません。その条件が真でも偽でも、ほかの条件によってその列の動作が決まるという意味です。

FAQ

Q: 希望納期が未入力の場合、b の条件はどう扱いますか?
A: a が「N」の列では、b は「-」です。希望納期がないため、入力された希望納期と処理日を比べる条件は判断に使いません。その後、処理日から1週間後の日付が設定されます。
Q: 請求先区分が“届け先と同じ”なら、請求先情報を入力しなくてもよいのはなぜですか?
A: 概要の(5)にあるとおり、届け先情報と同じ値を請求先情報に設定するためです。会員が同じ情報を二度入力する必要はありません。
Q: 表3で在庫数を取得した後、すぐに在庫ファイルを更新しますか?
A: すぐには更新しません。表3から表4の処理へ進み、在庫数が注文数より少ない場合は在庫不足エラーになります。在庫不足でない場合に、在庫ファイルを更新します。

関連キーワード: 決定表、条件部、動作部、論理積、入力チェック

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

〔注文確定前処理の概要〕の下線①の割引額について説明する。T社では、会員を無料会員と有料会員に分類(以下、会員区分という)している。年会費5,000円を支払って有料会員になると、無料会員よりも優遇された割引サービスを受けることができる。割引サービスとは、直近1年間の累計購入額(以下、累計購入額という)に応じて、注文時の注文額に一定の割引率を適用して割り引いたものを購入額としたり、送料を無料としたりするサービスである。  なお、累計購入額の算出に当たっては、過去の購入実績だけを対象とする。T社の割引サービスを表5に示す。
基本情報技術者試験(平成27年 午後 問5 表5)
 表6は、表5で示した割引サービスの要件を整理するために作成中の決定表であり、動作部は未記入である。Aさんは、この決定表から発生し得ない無効な条件の組合せを抽出し、決定表から削除することによって、テストケースの設計にも活用したいと考えている。表6の決定表において、削除できる規則は幾つあるか、正しい答えを、解答群の中から選べ。
基本情報技術者試験(平成27年 午後 問5 表6)
解答群  ア:6  イ:7  ウ:8  エ:9  オ:10  カ:11  キ:12

模範解答

オ

解説

解答の導き方

表6では、会員区分と累計購入額の範囲を条件として、割引サービスを選びます。ここで削除できるのは、実際には起こり得ない条件の組合せです。
まず、累計購入額についての3条件を確認します。
  • 「累計購入額<10万円」
  • 「10万円≤累計購入額<20万円」
  • 「累計購入額≥20万円」
累計購入額は、この3つの範囲のうち、必ずどれか1つだけに当てはまります。例えば、累計購入額が10万円なら、2つ目の条件だけがYになります。したがって、3条件のうちYは必ず1つで、残り2つはNです。
条件の並び順を上から順に書くと、実際に起こり得る組合せは次の3つです。
累計購入額<10万円10万円≤累計購入額<20万円累計購入額≥20万円判定
YNN起こり得る
NYN起こり得る
NNY起こり得る
3条件それぞれにYかNを当てはめると、組合せは全部で通りあります。そのうち、実際に起こり得るのは上の3通りです。残る5通りは、累計購入額が2つ以上の範囲に同時に当てはまったり、どの範囲にも当てはまらなかったりするため、起こり得ません。
表6では、この8通りを「無料会員である」がYの場合とNの場合に分けて並べています。会員は無料会員と有料会員に分類されるので、Yは無料会員、Nは有料会員の場合を表します。どちらの場合にも、累計購入額の組合せとして削除できるものが5通りずつあります。
したがって、削除できる規則は通りです。解答群ではオです。

誤りやすいポイント

  • 3つの累計購入額の条件を、互いに独立した条件として数えないようにします。累計購入額は必ず3つの範囲のどれか1つにだけ当てはまります。
  • 「無料会員である」がNの列も、会員区分の組合せとして有効です。無料会員と有料会員の両方について、起こり得ない組合せを数えます。
  • 動作部の割引率や送料無料の有無を使って、削除する規則を判定するのではありません。今回は、条件部の組合せが実際に起こり得るかどうかを調べます。

FAQ

Q: 累計購入額の条件がYになるのは、必ず1つですか?
A: はい。3つの範囲は重ならず、累計購入額が入らない隙間もありません。そのため、必ず1つだけがYになります。
Q: 「無料会員である」がNのとき、どの会員を表しますか?
A: 問題文では会員を無料会員と有料会員に分類しているので、Nは有料会員の場合を表します。
Q: 割引率の動作部が空欄でも、削除できる規則を数えられますか?
A: はい。削除できるかどうかは、条件部の組合せが起こり得るかで決まります。動作部の記入内容は、この判定に必要ありません。

関連キーワード: 決定表、条件部、規則、論理積、条件の組合せ

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

基本情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について