离散数学真值表(c语言编程实现)
代码如下:
废话不多说:
主要利用二进制的转化实现
#include <iostream>
#include <math.h>
using namespace std;
void shuru(char *p,int s);
void shuchu(char *p,int s);
void panduan(int s,int p,char *a,char b);
void shizi(char *p,int s);
void shiz(char *p,int s,char *a,char b);
char b[10]={'p','q','r','s','d','m','n','l','j','k'};
int main()
{int n;cout<<"input the value of n"<<endl;while(!(cin>>n)){cin.clear();cin.sync();cout << "不是数字"<<endl;}cout<<"input T or F"<<endl; char a[100];shuru(a,n);cout<<"----------------------"<<endl;for(int i=0;i<n;i++){//根据命题数输出命题符号 cout<<b[i]<<" ";}cout<<"VALUE"<<endl;shuchu(a,n);shizi(a,n);
}
void shuru(char *p,int s){for (int i=0;i<pow(2,s);i++)//判断输入的是否为F或者T,若是,存入数组a,反之,跳过 {char h; while(1){cin>>h;if(h=='T' || h=='F'){p[i]=h;break;}else{getchar();}}}
}
///KZT
void shuchu(char *p,int s){int k=0,c[2]={0,1};while(k<pow(2,s))//输出每个命题的真值 {for(int i=0;i<s;i++){if(int(k/pow(2,s-i-1))%2)cout<<"T"<<" ";elsecout<<"F"<<" "; }cout<<p[k]<<endl;k++;}cout<<endl;
}
void shiz(char *p,int s,char *a,char b){int flag=0;for(int i=0;i<pow(2,s);i++){if(p[i]==b){if(flag==1)cout<<a;panduan(s,i,a,b);flag=1;}}if(flag==0)if(b=='T')cout<<"0"<<endl;elsecout<<"1"<<endl;
}
void shizi(char *p,int s){cout<<"主析取范式为:";shiz(p,s,"\\/",'T');cout<<endl<<"主合取范式为:";shiz(p,s,"/\\",'F');
}
void panduan(int s,int p,char *a,char c){cout<<"(";if (a=="\\/")a="/\\";else if(a=="/\\")a="\\/";int flag=0;for(int i=0;i<s;i++){if(flag==1)cout<<a;if(int(p/pow(2,s-i-1))%2)cout<<b[i];elsecout<<"非"<<b[i];flag=1;}cout<<")";
}
输入要求:
首先输入一个数字n(1-10)代表变量的个数
而后输入2^n个字符(T or F)
输出如下图:
离散数学真值表(c语言编程实现)相关推荐
- 离散数学真值表(c语言编程实现),C语言 实现离散数学合式公式真值表
我们介绍了什么是合式公式以及怎样用C语言实现判断机制 现在我们来谈谈怎样用C语言去实现合式公式的真值表. 该程序功能就是任意给定一个合式公式我们都能把它的真值表输出出来. 步骤1: 引用上一篇的程序, ...
- 【离散数学】Java语言实现利用真值表法求主析取范式和主合取范式
C++版本的看这个链接: [离散数学]C++语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/ ...
- 【离散数学】C++语言实现利用真值表法求主析取范式和主合取范式
Java版本的如下链接所示: Java语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/art ...
- C 语言编程 — 运算符
目录 文章目录 目录 前文列表 运算符 算数运算符 自增.自减运算符 比较运算符 逻辑运算符 位运算符 赋值运算符 逗号运算符 sizeof 运算符 杂项运算符 运算符的优先级 前文列表 <程序 ...
- C语言代码示范与讲解+C语言编程规范及基础语法+编程实战
上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...
- C/C++语言编程的隐患!
C/C++语言编程的隐患! 本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内.内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决 ...
- c语言程序设计分段定时器,单片机C语言编程定时器的几种表达方式
原标题:单片机C语言编程定时器的几种表达方式 吴鉴鹰单片机开发板地址 店铺:[吴鉴鹰的小铺] 地址:[https://item.taobao.com/item.htm?_u=ukgdp5a7629&a ...
- perl语言编程 第四版_2020年,5 种 将死的编程语言!
来源 | 码农网译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemea ...
- 共阳极数码管动态扫描c语言,《C语言编程实训》实训指导书三
1 C 语言编程实训语言编程实训 实训指导书三实训指导书三 适应专业 应用电子技术适应专业 应用电子技术 广州康大职业技术学院自动化系广州康大职业技术学院自动化系 二二 0 一一 0 年十一月年十一月 ...
- 语言趣味编程100例无水印_趣味c语言编程100例(三)
经典c程序100例==51--60 [程序51] 题目:学习使用按位与 & . 1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 2.程序源代 ...
最新文章
- 基于FPGA的HDB3编译码器设计
- python自动测试u_自动化测试——Selenium+Python之下拉菜单的定位
- 【AS3代码】添加/删除XML子元素及属性
- PHP的.htaccess
- 10.15 wget:命令行下载工具
- redis pool
- centos7 安装 php-fpm_centos7中如何安装 php-fpm(nginx)
- 关于telnet的安装
- java treemap_Java TreeMap的排序
- 密码编码学与网络安全笔记(第7版)
- 测验6: 组合数据类型 (第6周) + 练习6: 组合数据类型 (第6周)
- 暴漏React配置时报错Remove untracked files, stash or commit any changes, and try again.
- 【矩阵篇】九宫图/n宫图生成——Merzirac法生成奇阶幻方 Python实现
- 版本控制之最佳实践(Git版)
- 光伏电子工程的设计与实施2022——单片机力控部分实现思路
- 原生JS实现小米轮播图和网易云轮播图
- 君子之交+续篇+番外 txt全集
- 高等数学:第六章 定积分的应用(5)功、水压力和引力
- 太野了!西二旗程序员加班用CPU烤肉当夜宵
- 高通|AR扫描图片播放视频