- ベストアンサー
ソフトウェア開発過去問で理解できない所、教えてください!
こんにちは。 20日のソフ開を受験するため、今過去問を見直しているのですが、 二問問題集を読んでも分からない問題がありました。 一つは、平成18年度秋期午前問題問16で、 フリップフロップの問題です。 下のURLに問題が載っています。 http://www.k4.dion.ne.jp/~type_f/SW_18A_AM/SW_18A_AM_16.html 二つ目は、平成18年春期午前問題問15で、 決定表の問題です。 ネットで、見易い問題を探せませんでした。申し訳ありません。 どちらかでも、もちろん片方だけでもかまいませんので、 詳しく説明を頂けると有り難いです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
平成18年春期午前問15,決定表の問題。選択肢イについて解説します。 問題文は ANo.2 に載せたURLを参照。 レコードを繰り返し読みながら,条件式による判定を行い,各レコードに対応する動作を決定するプログラムを想定する。 イ)あるレコードにおける条件式の評価結果が次のようである場合, 条件1=N,条件2=Y,条件3=N イ-a)プログラム内の条件式の検査順序が,条件1→条件2→条件3,であるなら, 条件1=N → 条件2=Y なので(選択肢イのイラストの右から2列目のとおり,条件3の判定はなしで)「動作3」の実行が決定する。 イ-b)プログラム内の条件式の検査順序が,条件1→条件3→条件2,であるなら, 条件1=N → 条件3=N なので(選択肢イのイラストの最右列のとおり,条件2の判定はなしで)「動作1と動作3」の実行が決定する。 以上,条件式の検査順序の違いによって,同一レコードであっても動作が異なる例を示しました。 -------- ウとエも同様に各イラストの,右から2列目と最右列に着目してください。 ウは,条件1=N,条件2=Y,条件3=N,条件3=N エは,条件1=N,条件2=Y,条件3=Y というレコードにおいて,イと同様の理由により,検査順序の違いで異なる動作となることが確認できるでしょう。
その他の回答 (5)
- flextime
- ベストアンサー率45% (31/68)
平成18年秋期ソフトウェア技術者の午前問題 問16のフリップフロップの問題ですが、質問にあったページ(URL http://www.k4.dion.ne.jp/~type_f/SW_18A_AM/SW_18A_AM_16.html)の解説を修正しました。わかりやすくなったでしょうか? また、AND、ORなどの倫理演算のについては平成19年春季基本情報技術者の午前の 問17(URL http://www.k4.dion.ne.jp/~type_f/FE_19S_AM/FE_19S_AM_17.html)を参考にしてください。
お礼
回答ありがとうございます。 サイトの管理者の方でしたか! これはこれは、、、いつもお世話になっております。 解説の修正、ありがとうございます。 なんとか今回質問したことは、疑問が解消されました。 また、教えて頂いたURLを見て、頭を整理し直しました。 どうもありがとうございました(><)
補足
最後になりますが、解決したのでそろそろ質問を締めようと思います。 この場を借りて、皆さんお忙しい中回答をしていただき、 ほんとうにありがとうございました。 ありがとうポイントは、本当は皆さんにお付けしたかったのですが、 二人だけということですので、悩みます。。 本番は明後日ですので、もしかするとまた質問するかもしれません。 (さすがに直前になっての質問はなるべく避けたいところではありますが。。) 本当にどうもありがとうございました。試験頑張ります!
- _backyarD
- ベストアンサー率34% (199/580)
NO.3の補足を読みました。 AND演算は、「0がどちらかに1つでもあると、結果は0」ですよ。従って、「1 AND 0 = 0」です。Sが0、Yが1になると、S AND Y はゼロ。そうすると、Xのところには、ゼロをNOTでひっくり返した1が届きます。 そうすると、次はX AND R。これは 1 AND 1 で1です(AND演算で結果が1になるのは、両方が1の時だけ)。すると、Yには1がNOTでひっくり返った0が届きます。 すると、次。Yがゼロになるので、S AND Yは 0 AND 0 = 0。Xには、またゼロをひっくり返した1が届きます。そうすると後は繰り返しですね。 回路に電気が流れ続ける間、同じ演算がひたすら繰り返されます。 こうして繰り返しになる(何度ぐるぐる回っても同じ状態になる)ということは、この回路がこの状態を維持しているということになります。すなわち、これは「回路が状態や値を記憶している」ということで、それはコンピュータの世界で言う「メモリ」の役割です。そう、フリップフロップってのはメモリ回路そのものなんですよ。 おそらくあなたの問題は、「ANDやORの演算を理解できていない」ことにあります。まずはそこをきっちり押さえましょう。また、「なんで 0 AND 1がゼロなのか判らない!」と思うのなら、それは「そういう決まり」と割り切って覚えてしまいましょう。「1×1が1になる理由」と同じように、人間が決めたルールです。もちろんルールを変えれば計算結果も変わりますが、今は、決められたルールで動く回路を前提に話をしているので、そこを否定したら何もできなくなります。まずはそこから。
お礼
回答ありがとうございます! なんとか、理解することができました。 ORとANDの演算を、間違って計算していました。 もう時間もないので、そろそろ頭の中を整理して 最後の追い込みに入ろうかと思います。 詳しく説明いただき、本当にありがとうございました!
- ymmasayan
- ベストアンサー率30% (2593/8599)
追い込みのようですので少し親切かつ簡潔に。 1.図の中に信号変化を書き入れていくのがコツです。 まず S=1、R=1、X=0、Y=1を書き入れます。 ここでS=0になります。 S=10、S AND Y =0になるので X=01 R AND X =1 ですから Y=10 に変わります。 次にS=1になると S AND Y =0 のままですのでX=011、 R AND X =1 のままですから Y=100のままです。 従ってX=1、Y=0が答えです。 2.既に解説のURLが紹介されています。これは正しいのですが。 別の角度から見て、イに着目してください。 右の2列の条件3つの組み合わせは本来 NYY,NYN,NNY,NNNの4つです。 3列目は前の2個に該当し、4列目は2個目と4個目に該当しています。 つまり2個目はダブっていることが判ります。 今は3列目で当たるわけですが、3列目と4列目を入換えると元の4列目で当たってしまいます。 原因は途中に「-」が使われていることにあります。 他の表をチェックしてみるとアが正解であることがわかります。
お礼
回答ありがとうございます。 実は、、丁寧に回答してくださったのに、まだ理解できていません。 補足に疑問点を書いたので、教えてくださるとありがたいです。
補足
すみません。この回答と問題集、ネットを目の前にして一時間ほど悩んでいますが、どうしてもわかりません。フリップフロップを考える下地が全く出来ていないようです。。。 最初は、このような状態ですよね? S(1)-X(0) R(1)-Y(1) それが、S(1)→S(0)に変化すると、S AND Yがなぜ0になるのでしょうか? ★S(0) AND Y(1)は、AND計算で1になると思ってしまって、、、すみません。 ここを飛ばして、S AND Y=0としたとき、NOT回路が入るからX(0)→X(1)になるのですね。。。? Xが導きだせたら、X(1) AND R(1) が1になって、NOT回路が入るからY1(1)→Y(0)でしょうか。。。 それでもって、またS(0)→S(1)に変化するので、ここでまた同じパターンで分からなくなります。 ★S(1) AND Y(0)=1になるかと思いきや、0になると。。。 ★のついた箇所が解決すれば、なんとか分かるような気がするのです。 お手数ですが、再度補足をお願いします。 決定表の問題については、今から挑戦してみますね!
- jjon-com
- ベストアンサー率61% (1599/2592)
キーワード「決定表 ソフトウェア開発 18年 春 問15」でGoogle検索して3番目にヒットしたのがこちら。 http://www.melma.com/backnumber_189_3573131/
お礼
回答ありがとうございます。 こちらも、、、実はまだ解決していません。 補足に分からないところを書くので、説明をいただけるとありがたいです。
補足
決定表ですが、私が理解しているのはこのレベルまでです。 http://www.shunzei.com/lecture/words/decision_table.html リンク先を見ました。 > (Y,Y,Y,Y)が動作1。 > > (Y,N,Y,Y)、(Y,N,Y,N)、(Y,N,N,Y)、 > (Y,N,N,N)が動作2。 > > (N,Y,Y,Y)、(N,Y,Y,N)、(N,Y,N,Y)、 > (N,Y,N,N)が動作3。 > > (N,Y,N,Y)、(N,N,N,Y)、(N,Y,N,N)、 > (N,N,N,N)が動作1と3。 > > 上記を見て気づかれたと思いますが、条件の組み合わせは、互いに交 > わりがありません。 > このような場合、条件を検査する順番をどのように変えても、動作は > 一意に決定します。 とありました。 動作1は、縦に見て全てうまっているから変更のしようがない。? 動作2、'-'が二カ所あるので、YとNを当てはめると4パターンということでしょうか? 動作3も同じ考え方ですかねぇ。。 しかし、動作1と3の説明に入ると、、、お手上げです。 理解までに時間がかかるかもしれませんが、教えてくださったことをもとに一生懸命考える気持ちでおりますので、教えて頂けるとありがたいです。
- _backyarD
- ベストアンサー率34% (199/580)
FF(フリップフロップ)の問題見ましたが、下に書いてある解説で判らないということは...ANDとかORとかの論理演算そのものが判らないとか、でしょうか? ポイントは、XとYがそれぞれ0、1ということは、そこからそれぞれSやRにつながっている線も0、1になっているということ。その戻った線とSやRの入力をAND演算した結果が、またXやYに流れて出力値が決まる、という「出力が戻ってきて入力に入る」という点を理解できれば、あとは機械的に「こっちが1で、ここがゼロで...」とやっていくだけなんですが。 どの辺が判らないかをもう少し詳しく書かれると良いかも知れません。
お礼
回答ありがとうございます。 実は、、丁寧に回答してくださったのに、まだ理解できていません。 一応他の問題は、AND,OR,NAND,NOR,等々比較的解けるのですが、 このFFの考え方がさっぱり理解できず、困っています。 三番目に回答してくださった方の補足に疑問を加えましたので、 教えてくださると有り難いです。
補足
!!!!!!!!!!!!!!!!!!!!!!!!!!!! 一番目に回答してくださった方、三番目に回答してくださった方! すみません。なぜかおもいっきり勘違いをしていました! 1 OR 1=1, 1 OR 0 =1, 0 OR 1=1, 0 OR 0=0ですね! 1 AND 1=1, 1 AND 0 =0, 0 AND 1=0, 0 AND 0 = 0ですね! 申し訳なかったです(><)
お礼
回答ありがとうございます! やっと・・・、分かったような気がします。 各決定表を見て、今回条件に変更のある右2列を見て、 その二列を被せて考えるのですね! だから、イはNYN、ウはNYNN、エはNYYを見ると。。 それで、判定順序を並び替えて動作を見てみる。。。と。 まだ、完全に理解したとは到底言えないレベルだとは思いますが、 少なくともこの問題に関しては、分かったような気がします。 どうもありがとうございました!