平成28年 春期 基本情報技術者 午後 問12
問12 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜4に答えよ。 〔プログラムの説明〕 10,000 m競走に,1チーム 8 名で,9 チーム 72 名が参加し,各チームの合計タイムを競う。 プログラム RACE は,個人別のタイムを所属するチーム番号とともに入力し, チーム別合計タイムを求め,チーム別合計タイムの昇順に,チーム番号とそのチームの 1名当たりの平均タイムを出力する。 (1) 個人ごとの入力データ及びチームごとの出力データの形式は図1のとおりとする。 ここで,60 分以上のデータはないものとする。
![]() 図1 入出力データの形式 (2) プログラム RACE の入力データと出力結果の例を図2に示す。
![]() 図2 入力データと出力結果の例 (3) データの入力処理と出力処理は,それぞれ副プログラム INPUT と OUTPUT を呼び出して行う。
(4) 副プログラム INPUT は,呼ばれるごとに図1に示す形式の個人のデータを1件読み込む。
読み込んだデータのチーム番号及び秒数に変換したタイムを2進数で,
それぞれ GR1 と GR2 に設定し,GRØ には正の値を設定して,呼出し元に返す。
(5) 副プログラム OUTPUT は,GR1 と GR2 のそれぞれに2進数で設定されたチーム番号と 平均タイム(1秒未満を切り捨てた秒数)を,図1に示す形式に変換して書き出す。 〔プログラム1〕
RACE START
LOOP11 CALL INPUT
LD GRØ,GRØ
JMI IEND
ADDA GR2,TOTAL,GR1 ; タイム
ST GR2,TOTAL,GR1
JUMP LOOP11
IEND LD GR3,=9
LD GRØ,=#7FFF ; 最大値
LOOP12 LD GR2,GRØ
LD GR4,=9
LOOP13 CPA GR2,TOTAL,GR4
JPL CHANGE
JUMP NEXT
CHANGE LD GR2,TOTAL,GR4 ; GR2←新たなタイムの最小値
LD GR1,GR4 ; GR1←そのチーム番号
NEXT SUBA GR4,=1
解答群 オ JUMP LOOP12 カ JUMP LOOP13 キ JZE LOOP12 ク JZE LOOP13
同じ合計タイムのチームが複数ある場合, 。
解答群 イ チーム番号の降順に出力される ウ どのチームが先に出力されるかは時々で異なる
〔プログラム2〕 (行番号) 1 OUTPUT START 2 RPUSH 3 OR GR1,=#ØØ3Ø 4 ST GR1,TEAM 5 LAD GR3,TIME 6 LD GR4,=Ø 7 LD GR5,=3 ; ループ回数 8 LOOP21 LD GR6,DIVISOR,GR4 ; GR6 ← 除数 9 LD GR7,=Ø ; GR7 ← 商 1Ø LOOP22 CPA GR2,GR6 11 JMI SETTIME 12 SUBA GR2,GR6 13 ADDA GR7,=1 14 d に関する解答群 オ JUMP LOOP22 カ JZE LOOP22 e に関する解答群 オ JZE LOOP21 カ JZE LOOP22
出力されたデータが次のとき,プログラム2の行番号 12 の SUBA 命令は
![]() 解答群
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||
