過去問.com - 資格試験の過去問 | 予想問題の解説つき無料問題集

技術士の過去問 令和2年度(2020年) 基礎科目「情報・論理に関するもの」 問11

問題

このページは問題閲覧ページです。正解率や解答履歴を残すには、 「条件を設定して出題する」をご利用ください。
[ 設定等 ]
次の(   )に入る数値の組合せとして、最も適切なものはどれか。

次の図は2進数(anan−1… a2a1a02を10進数sに変換するアルゴリズムの流れ図である。ただし、nは0又は正の整数であり、ai∈{0,1}(i=0,1,…,n)である。

このアルゴリズムを用いて2進数(1101)2を10進数に変換すると、sには初め1が代入され、その後順に3、6と更新され、最後にsには13が代入されて終了する。このようにsが更新される過程を、
1 → 3 → 6 → 13
と表すことにする。同様に、2進数(11010101)2を10進数に変換すると、Sは次のように更新される。
1 → 3 → 6 → 13 →( ア )→( イ )→( ウ )→ 213
問題文の画像
   1 .
ア:25  イ:52  ウ:105
   2 .
ア:25  イ:52  ウ:106
   3 .
ア:26  イ:52  ウ:105
   4 .
ア:26  イ:53  ウ:105
   5 .
ア:26  イ:53  ウ:106
( 技術士 第一次試験 令和2年度(2020年) 基礎科目「情報・論理に関するもの」 問11 )
このページは問題閲覧ページの為、解答履歴が残りません。
解答履歴を残すには、
条件を設定して出題する」をご利用ください。

この過去問の解説 (3件)

15

アルゴリズムに関する問題は技術士として基本的な内容ですのでよく問われます。アルゴリズムの流れ図をよく見ながら、一つずつ条件を当てはめて考えていきましょう。

まず、問題の例に出されている(1101)2をこのアルゴリズムに当てはめて考えていきます。nは2進数の桁数より1少ない3となります。

sに初めにa3である1が代入されます。

i ← n-1 = 3-1 =2で、iが0以上ですから、次へ進んで、

s ← 1x 2 + a2 = 2+1 = 3

i ← 2-1 = 1 で、またiと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 3x2 +a1 = 6+0 =6

i ← 1-1 =0 で、また iと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 6x2 + a0 = 12+1 =13

i ← 0-1 = -1で、またiと0の比較に戻ります。

iは0未満になりましたので、ここで終了となり、sは13となります。

同様のことを、8桁つまりn=7の2進数 (11010101)2について行っていきます。

Sに初めにa7である1が代入されます。

i ←n-1 = 7-1 =6で、iが0以上ですから、次へ進んで、

s ← 1x 2 + a6 = 2+1 = 3

i ← 6-1 = 5 で、またiと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 3x 2 + a5 = 6+0 =6

i ← 5-1 = 4 で、またiと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 6x 2 + a4 = 12+1 =13

i ← 4-1 = 3 で、またiと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 13x 2 + a3 = 26+0 =26・・・ア

i ← 3-1 = 2 で、またiと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 26x 2 + a2 = 52+1 =53・・・イ

i ← 2-1 = 1 で、またiと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 53x 2 + a1 = 106+0 =106・・・ウ

i ← 1-1 = 0 で、またiと0の比較に戻ります。

iは0以上ですから、次へ進んで、

s ← 106x 2 + a0 = 212+1 =213

i ← 0-1 = -1 で、またiと0の比較に戻ります。

iは0未満になりましたので、ここで終了となり、sは213となります。

以上、ア:26, イ:53, ウ: 106, で正解選択肢は5となります。

付箋メモを残すことが出来ます。
9

アルゴリズムに関する問題です。

設問の流れ図に沿って解きます。
sは始め、anすなわち1になります。

n=7になりますので
iは始め、n-1すなわち7-1=6になります。
6を1ずつマイナスし、iが0未満になるまで
s←s×2+aiによりsを更新していきます。

1回目:s=1 i=6
2回目:s=1×2+a6=1×2+1=3 i=5
3回目:s=3×2+a5=3×2+0=6 i=4
4回目:s=6×2+a4=6×2+1=13 i=3
5回目:s=13×2+a3=13×2+0=26 i=2
6回目:s=26×2+a2=26×2+1=53 i=1
7回目:s=53×2+a1=53×2+0=106 i=0
8回目:s=106×2+a0=106×2+1=213 i=-1
iが0未満になったので終了

したがってsは
1 → 3 → 6 → 13 →26→53→106→213の通り更新されるので5が正解です。

5

<正解>5

[解説]

2進数を10進数に変換するアルゴリズムに関する計算問題です。

設問の流れ図に沿って解きます。

まず、nは、2進数の桁数を表すため、

2進数(11010101)は、

n=7となり、i= 0,1,2,3,4,5,6,7となります。

まず、sには、a=1が代入されます。

また、iには、n-1すなわち7-1=6が代入されます。

iと0を比較し、iが0になるまで、

s←s×2+aによりsを更新するとともに

i←i-1として、繰り返します。

このアルゴリズムに具体的に数値を入れていくと、

1回目:s=1 i=6

2回目:s=1×2+a=1×2+1=3 i=5

3回目:s=3×2+a=3×2+0=6 i=4

4回目:s=6×2+a=6×2+1=13 i=3

5回目:s=13×2+a=13×2+0=26 i=2

6回目:s=26×2+a=26×2+1=53 i=1

7回目:s=53×2+a=53×2+0=106 i=0

8回目:s=106×2+a=106×2+1=213 i=-1

8回目でiが0未満になるので、終了となります。

よって、sは、

1 → 3 → 6 → 13 → 26 → 53 → 106 → 213

と更新されるので、5が正解となります。

問題に解答すると、解説が表示されます。
解説が空白の場合は、広告ブロック機能を無効にしてください。
他のページから戻ってきた時、過去問ドットコムはいつでも続きから始めることが出来ます。
また、広告右上の×ボタンを押すと広告の設定が変更できます。
この技術士 過去問のURLは  です。
付箋は自分だけが見れます(非公開です)。