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

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


通信講座を提供している企業の受講管理システムに関する次の記述を読んで、設問1,2に答えよ。

 A社では資格を取得するための通信講座を提供している。資格には上級、中級、初級の3種類があり、各講座の修了判定で合格すると合格証が発行され、資格取得となる。上級資格向けの講座を受講するには、中級資格を取得している必要がある。A社通信講座の概要を表1に示す。
基本情報技術者試験(平成24年 午後 問5 表1)   〔通信講座運用の概要〕  A社では、受講者の受講状況や成績を、受講管理システムを使って管理し、修了判定を行っている。通信講座運用の概要を次に示す。 (1) 各講座は毎月初めに開始する。 (2) テキストと課題が、受講期間中の毎月初めに受講者に到着するように送付される。 (3) 学習後の受講者から、課題に対する答案がA社に提出される。答案の提出期限は、受講者が課題を受け取った月の25日とする。 (4) A社に答案が到着した日を提出日として、受講管理システムに入力する。 (5) 到着から3日以内に、答案を添削して100点満点で採点し、添削済み答案と模範解答を受講者に返送する。 (6) 点数と返送日を受講管理システムに入力する。
 提出された答案の処理の流れを、図1に示す。
基本情報技術者試験(平成24年 午後 問5 図1)   〔初級、中級資格向けの講座の修了判定処理の概要〕 (1) 毎月初めに、前月で受講期間が終了した受講者を対象に、答案の提出回数と平均点を算出し、修了判定処理を行う。平均点は、全ての答案の合計点を受講期間の月数で除算して求める。答案が未提出の場合、及び提出期限を過ぎて答案が到着した場合は、提出回数に含めず、点数は0点とする。 (2) 判定区分には、優秀、合格、不合格の3種類がある。 (3) 初級資格向けの講座では、4回以上答案を提出し、かつ、平均点が60点以上の受講者を合格と判定する。 (4) 中級資格向けの講座では、7回以上答案を提出し、かつ、平均点が60点以上の受講者を合格と判定する。 (5) 全ての答案を提出し、かつ、平均点が90点以上の受講者は優秀と判定する。 (6) (3)、(4)の条件を満たさない受講者は、不合格と判定する。  (1)〜(6)の処理は、成績ファイルと講座ファイルを修了判定プログラムに入力して行われる。   〔初級、中級資格向けの講座の修了判定後の処理の概要〕 (1) 合格者には合格証を発行する。 (2) 優秀者には優秀者用の合格証を発行する。優秀者は、修了判定した月の翌月1日(以下、起算日という)から24か月間、上位の講座(初級資格向けの講座の場合は中級資格向けの講座、中級資格向けの講座の場合は上級資格向けの講座)を半額で受講することができる。優秀者には優秀者用の合格証と併せて割引受講案内を送付する。 (3) 不合格者には、起算日から12か月間、同じ講座を半額で再受講することができる割引受講案内を送付する。  (1)〜(3)の処理は、修了判定処理の結果に基づき、受講者ファイルと成績ファイルを参照して行われる。    受講者ファイル、講座ファイル、成績ファイルのレコード様式を、図2〜4に示す。各ファイルは、全て索引順編成ファイルである。初級、中級資格向けの講座の修了判定プログラムの流れを図5に、主なモジュールの処理内容を表2に示す。
基本情報技術者試験(平成24年 午後 問5 図2)
基本情報技術者試験(平成24年 午後 問5 図3)
基本情報技術者試験(平成24年 午後 問5 図4)
基本情報技術者試験(平成24年 午後 問5 表2)

設問1:

問題文を見る
 図5中のに入れる正しい答えを、解答群の中から選べ。ここで、日付については早い方が小さい数として扱われる。   aに関する解答群  ア:講座レコードの開始年月日<現在日付  イ:講座レコードの答案iの提出期限<現在日付  ウ:講座レコードの終了年月日<現在日付  エ:成績レコードの答案iの提出日<現在日付  オ:成績レコードの答案iの返送日<現在日付   bに関する解答群  ア:成績レコードの答案iの提出日=講座レコードの答案iの提出期限  イ:成績レコードの答案iの提出日≠講座レコードの答案iの提出期限  ウ:成績レコードの答案iの提出日>講座レコードの答案iの提出期限  エ:成績レコードの答案iの提出日≦講座レコードの答案iの提出期限  オ:成績レコードの答案iの提出日の前日>講座レコードの答案iの提出期限   cに関する解答群  ア:平均点=60  イ:平均点<60  ウ:60<平均点<90  エ:平均点>90  オ:平均点≧90   d, eに関する解答群  ア:“合格”  イ:“不合格”  ウ:“優秀”

模範解答

a:ウ、b:エ、c:オ、d:ウ、e:ア

解説

解答の導き方

図5は、成績レコード(ファイルに保存された1件分の情報)を読み、講座の終了状況や答案の提出状況を確認して、判定区分を決める流れです。空欄ごとに、何を確認しているかを見ていきます。
  1. a:修了判定の対象になる講座かを確認します
    初級、中級資格向けの講座では、「前月で受講期間が終了した受講者」を対象に修了判定を行います。したがって、講座の終了年月日が現在日付より前であるかを確認します。
    選択肢の「講座レコードの終了年月日<現在日付」なら、受講期間がすでに終わった講座を選べます。日付は早い方が小さい数として扱うため、終了年月日が現在日付より小さいことを条件にするのが適切です。
    また、図5では続けて「受講期間の月数 ≠ 12」を確認します。このプログラムは初級、中級資格向けの講座を判定するため、受講期間が12か月の講座は対象外です。
  2. b:答案が提出期限までに提出されたかを確認します
    成績ファイルには、答案ごとに提出日が記録されています。講座ファイルには、答案ごとの提出期限が記録されています。
    本文には「提出期限を過ぎて答案が到着した場合は、提出回数に含めず、点数は0点」とあります。そのため、提出日が提出期限と同じ日、またはそれより前なら、期限内の提出として数えます。条件は「成績レコードの答案iの提出日≦講座レコードの答案iの提出期限」です。
    提出期限を過ぎている場合は、提出日は提出期限より後なので、この条件を満たしません。答案が未提出の場合も、図4では提出日の初期値が提出期限の翌日になっています。初期値(処理を始める前に設定しておく値)を使って、未提出も期限内の提出ではないと判断できます。
    この判定を答案ごとに繰り返し、期限内の提出なら提出回数を1増やし、その答案の点数を合計点に加えます。
  3. c:優秀とする平均点の条件を確認します
    まず、初級資格向けの講座では4回以上、中級資格向けの講座では7回以上の提出があり、平均点が60点以上であることを確認します。この条件を満たす人が、合格の判定対象になります。
    その後、優秀とする条件を確認します。本文では「全ての答案を提出し、かつ、平均点が90点以上」とあります。したがって、優秀かどうかを分ける平均点の条件は「平均点≧90」です。
    なお、平均点は合計点を受講期間の月数で割って求めます。未提出や期限後の答案は点数が0点になるため、提出した答案だけの平均ではありません。
  4. d、e:優秀と合格を区別します
    合格の基準を満たした人のうち、受講期間中の全ての答案を提出し、平均点も90点以上なら、判定区分を「優秀」にします。これがdに入る区分です。
    合格の基準は満たしていても、全ての答案を提出していない、または平均点が90点未満なら、優秀ではなく通常の「合格」です。これがeに入る区分です。合格基準そのものを満たさない場合は「不合格」と判定します。

誤りやすいポイント

  • 提出日が提出期限と同じ場合も、期限内です。
    提出期限の日に到着した答案は提出回数に含めます。そのため、提出日の条件は「提出日<提出期限」ではなく、「提出日≦提出期限」です。
  • 平均点は、提出した答案だけで計算するのではありません。
    合計点を受講期間の月数で割ります。未提出や期限後の答案は0点として扱われます。
  • 平均点が90点以上でも、答案を全て提出していなければ優秀ではありません。
    優秀になるには、平均点の条件に加えて、全ての答案を提出していることも必要です。
  • 「平均点が60点以上」と「平均点が90点以上」の役割を混同しないようにします。
    60点以上は合格の基準、90点以上は優秀となるための追加条件です。

FAQ

Q: 提出期限当日に答案が到着した場合は、提出回数に含まれますか?
A: 含まれます。提出日が提出期限と同じ場合も、提出期限を過ぎていないためです。
Q: 未提出の答案は、平均点の計算から外しますか?
A: 外しません。点数は0点として扱い、合計点を受講期間の月数で割ります。
Q: 平均点が90点以上なら、必ず優秀になりますか?
A: いいえ。平均点が90点以上であることに加え、全ての答案を提出している必要があります。

関連キーワード: 条件分岐、繰返し処理、初期値、レコード、平均値計算

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

この設問をAIに質問する

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

 割引を使用した受講の利用率を向上させるために、割引対象期間の残り月数(以下、割引残存期間という)が少なくなっている受講者に、ダイレクトメールを発送することになった。割引を使用した受講の利用状況を調べるために、割引対象受講者と割引残存期間を全て抽出し、結果ファイルに書き込む、割引残存期間抽出プログラムを作成する。割引対象期間を過ぎている場合、割引残存期間に99を入れる。結果ファイルのレコード様式を図6に、割引残存期間抽出プログラムの流れを図7に示す。に入れる正しい答えを、解答群の中から選べ。
基本情報技術者試験(平成24年 午後 問5 図6)
基本情報技術者試験(平成24年 午後 問5 図7)
fに関する解答群  ア:起算日の月+(起算日の年-現在日付の年)×12  イ:起算日の月+(現在日付の年-起算日の年)×12  ウ:現在日付の月+(起算日の年-現在日付の年)×12  エ:現在日付の月+(現在日付の年-起算日の年)×12  オ:現在日付の月-(現在日付の年-起算日の年)×12   gに関する解答群  ア:起算日の月  イ:起算日の月-割引対象期間  ウ:割引対象期間  エ:割引対象期間+起算日の月  オ:割引対象期間-起算日の月

模範解答

f:エ、g:エ

解説

解答の導き方

図7では、割引対象期間の終了月から現在の月を引いて、割引残存期間を求めています。そのためには、年をまたぐ場合も同じ基準で比べられるように、月を通し番号のように扱う必要があります。
ここで、変数(計算途中の値を入れておく名前)は、現在日付を月数に換算した値です。
  1. 現在日付を月数に換算します。
    現在日付の年と起算日の年が同じなら、月の部分だけを比べればよいので、には現在日付の月を入れます。
    年が異なる場合は、起算日の年から現在日付の年までの年数を月数に直し、現在日付の月に加えます。1年は12か月なので、
    となります。たとえば、現在日付の年が起算日の年より1年後なら、現在日付の月に12を加えます。したがって、には「現在日付の月+(現在日付の年-起算日の年)×12」を選びます。
  2. 割引対象期間の終了月を求めます。
    起算日の月を基準に、割引対象期間の月数を足すと、期間の終了月を表す値になります。
    つまり、には「割引対象期間+起算日の月」を選びます。
  3. 終了月から現在の月を引きます。
    図7の計算は、次の形です。
    たとえば、起算日の月が10、割引対象期間が24か月、現在日付が起算日の年の翌年の4月だとします。このとき、終了月は、現在日付はです。したがって、残りはか月です。
  4. 期間を過ぎている場合の処理を確認します。
    図7では、計算した割引残存期間が0より小さい場合に99を入れます。99は残り月数そのものではなく、割引対象期間を過ぎていることを表す値です。

誤りやすいポイント

  • 年の差を求めるときに、起算日の年から現在日付の年を引かないようにします。現在日付の年が後なら、月数が増える向きに計算する必要があります。
  • では、年の差に12を掛けて月数に直します。年の差だけを足しても、月数にはなりません。
  • は終了月を表すため、起算日の月に割引対象期間を足します。残り月数を求める段階で、そこからを引きます。
  • 図7の判定は「割引残存期間 < 0」です。計算結果が0の場合は、この条件には当てはまりません。

FAQ

Q: なぜ現在日付の年と起算日の年が同じかどうかで処理を分けるのですか?
A: 同じ年なら、月の値をそのまま使えます。年が違う場合は、年の差を12倍して月数に直し、現在日付の月に加える必要があるためです。
Q: 期間を過ぎたことを表す値に、なぜ99を使うのですか?
A: 図7では、残り月数が負になった場合に99を入れています。99は、実際の残り月数ではなく「割引対象期間を過ぎている」ことを示すための値です。
Q: 割引残存期間が0の場合も、99に置き換えますか?
A: いいえ。図7の条件は0より小さい場合です。0は条件を満たさないため、99には置き換えません。

関連キーワード: 条件分岐、変数、フローチャート、月数換算、ファイル処理

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

この設問をAIに質問する

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

戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する→

すぐに利用可能!

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

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