重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

プログラム中に次の複合判定がある。

条件1 OR (条件2 AND 条件3)

判定条件網羅(分岐網羅)に基づいてテストする場合、
追加するテスト項目として適切なものは、どれか。

[終了したテスト項目]
(1)条件1が真、条件2が偽、条件3が偽
(2)条件1が偽、条件2が真、条件3が真

正解:ア

解説には下記の内容が記載されています。

(1)条件1が真、条件2が偽、条件3が偽を条件式に当て嵌めます。
真OR(偽AND偽)=真OR(偽)=真
(2)条件1が偽、条件2が真、条件3が真を条件式に当て嵌めます。
偽OR(真AND真)=偽OR(真)=真

しかしその条件式が読めません。
何故、真OR(偽AND偽)=真OR(偽)=真に、
偽OR(真AND真)=偽OR(真)=真になるのですか。
真OR(偽)=真OR偽で、偽OR(真)=真OR偽ではないのですか。

お手数お掛けしますが、ご存知の方おられましたら、ご教授お願いします。

以上、よろしくお願い致します。

「「判定条件網羅(分岐網羅)」について」の質問画像

A 回答 (4件)

もう一回、もしかしてORとANDをあやふやにしか理解していないかな?


真とか偽と書くのが面倒なので0と1で表現させてね。

ANDの場合
0 AND 0=0
1 AND 0=0
0 AND 1=0
1 AND 1=1

ORの場合
0 OR 0=0
1 OR 0=1
0 OR 1=1
1 OR 1=1

論理式の基本、昔はリレー回路(知らないだろうなあ)で組合わせたときに、AのリレーとBのリレー両方がONにならないとスイッチが入らないようにしたものがAND回路で、どちらかがONになればスイッチが入るようにしたものがOR回路だったわけ。これでしっかり理解してください。
これからもっと面倒なXORやNANDなんて七面倒な論理式も出てくるからね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

「0・1」を当て嵌めてみて分かりました。

>(1)条件1が真、条件2が偽、条件3が偽を条件式に当て嵌めます。
>真OR(偽AND偽)=真OR(偽)=真
1 OR ( 0 AND 0 ) = 1 OR ( 0 ) = 1
>(2)条件1が偽、条件2が真、条件3が真を条件式に当て嵌めます。
>偽OR(真AND真)=偽OR(真)=真
0 OR ( 1 AND 1 ) = 0 OR ( 1 ) = 1

双方1(真)になりました。
OR回路(AND回路)での考えと言うのが頭から抜けていました。
最終的に「真」か「偽」にならなければいけないんですよね。

以上、ありがとうございました。

お礼日時:2010/12/13 18:49

>何故、真OR(偽AND偽)=真OR(偽)=真に、


>偽OR(真AND真)=偽OR(真)=真になるのですか。

(偽AND偽)の全体の真偽値が(偽)にまとめられ,
(真AND真)の全体の真偽値が(真)にまとめられることは
疑問なくスルーしている=お分かりになっているようなのに,

>真OR(偽)=真OR偽で、偽OR(真)=真OR偽ではないのですか。

真OR(偽)の全体の真偽値が(真)にまとめられ,
偽OR(真)の全体の真偽値も(真)にまとめられることが分からず,
「真OR偽ではないのですか?」と質問なさる理由が解せません。

質問者は,前者をどのように理解なさっているのでしょう?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

下記の考え方が頭から抜けていました。

「真」OR「真」=「真」
「真」OR「偽」=「真」
「偽」OR「真」=「真」
「偽」OR「偽」=「偽」

つまり上記の考え方で既に終えている項目の双方が「真」になるので、
結果が「偽」となる答えを探さなければいけないんですね。

指摘して頂いて変な質問をしていることに気付きました。

以上、ありがとうございました。

お礼日時:2010/12/13 19:01

実際手で計算をしてみると良いのかなと。



(1)の場合 条件1が真で 条件2と条件3の結果が真ですから 結果は真
(2)の場合 条件1が偽で 条件2と条件3の結果が真ですから 結果は真

そうなると条件2と条件3の結果を偽にしたテストが欲しいですよね。よって、条件2と条件3に偽になる結果が欲しいわけで。結果が偽になるのはマス目の条件から(ア)しかないということになります。
これでいいかな?

ついでに書いておくと
(イ)1が真 2と3の結果が偽 なので結果は真
(ウ)1が真 2と3の結果が偽 なので結果は真
(エ)1が真 2と3の結果が真 なので結果は真

1の条件が偽なのは(ア)しかない。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

「OR」の考え方を間違えていました。
「真OR(偽)=真」、「偽OR(真)=真」ですね。

そうすると追加しなければいけない項目が分かります。
既に終えている項目が双方「真」なので、「偽」を探すのですね。

すると正解が「ア」になる訳ですね。

以上、ありがとうございました。

お礼日時:2010/12/13 19:06

>真OR(偽)=真OR偽で、偽OR(真)=真OR偽ではないのですか。



そのとおり。
では「真OR偽」の値はなにかといえば、論理演算の基本から「真」。

すでにtrueのときのテストは行っているから、falseの場合をテストする必要があるので、(ア)。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

論理演算の考え方が頭から抜けておりました。

既に「真」となる項目を終えている為、
値が「偽」となる項目を探さなければいけないんですね。

以上、ありがとうございました。

お礼日時:2010/12/13 19:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!