アルゴリズムのこの問題のaにはどの選択肢が当てはまるのか解答を教えてください。
「タブ文字を展開するプログラム」
副プログラム TabSpc は、タブ文字を展開するプログラムである。
- 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
[プログラム]
○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
私としては、エが正解と思っていたのですが、今日講師の方にそれは間違いだと言われました。腑に落ちてないのでどなたか真の正解をお教えくださいませ。
回答1件
あなたの回答
tips
プレビュー