zoukankan      html  css  js  c++  java
  • 构造命题公式的真值表--biaobiao88

    对给出的任意一个命题公式(不超过四个命题变元),使学生会用C语言的程序编程表示出来,并且能够计算它在各组真值指派下所应有的真值,画出其真值表。

    #include<iostream>
    using namespace std;
    struct
    {
        int p[4] = {1,1,0,0};
        int q[4] = {1,0,1,0};
    }m;
    
    int main()
    {
        cout << "    p:";
        for(int i = 0;i < 4;i++)
            cout << m.p[i] << "       ";
        cout << endl;
        cout << "    q:";
        for(int i = 0;i < 4;i++)
            cout << m.q[i] << "       ";
        cout << endl;
        //非p
        cout << "  非p:";
        int copyp[4];
        int k = 0;
        int feip[k];
        for(int i = 0;i < 4;i++)
            copyp[i] = m.p[i];
        for(int i = 0;i < 4;i++)
        {
            if(copyp[i] == 0)
                copyp[i] = 1;
            else
                copyp[i] = 0;
        }
        for(int i = 0;i < 4;i++)
        {
            feip[i] = copyp[i];
            cout << copyp[i] << "       "; 
        }
        cout << endl;
        //p交q
        cout << "p合取q:";
        for(int i = 0;i < 4;i++)
        {
            if(m.p[i] == 0 || m.q[i] == 0)
                cout << 0 << "       ";
            else
                cout << 1 << "       "; 
        }
        cout << endl;
        //p并q
        cout << "p析取q:";
        for(int i = 0;i < 4;i++)
        {
            if(m.p[i] == 1 || m.q[i] == 1)
                cout << 1 << "       ";
            else
                cout << 0 << "       ";
        }
        cout << endl;
        //p蕴含q
        cout << "p蕴含q:";
        for(int i = 0;i < 4;i++)
        {
            if(feip[i] == 1 || m.q[i] == 1)
                cout << 1 << "       ";
            else
                cout << 0 << "       ";
        }
        cout << endl;
        //p当且仅当q
        cout << "p等价q:";
        for(int i = 0;i < 4;i++)
        {
            if((m.p[i] == 1 && m.q[i] == 1) || (m.p[i] == 0 && m.q[i] == 0))
                cout << 1 << "       ";
            else
                cout << 0 << "       ";
        }
        cout << endl;
        return 0;
    }

    运行结果:

     以下代码为可输入的代码,用布尔值实现

    #include<iostream>
    using namespace std;
    
    void function(bool x,bool y)
    {
        bool m = x&y;
        bool n = x|y;
        bool a,b,c;
        if(x == 1 && y == 0)
            a = 0;
        else
            a = 1;
        if(y == 1 && x == 0)
            b = 0;
        else
            b = 1;
        if(x == y)
            c = 1;
        else
            c = 0;
        cout << "p   q   ﹁p   ﹁q   p∩q   p∪q   p→q   q→p   p←→p   p⊕q" << endl;
        cout << x << "   " << y << "     " << !x << "     " << !y << "     ";
        cout << m << "      " << n << "      ";
        cout << a << "      " << b << "       " << c << "       " << !c << endl;
    }
    
    int main()
    {
        bool p,q;
        int n;
        cout << "请输入需要测试几组数据:";
        cin >> n;
        while(n--)
        {
            cout << "请输入命题p和命题q的真值:";
            cin >> p >> q;
            function(p,q);
        }
        return 0;
    }

    运行结果:

  • 相关阅读:
    什么是web标准、可用性、可访问性
    前端面试>逻辑推理题~~
    git 安装
    wcf生成客户端代理的四种方法
    mysql 安装
    理解Linux 的处理器负载均值load averages
    高性能服务器架构
    事务日志
    Epoll工作模式详解
    事务和两阶段提交
  • 原文地址:https://www.cnblogs.com/biaobiao88/p/11777719.html
Copyright © 2011-2022 走看看