平成26年春期  午後問13

miniさん
(No.1)
https://www.fe-siken.com/kakomon/26_haru/pm13.html

マクロの問題について教えてください。
previousvalueというのが何者なのか、全然分かりません。そのためなのか、ブランクeやfが何をしているのか全く見えてきません。
考え方やプログラムの解読のコツを教えていただきたいです。
2020.09.05 17:07
助け人さん
(No.2)
この投稿は投稿者により削除されました。(2020.09.05 19:21)
2020.09.05 19:21
助け人さん
(No.3)
previousValueを日本語訳すると「以前の値」ですが、このような変数名を日本語訳できると若干アドバンテージがありますが、それはさておき。

previousValue、空欄e、空欄fについて抜き出すと、
①previousValueに初期値0を代入
②相対(I1, minID, 0)とpreviousValueが等しくなければ、KがminMultiplicity以上のときだけ空欄eを処理、さらに、Kに1を代入するとともに、previousValueに相対(I1, minID, 0)を代入
③相対(I1, minID, 0)とpreviousValueが等しければ、空欄fを処理

ここで、相対(I1, minID, 0)は評価値の最小値であり、Kは代入先の相対(提供リスト!A1,J,3)である多重度であり、minMultiplicityは表示する多重度の下限値です。

相対(I1, minID, 0)とpreviousValueが等しくないかどうかで②か③に分かれ、②ではKつまり多重度に1を代入、③では空欄fでKをどうにかするはずだと想像でき、肝心のpreviousValueは、今までの評価値であろうと分かります。

そうすると、②では今までの評価値とは違う新たな評価値を見つけたからKに1を代入ということになるし、③では今までの評価値と同じだったから空欄fはKに1を加算するケが正解と分かります。

空欄eは、②のときで、Kつまり多重度が、minMultiplicityつまり表示する多重度の下限値以上ならやることで、以上でなければやらないことですから、提供リストに格納する行を1行下げる、つまり、Jに1を加算するオが正解と分かります。

最後に、別スレッド
H26年春期午後問13設問2について[0792]
https://www.fe-siken.com/bbs/0792.html
も参考にどうぞ。通りすがりの者は、私の旧名です。
2020.09.05 19:23
miniさん
(No.4)
10回くらい読み直させていただいて、やっと理解できました。
ありがとうございました。

2020.09.05 20:07
助け人さん
(No.5)
今まで「わかりやすかった」と言われたことはあっても、「10回読んでやっとわかった」と言われたことは初めてです。わかりにくかったのでしょうか?

「ここのこういうところがわからない」という質問なら、そこに焦点を当てて詳しく説明できるのですが、「previousValueと空欄eと空蘭fが全然わからない」とか「考え方やコツを」ということでしたので、previousValueと空欄eと空蘭fに限定し、プログラムの構造を俯瞰的に見た攻略法(一部、推測や想像を使って)を書いたつもりでした。
2020.09.05 21:01

返信投稿用フォーム

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

その他のスレッド


Pagetop