平成28年秋期午後問3

tamutakuさん  
(No.1)
https://www.ap-siken.com/kakomon/28_aki/pm03.html

こちらの問題のカ、キについて質問です。
yb、xbにそれぞれyとxを代入しており、
数字が既に入っていれば、y+1の場所に移動するということで私は、
y ← yb
x ← xb +  1
と回答したのですが、答えは
y ← yb - 1
x ← xb
でした。
私はyとxの値を変えてもyb、xbの値は変わらないと思っていましたが、解答は違うようです。
どなたかご教授ください。
変数なんだから参照型だよ。ということであれば、私は納得できるのですが…
2023.09.10 01:12
jjon-comさん 
AP プラチナマイスター
(No.2)
カ、キ を囲んだif文は次の問題文に対応します。
> (3):現在位置の右下のマスが空白かどうか確認する。(略)
> (4):(略)(3)で確認したマスが空白でない場合は,
> 現在位置の上のマスを新しい現在位置とする(E)。
現在位置が xb, yb で、確認先のマスが x, y です。

数字が既に入っていれば、y+1の場所に移動するということで
いいえ、間違っています。
> 現在位置の上のマスを新しい現在位置とする(E)。
ですから、y座標の移動はプラス方向ではなくマイナス方向です。
現在位置 xb, yb から見て、次の移動先座標は
> y ← yb - 1
> x ← xb
すなわち、y座標は現在位置の1つ上、x座標は現在位置と変わらず、です。

私はyとxの値を変えてもyb、xbの値は変わらないと思っていました
> while (suujiが [オ] )
>   yb ← y
>   xb ← x
というプログラムですから、
whileループするたびに、yやxの値が変われば、ybやxbの値は変わります。
2023.09.10 02:10
tamutakuさん  
(No.3)
ご回答ありがとうございます。

xbとybにxとyを代入した後にxとyに+1していたので、
xbとybの右下がxとyになる認識でいます。

houjin[y][x]が0ではなかったら上に移動するというのは、
その後xとyにsuujiを入れているところを見ると、
y ← y - 1
x ← x
にすればいいだろうと思い、それをxb、ybで当てはめると、
y ← yb (y - 1と等しい数)
x ← xb + 1 (xと等しい数)
ということになる。と思ったのですが、
この認識が間違いということでしょうか?

私は何か大きな勘違いをしていそうなので、その部分の認識が合っているか教えて欲しいです。
2023.09.10 15:05
jjon-comさん 
AP プラチナマイスター
(No.4)
擬似言語のプログラムではなく、〔魔方陣の作り方〕の規則そのものの理解が間違っているのではないですか。

逆に私から2点、確認したいです。

(a)
〔魔方陣の作り方〕の規則に従って、3×3 の空白マスに 1,2,3,4,5,6,7,8,9 の数字を順に埋めていき、魔法陣を完成させることができますか。

(b)
(a)の過程において、
> (3):現在位置の右下のマスが空白かどうか確認する。(略)
> (4):(略)(3)で確認したマスが空白でない場合は,
> 現在位置の上のマスを新しい現在位置とする(E)。
という動きは2回 登場します。どの数字をマスに埋めるときにこの動きが発生しますか。

どちらも回答に必要なのは問題文と図だけで、擬似言語のトレースは不要です。
2023.09.10 20:30
tamutakuさん  
(No.5)
魔法陣の解釈が間違っていました!
私の方法だと、現在地の右に移動していました。
最後まで、教えてくださりありがとうございます!
2023.09.11 12:38

返信投稿用フォーム

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

その他のスレッド


Pagetop