编程实现存在量词和全程量词真值的计算。使用c语言来实现该如何处理,如何去编译
2条回答 默认 最新
- threenewbee 2023-04-16 12:44关注
#include <stdio.h> #include <stdbool.h> #define MAX_LENGTH 1000 // 判断命题中是否包含特定的变量 bool contains(char* proposition, char var) { for (int i = 0; proposition[i] != ‘\0’; i++) { if (proposition[i] == var) { return true; } } return false; } // 判断一组真值下命题的真假 bool isTrue(char* proposition, bool* truthValues) { for (int i = 0; proposition[i] != ‘\0’; i++) { if (proposition[i] >= ‘a’ && proposition[i] <= ‘z’) { // 如果是变量,则根据真值数组中该变量对应的值判断 int index = proposition[i] - ‘a’; if (truthValues[index] == false) { return false; } } } return true; } // 计算存在量词真值 bool existQuantifier(char* proposition, char var, bool* truthValues) { // 先判断命题中是否包含该变量,不包含则返回false if (!contains(proposition, var)) { return false; } // 枚举该变量的真值,其中存在任意一个真值使得命题为真即返回true bool temp[MAX_LENGTH]; // 临时存储一组真值 for (int i = 0; i < 2; i++) { int index = var - 'a'; truthValues[index] = (bool)i; if (isTrue(proposition, truthValues)) { return true; } } return false; } // 计算全称量词真值 bool universalQuantifier(char* proposition, char var, bool* truthValues) { // 先判断命题中是否包含该变量,不包含则返回true if (!contains(proposition, var)) { return true; } // 枚举该变量的真值,其中存在任意一个真值使得命题为假即返回false bool temp[MAX_LENGTH]; // 临时存储一组真值 for (int i = 0; i < 2; i++) { int index = var - 'a'; truthValues[index] = (bool)i; if (!isTrue(proposition, truthValues)) { return false; } } return true; } // 测试 int main() { char proposition[MAX_LENGTH]; scanf("%s", proposition); bool truthValues[MAX_LENGTH] = { false }; char quantifier = proposition[0]; char var = proposition[1]; // 根据量词类型进行真值计算 switch (quantifier) { case 'E': if (existQuantifier(proposition + 2, var, truthValues)) { printf("True\n"); } else { printf("False\n"); } break; case 'A': if (universalQuantifier(proposition + 2, var, truthValues)) { printf("True\n"); } else { printf("False\n"); } break; default: printf("Invalid quantifier\n"); break; } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)