HOME»基本情報技術者試験掲示板»平成28年春期午後問8(設問1)

基本情報技術者試験掲示板


[3336]平成28年春期午後問8(設問1)

 理解したい!さん(No.1) 
設問1の□Cについて教えてください。

最後列のメモだけの削除は出来ないプログラムですか?

例えば、MemoCnt=4の時、
Memo[3]を削除しようとすると、

  deleteMemo(3)
  「・i  ← pos +1」  から  i が4になり
ループの条件式「i  <  MemoCnt」が成り立たなくて
いきなりループを抜けてしまうと思うのですが、どうなのでしょう。

初歩的な質問で申し訳ないのですが、どうか教えてください。
よろしくお願いいたします。
2021.05.24 21:38
関数従属さん(No.2) 
FE・ゴールドエキスパート
最後列のメモの削除も可能なプログラムとなっております。

但し、
> deleteMemo(3)
>  「・i  ← pos +1」  から  i が4になり
>ループの条件式「i  <  MemoCnt」が成り立たなくて
>いきなりループを抜けてしまう
の部分は合っております。

図3からdeleteMemo(3)をする場合、
Memo[]は
Memo[0] :0
Memo[1] :5
Memo[2] :10
Memo[3] :14
のままで、MemoCntが4から3に減ります。

MemoCntがポイントでMemoCntが3になるとMemo[3]が参照されなくなります。

図でいう灰色の扱いとなります。
例えばその後、addMemoをするとMemo[3]が上書きされます。

※尚、最後列以外のメモの削除時も同様です。
  図4でのMemo[3]は灰色ですが、Memo[3] :14の値が参照はされませんが残っております。
2021.05.24 23:54
 理解したい!さん(No.3) 
関数従属さま

ご丁寧にありがとうございます。
削除といっても「参照されない」がポイントなのですね!
「灰色の扱い」と設題の用語を使ってくださりとても分かりやすかったです。
ありがとうございました!
2021.05.25 22:04

返信投稿用フォーム

スパム防止のために初投稿日から30日経過したスレッドへの書き込みは禁止しています。

© 2010-2022 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop