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

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
理解したい!さん  
(No.1)
設問1の□Cについて教えてください。

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

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

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

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

但し、
> 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日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop