平成30年春期午後問13 設問2のdについて
ネコババさん
(No.1)
https://www.fe-siken.com/kakomon/30_haru/pm13.html
お聞きしたいことが二つあります。
➀マクロの6行目(dに関する部分)が"否定"でない場合は、選択肢"イ"でもこのマクロは正しく動きますか?
②同じ6行目の部分について、問題文の通りに動かすためには"否定"を必ず使わなければいけないのでしょうか?
それともただ単にややこしくしたかっただけなのでしょうか。
よろしくお願いします。
お聞きしたいことが二つあります。
➀マクロの6行目(dに関する部分)が"否定"でない場合は、選択肢"イ"でもこのマクロは正しく動きますか?
②同じ6行目の部分について、問題文の通りに動かすためには"否定"を必ず使わなければいけないのでしょうか?
それともただ単にややこしくしたかっただけなのでしょうか。
よろしくお願いします。
2021.10.22 10:20
KanaSatoさん
(No.2)
この回答は、トレースは一切しておりませんので、厳密な意味で動く動かないというのはわかりかねることをご承知ください。
----
▲否定( d )
┃・ e ←'否'
▼
の選択肢dについてお伺いと存じます。
ここでコードをわかりやすくする観点から、「予約リスト!C2:C10000,J,1」(最初の表引き関数の第1引数)をX、「予約リスト!D2:D10000,J,1」(2個目の表引き関数の第1引数)をYとすると、正解の選択肢は、「論理和(表引き(X)≧C19,表引き(Y)≦B19)」でした。
ド・モルガンの定理を使って式を変形すると、
否定(論理和(表引き(X)≧C19, 表引き(Y)≦B19))
=論理積(否定(表引き(X)≧C19), 否定(表引き(Y)≦B19))
=論理積(表引き(X)<C19), 表引き(Y)>B19)
大事なのは等号付き不等号の式を否定すると、等号が消えてしまうという点です。
選択肢イは変形後の形によく似てはいますが、等号がついています。そのため、表引き(X) = C19 AND 表引き(Y) = B19の時の処理が、変わってしまいます。
----
については、「正しく動きません」
については、そのようなことはありませんし、式が煩雑になるだけなので、ややこしくしたかっただけかもしれません。
----
▲否定( d )
┃・ e ←'否'
▼
の選択肢dについてお伺いと存じます。
ここでコードをわかりやすくする観点から、「予約リスト!C2:C10000,J,1」(最初の表引き関数の第1引数)をX、「予約リスト!D2:D10000,J,1」(2個目の表引き関数の第1引数)をYとすると、正解の選択肢は、「論理和(表引き(X)≧C19,表引き(Y)≦B19)」でした。
ド・モルガンの定理を使って式を変形すると、
否定(論理和(表引き(X)≧C19, 表引き(Y)≦B19))
=論理積(否定(表引き(X)≧C19), 否定(表引き(Y)≦B19))
=論理積(表引き(X)<C19), 表引き(Y)>B19)
大事なのは等号付き不等号の式を否定すると、等号が消えてしまうという点です。
選択肢イは変形後の形によく似てはいますが、等号がついています。そのため、表引き(X) = C19 AND 表引き(Y) = B19の時の処理が、変わってしまいます。
----
>マクロの6行目(dに関する部分)が"否定"でない場合は、選択肢"イ"でもこのマクロは正しく動きますか?
については、「正しく動きません」
>同じ6行目の部分について、問題文の通りに動かすためには"否定"を必ず使わなければいけないのでしょうか?
については、そのようなことはありませんし、式が煩雑になるだけなので、ややこしくしたかっただけかもしれません。
2021.10.22 11:00
ネコババさん
(No.3)
非常に丁寧でわかりやすい解説をありがとうございました。
おかげで納得することができました。
おかげで納得することができました。
2021.10.22 11:42
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告