离散数学编程作业--打印输出逻辑运算表

这篇具有很好参考价值的文章主要介绍了离散数学编程作业--打印输出逻辑运算表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编程内容及要求:

编写程序,打印输出9种基本逻辑运算符(与、或、非、条件、双条件、异或、与非、或非、条件否定)的运算表到字符文件logic.txt中。

编程语言可选择C、C++、Java或Python。

逻辑运算表输出格式示例:

------------------

 P   Q    条件否定

------------------

 T   T    F

 T   F    T

 F   T    F

 F   F    F

------------------

输出的字符文件logic.txt内容(粘贴):

------------------

 P   Q    与运算

------------------

 F   F       F

 F   T       F

 T   F       F

 T   T       T

------------------

------------------

 P   Q    或运算

------------------

 F   F       F

 F   T       T

 T   F       T

 T   T       T

------------------

------------------

 P    非运算

------------------

 F       T

 T       F

------------------

------------------

 P   Q    条件运算

------------------

 F   F       T

 F   T       T

 T   F       F

 T   T       T

------------------

------------------

 P   Q    双条件运算

------------------

 F   F       T

 F   T       F

 T   F       F

 T   T       T

------------------

------------------

 P   Q    异或运算

------------------

 F   F       F

 F   T       T

 T   F       T

 T   T       F

------------------

------------------

 P   Q    与非运算

------------------

 F   F       T

 F   T       T

 T   F       T

 T   T       F

------------------

------------------

 P   Q    或非运算

------------------

 F   F       T

 F   T       F

 T   F       F

 T   T       F

------------------

------------------

 P   Q    条件否定运算

------------------

 F   F       F

 F   T       F

 T   F       T

 T   T       F

------------------

源程序代码:文章来源地址https://www.toymoban.com/news/detail-420131.html

#include <stdio.h>
int main() 
{
	
    FILE *fp;
    fp = fopen("logic.txt", "w"); // 打开文件
    if (fp == NULL) { // 文件打开失败
        printf("文件打开失败!\n");
        return 1;
    }
    
    // 输出与运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    与运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = p && q;
            char ch_1=p ?'T':'F';
			char ch_2=q ?'T':'F';
			char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");

    // 输出或运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    或运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = p || q;
            char ch_1=p ?'T':'F';
	char ch_2=q ?'T':'F';
	char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");
    
    // 输出非运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P    非运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        int result = !p;
        char ch_1=p ?'T':'F';
		char ch_3=result ?'T':'F';
        fprintf(fp, " %c       %c\n", ch_1, ch_3);
    }
    fprintf(fp, "------------------\n\n");
    
    // 输出条件运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    条件运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = p ? q : 1;
            char ch_1=p ?'T':'F';
			char ch_2=q ?'T':'F';
			char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");

    // 输出双条件运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    双条件运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = (p && q) || (!p && !q);
			char ch_1=p ?'T':'F';
			char ch_2=q ?'T':'F';
			char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");
    
    // 输出异或运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    异或运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = p ^ q;
            char ch_1=p ?'T':'F';
	char ch_2=q ?'T':'F';
	char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");

    // 输出与非运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    与非运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = !(p && q);
            char ch_1=p ?'T':'F';
	char ch_2=q ?'T':'F';
	char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");

    // 输出或非运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    或非运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = !(p || q);
            char ch_1=p ?'T':'F';
			char ch_2=q ?'T':'F';
			char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");

    // 输出条件否定运算表
    fprintf(fp, "------------------\n");
    fprintf(fp, " P   Q    条件否定运算\n");
    fprintf(fp, "------------------\n");
    for (int p = 0; p <= 1; p++) {
        for (int q = 0; q <= 1; q++) {
            int result = !(p ? q : 1);
            char ch_1=p ?'T':'F';
			char ch_2=q ?'T':'F';
			char ch_3=result ?'T':'F';
            fprintf(fp, " %c   %c       %c\n", ch_1, ch_2, ch_3);
        }
    }
    fprintf(fp, "------------------\n\n");

    fclose(fp); // 关闭文件
    printf("逻辑运算表已输出到文件 logic.txt 中!\n");
    return 0;
}

到了这里,关于离散数学编程作业--打印输出逻辑运算表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 离散数学习题1.1 命题逻辑

      图源:文心一言 离散数学习题记录,仅节选习题~🥝🥝 面对每个小节动辄30+道题的庞大题量,我深知,以我计穷智短的天资与精卫填海的刷题速度,即便日以继夜地奋战,累成被山西老陈醋泡过的腊八蒜,时间仍显得捉襟见肘~因此,每个类型的题目我随机仅挑选1-2道解答

    2024年01月23日
    浏览(39)
  • 离散数学大作业任务书

    目   录 实际的练习题目、系统的总功能和各子模块的功能………………………………………………………………………………1 1.1题目及问题描述………………………………………………………………1 1.2功能概述………………………………………………………………………

    2024年02月10日
    浏览(46)
  • 离散数学之矩阵关系运算

    矩阵关系运算前提: (1)第一个矩阵的列数等于第二个矩阵的行数。 (2)两个矩阵的元素均是0或1。 例如:A关系运算B得到C   原理:C11=(A11∧B11)∨(A12∧B21) C12=(A11∧B12)∨(A12∧B22)...... 就是把矩阵乘法中各个元素的乘法变成合取,原来乘法之后进行的相加改为合取后的析取。    

    2024年02月12日
    浏览(43)
  • 离散数学 --- 二元关系 --- 关系的运算

      进行关系A和关系B进行关系的复合运算的前提是关系A的后域是关系B的前域,且最终得到的复合关系C的前域是关系A的前域,后域是关系B的后域(且这个前域值在关系A中对应的后域值与这个后域值在关系B中对应的前域值相等) 1.关系的复合运算必然涉及到三个集合,两个集

    2024年02月02日
    浏览(48)
  • 【Java实现】离散数学计算 关系的幂运算

    (前排提示,代码内容在文章中间,末尾是闲聊)  离散数学在在“右复合”的基础上提出了“幂运算”的概念。 设R为A上的关系,n为自然数,则R的n次幂如下: (1)为恒等关系。 (2) =o。  咳咳,用上面两个定义可以干很多事情,比如我们知道任意集合上关系的0次幂都

    2024年02月11日
    浏览(38)
  • 《离散数学导学》精炼:第1-3章(导论,数,命题逻辑)

    勤学苦练莫懈怠,求知问道不辞难。 脚踏实地披荆斩棘,铸就辉煌不负韶华。 知识点滴如珠玉,汲取精华莫放弃。 勤奋学习方成才,未来辉煌走向前。 我一直觉得在计算机这一学科的学习中,离散数学是极为重要的知识基础。离散化的思想体现在计算机学科的方方面面。举

    2023年04月12日
    浏览(40)
  • 离散数学(十二):关系的幂运算与关系的性质

    1)幂运算的定义  2)幂运算的求法   幂运算有两种求法,基于矩阵的方法和基于关系图的方法。我们之前学过关系的表示方法有三种:集合、矩阵、关系图。那么同样,这些方式也可以运用于关系的计算中。 需要的注意的是,基于关系图的运算是具有物理意义的,以R2为例

    2024年02月08日
    浏览(43)
  • 离散数学-集合论-关系的概念、表示和运算(7)

    函数是x 到y 的映射,这种映射反就是一种关系。因为定义域x 是一个集合、值域y 也是一个集合所以函数就是一个x, y 有序对的集合。因此,我们可以通过二元关系来定义函数的概念,利用有序对的集合来表示函数。 1.1 有序对 定义: 由两个元素 x 和 y,按照一定的顺序组成的

    2024年02月06日
    浏览(47)
  • 在线小学数学作业练习册出题网站源码,支持打印转成PDF

    源码介绍 小学数学出题网页版源码,加减乘除混合运算,支持自定义数字、小数、混合运算,支持加减乘除运算混合多选(一道题中同时随机出现加减乘除运算符)支持自定义出题数量,支持一键打印成pdf,支持隐藏选项功能,打印纯净试卷,小学数学没有负数,保证结果不

    2024年01月25日
    浏览(43)
  • C++编程作业-------小数运算

    题目描述 暑假来了,天气特别热,花花到冷饮店来买冷饮;已知雪糕2.5元/支,碎碎冰1.5元/支,花花买了 x支雪糕和y支碎碎冰,老板说今天有优惠,可以有1支雪糕免费,请问花花应该付给老板多少钱? 输入 两个整数x和y,分别代表了雪糕和碎碎冰的购买数量。 输出 一个小数

    2024年02月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包