范式计算器matlab代码
原理介绍
这个算法的原理在于用户在界面上输入想要转换的范式之后,程序会将这个范式读入并保存为String类型,当我们接收到这个范式之后,首先会对这个范式的输入位数进行判断。
然后为了能够方便接下来的转换和操作,我们首先将命题变项进行了替换,这个做法极大的简化了真值表的求取和最大项、最小项的确定。然后根据我们之前判断出来的位数,和我们替换之后的新的命题变项我们就可以确定出最小项和最大项了,并将其分别保存在名为min和max的string数组里
然后就是求出对应范式的真值表了,对于真值表的求取,我们需要首先对算式进行转换,这也是这个程序的核心内容,我通过对于不同的符号进行不同的判断,将我输入的范式转换成了逻辑算式,具体转换方法可以参照conventor.m,在这里我们就不再赘述。求出逻辑算式后,我们就能够通过对于命题变项的不同赋值,求出对应的真值表。
有了真值表和最大项、最小项之后,我们就可以开始计算程序的主析取和主合取范式了。这里采用的做法是根据真值表的结果,对字符串进行拼接,具体的程序实现可以去看output.m。
使用说明
文件由几个matlab文件组成,分别有着不同的作用
brackets是用来识别出输入范式的括号并对位置进行标记的。
match是用来计算出对应的真值表的。
conventer是用来对输入范式进行转换以方便后期处理。
Output是根据真值表来计算出输出的主析取和主合取范式。test是我编写的GUI文件,方便用户的输入。main是我们程序的主函数,通过它调用其他函数,来达到我们想要的结果使用的时候,将这几个文件放到同一个文件夹内,将MATLAB的文件路径选择到当前文件夹内,运行main.m就可以了,运行后会出现如下图的界面
EXE文件
为了方便使用者移植,我们将程序制作成了exe文件,在安装过程中,我们EXE压缩包进行解压,我们打开第一个文件夹for_redistribution,双击里面的MyAppInstaller_web.exe进行安装。程序的运行环境需要安装MATLAB RUNTIME,使用者可以通过安装程序进行网上安装,也可以自行去官网下载。安装完成后,双击桌面图标进行使用。
注意事项
为了程序能够正常的运行,我们对于程序的输入,有着严格的规定,使用只能输入下表ASCII码对应的字符,否则会被程序报错。
名称 |
符号 |
ASCII码值 |
命题变项 |
A-Z,a-z |
65-90,97-122 |
合取联结词 |
∧ |
8743 |
析取联结词 |
∨ |
8744 |
否定联结词 |
¬ |
172 |
蕴含联结词(右) |
→ |
8594 |
蕴含联结词(左) |
← |
8592 |
等价联结词 |
↔ |
8596 |
与非联结词 |
↑ |
8593 |
或非联结词 |
↓ |
8595 |
括号 |
(,) |
40,41
|
程序的下载地址:https://github.com/Charlie2048/Charlie/tree/21