




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——程序判定合式公式......合式公式的判定1、根本概念1、合式公式1单个命题常项或变项是合式公式;
2假设A是合式公式,那么﹁A也是合式公式;
3假设A,B是合式公式,那么P∧Q、P∨Q、P→Q、P↔Q也是合式公式;
4只有有限次地应用1~3所包含的命题变元,联结词和括号的符号串是合式公式。
2、设命题集合LpC1,C2,Cn长度语言构成元素的数目表达式uv指长度相等且从左向右比四处相等初始段从最左端开头向右扫描结尾段从最右端开头向左扫描2、编程思路假定给定的程序变量为U,U为Lp表达式,代表输入的带判定的字符串又记“*”代表“∧”,“∨”,“→”,“↔”四种之一。
那么1、空表达式不是适合公式的表达式。返回NO2、单独的一个符号是一个公式时,当且仅当此符号为命题符号3、假设U的长度大于1,那么U务必以“(”开头,否那么不是合式公式,返回NO。
(1)假设U的其次个符号为一个表示否决的“﹁”,那么U务必是可以匹配(﹁V)模式,其中V是一个表达式。否那么U不是合式公式,即U是合式公式当且仅当V是合式公式。
于是,递归判断V是否为合式公式,转入1、重头开头判断。
(2)假设U的其次个符号不是“﹁”。那么U确定要符合(A*B)模式。
①对U从左向右扫描,遇到“(A”中断,其中A是一个含有一致数目的“(”和“)”的表达式,假设没有,那么U不是合式公式,返回NO。
②对U从右向左扫描,遇到“B)”中断,其中B是一个含有一致数目“(”和“)”的表达式,假设没有,那么U不是合式公式,返回NO。
③验证(A*B)的“*”是否是“∧”,“∨”,“←”,“↔”四种之一,假设不是,那么U不是合式公式,返回NO。
④递归判断A,B是否为合式公式,转入1、重头开头判断3、程序代码includeincludeincludevoidcheckchar*str1;intmainvoid{intindex1;intkeyNum1;staticcharstring[50];//友好界面,循环使用判断whileindex0{printf“接待使用合式公式判断系统\n“;printf“合式公式()不成以省略\n“;printf“用-表示非﹁\n“;printf“用*表示与∧\n“;printf“用表示或∨\n“;printf“用表示蕴涵→\n“;printf“用表示等值←→\n“;printf“请输入您要判断识别的字符串\n“;scanf“s“,checkstring;printf“请选择0--退出系统;
1--持续判断其它字符串\n“;scanf“d“,ifkeyNum0{break;}else{continue;}}}//合式公式字符串的判读voidcheckchar*str1{charal[50];intlen0;//获取字符串的长度并且去除空格while*str1\0{if*str1{al[len]*str1;len;}str1;}al[len]\0;printf“字符串s\t有效长度d\n“,al,len;//空字符串不是合式公式iflen0{printf“字符串为空\n\t\t\tNO\t\t该字符串不是合式公式\n“;return;}//单独的一个符号是一个公式时,当且仅当次符号为命题符号elseiflen1{ifisalphaal[0]{printf“字符串s不是适合字母\n\t\t\tNO\t\t该字符串不是合式公式\n“,al;return;}else{printf“\t\t\tYES\t\t字符串s是合式公式\n“,al;return;}}//假设U的长度大于,那么U务必以“(”开头,否那么不是合式公式,返回NO。
else{ifal[0]||al[len-1]{printf“字符串s没有以“”开头或者以“”终止\n\t\t\tNO\t\t该字符串不是合式公式\n“,al;return;}else{//假设U的其次个符号为一个表示否决的“﹁”,那么U务必是可以匹配(﹁V)模式ifal[1]-{charnewstring[50];inti0;fori0;ilen-3;i{newstring[i]al[2i];}newstring[i]\0;checknewstring;//递归判断V是否为合式公式}//假设U的其次个符号不是“﹁”。那么U确定要符合(A*B)模式。
else{intj0;intmax10;intmax20;intaindex0;intbindex0;intprenum0;intrearnum0;charAstring[50];charBstring[50];//对U从左向右扫描,遇到“(A”中断,其中A是一个含有一致数目的“(”和“)”的表达式forj0;jlen;j{ifal[j]{prenum;max1;}elseifal[j]{prenum--;ifprenum1{aindexj;break;}ifprenum0}}}//假设没有,那么U不是合式公式,返回NO。
ifprenum1{printf“字符串s中没有扫描到(A\n\t\t\tNO\t\t该字符串不是合式公式\n“,al;return;}//截取新的短的字符串Aifmax11{Astring[0]al[1];Astring[1]\0;}else{forj0;j0;j--{ifal[j]{rearnum;max2;}elseifal[j]{rearnum--;ifrearnum1{bindexj;break;}ifrearnum0}}}//假设没有,那么U不是合式公式,返回NO。
ifrearnum1{printf“字符串s中没有扫描到B)\n\t\t\tNO\t\t该字符串不是合式公式\n“,al;return;}//截取新的短的字符串Bifmax21{Bstring[0]al[len-2];Bstring[1]\0;}else{forj0;bindexj||al[2]{//递归判断A,B是否为合式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 接收设备生产线的自动化改造考核试卷
- 杂粮加工产品配方创新考核试卷
- 橡胶制品行业现状与发展趋势考核试卷
- 火力发电厂施工中的节能技术应用考核试卷
- 理解国际贸易术语与试题及答案
- 体育表演选手心理辅导方法考核试卷
- 水果和坚果加工的流程与设备介绍考核试卷
- 测绘技术在历史文化遗产保护中的应用考核试卷
- 焊接设备在热交换器维修中的应用考核试卷
- 服装行业市场渠道选择与布局研究考核试卷
- 浙江省宁波市“十校”2025届高三下学期3月联考英语试卷答案
- 《南海争端解析》课件
- 服装数字化设计技术课件 5-2男西装款式分析
- 历史-广西壮族自治区考阅评·2025届(年)2月高三毕业班联合调研测试试题和答案
- 2025年3月版安全环境职业健康法律法规标准文件清单
- 【源版】中医药健康管理服务规范
- 盖板天然气管道保护方案
- 新概念二册课文电子版
- 全国英语等级考试一级真题及答案
- 管理学原理(南大马工程)
- (WORD版可修改)JGJ59-2023建筑施工安全检查标准
评论
0/150
提交评论