中小企業診断士 過去問
平成27年度(2015年)
問165 (経営情報システム 問5)
問題文
業務において条件に応じた処理を行う必要がある場合、条件を一覧表にして判定条件を検討することがある。
例えば、下記の表のように、項目A〜Cには商品の色が赤の場合は r が、緑の場合は g が入り、A〜C に入っている商品の色を判定して、Z欄に示す結果となるような判定を行う場合を考える。
判定には、以下の構文のIF文を用いて判定式を表記する。
IF(条件式、判定が真の場合の処理、判定が偽の場合の処理)
ただし、IF文の判定が真または偽の場合の処理部分にはIF文のネストが許可される。また、条件式で文字列を表す場合は ”” の記号で囲み、等しくないことは<>で表す。
下記の解答群に示す判定式の中で、正しくない判定結果となるものはどれか。
例えば、下記の表のように、項目A〜Cには商品の色が赤の場合は r が、緑の場合は g が入り、A〜C に入っている商品の色を判定して、Z欄に示す結果となるような判定を行う場合を考える。
判定には、以下の構文のIF文を用いて判定式を表記する。
IF(条件式、判定が真の場合の処理、判定が偽の場合の処理)
ただし、IF文の判定が真または偽の場合の処理部分にはIF文のネストが許可される。また、条件式で文字列を表す場合は ”” の記号で囲み、等しくないことは<>で表す。
下記の解答群に示す判定式の中で、正しくない判定結果となるものはどれか。
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
反映中…
中小企業診断士試験 平成27年度(2015年) 問165(経営情報システム 問5) (訂正依頼・報告はこちら) (新しいタブで開く)
業務において条件に応じた処理を行う必要がある場合、条件を一覧表にして判定条件を検討することがある。
例えば、下記の表のように、項目A〜Cには商品の色が赤の場合は r が、緑の場合は g が入り、A〜C に入っている商品の色を判定して、Z欄に示す結果となるような判定を行う場合を考える。
判定には、以下の構文のIF文を用いて判定式を表記する。
IF(条件式、判定が真の場合の処理、判定が偽の場合の処理)
ただし、IF文の判定が真または偽の場合の処理部分にはIF文のネストが許可される。また、条件式で文字列を表す場合は ”” の記号で囲み、等しくないことは<>で表す。
下記の解答群に示す判定式の中で、正しくない判定結果となるものはどれか。
例えば、下記の表のように、項目A〜Cには商品の色が赤の場合は r が、緑の場合は g が入り、A〜C に入っている商品の色を判定して、Z欄に示す結果となるような判定を行う場合を考える。
判定には、以下の構文のIF文を用いて判定式を表記する。
IF(条件式、判定が真の場合の処理、判定が偽の場合の処理)
ただし、IF文の判定が真または偽の場合の処理部分にはIF文のネストが許可される。また、条件式で文字列を表す場合は ”” の記号で囲み、等しくないことは<>で表す。
下記の解答群に示す判定式の中で、正しくない判定結果となるものはどれか。
横にスクロールして続きを読む(本文にフォーカスして左右キー)。
- IF(A=”g”,IF(B<>”g”,1,IF(C<>”g”,1,0)),1)
- IF(A=”r”,1,IF(B=”r”,1,IF(C=”r”,1,0)))
- IF(A<>”g”,1,IF(B=”r”,1,IF(C<>”g”,1,0)))
- IF(A<>”r”,IF(B=”g”,1,IF(C<>”g”,1,0)),1)
正解!素晴らしいです
残念...
画像拡大
この過去問の解説 (3件)
01
正解は、
「IF(A<>”r”,IF(B=”g”,1,IF(C<>”g”,1,0)),1)」
です。
【基礎知識】
当問題ではIF文の使い方と表から条件を設定する力が問われています。
IF文は条件によって、正の場合の処理、誤の場合の処理を行うためのものです。
構文は以下のようになります。
IF(条件,正の場合の処理,誤の場合の処理)
例えば、Aが1の場合に0、そうでなければ1を返すようなIF文は以下のようになります。
IF( A=1 , 0 , 1)
ここで1が数値の場合は上記の表現でいいですが、文字列の場合は“”で挟んで“1”と表現します。
また、Aが1の場合に0、そうでない場合にAが2の場合に2、そうでない場合に1を返すようなIF文を考えます。
IF(A=1,0,IF(A=2,2,1))
上記のようにIF文の中に、さらに条件分岐を作ってIF文を入れることをネストと言います。
次に表から、どういった条件を設定すべきかを考えます。
A、B、Cのどれか1つ以上がrであれば、1、すべてgの場合は0が返っていることがわかります。
正しい。ネスト条件です。
まずAがgかどうかをチェックし、gであれば、次にBがgでないことをチェックしています。gでなければ(つまりrであれば)1、gであれば次にCがgでないかをチェックしています。gでなければ(つまりrであれば)1、gであれば0を返していますので、正しいです。
正しい。1の式と同様ですが、1はgでないかをチェックしていましたが、こちらはrかどうかをチェックしています。
正しい。Aがgでないかをチェックし、gでなければ(A=r)1、そうでなければBがrかどうかをチェックし、rであれば、1、そうでなければCがgでないことをチェックしています。
誤り。Aがrでないかをチェックし、rでなければ1を返す構文となっており、誤っています。
参考になった数31
この解説の修正を提案する (新しいタブで開く)
02
IF(条件式、真の場合、偽の場合)で判定します。
赤、緑、赤でない、緑でないにそれぞれYES、NOを当てはめます。
A、B、Cを判定すると、表の値として4が不適切となります。
参考になった数25
この解説の修正を提案する (新しいタブで開く)
03
正しくない判定結果となるものは「IF(A<>”r”,IF(B=”g”,1,IF(C<>”g”,1,0)),1)」です。
この問題では、A・B・Cに入る色を調べて、次の条件で判定します。
A・B・Cのどれか1つでも赤(r)なら、Z=1
A・B・Cがすべて緑(g)なら、Z=0
IF文は、条件が成り立つ場合と成り立たない場合で、処理を分ける仕組みです。
また、IF文の中に別のIF文を入れることをネストといいます。
この判定式は適切です。
最初にAが緑(g)かどうかを調べます。
Aが赤(r)なら、その時点で「1」を返します。
Aが緑(g)の場合は、Bが緑以外、つまり赤(r)かどうかを調べます。
Bが赤(r)なら「1」を返し、Bも緑(g)ならCを調べます。
Cが赤(r)なら「1」、緑(g)なら「0」を返します。
つまり、A・B・Cがすべて緑の場合だけ「0」になり、それ以外は「1」となるため、正しい判定ができます。
この判定式は適切です。
最初にAが赤(r)かどうかを調べ、赤なら「1」を返します。
Aが緑(g)ならBを調べ、Bが赤(r)なら「1」を返します。
AとBがどちらも緑(g)ならCを調べ、Cが赤(r)なら「1」、緑(g)なら「0」を返します。
この式は、A・B・Cのどれかに赤が含まれているかを順番に確認する仕組みです。
したがって、問題の条件と一致しています。
この判定式は適切です。
「<>」は、等しくないことを表します。
A<>”g”は「Aが緑(g)ではない」という意味です。
この問題では赤(r)と緑(g)の2種類しかないため、緑でなければ赤になります。
最初にAが赤(r)なら「1」を返します。
Aが緑(g)ならBを調べ、Bが赤(r)なら「1」を返します。
Bも緑(g)ならCを調べ、Cが緑以外、つまり赤(r)なら「1」、緑(g)なら「0」を返します。
したがって、すべて緑の場合だけ「0」になり、それ以外は「1」となるため、正しい判定ができます。
この判定式は不適切です。
最初にAが赤(r)ではないかどうかを調べます。
Aが赤(r)なら「1」を返しますが、Aが緑(g)の場合はBを調べます。
ここで、Bが緑(g)なら「1」を返してしまうことが問題です。
例えば、A・B・Cがすべて緑(g)の場合、本来は「0」になるはずです。
しかし、この式ではAが緑(g)で、Bも緑(g)なので「1」を返してしまいます。
また、Aが緑(g)、Bが赤(r)、Cが緑(g)の場合も、本来は「1」ですが、この式では「0」になります。
したがって、問題の条件と異なる判定結果が出るため、この式が不適切です。
この問題では、IF文の条件を順番に確認し、正しい結果が返されるかを判断することが重要です。
IF文:条件が真の場合と偽の場合で、異なる処理を行います。
ネスト:IF文の中に別のIF文を入れて、複数の条件を順番に判定します。
=:左右の値が等しいことを表します。
<>:左右の値が等しくないことを表します。
今回の判定条件は、1つでも赤(r)があれば「1」、すべて緑(g)なら「0」です。
IF文が複雑な場合は、A・B・Cがすべて緑の場合など、結果が分かりやすい組み合わせを当てはめて確認すると、誤った判定式を見つけやすくなります。
参考になった数0
この解説の修正を提案する (新しいタブで開く)
前の問題(問164)へ
平成27年度(2015年) 問題一覧
次の問題(問166)へ