投稿する

大原本  問72 [5450]

 まきさん(No.1) 
問題文でn=2で3タブを追加するのですが
(1)で for(j,0~n-1,1)となるのどうしてですか
n=2なら
 for(j,0~n,1)とはならないのでしょうか

プログラムを示します

大域整数型:l←0

○replace(a,m,b,l,n)
整数型i,j
while(i<=m)
if(a[i]=tab)
 for(j,0~n-1,1)(1)
 l←l+1
 b[l]←"△"
  endfor
 
 else
 l←l+1
 b[l]←a[i]
 endif
 i←i+1
 endwhile
2024.05.16 21:10
jjon-comさん(No.2) 
FE ゴールドマイスター
n=2のとき,
「jを0から(n-1)まで1ずつ増やす」ならば j=0,j=1 と2回の繰り返しになるけれど,
「jを0からnまで1ずつ増やす」ならば j=0,j=1,j=2 と3回の繰り返しになるので。
2024.05.20 14:16
 まきさん(No.3) 
>jjon-comさん
いつも解説ありがとうございます。
タブ  n=2なら1個の時と2個の時しかないので、
範囲は for(j,1~n,1)とはならないのでしょうか。

j=タブと勘違いしているのでしょうか

>n=2なら for(j,0~n,1)とはならないのでしょうか
よくよく考えてみたら前に書いたのですがさらに分からなくなってしまって
2024.05.20 14:59
jjon-comさん(No.4) 
FE ゴールドマイスター
a[i]がtab文字なら配列b[]に連続したn個の"△"を出力する,というプログラムですから,
  for( 空欄(1) )
    l←l+1
    b[l]←"△"
  endfor
の空欄(1)は n回の繰り返し(n=2ならば2回の繰り返し)になるコードならば何を当てはめても問題文のアルゴリズムになります。具体例を挙げるならば,
for(j, 1~n, 1) だろうが
for(j, 11~10+n, 1) だろうが
for(j, 101~100+n, 1) だろうが
for(j, n~1, -1) だろうが
上記のどれを空欄(1)に当てはめても問題文のアルゴリズムになります。

ただ,上記のいずれも解答群には登場せず,ただ1つ,
イ for(j, 0~n-1, 1)
だけが,解答群中のうち2回繰り返すコードであるというだけです。
2024.05.20 15:37
まきさん(No.5) 
ありがとうございます。
でも0回目っていうのがよくわからないです。
1回目からじゃないですか?
2024.05.21 15:03
jjon-comさん(No.6) 
FE ゴールドマイスター
好意的に解釈するなら、出題者は受験者をヒッカケようと意図的にそういうコーディングにした。

2個の"△"を出力すればよいのだから、
  0回目、  1回目 for(j, 0~n-1, 1) だろうが
  1回目、  2回目 for(j, 1~n, 1) だろうが
 11回目、 12回目 for(j, 11~10+n, 1) だろうが
101回目、102回目 for(j, 101~100+n, 1) だろうが
  2回目、  1回目 for(j, n~1, -1) だろうが
どれだって問題文のアルゴリズムになる。

> 1回目からじゃないですか?
と思い込みに囚われていると解答群中に正解が見つからないことに気づくだろうか、という出題者の意図の現れだということです。

----
悪意的に解釈するなら、出題者は、配列の指標が0から始まるプログラム言語に慣れているなどの理由で、0回目 1回目というカウントが自然だと思っていた。

もし本当にそうであったなら、私の見解では、
> 雑なコーディングが散見されます。
https://www.fe-siken.com/bbs/5436.html
ということになります。
2024.05.21 15:59
 まきさん(No.7) 
>jjon-comさん
解説ありがとうございます。
そういった解釈が出来るんですね・・・。

>出題者は、配列の指標が0から始まるプログラム言語に慣れているなどの理由で、0回目、1回目というカウントが自然だと思っていた。

思い込みってこわいです。ありがとうございました。
2024.05.22 17:02
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop