离散数学大作业任务书

您所在的位置:网站首页 函数值表 离散数学大作业任务书

离散数学大作业任务书

2023-06-27 05:58| 来源: 网络整理| 查看: 265

目   录

实际的练习题目、系统的总功能和各子模块的功能………………………………………………………………………………1

1.1题目及问题描述………………………………………………………………1

1.2功能概述………………………………………………………………………1

1.3技术选型………………………………………………………………………1

1.4代码实现………………………………………………………………………2

主要算法简述…………………………………………………………9程序流程图……………………………………………………………10

3.1功能模块设计…………………………………………………………………10

3.2关键方法流程图………………………………………………………………11

3.3界面设计………………………………………………………………………11

3.4系统测试………………………………………………………………………11

总结报告………………………………………………………………16

实际的练习题目、系统的总功能和各子模块的功能 题目及问题描述

(1)求任意一个命题公式的真值表。

(2)利用真值表求任意一个命题公式的主范式。

(3)判断两个命题公式是否等值。

功能概述

1. 求任意一个命题公式的真值表:首先通过调用init函数输入命题公式,然后根据命题公式中包含的所有变量,生成该命题公式的真值表,即计算所有可能情况下命题公式的结果,并输出其真值表。

2. 利用真值表求任意一个命题公式的主范式:根据真值表中为1或0的情况,计算得出该命题公式的主合取范式和主析取范式,并分别输出。

3. 判断两个命题公式是否等值:输入两个命题公式,分别计算它们的真值表,并比较它们的真值表是否相等,最后输出结果。

技术选型

操作系统

Windows 11

编程语言(及版本)

C++

编辑软件/IDE

VS

代码实现 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; typedef struct optrstack { char oper[30]; int loc; }OPStack; void initop(OPStack& op) { int i; op.loc = 0; for (i = 0; i < 30; i++)op.oper[i] = '\0'; } void push(OPStack& op, char c) { op.oper[op.loc++] = c; } char pop(OPStack& op) { return(op.oper[--op.loc]); } typedef struct opndstack { int oper[60]; int loc; }OPndStack; void initopnd(OPndStack& op) { int i; op.loc = 0; for (i = 0; i < 30; i++)op.oper[i] = '\0'; } void pushopnd(OPndStack& op, int c) { op.oper[op.loc++] = c; } int popopnd(OPndStack& op) { return(op.oper[--op.loc]); } void init(char s[]) { int t; printf("\n请输入任意一个命题公式(命题变元为一个字符)\n"); printf("非、析取、合取、条件、双条件词分别用符号!、|、&、-、+表示\n"); cin>>s; t = strlen(s); s[t] = '@'; s[t + 1] = '\0'; } int is_optr(char c) { char optr_list[] = "+-|&!()@"; for (int i = 0; i < (int)strlen(optr_list); i++) if (c == optr_list[i])return 1; return 0; } char first(char op1, char op2) { char tab[8][9] = { ">>>>", ">>>>>>", ">", "


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3