平成29年春アルゴリズムについて

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
さかなさん  
(No.1)
設問1のaの答えがpFixed[j]=false のときに真となる条件式、すなわち not(pFixed[j]) が入ります。とあるのですが、pFixed[j]=falseのものが入ることはわかるのですが、それがなぜnot(pFixed[j])と表すことができるのかがわからないのでよろしければ教えていただきたいです。よろしくお願いいたします。
2021.03.21 22:29
さん 
(No.2)
上手いこと伝えることが出来るか不安ですが頑張ります。
not(pFixed[j])ということは、pFixed[j]にfalseが入っているとき、falseのnotを取るのでtrueとなります。falseが0ならtrueは1です。0が偽、1が真です。
つまり、pFixed[j]にfalseが入っているときのプログラムの15,16,17行目で例えるなら、

▲not(pFixed[j])
|・break

となっていて、pFixed[j]にfalseが入っているので、それのnotを取り、trueとなり、条件式の中のbreak命令を実行します。
((条件式とは”▲”のこと。
                |
                ▼

説明が下手ですみません、理解していただけると幸いです。。。
2021.03.22 02:18
さん 
(No.3)
結論、falseのnotはtureです。
2021.03.22 02:24
さかなさん  
(No.4)
お返事遅れて申し訳ありません。
回答ありがとうございます!
もう一つ質問させてください!

私がこの問題でわからない点というのが、not(pFixed[j])だったらループを抜けるというところです。pFixed[j]の否定をすることでpFixed[j]がtrueであればfalseになり、falseだったらtrueになるためどっちにも取れてしまうのではないかと考えてしまって理解ができていません。
お忙しいとは思いますが、よければ教えていただきたいです!
2021.03.24 17:06
さん 
(No.5)
返信に気づけなくて申し訳ないです!この文を見ていられら幸いです!また伝わるか不安ですが頑張ります。
まずプログラム文の6~10行目を見てください。ここで問題の例えを使って説明しますと、nPointには"7"が入っており、6~10行目のループ文の条件文(プログラム6行目)にて、i=0,i<nPoint,1 と書かれています。つまり、iが0でスタートしてiが6になるまでプログラム7~9の処理を実行します。次にさかなさんが、最も気になるところについて触れますがプログラム9行目をみてください。ここでpFixed[i]←false と書かれています。ここで何をしているかというと、ループ文の中にはいっているので、pFixedという配列の配列番号0~6にfalseをいれています。簡単に言うと、初期化としてfalseを入れています。
  そして、そのままプログラム12行目のループ文に入ります。ここでは1回目の処理しか書かないですが、理解していただけると幸いです
12行目では、trueなので真となり、ループ文の中に入ります。
13行目では、iに0をいれます。
14行目では、ループ文の条件式が書かれています  i<nPointとなっており、現時点ではiに0が入っているので0(i)<7(nPoint)となり、この条件式が成立するのでループ文の中に入ります。
15行目では、not(pFixed[i])となっており、つまり現時点で、iには0が入っているので、pFixedという配列の配列番号0番目の要素を見ます。pFixedという配列の配列番号0番目の要素は冒頭でも紹介したようにfalseがはいっているので、falseのnotをとりtrueとなるので、プログラム16行目を実行しbreakします。


処理1回目しか紹介できなくて、すみません。。。あと説明が下手ですみません。。伝わっていただければ嬉しいです!勉強頑張ってください!
2021.03.27 15:56
さん 
(No.6)
簡略化して説明しますと、仮にiに0が入っているときに、プログラム15行目のプログラムは”not(pFixed[0])となります。そしてpFixedの配列番号0にはfalseが入っているので、trueとなります。このtrueのやっていることは、プログラム12行目のtrueと一緒です
2021.03.27 15:59

返信投稿用フォーム

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

その他のスレッド


Pagetop