【C言語】OR回路の真理値表を表示するプログラム

はじめに

どうも! 高杉 皆為(@MinatameT)です。

今回は、OR回路(OR演算)の真理値表を表示するプログラムを紹介します。

条件文を用いる方法と、ビット演算子で計算する方法の2つのやり方を紹介します。

条件文バージョン

OR演算の方法 その1

配列、掛け算、割り算を使わずに、ループ文と条件文でその都度判定させていきます。

決してスマートな方法ではありませんが、わかりやすい方法だと思います。他にもやり方はありますので、これは解答例の1つだと認識してください。

ソースコード

#include<stdio.h>

int main(void)
{
  int a,b,x;

  printf("OR回路の真理値表(入力:A、B 出力:X)\n");
  printf("A B X\n");
  printf("------\n");
  for(a=0; a<=1; a=a+1)
  {
    for(b=0; b<=1; b=b+1)
    {
      if(a==0 && b==0) //aもbも0のとき
      {
        x = 0;
      }
      else //上記の条件を満たさなければ
      {
        x = 1;
      }
        printf("%d %d %d\n",a,b,x);
    }
  }

  return(0);
}

2重ループ(for文)がありますが、これによって以下の順番で出力できます。

  1. A = 0、B = 0のとき
  2. A = 0、B = 1のとき
  3. A = 1、B = 0のとき
  4. A = 1、B = 1のとき

それでは、実行結果を確認していきます。

実行結果

OR回路の真理値表(入力:A、B 出力:X)
A B X
------
0 0 0
0 1 1
1 0 1
1 1 1

OR回路の真理値表が正しく表示されていますね!

ビット演算子バージョン

OR演算の方法 その2

こちらの方法では「|」を用いて、スマートにOR演算をしています。

ソースコード

#include<stdio.h>

int main(void)
{
  int a,b,x;

  printf("OR回路の真理値表(入力:A、B 出力:X)\n");
  printf("A B X\n");
  printf("------\n");
  for(a=0; a<=1; a=a+1)
  {
    for(b=0; b<=1; b=b+1)
    {
      x = a | b; //OR演算
      printf("%d %d %d\n",a,b,x);
    }
  }

  return(0);
}

実行結果

OR回路の真理値表(入力:A、B 出力:X)
A B X
------
0 0 0
0 1 1
1 0 1
1 1 1

OR回路の真理値表が正しく表示されていますね!

なお、AND回路の真理値表の表示方法は、以下の記事で紹介してあります。

今回はここまでです。皆さん、お疲れ様でした。


 

みなためじゃんけん

 

このコーナーは、私と擬似的にじゃんけんできるコーナーです。

みなためじゃんけん、じゃんけんぽん!

 

私が出したのは……





 

チョキでした! グーの勝利です!



この記事をSNSでシェアする

プログラミングカテゴリーの最新記事(5件)

最新記事(10件)

管理人のTwitter

内部リンク集