一、实验目的

熟悉五个真值表,掌握真值表技术。

二、实验内容

定义1 设命题变元P1、P2、P3、…、Pn是出现在公式G中的所有命题变元,指定P1、P2、P3、…、Pn 的一组真值,则这组真值称为G的一个解释或指派,常记为I。
定义2 真值表:公式G在其所有可能的解释下所取真值的表。
本实验要求从键盘输入一个命题公式列出其真值表。用C语言或MATLAB实现。

三、实验源程序及结果截图
1.实验源程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h> int a,b;int split(char* s){//只有一个数据 if(s[1]==0)switch(s[0]){case 'a':return a;case 'b':return b;} //判断第一个符号是否为左括号 int i=0;int l,r;if(s[0]!='(')//如果不是,用l暂存数据 {switch(s[0]){case 'a':l=a;break;case 'b':l=b;break;}i++;}else//如果是左括号,将左括号之后及对应的右括号之前的字符串暂存到s1中 {i++;char s1[10];int j;for(j=0;s[i]!=')';j++,i++)s1[j]=s[i];l=split(s1);//递归调用,使符号前面的数据为l printf("%c",l);}char t[10];int j,k;for(j=0,k=i+1;s[k]!=0;k++){if(s[k]!='('&&s[k]!=')')t[j++]=s[k];}t[j]=0;r=split(t);//递归调用,使符号后面的数据为r switch(s[i]){case '&':{//合取运算 if(l==1&&r==1)return 1;elsereturn 0;}case '|':{//析取运算 if(l==0&&r==0)return 0;elsereturn 1;}case '*':{//单条件运算 if(l==1&&r==0)return 0;elsereturn 1;}case '+':{//双条件运算 if(l==r)return 1;elsereturn 0;}}}
int main() {    char s[10];printf("仅支持含有两个变元的复合命题(分别用a、b表示)\n");printf("假定运算符优先级相同,输入复合命题时将联结词两端的子公式用()括起来\n");printf("合取符号:&   析取符号: |   单条件符号:*   双条件符号:+    不支持否定\n"); printf("请输入命题公式:\n");scanf("%s",&s);printf("真值表为:\n");printf("a\tb\t%s\n",s);a=1;b=1;printf("1\t1\t%d\n",split(s));a=1;b=0;printf("1\t0\t%d\n",split(s));a=0;b=1;printf("0\t1\t%d\n",split(s));a=0;b=0;printf("0\t0\t%d\n",split(s));return 0;
}

离散数学实验二 真值表相关推荐

  1. 离散实验 实验二 真值表

    一.实验目的 熟悉五个真值表,掌握真值表技术. 二.实验内容 定义1 设命题变元P1.P2.P3.-.Pn是出现在公式G中的所有命题变元,指定P1.P2.P3. -.Pn的一组真值,则这组真值称为G的 ...

  2. 南京邮电大学离散数学实验二(二元关系的性质判定)

    文章目录 一. 实验目的和要求 二.实验环境(实验设备) 三.实验原理及内容 (一)数据结构 1.全局变量: 2.函数调用关系 (二)核心代码 1.代码 2.时间复杂度为O(n2)和O(n3) (三) ...

  3. 南邮 | 离散数学实验二:集合上二元关系性质判定的实现

    题目:根据某一集合元素以及关系矩阵,判断其满足什么特性,输出满足的特性,再求此集合的闭包. 举例:以集合{1,2,3,4}为例.关系矩阵为:[[1,0,1,0],[0,1,0,0],[1,0,1,1] ...

  4. 离散数学实验二 实现任意集合上二元关系的性质判定

    实验原理 首先输入集合元素个数,再输入集合元素循环放入数组中,接着输入关系将其转换为关系矩阵,最后调用judge函数输出性质. #include<iostream> #define MAX ...

  5. 离散数学范式c语言实验报告,离散数学实验报告-利用真值表法求主析取范式及主合取范式的实现...

    1.实 验 报 告( / 学年 第 一 学期)课程名称离散数学实验名称利用真值表法求主析取范式及主合取范式的实现实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专 业 实 验 报 告实验名称利 ...

  6. 离散数学实验报告三——真值表与主范式

    离散数学实验报告三--真值表与主范式 一.预习内容: 1.真值表:把变量的各种可能取值与想对应的函数值,用表格的形式一一列举出来,这种表格就叫做真值表 2.命题公式的析(合)取范式 ⑴文字:命题变元及 ...

  7. C语言求幺元的函数,离散数学实验指导书及其答案.doc

    实验一 命题逻辑公式化简 [实验目的]加深对五个基本联结词(否定.合取.析取.条件.双条件)的理解.掌握利用基本等价公式化简公式的方法. [实验内容]用化简命题逻辑公式的方法设计一个表决开关电路. 实 ...

  8. 离散数学实验题目-集合

    离散数学实验报告 计算机科学与技术系 目录 第一章 实验概述 3 1.1 实验目的 3 1.2 实验内容 3 1.3 实验环境 3 第二章 实验原理和实现过程 4 2.1 实验原理 4 2.2 实验过 ...

  9. 离散数学实验3 平面图判定及对偶图的求解 C++

    离散数学实验报告3 文章目录 离散数学实验报告3 一.实验题目 二.实验目的 三.实验要求 需求分析: 输入形式与输入范围 概要设计: 使用的数据结构与算法: 程序流程: 详细代码 调试分析 调试过程 ...

最新文章

  1. 小学文凭有计算机知识,重大版小学信息技术毕业复习题
  2. RocketMQ的Producer详解之分布式事务消息(代码实现以及过程分析)
  3. arduino编译失败_Arduino编译时失败
  4. oracle long转为string,实现全局拦截前端传入的Long类型id转String
  5. linux远程登录显示,SSH远程登录显示自定义警告信息
  6. 添加mysql.h头文件
  7. vs2015运行编译器遇到堆空间不足问题
  8. 网站时间日期代码html,显示网站运行时间及当前时间的代码
  9. win10 安装dig工具与使用dig命令
  10. 乐高EV3怎么运行Python?
  11. Arcscan自动矢量化
  12. 金山词霸导致chrome浏览器出错
  13. C++ 独木舟旅游活动
  14. android lt;webview,Android WebView使用基础 – 圣骑士wind – 博客园
  15. 华为hg8240光猫通过LAN网络接入实现路由器功能设置
  16. 京东颜色html,京东m.jd站点静态页实现(首页)H5
  17. 图像形态学处理——灰度梯度(Matlab)
  18. python课程教学大纲-《Python语言基础》课程教学大纲
  19. 阿里云 Windows Server 2012 R2 使用FileZilla Server 快速搭建FTP服务器
  20. UVM_PRINTER

热门文章

  1. 0x00a1bdb3 指令引用的 0x00000001 内存。该内存不能为 read。
  2. leetcode | 971. Flip Binary Tree To Match Preorder Traversal(DFS/preorder)
  3. Spring5 新特性之 webflux
  4. ThreadLocal如何保证获取到想要线程变量
  5. 大炮评级:玩你只是寂寞,玩死你才是目的,我可是币圈墓地!
  6. Matlab通信仿真常用函数
  7. 多传感器融合定位十四-基于图优化的定位方法
  8. MySQL经典练习题,看看你会几道?
  9. 视频压缩怎么弄?建议收藏这些方法
  10. Keras教程:使用Keras开始深度学习和Python(上)