HOME»応用情報技術者試験掲示板»午後のfor文について
投稿する

午後のfor文について [2207]

 二回目さん(No.1) 
すみませんちょっと気になったので・・・
過去スレ
https://www.ap-siken.com/bbs/2140.html
こちらで質問されてる方(ご自身で納得されたようですが)
に類似した質問です。
問題はこちら
https://www.ap-siken.com/kakomon/28_aki/pm03.html

私の持っている参考書(緑本といわれてるもの)ではこの問題の解説で
「空欄イの行が実行される時点で変数xの値はNとなっているのでhoujin[y][x+1]でも正解です」
と書かれています。
しかし、先述の過去スレで質問されてる方のご自身で納得された意見
(javaなどではfor文抜けるときのxの値はNではなくN+1)
が正しければ緑本の解説が間違っているということになりますよね?
2020.09.26 10:00
guestさん(No.2) 
AP シルバーマイスター
※以下、あくまで個人的見解。まちがっていたらすみません。※
※この問題を一番最初から解いていったわけではないので私が何らかの誤解等をしている可能性もあります。※

> 緑本の解説が間違っているということになりますよね?
結論からいうとIPAが当時どのように採点したかはわからないからという意味で「わからない」です。でも、訂正がでていないか確認してみたり、出版者に意見書を送ってみる価値はあるかもしれません。

> 先述の過去スレで質問されてる方のご自身で納得された意見(javaなどではfor文抜けるときのxの値はNではなくN+1)が正し(い)
この部分はビミョーです。というのは、「yを1からNまで1ずつ増やす」がどのように実現されたかがわからないからです。
//*****************
//"□"は文字位置調整のための空白
int x=0;  //この変数はsetup()関数以外からもアクセスされる
int y=0;  //この変数はsetup()関数以外からもアクセスされる

void setup(){
□for(int y=0; y<=3; y++){   ・・・(1)
□□for(int x=0; x<=3; x++){  ・・・(2)
□□}
□□println("x="+x);  //xの値を出力  ・・・(3)
□}

//*****************
(1)(2)部を上記のとおりとするか、「int 」を除去するかで、(3)部で出力されるxの値が0になったり4になったりします。
なので解答にxを用いた場合でも、IPAが
(まあまあ、x=4ということもあるしな。うん。)
と好意的に採点したかもしれませんし
(いやいや、空欄[イ]においてxを使われてもそこではx=0ですよ。だめだめ。)
と採点した可能性もあります。
所詮問3は疑似言語という立場に立つと、xの値は(3)部でも3のままな言語という設定になっているかもしれません(なにそれ)。
いずれにせよ、空欄[イ]時点におけるxの値は不明だとおもいます。

※以上、あくまで個人的見解。まちがっていたらすみません。(再掲)※
2020.09.27 13:50
 二回目さん(No.3) 
>>guestさん
レスありがとうございます。
私もここでのxは不明だと思うのでその意見も交えて
guestさんのコメントを参考にして出版社に
問い合わせのメールを送りました。
情報がきたら共有します
2020.09.28 09:02
 二回目さん(No.4) 
出版社から返信がありましたので追記します。
この問題はプログラミングではなくアルゴリズムに近いのでfor文内の変数の値が
ループを抜けたときにどうなっているのかは不明であるため、
参考書の解説が間違っていたとのことでした。

guestさんご助言ありがとうございました!
2020.09.30 09:16
guestさん(No.5) 
AP シルバーマイスター
そうでしたか!
ドキドキから解放されました(笑
ご報告ありがとうございました!
2020.09.30 14:43

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop