82300
以下の問題のaにはどの選択肢が当てはまるのでしょうか？  
どなたか解答を教えてくださいませ。

* * *

[タブ文字を展開するプログラム | 基本情報技術者試験 過去問](https://jpeducom.co.jp/FE18b-pm/t04.html)

副プログラム TabSpc は、タブ文字を展開するプログラムである。

  1. TabSpc は、引数で指定された文字型配列 Src[] を先頭から調べ、 Src[]  
中のすべてのタブ文字をそれぞれ一つ以上の間隔文字（スペース）に変換して、  
引数で指定された文字型配列 Dst[] に格納する。

  2. 文字型配列の各要素には、文字を 1 文字ずつ順に格納し、最後の文字の次の  
要素にはシステム定数である EOS を格納する。なお、配列の添字は 1 から始  
まり、添字の値を文字位置と呼ぶ。

  3. Src[] 中にタブ文字が出現した場合、次の文字が最も近い右のタブ位置に格納  
されるように、タブ文字を一つ以上の間隔文字に置換して、 Dst[] （要素数は十  
分に大きいとする）に格納する。ここで、タブ位置とは、整数型の引数 TabGap で  
渡されるタブ間隔（≧ 2）を用いて、次の式で計算される文字位置である。  
タブ位置 ＝ タブ間隔 × n + 1 （ n は 1 以上の整数）

  4. タブ間隔が 4 のときの実行例を図に示す。 “j” を Dst[] のタブ位置である文  
字位置 13 （ = 4 × 3 + 1 ）に格納したのでは、タブ文字が間隔文字に置き換  
わらないので、最も近い右のタブ位置である文字位置 17 （ = 4 × 4 + 1 ）に  
格納する。

[![](https://jpeducom.co.jp/FE18b-pm/h18b-04a.gif)](https://jpeducom.co.jp/FE18b-pm/h18b-04a.gif)

［プログラム］

```

    ○TabSpc(文字型：Src[], 文字型：Dst[], 整数型：TabGap)
    ○整数型：Sidx, Didx, N, TabPos
    ・Sidx ← 1
    ・Didx ← 1
    ■ Src[Sidx] ≠ EOS /* EOS：文字列の終わりを表すシステム定数 */
    | ▲ Src[Sidx] = TAB /* TAB：タブ文字を表すシステム定数 */
    | | ・N ← ( a ) ÷ TabGap
    | | ・TabPos ← TabGap × N + 1
    | | ■ Didx ＜ TabPos
    | | | ・Dst[Didx] ← SPC /* SPC：間隔文字を表すシステム定数 */
    | | | ・ b
    | | ■
    | +---
    | | ・ c
    | | ・Didx ← Didx + 1
    | ▼
    | ・Sidx ← Sidx + 1
    ■
    ・Dst[Didx] ← EOS
    
```

**設問** プログラム中のに入れる正しい答えを、解答群の中から選べ。  
a に関する解答群  
ア Didx + 1  
イ Didx – 1  
ウ Didx + TabGap + 1  
エ Didx + TabGap – 1
CC BY-SA 4.0
2021-09-06T13:49:36.700
82294
2021-09-07T00:21:33.343
2021-09-07T00:21:33.343
3060
48015
question
アルゴリズム
基本情報技術者試験『タブ文字を展開するプログラム』の解答を知りたい
[コメント](https://ja.stackoverflow.com/questions/82294/%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a0%e3%81%ab%e9%96%a2%e3%81%99%e3%82%8b%e5%95%8f%e9%a1%8c%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e8%a7%a3%e7%ad%94%e3%82%92%e6%95%99%e3%81%88%e3%81%a6%e3%81%8f%e3%81%a0%e3%81%95%e3%81%84#comment92979_82294)で解決したので回答に転記します。

> 答えは『エ』です。

上をクリックやタップすると解答が表示されます。

蛇足ですが、この回答時点では質問文の画像URLをたどって[問題文と回答](https://jpeducom.co.jp/FE18b-pm/t04.html)を参照することもできます。
CC BY-SA 4.0
2021-09-06T23:33:19.903
82300
2021-09-06T23:33:19.903
9820
82294
answer