C语言实现逻辑联结词真值表及命题公式类型判断
下面是用C语言实现五个常用逻辑联结词(与、或、非、蕴含、等价)的基本功能的代码:
#include <stdio.h>
// 与运算
int AND(int a, int b) {
return a && b;
}
// 或运算
int OR(int a, int b) {
return a || b;
}
// 非运算
int NOT(int a) {
return !a;
}
// 蕴含运算
int IMPLY(int a, int b) {
return !a || b;
}
// 等价运算
int EQUIV(int a, int b) {
return a == b;
}
// 输出真值表
void printTruthTable(int (*func)(int, int), char* op) {
printf("P\tQ\t%s\n", op);
printf("-----------------\n");
for (int p = 0; p <= 1; p++) {
for (int q = 0; q <= 1; q++) {
printf("%d\t%d\t%d\n", p, q, func(p, q));
}
}
printf("-----------------\n");
}
int main() {
printf("真值表和命题公式类型判断\n\n");
// 输出与运算的真值表
printTruthTable(AND, "AND");
// 输出或运算的真值表
printTruthTable(OR, "OR");
// 输出非运算的真值表
printf("P\tNOT\n");
printf("--------\n");
for (int p = 0; p <= 1; p++) {
printf("%d\t%d\n", p, NOT(p));
}
printf("--------\n");
// 输出蕴含运算的真值表
printTruthTable(IMPLY, "IMPLY");
// 输出等价运算的真值表
printTruthTable(EQUIV, "EQUIV");
return 0;
}
运行上述代码,将输出五个逻辑联结词的真值表,并根据真值表判断命题公式的类型。
示例输出:
真值表和命题公式类型判断
P Q AND
-----------------
0 0 0
0 1 0
1 0 0
1 1 1
-----------------
P Q OR
-----------------
0 0 0
0 1 1
1 0 1
1 1 1
-----------------
P NOT
--------
0 1
1 0
--------
P Q IMPLY
-----------------
0 0 1
0 1 1
1 0 0
1 1 1
-----------------
P Q EQUIV
-----------------
0 0 1
0 1 0
1 0 0
1 1 1
-----------------
根据上述输出,我们可以判断命题公式的类型。例如,当'P'和'Q'都为'0'时,逻辑联结词'AND'的输出为'0',逻辑联结词'OR'的输出为'0',逻辑联结词'IMPLY'的输出为'1',逻辑联结词'EQUIV'的输出为'1'。
原文地址: https://www.cveoy.top/t/topic/rTs 著作权归作者所有。请勿转载和采集!