平成25年秋期 午前問8

skmtさん  
(No.1)
https://www.ap-siken.com/kakomon/25_aki/q8.html
トレースで、proc(4)→proc(0)までの流れは理解できるのですが、後半の

proc(0)  n=0なのでproc(1)内に戻る→
1を印字してproc(2)内に戻る→
2を印字してproc(3)内に戻る→
3を印字してproc(4)内に戻る→
4を印字してproc(5)内に戻る→
5を印字して処理を終了する

と、nが増分していく理由が全く分かりません。
どなたか解説をお願いできますでしょうか。
2022.06.04 09:48
これからパン買う人さん 
(No.2)
この投稿は投稿者により削除されました。(2022.06.10 12:55)
2022.06.10 12:55
boyonboyonさん 
AP シルバーマイスター
(No.3)
>これからパン買う人さん(No.2)
の説明をさらにネストして表すと
proc(5)
  5を印字
  proc(4)を呼び出し
    4を印字
    proc(3)を呼び出し
      3を印字
      proc(2)を呼び出し
        2を印字
        proc(1)を呼び出し
          1を印字
          proc(0)を呼び出し
            0なので戻る
          ここに戻るのでproc(1)の処理を続行
          1を印字して戻る
        ここに戻るのでproc(2)の処理を続行
        2を印字して戻る
      ここに戻るのでproc(3)の処理を続行
      3を印字して戻る
    ここに戻るのでproc(4)の処理を続行
    4を印字して戻る
  ここに戻るのでproc(5)の処理を続行
  5を印字して戻る
proc(5)が終了します。



2022.06.04 17:16
これからパン買う人さん 
(No.4)
この投稿は投稿者により削除されました。(2022.06.10 12:56)
2022.06.10 12:56
これからパン買う人さん 
(No.5)
この投稿は投稿者により削除されました。(2022.06.10 12:56)
2022.06.10 12:56
Howitzerさん 
(No.6)
スレ主さんは、「nが増分していく理由が全く分かりません。」とのことなので、
そこを解説しないと意味がないです。

proc(5)に出てくる n と、proc(4)に出てくる n は、名前が同じだけで別物です。
(proc(5) は、n-1 の 4 という値をコピーして proc(4) に渡している)
また、proc 内で n-1 という計算をしていますが、n=n-1 という代入をしていません。
つまり、各 proc 内で n の値は、変化しないのです。
2022.06.10 10:27
これからパン買う人さん 
(No.7)
この投稿は投稿者により削除されました。(2022.06.14 07:16)
2022.06.14 07:16

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop